feat(status): show visibility icon when non-public

closes #920
This commit is contained in:
三咲智子 2023-01-10 15:14:22 +08:00
parent c75a9092c7
commit 8fb9739f69
No known key found for this signature in database
GPG key ID: 69992F2250DFD93E
3 changed files with 28 additions and 14 deletions

View file

@ -164,15 +164,18 @@ const showReplyTo = $computed(() => !replyToMain && !directReply)
<div flex-auto />
<div v-show="!userSettings.zenMode" text-sm text-secondary flex="~ row nowrap" hover:underline>
<AccountBotIndicator v-if="status.account.bot" me-2 />
<div flex>
<CommonTooltip :content="createdAt">
<NuxtLink :title="status.createdAt" :href="statusRoute.href" @click.prevent="go($event)">
<time text-sm ws-nowrap hover:underline :datetime="status.createdAt">
{{ timeago }}
</time>
</NuxtLink>
</CommonTooltip>
<StatusEditIndicator :status="status" inline />
<div flex="~ gap1" items-center>
<StatusVisibilityIndicator v-if="status.visibility !== 'public'" :status="status" />
<div flex>
<CommonTooltip :content="createdAt">
<NuxtLink :title="status.createdAt" :href="statusRoute.href" @click.prevent="go($event)">
<time text-sm ws-nowrap hover:underline :datetime="status.createdAt">
{{ timeago }}
</time>
</NuxtLink>
</CommonTooltip>
<StatusEditIndicator :status="status" inline />
</div>
</div>
</div>
<StatusActionsMore v-if="actions !== false" :status="status" me--2 />

View file

@ -17,8 +17,6 @@ const status = $computed(() => {
const createdAt = useFormattedDateTime(status.createdAt)
const visibility = $computed(() => statusVisibilities.find(v => v.value === status.visibility)!)
const { t } = useI18n()
useHeadFixed({
@ -48,9 +46,7 @@ const isDM = $computed(() => status.visibility === 'direct')
</StatusEditIndicator>
</div>
<div>&middot;</div>
<CommonTooltip :content="$t(`visibility.${visibility.value}`)" placement="bottom">
<div :class="visibility.icon" />
</CommonTooltip>
<StatusVisibilityIndicator :status="status" />
<div v-if="status.application?.name">
&middot;
</div>

View file

@ -0,0 +1,15 @@
<script setup lang="ts">
import type { mastodon } from 'masto'
const { status } = defineProps<{
status: mastodon.v1.Status
}>()
const visibility = $computed(() => statusVisibilities.find(v => v.value === status.visibility)!)
</script>
<template>
<CommonTooltip :content="$t(`visibility.${visibility.value}`)" placement="bottom">
<div :class="visibility.icon" />
</CommonTooltip>
</template>