diff --git a/app.vue b/app.vue index 6bb6396c..92eaeadf 100644 --- a/app.vue +++ b/app.vue @@ -6,14 +6,14 @@ provideGlobalCommands() // We want to trigger rerendering the page when account changes const key = computed(() => `${currentUser.value?.server ?? currentServer.value}:${currentUser.value?.account.id || ''}`) -const { params } = useRoute() +const { params, path } = useRoute() </script> <template> <NuxtLoadingIndicator color="repeating-linear-gradient(to right,var(--c-primary) 0%,var(--c-primary-active) 100%)" /> <NuxtLayout :key="key"> - <!-- TODO: rework the /[account] routes to remove conditional loading --> - <NuxtPage v-if="!params.account || isMastoInitialised" /> + <!-- TODO: rework the /[account] routes and the /home (for sign in alias) to remove conditional loading --> + <NuxtPage v-if="(!params.account && path === '/home') || isMastoInitialised" /> </NuxtLayout> <PWAPrompt /> </template> diff --git a/pages/home.vue b/pages/home.vue index 55827f2c..65cc1a7b 100644 --- a/pages/home.vue +++ b/pages/home.vue @@ -1,16 +1,16 @@ <script setup lang="ts"> import { useI18n } from 'vue-i18n' - definePageMeta({ middleware: 'auth', alias: ['/signin/callback'], }) - if (useRoute().path === '/signin/callback') { // This only cleans up the URL; page content should stay the same useRouter().push('/home') } - +const paginator = useMasto().timelines.iterateHome() +const stream = await useMasto().stream.streamUser() +onBeforeUnmount(() => stream.disconnect()) const { t } = useI18n() useHeadFixed({ title: () => t('nav_side.home'), @@ -25,7 +25,9 @@ useHeadFixed({ <span>{{ $t('nav_side.home') }}</span> </NuxtLink> </template> - - <TimelineHome v-if="isMastoInitialised" /> + <slot> + <PublishWidget draft-key="home" border="b base" /> + <TimelinePaginator v-bind="{ paginator, stream }" context="home" /> + </slot> </MainContent> </template>