diff --git a/lib/Listener/BeforeTemplateRenderedListener.php b/lib/Listener/BeforeTemplateRenderedListener.php index 84fbdd2ae..a3cf90547 100644 --- a/lib/Listener/BeforeTemplateRenderedListener.php +++ b/lib/Listener/BeforeTemplateRenderedListener.php @@ -61,12 +61,6 @@ public function handle(Event $event): void { if (version_compare(Constants::CHANGELOG_VERSION, $lastSeenVersion, '>')) { Util::addScript(Application::APP_ID, Application::APP_ID . '-activate'); } - - // If the user was already seen before (compatibility with older wizard versions where the value was 1) - // then we only show the changelog - if (version_compare($lastSeenVersion, '1', '>')) { - $this->initialState->provideInitialState('changelogOnly', true); - } } Util::addStyle(Application::APP_ID, Application::APP_ID . '-style'); @@ -86,5 +80,16 @@ public function handle(Event $event): void { 'ios', $this->systemConfig->getSystemValueString('customclient_ios', $this->theming->getiOSClientUrl()) ); + + // Live onboarding state for the "Get set up" checklist: which profile + // basics are already done, so the wizard can tick them off. + $this->initialState->provideInitialState('onboarding', [ + 'displayName' => $user->getDisplayName(), + 'hasAvatar' => $user->getAvatarImage(64) !== null, + 'hasName' => $user->getDisplayName() !== '' && $user->getDisplayName() !== $user->getUID(), + 'hasEmail' => ($user->getEMailAddress() ?? '') !== '', + 'canChangeAvatar' => $user->canChangeAvatar(), + 'canChangeName' => $user->canChangeDisplayName(), + ]); } } diff --git a/src/components/InfoCard.vue b/src/components/InfoCard.vue index 8daed32b9..4f05cbd70 100644 --- a/src/components/InfoCard.vue +++ b/src/components/InfoCard.vue @@ -9,16 +9,22 @@ const props = defineProps<{ title: string subtitle?: string href?: string + /** When set, the card fades/rises in with a stagger based on this index. */ + revealIndex?: number }>() const isLink = computed(() => !!props.href) +const revealStyle = computed(() => props.revealIndex === undefined + ? undefined + : { '--reveal-delay': `${props.revealIndex * 80}ms` })