Add homeAlgoPref setting to final step for experiment
This commit is contained in:
@@ -97,3 +97,6 @@ export const GIF_SEARCH = (params: string) =>
|
|||||||
`${GIF_SERVICE}/tenor/v2/search?${params}`
|
`${GIF_SERVICE}/tenor/v2/search?${params}`
|
||||||
export const GIF_FEATURED = (params: string) =>
|
export const GIF_FEATURED = (params: string) =>
|
||||||
`${GIF_SERVICE}/tenor/v2/featured?${params}`
|
`${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 {useLingui} from '@lingui/react'
|
||||||
|
|
||||||
import {useAnalytics} from '#/lib/analytics/analytics'
|
import {useAnalytics} from '#/lib/analytics/analytics'
|
||||||
|
import {DISCOVER_FEED_URI} from '#/lib/constants'
|
||||||
import {logEvent} from '#/lib/statsig/statsig'
|
import {logEvent} from '#/lib/statsig/statsig'
|
||||||
import {
|
import {
|
||||||
DescriptionText,
|
DescriptionText,
|
||||||
@@ -12,7 +13,7 @@ import {
|
|||||||
} from '#/screens/Onboarding/Layout'
|
} from '#/screens/Onboarding/Layout'
|
||||||
import {Context} from '#/screens/Onboarding/state'
|
import {Context} from '#/screens/Onboarding/state'
|
||||||
import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard'
|
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 {Button, ButtonIcon, ButtonText} from '#/components/Button'
|
||||||
import * as Toggle from '#/components/forms/Toggle'
|
import * as Toggle from '#/components/forms/Toggle'
|
||||||
import {IconCircle} from '#/components/IconCircle'
|
import {IconCircle} from '#/components/IconCircle'
|
||||||
@@ -31,7 +32,7 @@ export type FeedConfig = {
|
|||||||
export const PRIMARY_FEEDS: FeedConfig[] = [
|
export const PRIMARY_FEEDS: FeedConfig[] = [
|
||||||
{
|
{
|
||||||
default: IS_PROD, // these feeds are only available in prod
|
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,
|
gradient: tokens.gradients.midnight,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -4,24 +4,26 @@ import {msg, Trans} from '@lingui/macro'
|
|||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
|
|
||||||
import {useAnalytics} from '#/lib/analytics/analytics'
|
import {useAnalytics} from '#/lib/analytics/analytics'
|
||||||
|
import {DISCOVER_FEED_URI} from '#/lib/constants'
|
||||||
import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants'
|
import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants'
|
||||||
|
import {useGate} from '#/lib/statsig/statsig'
|
||||||
import {logEvent} from '#/lib/statsig/statsig'
|
import {logEvent} from '#/lib/statsig/statsig'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
import {useSetSaveFeedsMutation} from '#/state/queries/preferences'
|
import {useSetSaveFeedsMutation} from '#/state/queries/preferences'
|
||||||
import {getAgent} from '#/state/session'
|
import {getAgent} from '#/state/session'
|
||||||
import {useOnboardingDispatch} from '#/state/shell'
|
import {useOnboardingDispatch} from '#/state/shell'
|
||||||
|
import {uploadBlob} from 'lib/api'
|
||||||
import {
|
import {
|
||||||
DescriptionText,
|
DescriptionText,
|
||||||
OnboardingControls,
|
OnboardingControls,
|
||||||
TitleText,
|
TitleText,
|
||||||
} from '#/screens/Onboarding/Layout'
|
} from '#/screens/Onboarding/Layout'
|
||||||
import {uploadBlob} from 'lib/api'
|
|
||||||
import {Context} from '#/screens/Onboarding/state'
|
import {Context} from '#/screens/Onboarding/state'
|
||||||
import {
|
import {
|
||||||
bulkWriteFollows,
|
bulkWriteFollows,
|
||||||
sortPrimaryAlgorithmFeeds,
|
sortPrimaryAlgorithmFeeds,
|
||||||
} from '#/screens/Onboarding/util'
|
} 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 {Button, ButtonIcon, ButtonText} from '#/components/Button'
|
||||||
import {IconCircle} from '#/components/IconCircle'
|
import {IconCircle} from '#/components/IconCircle'
|
||||||
import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
|
import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
|
||||||
@@ -40,6 +42,7 @@ export function StepFinished() {
|
|||||||
const onboardDispatch = useOnboardingDispatch()
|
const onboardDispatch = useOnboardingDispatch()
|
||||||
const [saving, setSaving] = React.useState(false)
|
const [saving, setSaving] = React.useState(false)
|
||||||
const {mutateAsync: saveFeeds} = useSetSaveFeedsMutation()
|
const {mutateAsync: saveFeeds} = useSetSaveFeedsMutation()
|
||||||
|
const isV2Enabled = useGate('reduced_onboarding_and_home_algo')
|
||||||
|
|
||||||
const finishOnboarding = React.useCallback(async () => {
|
const finishOnboarding = React.useCallback(async () => {
|
||||||
setSaving(true)
|
setSaving(true)
|
||||||
@@ -90,6 +93,13 @@ export function StepFinished() {
|
|||||||
|
|
||||||
return existing
|
return existing
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (isV2Enabled) {
|
||||||
|
await getAgent().setHomeAlgoPref({
|
||||||
|
enabled: true,
|
||||||
|
uri: DISCOVER_FEED_URI,
|
||||||
|
})
|
||||||
|
}
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
logger.info(`onboarding: bulk save failed`)
|
logger.info(`onboarding: bulk save failed`)
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
@@ -102,7 +112,15 @@ export function StepFinished() {
|
|||||||
track('OnboardingV2:StepFinished:End')
|
track('OnboardingV2:StepFinished:End')
|
||||||
track('OnboardingV2:Complete')
|
track('OnboardingV2:Complete')
|
||||||
logEvent('onboarding:finished:nextPressed', {})
|
logEvent('onboarding:finished:nextPressed', {})
|
||||||
}, [state, dispatch, onboardDispatch, setSaving, saveFeeds, track])
|
}, [
|
||||||
|
state,
|
||||||
|
dispatch,
|
||||||
|
onboardDispatch,
|
||||||
|
setSaving,
|
||||||
|
saveFeeds,
|
||||||
|
track,
|
||||||
|
isV2Enabled,
|
||||||
|
])
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
track('OnboardingV2:StepFinished:Start')
|
track('OnboardingV2:StepFinished:Start')
|
||||||
|
|||||||
Reference in New Issue
Block a user