From a87d83de0481d482349fc21d9720e51cfc286e6c Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 2 Nov 2023 15:20:29 -0700 Subject: [PATCH] refactor(web): dropdown post connect install --- web/_data/serverState.ts | 14 ++++---- web/components/UserProfile/Dropdown.vue | 14 ++++---- .../UserProfile/DropdownContent.vue | 36 ++++++++++++++----- .../UserProfile/DropdownLaunchpad.vue | 26 ++++---------- 4 files changed, 47 insertions(+), 43 deletions(-) diff --git a/web/_data/serverState.ts b/web/_data/serverState.ts index 8beff26c1..e73f08182 100644 --- a/web/_data/serverState.ts +++ b/web/_data/serverState.ts @@ -20,7 +20,7 @@ const uptime = Date.now() - 60 * 60 * 1000; // 1 hour ago const twoDaysAgo = Date.now() - 2 * 24 * 60 * 60 * 1000; // 2 days ago // const oneDayAgo = Date.now() - 24 * 60 * 60 * 1000; // 1 day ago const oneHourFromNow = Date.now() + 60 * 60 * 1000; // 1 hour from now -const oneDayFromNow = Date.now() + 24 * 60 * 60 * 1000; // 1 day from now +// const oneDayFromNow = Date.now() + 24 * 60 * 60 * 1000; // 1 day from now let expireTime = 0; let regExp: number | undefined; @@ -65,14 +65,14 @@ switch (state) { case 'STARTER': regDev = 4; // regExp = oneHourFromNow; - regExp = oneDayFromNow; - // regExp = oneDayAgo; + // regExp = oneDayFromNow; + regExp = twoDaysAgo; // regExp = uptime; // regExp = 1696363920000; // nori.local's expiration // @ts-ignore case 'UNLEASHED': // regExp = oneHourFromNow; - regExp = oneDayFromNow; + // regExp = oneDayFromNow; // regExp = oneDayAgo; // regExp = uptime; // regExp = 1696363920000; // nori.local's expiration @@ -83,8 +83,8 @@ switch (state) { break; } -// const connectPluginInstalled = 'dynamix.unraid.net.staging.plg'; -const connectPluginInstalled = ''; +const connectPluginInstalled = 'dynamix.unraid.net.staging.plg'; +// const connectPluginInstalled = ''; export const serverState: Server = { apiKey: 'unupc_fab6ff6ffe51040595c6d9ffb63a353ba16cc2ad7d93f813a2e80a5810', @@ -111,7 +111,7 @@ export const serverState: Server = { name: 'dev-static', osVersion: '6.12.4', // registered: connectPluginInstalled ? true : false, - registered: !connectPluginInstalled, + registered: false, regGen: 0, regTm: twoDaysAgo, regTo: 'Zack Spear', diff --git a/web/components/UserProfile/Dropdown.vue b/web/components/UserProfile/Dropdown.vue index cf163c8c8..2c715d6b8 100644 --- a/web/components/UserProfile/Dropdown.vue +++ b/web/components/UserProfile/Dropdown.vue @@ -3,18 +3,16 @@ import { TransitionRoot } from '@headlessui/vue'; import { storeToRefs } from 'pinia'; import { useDropdownStore } from '~/store/dropdown'; -import { useErrorsStore } from '~/store/errors'; import { useServerStore } from '~/store/server'; defineProps<{ t: any; }>(); const dropdownStore = useDropdownStore(); -const { dropdownVisible } = storeToRefs(dropdownStore); -const { errors } = storeToRefs(useErrorsStore()); -const { connectPluginInstalled, registered, state, stateDataError } = storeToRefs(useServerStore()); -const showDefaultContent = computed(() => !showLaunchpad.value); -const showLaunchpad = computed(() => state.value === 'ENOKEYFILE' || ((connectPluginInstalled.value && !registered.value) && !errors.value.length && !stateDataError.value)); +const { dropdownVisible } = storeToRefs(dropdownStore); +const { state } = storeToRefs(useServerStore()); + +const showLaunchpad = computed(() => state.value === 'ENOKEYFILE'); diff --git a/web/components/UserProfile/DropdownContent.vue b/web/components/UserProfile/DropdownContent.vue index 399cd6c36..adefc7835 100644 --- a/web/components/UserProfile/DropdownContent.vue +++ b/web/components/UserProfile/DropdownContent.vue @@ -29,6 +29,7 @@ const { registered, regUpdatesExpired, stateData, + stateDataError, } = storeToRefs(useServerStore()); const { available: osUpdateAvailable } = storeToRefs(useUpdateOsStore()); @@ -80,27 +81,42 @@ const links = computed(():UserProfileLink[] => { ] : [] ), - ...(!registered.value && connectPluginInstalled.value - ? [ - ...(signInAction.value), - ] - : [] - ), ]; }); const showErrors = computed(() => errors.value.length); const showConnectStatus = computed(() => !showErrors.value && !stateData.value.error && registered.value && connectPluginInstalled.value); -const showKeyline = computed(() => showConnectStatus.value && (keyActions.value?.length || links.value.length)); +const showKeyline = computed(() => + (showConnectStatus.value && (keyActions.value?.length || links.value.length)) || + unraidConnectWelcome.value +); + +const unraidConnectWelcome = computed(() => { + if (connectPluginInstalled.value && !registered.value && !errors.value.length && !stateDataError.value) { + return { + heading: props.t('Thank you for installing Connect!'), + message: props.t('Sign In to your Unraid.net account to get started'), + }; + } + return undefined; +});