fix: Streams slowing down page loads or not loading at all (#620)

This commit is contained in:
Jacob Hands 2022-12-28 15:43:46 -06:00 committed by GitHub
parent e9b1f17235
commit b6f0bd356a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 62 additions and 47 deletions

View file

@ -1,8 +1,8 @@
<script setup lang="ts">
import type { Status } from 'masto'
const paginator = useMasto().timelines.iterateHome()
const stream = await useMasto().stream.streamUser()
onBeforeUnmount(() => stream.disconnect())
const stream = useMasto().stream.streamUser()
onBeforeUnmount(() => stream?.then(s => s.disconnect()))
const maxDistance = 10
function preprocess(items: Status[]) {

View file

@ -5,7 +5,7 @@ const paginator = useMasto().notifications.iterate({ limit: 30, types: ['mention
const { clearNotifications } = useNotifications()
onActivated(clearNotifications)
const stream = await useMasto().stream.streamUser()
const stream = useMasto().stream.streamUser()
</script>
<template>

View file

@ -5,7 +5,7 @@ const paginator = useMasto().notifications.iterate({ limit: 30 })
const { clearNotifications } = useNotifications()
onActivated(clearNotifications)
const stream = await useMasto().stream.streamUser()
const stream = useMasto().stream.streamUser()
</script>
<template>

View file

@ -6,7 +6,7 @@ import type { FilterContext, Paginator, Status, WsEvents } from 'masto'
const { paginator, stream } = defineProps<{
paginator: Paginator<any, Status[]>
stream?: WsEvents
stream?: Promise<WsEvents>
context?: FilterContext
preprocess?: (items: any[]) => any[]
}>()

View file

@ -0,0 +1,11 @@
<script setup lang="ts">
const paginator = useMasto().timelines.iteratePublic()
const stream = useMasto().stream.streamPublicTimeline()
onBeforeUnmount(() => stream.then(s => s.disconnect()))
</script>
<template>
<div>
<TimelinePaginator v-bind="{ paginator, stream }" context="public" />
</div>
</template>

View file

@ -0,0 +1,11 @@
<script setup lang="ts">
const paginator = useMasto().timelines.iteratePublic({ local: true })
const stream = useMasto().stream.streamCommunityTimeline()
onBeforeUnmount(() => stream.then(s => s.disconnect()))
</script>
<template>
<div>
<TimelinePaginator v-bind="{ paginator, stream }" context="public" />
</div>
</template>