yolk/app/components/timeline/TimelinePublicLocal.vue
Ayo c6aa287f26
Some checks are pending
ci / ci (push) Waiting to run
build & push docker container / docker (push) Waiting to run
ci / check-provenance (push) Waiting to run
feat: require session for streaming client
2025-11-23 12:09:43 +01:00

27 lines
872 B
Vue

<script setup lang="ts">
import type { mastodon } from 'masto'
const paginator = useMastoClient().v1.timelines.public.list({ limit: 30, local: true })
// streaming requires user session
let stream: Ref<mastodon.streaming.Subscription | undefined>
if (currentUser.value !== undefined)
stream = useStreaming(client => client.public.local.subscribe())
function reorderAndFilter(items: mastodon.v1.Status[]) {
return reorderedTimeline(items, 'public')
}
let followedTags: mastodon.v1.Tag[]
if (currentUser.value !== undefined) {
const { client } = useMasto()
const paginator = client.value.v1.followedTags.list()
followedTags = (await paginator.values().next()).value ?? []
}
</script>
<template>
<div>
<TimelinePaginator :followed-tags="followedTags" v-bind="{ paginator, stream }" :preprocess="reorderAndFilter" context="public" />
</div>
</template>