From 00edb30db54adb751ae83b10456789b2153b091f Mon Sep 17 00:00:00 2001 From: Kainoa Kanter <kainoa@t1c.dev> Date: Thu, 6 Apr 2023 20:02:26 -0700 Subject: [PATCH] proper hot tl --- packages/client/src/components/MkTimeline.vue | 13 ++++++++++--- packages/client/src/pages/explore.vue | 2 +- packages/client/src/pages/timeline.discover.vue | 17 +++++++---------- packages/client/src/pages/timeline.foryou.vue | 1 - 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/packages/client/src/components/MkTimeline.vue b/packages/client/src/components/MkTimeline.vue index 47d2edd8cc..62071a4770 100644 --- a/packages/client/src/components/MkTimeline.vue +++ b/packages/client/src/components/MkTimeline.vue @@ -1,14 +1,14 @@ <template> -<XNotes ref="tlComponent" :no-gap="!$store.state.showGapBetweenNotesInTimeline" :pagination="pagination" @queue="emit('queue', $event)"/> +<XNotes ref="tlComponent" :no-gap="!defaultStore.state.showGapBetweenNotesInTimeline" :pagination="pagination" @queue="emit('queue', $event)"/> </template> <script lang="ts" setup> -import { ref, computed, provide, onUnmounted } from 'vue'; +import { computed, provide, onUnmounted } from 'vue'; import XNotes from '@/components/MkNotes.vue'; -import * as os from '@/os'; import { stream } from '@/stream'; import * as sound from '@/scripts/sound'; import { $i } from '@/account'; +import { defaultStore } from '@/store'; const props = defineProps<{ src: string; @@ -89,6 +89,13 @@ if (props.src === 'antenna') { endpoint = 'notes/global-timeline'; connection = stream.useChannel('globalTimeline'); connection.on('note', prepend); +} else if (props.src === 'featured') { + endpoint = 'notes/featured'; + query = { + origin: 'combined', + } + connection = stream.useChannel('main'); + connection.on('note', prepend); } else if (props.src === 'mentions') { endpoint = 'notes/mentions'; connection = stream.useChannel('main'); diff --git a/packages/client/src/pages/explore.vue b/packages/client/src/pages/explore.vue index 1cf4d10cd9..512f0beab3 100644 --- a/packages/client/src/pages/explore.vue +++ b/packages/client/src/pages/explore.vue @@ -41,7 +41,7 @@ const props = defineProps<{ tag?: string; }>(); -const tabs = ['featured', 'users']; +const tabs = ['users', 'featured']; let tab = $ref(tabs[0]); watch($$(tab), () => (syncSlide(tabs.indexOf(tab)))); diff --git a/packages/client/src/pages/timeline.discover.vue b/packages/client/src/pages/timeline.discover.vue index 0462bfc10e..b5fbd6fd33 100644 --- a/packages/client/src/pages/timeline.discover.vue +++ b/packages/client/src/pages/timeline.discover.vue @@ -5,7 +5,13 @@ <option v-if="isRecommendedTimelineAvailable" value="recommended">{{ i18n.ts._timelines.recommended }}</option> <option v-if="isGlobalTimelineAvailable" value="global">{{ i18n.ts._timelines.global }}</option> </MkTab> - <XNotes v-if="tab === 'hot'" :pagination="hotPagination"/> + <XTimeline + v-if="tab === 'hot'" + ref="tl" + class="tl" + src="hot" + :sound="true" + /> <XTimeline v-else-if="tab === 'recommended'" ref="tl" @@ -24,7 +30,6 @@ </template> <script lang="ts" setup> -import XNotes from '@/components/MkNotes.vue'; import XTimeline from '@/components/MkTimeline.vue'; import MkTab from '@/components/MkTab.vue'; import { defaultStore } from '@/store'; @@ -32,14 +37,6 @@ import { i18n } from '@/i18n'; import { instance } from '@/instance'; import { $i } from '@/account'; -const hotPagination = { - endpoint: 'notes/featured' as const, - limit: 20, - params: { - origin: 'combined', - } -} - const tab = $computed({ get: () => defaultStore.reactiveState.discoverTl.value.src, set: (x) => saveSrc(x), diff --git a/packages/client/src/pages/timeline.foryou.vue b/packages/client/src/pages/timeline.foryou.vue index bcfe7b6dfd..14812103ff 100644 --- a/packages/client/src/pages/timeline.foryou.vue +++ b/packages/client/src/pages/timeline.foryou.vue @@ -30,7 +30,6 @@ </template> <script lang="ts" setup> -// import XNotes from '@/components/MkNotes.vue'; import XTimeline from '@/components/MkTimeline.vue'; import MkTab from '@/components/MkTab.vue'; import { defaultStore } from '@/store';