From e10a78604e43701cf1822ce19f948783886efd41 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 16 Apr 2024 17:30:15 -0500 Subject: [PATCH] Add homeAlgoPref setting to final step for experiment --- src/lib/constants.ts | 3 +++ .../Onboarding/StepAlgoFeeds/index.tsx | 5 ++-- src/screens/Onboarding/StepFinished.tsx | 24 ++++++++++++++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 3f8cf94722..f3c9d938a6 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -97,3 +97,6 @@ export const GIF_SEARCH = (params: string) => `${GIF_SERVICE}/tenor/v2/search?${params}` export const GIF_FEATURED = (params: string) => `${GIF_SERVICE}/tenor/v2/featured?${params}` + +export const DISCOVER_FEED_URI = + 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot' diff --git a/src/screens/Onboarding/StepAlgoFeeds/index.tsx b/src/screens/Onboarding/StepAlgoFeeds/index.tsx index cc24958e39..42c011194d 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/index.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/index.tsx @@ -4,6 +4,7 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' +import {DISCOVER_FEED_URI} from '#/lib/constants' import {logEvent} from '#/lib/statsig/statsig' import { DescriptionText, @@ -12,7 +13,7 @@ import { } from '#/screens/Onboarding/Layout' import {Context} from '#/screens/Onboarding/state' import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' -import {atoms as a, tokens, useTheme, useBreakpoints} from '#/alf' +import {atoms as a, tokens, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Toggle from '#/components/forms/Toggle' import {IconCircle} from '#/components/IconCircle' @@ -31,7 +32,7 @@ export type FeedConfig = { export const PRIMARY_FEEDS: FeedConfig[] = [ { default: IS_PROD, // these feeds are only available in prod - uri: 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot', + uri: DISCOVER_FEED_URI, gradient: tokens.gradients.midnight, }, ] diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index d8b343e081..81725c09d9 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -4,24 +4,26 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' +import {DISCOVER_FEED_URI} from '#/lib/constants' import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants' +import {useGate} from '#/lib/statsig/statsig' import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {useSetSaveFeedsMutation} from '#/state/queries/preferences' import {getAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' +import {uploadBlob} from 'lib/api' import { DescriptionText, OnboardingControls, TitleText, } from '#/screens/Onboarding/Layout' -import {uploadBlob} from 'lib/api' import {Context} from '#/screens/Onboarding/state' import { bulkWriteFollows, sortPrimaryAlgorithmFeeds, } from '#/screens/Onboarding/util' -import {atoms as a, useTheme, useBreakpoints} from '#/alf' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {IconCircle} from '#/components/IconCircle' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' @@ -40,6 +42,7 @@ export function StepFinished() { const onboardDispatch = useOnboardingDispatch() const [saving, setSaving] = React.useState(false) const {mutateAsync: saveFeeds} = useSetSaveFeedsMutation() + const isV2Enabled = useGate('reduced_onboarding_and_home_algo') const finishOnboarding = React.useCallback(async () => { setSaving(true) @@ -90,6 +93,13 @@ export function StepFinished() { return existing }) + + if (isV2Enabled) { + await getAgent().setHomeAlgoPref({ + enabled: true, + uri: DISCOVER_FEED_URI, + }) + } } catch (e: any) { logger.info(`onboarding: bulk save failed`) logger.error(e) @@ -102,7 +112,15 @@ export function StepFinished() { track('OnboardingV2:StepFinished:End') track('OnboardingV2:Complete') logEvent('onboarding:finished:nextPressed', {}) - }, [state, dispatch, onboardDispatch, setSaving, saveFeeds, track]) + }, [ + state, + dispatch, + onboardDispatch, + setSaving, + saveFeeds, + track, + isV2Enabled, + ]) React.useEffect(() => { track('OnboardingV2:StepFinished:Start')