1
0
mirror of https://github.com/elk-zone/elk synced 2024-12-01 00:08:11 +09:00
elk/components/conversation/ConversationPaginator.vue

26 lines
908 B
Vue
Raw Normal View History

2022-11-18 18:37:22 +09:00
<script setup lang="ts">
2023-01-08 15:21:09 +09:00
import type { Paginator, mastodon } from 'masto'
2022-11-18 18:37:22 +09:00
const { paginator } = defineProps<{
2023-01-08 15:21:09 +09:00
paginator: Paginator<mastodon.v1.Conversation[], mastodon.DefaultPaginationParams>
2022-11-18 18:37:22 +09:00
}>()
function preprocess(items: mastodon.v1.Conversation[]): mastodon.v1.Conversation[] {
2023-02-06 00:05:42 +09:00
const isAuthored = (conversation: mastodon.v1.Conversation) => conversation.lastStatus ? conversation.lastStatus.account.id === currentUser.value?.account.id : false
return items.filter(item => isAuthored(item) || !item.lastStatus?.filtered?.find(
filter => filter.filter.filterAction === 'hide' && filter.filter.context.includes('thread'),
))
}
2022-11-18 18:37:22 +09:00
</script>
<template>
<CommonPaginator :paginator="paginator" :preprocess="preprocess">
2022-11-18 18:37:22 +09:00
<template #default="{ item }">
<ConversationCard
:conversation="item"
2022-11-23 11:16:31 +09:00
border="b base" py-1
2022-11-18 18:37:22 +09:00
/>
</template>
</CommonPaginator>
</template>