elk/components/account/AccountPostsFollowers.vue

70 lines
3.2 KiB
Vue
Raw Normal View History

2022-11-28 12:51:15 +03:00
<script setup lang="ts">
2023-01-08 09:21:09 +03:00
import type { mastodon } from 'masto'
2022-11-28 12:51:15 +03:00
2022-12-02 05:18:36 +03:00
const props = defineProps<{
2023-01-08 09:21:09 +03:00
account: mastodon.v1.Account
2022-11-28 12:51:15 +03:00
}>()
2022-12-02 05:18:36 +03:00
const { formatHumanReadableNumber, formatNumber, forSR } = useHumanReadableNumber()
const statusesCount = $computed(() => formatHumanReadableNumber(props.account.statusesCount))
const statusesCountSR = $computed(() => forSR(props.account.statusesCount))
2022-12-02 05:18:36 +03:00
const followingCount = $computed(() => formatHumanReadableNumber(props.account.followingCount))
const followingCountSR = $computed(() => forSR(props.account.followingCount))
const followersCount = $computed(() => formatHumanReadableNumber(props.account.followersCount))
const followersCountSR = $computed(() => forSR(props.account.followersCount))
2022-11-28 12:51:15 +03:00
</script>
<template>
<div flex gap-5>
<NuxtLink
:to="getAccountRoute(account)"
replace
text-secondary
exact-active-class="text-primary"
:class="statusesCountSR ? 'flex gap-x-1' : null"
>
2022-11-28 13:14:58 +03:00
<template #default="{ isExactActive }">
2022-12-02 05:18:36 +03:00
<i18n-t keypath="account.posts_count" :plural="account.statusesCount">
<CommonTooltip v-if="statusesCountSR" :content="formatNumber(account.statusesCount)" placement="bottom">
<span aria-hidden="true" font-bold :class="isExactActive ? 'text-primary' : 'text-base'">{{ statusesCount }}</span>
<span sr-only font-bold>{{ formatNumber(account.statusesCount) }}</span>
</CommonTooltip>
<span v-else font-bold :class="isExactActive ? 'text-primary' : 'text-base'">{{ statusesCount }}</span>
2022-11-28 13:14:58 +03:00
</i18n-t>
</template>
2022-11-28 12:51:15 +03:00
</NuxtLink>
<NuxtLink
:to="getAccountFollowingRoute(account)"
replace
text-secondary exact-active-class="text-primary"
:class="followingCountSR ? 'flex gap-x-1' : null"
>
2022-11-28 13:14:58 +03:00
<template #default="{ isExactActive }">
<i18n-t keypath="account.following_count" :plural="account.followingCount">
<CommonTooltip v-if="followingCountSR" :content="formatNumber(account.followingCount)" placement="bottom">
2022-12-02 05:18:36 +03:00
<span aria-hidden="true" font-bold :class="isExactActive ? 'text-primary' : 'text-base'">{{ followingCount }}</span>
<span sr-only font-bold>{{ formatNumber(account.followingCount) }}</span>
</CommonTooltip>
2022-12-02 05:18:36 +03:00
<span v-else font-bold :class="isExactActive ? 'text-primary' : 'text-base'">{{ followingCount }}</span>
2022-11-28 13:14:58 +03:00
</i18n-t>
</template>
2022-11-28 12:51:15 +03:00
</NuxtLink>
<NuxtLink
:to="getAccountFollowersRoute(account)"
replace
text-secondary exact-active-class="text-primary"
:class="followersCountSR ? 'flex gap-x-1' : null"
>
2022-11-28 13:14:58 +03:00
<template #default="{ isExactActive }">
2022-12-02 05:18:36 +03:00
<i18n-t keypath="account.followers_count" :plural="account.followersCount">
<CommonTooltip v-if="followersCountSR" :content="formatNumber(account.followersCount)" placement="bottom">
2022-12-02 05:18:36 +03:00
<span aria-hidden="true" font-bold :class="isExactActive ? 'text-primary' : 'text-base'">{{ followersCount }}</span>
<span sr-only font-bold>{{ formatNumber(account.followersCount) }}</span>
</CommonTooltip>
2022-12-02 05:18:36 +03:00
<span v-else font-bold :class="isExactActive ? 'text-primary' : 'text-base'">{{ followersCount }}</span>
2022-11-28 13:14:58 +03:00
</i18n-t>
</template>
2022-11-28 12:51:15 +03:00
</NuxtLink>
</div>
</template>