elk/pages/[[server]]/explore/users.vue

43 lines
1.1 KiB
Vue
Raw Normal View History

2022-12-11 10:52:36 +00:00
<script lang="ts" setup>
2022-12-13 18:44:40 +00:00
const { t } = useI18n()
2022-12-11 10:52:36 +00:00
// limit: 20 is the default configuration of the official client
const masto = useMasto()
2022-12-11 10:52:36 +00:00
const { data, pending, error } = useLazyAsyncData(
() => masto.suggestions.fetchAll({ limit: 20 }),
2022-12-11 10:52:36 +00:00
{ immediate: true },
)
2022-12-13 18:44:40 +00:00
useHeadFixed({
title: () => `${t('tab.for_you')} | ${t('nav_side.explore')}`,
})
2022-12-11 10:52:36 +00:00
</script>
<template>
<div v-if="data && data.length">
<AccountBigCard
v-for="suggestion of data"
:key="suggestion.account.id"
:account="suggestion.account"
as="router-link"
:to="getAccountRoute(suggestion.account)"
border="b base"
/>
<div p5 text-center text-secondary-light italic>
{{ $t('common.end_of_list') }}
</div>
</div>
<div v-else-if="pending">
<AccountBigCardSkeleton border="b base" />
<AccountBigCardSkeleton border="b base" op50 />
<AccountBigCardSkeleton border="b base" op25 />
</div>
<div v-else-if="error" p5 text-center text-red italic>
{{ $t('common.error') }}: {{ error }}
</div>
<div v-else p5 text-center text-secondary italic>
{{ $t('common.not_found') }}
</div>
</template>