2022-11-13 06:34:43 +01:00
|
|
|
<script setup lang="ts">
|
2023-01-08 07:21:09 +01:00
|
|
|
import type { mastodon } from 'masto'
|
2022-11-13 06:34:43 +01:00
|
|
|
|
2022-12-01 07:46:26 +01:00
|
|
|
const props = defineProps<{
|
2023-01-08 07:21:09 +01:00
|
|
|
status: mastodon.v1.Status
|
2022-11-28 11:23:33 +01:00
|
|
|
details?: boolean
|
2022-11-29 09:15:05 +01:00
|
|
|
command?: boolean
|
2022-11-13 06:34:43 +01:00
|
|
|
}>()
|
2022-11-15 13:08:49 +01:00
|
|
|
|
2022-12-14 18:20:03 +01:00
|
|
|
const focusEditor = inject<typeof noop>('focus-editor', noop)
|
2022-12-14 17:45:46 +01:00
|
|
|
|
2024-02-21 16:20:08 +01:00
|
|
|
const { details, command } = props // TODO
|
2022-11-24 09:34:05 +01:00
|
|
|
|
2023-01-12 18:52:52 +01:00
|
|
|
const userSettings = useUserSettings()
|
2023-05-06 17:52:33 +02:00
|
|
|
const useStarFavoriteIcon = usePreferences('useStarFavoriteIcon')
|
2023-01-12 18:52:52 +01:00
|
|
|
|
2022-12-01 07:46:26 +01:00
|
|
|
const {
|
|
|
|
status,
|
|
|
|
isLoading,
|
2023-01-08 14:24:59 +01:00
|
|
|
canReblog,
|
2022-12-01 07:46:26 +01:00
|
|
|
toggleBookmark,
|
|
|
|
toggleFavourite,
|
|
|
|
toggleReblog,
|
2024-02-21 16:20:08 +01:00
|
|
|
} = useStatusActions(props)
|
2022-11-24 12:35:26 +01:00
|
|
|
|
2023-03-30 21:01:24 +02:00
|
|
|
function reply() {
|
2022-12-02 03:18:57 +01:00
|
|
|
if (!checkLogin())
|
|
|
|
return
|
2023-01-07 08:55:07 +01:00
|
|
|
if (details)
|
2022-12-14 18:20:03 +01:00
|
|
|
focusEditor()
|
2023-01-07 08:55:07 +01:00
|
|
|
else
|
2024-02-21 16:20:08 +01:00
|
|
|
navigateToStatus({ status: status.value, focusReply: true })
|
2022-11-24 12:35:26 +01:00
|
|
|
}
|
2022-11-13 06:34:43 +01:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
2023-01-17 13:55:36 +01:00
|
|
|
<div flex justify-between items-center class="status-actions">
|
2022-11-27 16:11:34 +01:00
|
|
|
<div flex-1>
|
2022-11-26 00:46:25 +01:00
|
|
|
<StatusActionButton
|
2022-11-30 00:25:29 +01:00
|
|
|
:content="$t('action.reply')"
|
2023-01-26 13:41:43 +01:00
|
|
|
:text="!getPreferences(userSettings, 'hideReplyCount') && status.repliesCount || ''"
|
2023-03-19 13:24:27 +01:00
|
|
|
color="text-blue" hover="text-blue" elk-group-hover="bg-blue/10"
|
2023-01-08 10:03:23 +01:00
|
|
|
icon="i-ri:chat-1-line"
|
2022-11-29 09:15:05 +01:00
|
|
|
:command="command"
|
2022-11-28 11:23:33 +01:00
|
|
|
@click="reply"
|
2023-01-01 22:45:46 +01:00
|
|
|
>
|
2023-01-26 13:41:43 +01:00
|
|
|
<template v-if="status.repliesCount && !getPreferences(userSettings, 'hideReplyCount')" #text>
|
2023-01-09 12:24:26 +01:00
|
|
|
<CommonLocalizedNumber
|
|
|
|
keypath="action.reply_count"
|
|
|
|
:count="status.repliesCount"
|
|
|
|
/>
|
2023-01-01 22:45:46 +01:00
|
|
|
</template>
|
|
|
|
</StatusActionButton>
|
2022-11-27 16:11:34 +01:00
|
|
|
</div>
|
2022-11-24 09:34:05 +01:00
|
|
|
|
2022-11-27 16:11:34 +01:00
|
|
|
<div flex-1>
|
2022-11-24 09:34:05 +01:00
|
|
|
<StatusActionButton
|
2022-11-30 00:25:29 +01:00
|
|
|
:content="$t('action.boost')"
|
2023-01-15 15:19:22 +01:00
|
|
|
:text="!getPreferences(userSettings, 'hideBoostCount') && status.reblogsCount ? status.reblogsCount : ''"
|
2023-03-19 13:24:27 +01:00
|
|
|
color="text-green" hover="text-green" elk-group-hover="bg-green/10"
|
2022-11-24 09:34:05 +01:00
|
|
|
icon="i-ri:repeat-line"
|
|
|
|
active-icon="i-ri:repeat-fill"
|
2023-08-11 13:56:47 +02:00
|
|
|
inactive-icon="i-tabler:repeat-off"
|
2023-01-05 17:48:20 +01:00
|
|
|
:active="!!status.reblogged"
|
2023-01-08 14:24:59 +01:00
|
|
|
:disabled="isLoading.reblogged || !canReblog"
|
2022-11-29 09:15:05 +01:00
|
|
|
:command="command"
|
2022-11-24 09:34:05 +01:00
|
|
|
@click="toggleReblog()"
|
2023-01-01 22:45:46 +01:00
|
|
|
>
|
2023-01-15 15:19:22 +01:00
|
|
|
<template v-if="status.reblogsCount && !getPreferences(userSettings, 'hideBoostCount')" #text>
|
2023-01-09 12:24:26 +01:00
|
|
|
<CommonLocalizedNumber
|
|
|
|
keypath="action.boost_count"
|
|
|
|
:count="status.reblogsCount"
|
|
|
|
/>
|
2023-01-01 22:45:46 +01:00
|
|
|
</template>
|
|
|
|
</StatusActionButton>
|
2022-11-27 16:11:34 +01:00
|
|
|
</div>
|
2022-11-24 09:34:05 +01:00
|
|
|
|
2022-11-27 16:11:34 +01:00
|
|
|
<div flex-1>
|
2022-11-24 09:34:05 +01:00
|
|
|
<StatusActionButton
|
2022-11-30 00:25:29 +01:00
|
|
|
:content="$t('action.favourite')"
|
2023-01-15 15:19:22 +01:00
|
|
|
:text="!getPreferences(userSettings, 'hideFavoriteCount') && status.favouritesCount ? status.favouritesCount : ''"
|
2023-05-06 17:52:33 +02:00
|
|
|
:color="useStarFavoriteIcon ? 'text-yellow' : 'text-rose'"
|
|
|
|
:hover="useStarFavoriteIcon ? 'text-yellow' : 'text-rose'"
|
|
|
|
:elk-group-hover="useStarFavoriteIcon ? 'bg-yellow/10' : 'bg-rose/10'"
|
|
|
|
:icon="useStarFavoriteIcon ? 'i-ri:star-line' : 'i-ri:heart-3-line'"
|
|
|
|
:active-icon="useStarFavoriteIcon ? 'i-ri:star-fill' : 'i-ri:heart-3-fill'"
|
2023-01-05 17:48:20 +01:00
|
|
|
:active="!!status.favourited"
|
2022-11-24 09:34:05 +01:00
|
|
|
:disabled="isLoading.favourited"
|
2022-11-29 09:15:05 +01:00
|
|
|
:command="command"
|
2022-11-24 09:34:05 +01:00
|
|
|
@click="toggleFavourite()"
|
2023-01-01 22:45:46 +01:00
|
|
|
>
|
2023-01-15 15:19:22 +01:00
|
|
|
<template v-if="status.favouritesCount && !getPreferences(userSettings, 'hideFavoriteCount')" #text>
|
2023-01-09 12:24:26 +01:00
|
|
|
<CommonLocalizedNumber
|
|
|
|
keypath="action.favourite_count"
|
|
|
|
:count="status.favouritesCount"
|
|
|
|
/>
|
2023-01-01 22:45:46 +01:00
|
|
|
</template>
|
|
|
|
</StatusActionButton>
|
2022-11-27 16:11:34 +01:00
|
|
|
</div>
|
2022-11-24 09:34:05 +01:00
|
|
|
|
2022-11-27 16:11:34 +01:00
|
|
|
<div flex-none>
|
2022-11-24 06:04:20 +01:00
|
|
|
<StatusActionButton
|
2022-11-30 00:25:29 +01:00
|
|
|
:content="$t('action.bookmark')"
|
2023-05-06 17:52:33 +02:00
|
|
|
:color="useStarFavoriteIcon ? 'text-rose' : 'text-yellow'"
|
|
|
|
:hover="useStarFavoriteIcon ? 'text-rose' : 'text-yellow'"
|
|
|
|
:elk-group-hover="useStarFavoriteIcon ? 'bg-rose/10' : 'bg-yellow/10' "
|
2022-11-24 09:34:05 +01:00
|
|
|
icon="i-ri:bookmark-line"
|
|
|
|
active-icon="i-ri:bookmark-fill"
|
2023-01-05 17:48:20 +01:00
|
|
|
:active="!!status.bookmarked"
|
2022-11-24 09:34:05 +01:00
|
|
|
:disabled="isLoading.bookmarked"
|
2022-11-29 09:15:05 +01:00
|
|
|
:command="command"
|
2022-11-24 09:34:05 +01:00
|
|
|
@click="toggleBookmark()"
|
2022-11-24 06:04:20 +01:00
|
|
|
/>
|
2022-11-27 16:11:34 +01:00
|
|
|
</div>
|
2022-11-13 06:34:43 +01:00
|
|
|
</div>
|
|
|
|
</template>
|