Add homeAlgoPref setting to final step for experiment

This commit is contained in:
Eric Bailey
2024-04-16 17:30:15 -05:00
parent 90f7c44d49
commit e10a78604e
3 changed files with 27 additions and 5 deletions
+3
View File
@@ -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'
@@ -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,
},
]
+21 -3
View File
@@ -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')