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

39 lines
1.3 KiB
Vue
Raw Normal View History

2022-12-11 10:52:36 +00:00
<script lang="ts" setup>
import { STORAGE_KEY_HIDE_EXPLORE_NEWS_TIPS, STORAGE_KEY_LAST_ACCESSED_EXPLORE_ROUTE } from '~~/constants'
2022-12-13 18:44:40 +00:00
const { t } = useI18n()
const route = useRoute()
2022-12-13 18:44:40 +00:00
2024-01-09 08:56:15 +00:00
const paginator = useMastoClient().v1.trends.links.list()
2022-12-11 10:52:36 +00:00
const hideNewsTips = useLocalStorage(STORAGE_KEY_HIDE_EXPLORE_NEWS_TIPS, false)
2022-12-13 18:44:40 +00:00
useHydratedHead({
title: () => `${t('tab.news')} | ${t('nav.explore')}`,
2022-12-13 18:44:40 +00:00
})
const lastAccessedExploreRoute = useLocalStorage(STORAGE_KEY_LAST_ACCESSED_EXPLORE_ROUTE, '')
lastAccessedExploreRoute.value = route.path.replace(/(.*\/explore\/?)/, '')
onActivated(() => {
lastAccessedExploreRoute.value = route.path.replace(/(.*\/explore\/?)/, '')
})
2022-12-11 10:52:36 +00:00
</script>
<template>
<CommonAlert v-if="isHydrated && !hideNewsTips" @close="hideNewsTips = true">
2022-12-11 10:52:36 +00:00
<p>{{ $t('tooltip.explore_links_intro') }}</p>
</CommonAlert>
<CommonPaginator v-bind="{ paginator }">
<template #default="{ item }">
<StatusPreviewCard :card="item" border="!b base" rounded="!none" p="!4" small-picture-only root />
</template>
<template #loading>
<StatusPreviewCardSkeleton square root border="b base" />
<StatusPreviewCardSkeleton square root border="b base" op50 />
<StatusPreviewCardSkeleton square root border="b base" op25 />
</template>
</CommonPaginator>
</template>