feat: stream tags, home, and public timelines (#190)

This commit is contained in:
Daniel Roe 2022-11-28 11:18:45 +00:00 committed by GitHub
parent d94bed686b
commit 5560fe66cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 55 additions and 16 deletions

View file

@ -2,12 +2,13 @@
// @ts-expect-error missing types
import { DynamicScroller } from 'vue-virtual-scroller'
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
import type { Paginator } from 'masto'
import type { Paginator, WsEvents } from 'masto'
const { paginator, keyProp = 'id', virtualScroller = false } = defineProps<{
const { paginator, stream, keyProp = 'id', virtualScroller = false } = defineProps<{
paginator: Paginator<any, any[]>
keyProp?: string
virtualScroller: boolean
stream?: WsEvents
}>()
defineSlots<{
@ -15,14 +16,19 @@ defineSlots<{
item: any
active?: boolean
}
updater: {
number: number
update: () => void
}
loading: {}
}>()
const { items, state, endAnchor, error } = usePaginator(paginator)
const { items, prevItems, update, state, endAnchor, error } = usePaginator(paginator, stream)
</script>
<template>
<div>
<slot v-if="prevItems.length" name="updater" v-bind="{ number: prevItems.length, update }" />
<template v-if="virtualScroller">
<DynamicScroller
v-slot="{ item, active }"