From 48c23be5bf7941734634ba3a85ee2b0bd4a38be9 Mon Sep 17 00:00:00 2001 From: capJavert Date: Wed, 8 Jul 2026 10:16:18 +0000 Subject: [PATCH] fix: don't fetch dailyHeadlines until onboarding is complete The dailyHeadlines query seeds channel digest follows from the user's onboarding tags on the backend. When it fires mid-onboarding it can race the tag writes, resolve zero tags, and (before the api fix) mark the user as backfilled without any follows. Gate the fetch behind isOnboardingComplete so it only runs once onboarding is done. --- packages/shared/src/features/daily/CoverTopics.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/shared/src/features/daily/CoverTopics.tsx b/packages/shared/src/features/daily/CoverTopics.tsx index a2f7aaa379..58ada7f417 100644 --- a/packages/shared/src/features/daily/CoverTopics.tsx +++ b/packages/shared/src/features/daily/CoverTopics.tsx @@ -37,6 +37,7 @@ import { channelConfigurationsQueryOptions, dailyHeadlinesQueryOptions, } from '../../graphql/highlights'; +import { useOnboardingActions } from '../../hooks/auth/useOnboardingActions'; import { HeadlinesSettingsModal } from './HeadlinesSettingsModal'; import { DailyPostVotes } from './DailyPostVotes'; import type { UpdateDailyPost } from './optimisticMutations'; @@ -311,7 +312,11 @@ const HeadlineRowSkeleton = (): ReactElement => ( export const CoverTopics = (): ReactElement => { const { logEvent } = useLogContext(); const [isSettingsOpen, setIsSettingsOpen] = useState(false); - const { data, isPending } = useQuery(dailyHeadlinesQueryOptions()); + const { isOnboardingComplete } = useOnboardingActions(); + const { data, isPending } = useQuery({ + ...dailyHeadlinesQueryOptions(), + enabled: isOnboardingComplete, + }); const { data: channelData } = useQuery(channelConfigurationsQueryOptions()); const [getHeadlines, setHeadlines] = useUpdateQuery( dailyHeadlinesQueryOptions(),