diff --git a/components/status/StatusCard.vue b/components/status/StatusCard.vue index 33a4d177..b6cdd661 100644 --- a/components/status/StatusCard.vue +++ b/components/status/StatusCard.vue @@ -3,6 +3,7 @@ import type { mastodon } from 'masto' const { actions = true, older, newer, hasOlder, hasNewer, main, ...props } = defineProps<{ status: mastodon.v1.Status + followedTag?: string | null actions?: boolean context?: mastodon.v2.FilterContext hover?: boolean @@ -73,6 +74,20 @@ const forceShow = ref(false)
+ +
+
+
+ + {{ followedTag }} +
+
+
client.user.subscribe()) function reorderAndFilter(items: mastodon.v1.Status[]) { return reorderedTimeline(items, 'home') } + +const followedTags = (await useMasto().client.value.v1.followedTags.list({ limit: 0 })) diff --git a/components/timeline/TimelinePaginator.vue b/components/timeline/TimelinePaginator.vue index 5c1d7b97..ab806e11 100644 --- a/components/timeline/TimelinePaginator.vue +++ b/components/timeline/TimelinePaginator.vue @@ -4,11 +4,12 @@ import type { mastodon } from 'masto' import { DynamicScrollerItem } from 'vue-virtual-scroller' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' -const { account, buffer = 10, endMessage = true } = defineProps<{ +const { account, buffer = 10, endMessage = true, followedTags = [] } = defineProps<{ paginator: mastodon.Paginator stream?: mastodon.streaming.Subscription context?: mastodon.v2.FilterContext account?: mastodon.v1.Account + followedTags?: mastodon.v1.Tag[] preprocess?: (items: mastodon.v1.Status[]) => mastodon.v1.Status[] buffer?: number endMessage?: boolean | string @@ -20,6 +21,12 @@ const virtualScroller = usePreferences('experimentalVirtualScroller') const showOriginSite = computed(() => account && account.id !== currentUser.value?.account.id && getServerName(account) !== currentServer.value, ) + +function getFollowedTag(status: mastodon.v1.Status): string | null { + const followedTagNames = followedTags.map(tag => tag.name) + const followedStatusTags = status.tags.filter(tag => followedTagNames.includes(tag.name)) + return followedStatusTags.length ? followedStatusTags[0]?.name : null +}