diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue index b783f7ee0b..b8c3ebadd9 100644 --- a/packages/frontend/src/pages/timeline.vue +++ b/packages/frontend/src/pages/timeline.vue @@ -107,7 +107,7 @@ const withSensitive = computed({ async function chooseList(ev: MouseEvent): Promise { const lists = await userListsCache.fetch(); - const items: MenuItem[] = [ + const items: (MenuItem | undefined)[] = [ ...lists.map(list => ({ type: 'link' as const, text: list.name, @@ -121,12 +121,12 @@ async function chooseList(ev: MouseEvent): Promise { to: '/my/lists', }, ]; - os.popupMenu(items, ev.currentTarget ?? ev.target); + os.popupMenu(items.filter(i => i != null), ev.currentTarget ?? ev.target); } async function chooseAntenna(ev: MouseEvent): Promise { const antennas = await antennasCache.fetch(); - const items: MenuItem[] = [ + const items: (MenuItem | undefined)[] = [ ...antennas.map(antenna => ({ type: 'link' as const, text: antenna.name, @@ -141,12 +141,12 @@ async function chooseAntenna(ev: MouseEvent): Promise { to: '/my/antennas', }, ]; - os.popupMenu(items, ev.currentTarget ?? ev.target); + os.popupMenu(items.filter(i => i != null), ev.currentTarget ?? ev.target); } async function chooseChannel(ev: MouseEvent): Promise { const channels = await favoritedChannelsCache.fetch(); - const items: MenuItem[] = [ + const items: (MenuItem | undefined)[] = [ ...channels.map(channel => { const lastReadedAt = miLocalStorage.getItemAsJson(`channelLastReadedAt:${channel.id}`) ?? null; const hasUnreadNote = (lastReadedAt && channel.lastNotedAt) ? Date.parse(channel.lastNotedAt) > lastReadedAt : !!(!lastReadedAt && channel.lastNotedAt); @@ -166,7 +166,7 @@ async function chooseChannel(ev: MouseEvent): Promise { to: '/channels', }, ]; - os.popupMenu(items, ev.currentTarget ?? ev.target); + os.popupMenu(items.filter(i => i != null), ev.currentTarget ?? ev.target); } function saveSrc(newSrc: TimelinePageSrc): void { @@ -190,19 +190,6 @@ function saveTlFilter(key: keyof typeof store.s.tl.filter, newValue: boolean) { } } -async function timetravel(): Promise { - const { canceled, result: date } = await os.inputDate({ - title: i18n.ts.date, - }); - if (canceled) return; - - tlComponent.value.timetravel(date); -} - -function focus(): void { - tlComponent.value.focus(); -} - function switchTlIfNeeded() { if (isBasicTimeline(src.value) && !isAvailableBasicTimeline(src.value)) { src.value = availableBasicTimelines()[0];