2022-11-15 13:50:41 +00:00
|
|
|
<script setup lang="ts">
|
2022-11-28 10:14:58 +00:00
|
|
|
import { useI18n } from 'vue-i18n'
|
|
|
|
|
2022-11-15 13:54:13 +00:00
|
|
|
definePageMeta({
|
|
|
|
middleware: 'auth',
|
2022-11-27 15:13:04 +00:00
|
|
|
alias: ['/signin/callback'],
|
2022-11-15 13:54:13 +00:00
|
|
|
})
|
2022-11-15 13:50:41 +00:00
|
|
|
|
2022-11-27 15:13:04 +00:00
|
|
|
if (useRoute().path === '/signin/callback') {
|
|
|
|
// This only cleans up the URL; page content should stay the same
|
|
|
|
useRouter().push('/home')
|
|
|
|
}
|
|
|
|
|
2022-12-03 05:36:10 +00:00
|
|
|
const paginator = useMasto().timelines.iterateHome()
|
2022-11-28 11:18:45 +00:00
|
|
|
const stream = await useMasto().stream.streamUser()
|
|
|
|
onBeforeUnmount(() => stream.disconnect())
|
2022-11-28 10:14:58 +00:00
|
|
|
|
|
|
|
const { t } = useI18n()
|
2022-11-29 22:49:25 +00:00
|
|
|
useHeadFixed({
|
2022-11-28 10:14:58 +00:00
|
|
|
title: () => t('nav_side.home'),
|
|
|
|
})
|
2022-11-15 13:50:41 +00:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<MainContent>
|
|
|
|
<template #title>
|
2022-11-29 20:15:53 +00:00
|
|
|
<NuxtLink to="/home" text-lg font-bold flex items-center gap-2 @click="$scrollToTop">
|
|
|
|
<div i-ri:home-5-line />
|
|
|
|
<span>{{ $t('nav_side.home') }}</span>
|
|
|
|
</NuxtLink>
|
2022-11-15 13:50:41 +00:00
|
|
|
</template>
|
|
|
|
<slot>
|
2022-12-22 14:59:51 +00:00
|
|
|
<LazyPublishWidget v-if="isMastoInitialised && currentUser" draft-key="home" border="b base" />
|
2022-12-04 19:28:26 +00:00
|
|
|
<TimelinePaginator v-bind="{ paginator, stream }" context="home" />
|
2022-11-15 13:50:41 +00:00
|
|
|
</slot>
|
|
|
|
</MainContent>
|
|
|
|
</template>
|