1
0
mirror of https://github.com/elk-zone/elk synced 2024-12-14 14:48:11 +09:00
elk/pages/@[account]/index.vue

38 lines
1.0 KiB
Vue
Raw Normal View History

2022-11-14 01:05:32 +09:00
<script setup lang="ts">
const params = useRoute().params
const accountName = $(computedEager(() => toShortHandle(params.account as string)))
2022-11-28 23:25:32 +09:00
const { t } = useI18n()
const { data: account, refresh } = $(await useAsyncData(() => fetchAccountByName(accountName).catch(() => null)))
if (account) {
useHeadFixed({
title: () => `${getDisplayName(account)} (@${account.acct})`,
})
}
onReactivated(() => {
// Silently update data when reentering the page
// The user will see the previous content first, and any changes will be updated to the UI when the request is completed
refresh()
})
2022-11-14 01:05:32 +09:00
</script>
<template>
2022-11-26 21:58:10 +09:00
<MainContent back>
<template #title>
2022-11-28 23:25:32 +09:00
<span text-lg font-bold>{{ account ? getDisplayName(account) : t('nav_side.profile') }}</span>
2022-11-26 21:58:10 +09:00
</template>
<template v-if="account">
<AccountHeader :account="account" command border="b base" />
<NuxtPage />
</template>
<CommonNotFound v-else>
2022-11-30 06:50:13 +09:00
{{ $t('error.account_not_found', [`@${accountName}`]) }}
</CommonNotFound>
</MainContent>
2022-11-14 01:05:32 +09:00
</template>