diff --git a/packages/internal/store/src/subscription/getter.ts b/packages/internal/store/src/subscription/getter.ts index b6950143a..1e7b54bdf 100644 --- a/packages/internal/store/src/subscription/getter.ts +++ b/packages/internal/store/src/subscription/getter.ts @@ -23,18 +23,25 @@ export const getSubscriptionByEntryId = (entryId: string | undefined) => { return possibleSource.map((id) => getSubscriptionByFeedId(id)).find((s) => !!s) } -export const getSubscribedFeedIdAndInboxHandlesByView = ( - view: FeedViewType | undefined, - excludePrivate: boolean, -): string[] => { +export const getSubscribedFeedIdAndInboxHandlesByView = ({ + view, + excludePrivate, + excludeHidden, +}: { + view: FeedViewType | undefined + excludePrivate: boolean + excludeHidden: boolean +}): string[] => { if (typeof view !== "number") return [] const state = useSubscriptionStore.getState() return Array.from(state.feedIdByView[view]) .filter((i) => !excludePrivate || !state.data[i]?.isPrivate) + .filter((i) => !excludeHidden || !state.data[i]?.hideFromTimeline) .concat(view === FeedViewType.Articles ? getInboxList().map((i) => i.id) : []) .concat( Array.from(state.listIdByView[view]) .filter((i) => !excludePrivate || !state.data[i]?.isPrivate) + .filter((i) => !excludeHidden || !state.data[i]?.hideFromTimeline) .flatMap((id) => getListFeedIds(id) ?? []), ) } diff --git a/packages/internal/store/src/unread/store.ts b/packages/internal/store/src/unread/store.ts index 46300587f..18f0b2334 100644 --- a/packages/internal/store/src/unread/store.ts +++ b/packages/internal/store/src/unread/store.ts @@ -150,7 +150,11 @@ class UnreadSyncService { } else if (filter?.inboxId) { await this.updateUnreadStatus({ ids: [filter.inboxId], time, request }) } else { - const feedIdAndInboxHandles = getSubscribedFeedIdAndInboxHandlesByView(view, excludePrivate) + const feedIdAndInboxHandles = getSubscribedFeedIdAndInboxHandlesByView({ + view, + excludePrivate, + excludeHidden: true, + }) await this.updateUnreadStatus({ ids: feedIdAndInboxHandles, time, request }) } }