Remove old onboarding (#4224)
* Hardcode onboarding_v2 to true, rm dead code * Rm initialState, use initialStateReduced * Rm dead code * Drop *reduced prefix in code * Prettier
This commit is contained in:
parent
9bd411c151
commit
adbbded003
17 changed files with 27 additions and 1986 deletions
|
@ -1,19 +1,14 @@
|
|||
import React from 'react'
|
||||
import {View} from 'react-native'
|
||||
import {TID} from '@atproto/common-web'
|
||||
import {msg, Trans} from '@lingui/macro'
|
||||
import {useLingui} from '@lingui/react'
|
||||
import {useQueryClient} from '@tanstack/react-query'
|
||||
|
||||
import {useAnalytics} from '#/lib/analytics/analytics'
|
||||
import {BSKY_APP_ACCOUNT_DID, IS_PROD_SERVICE} from '#/lib/constants'
|
||||
import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants'
|
||||
import {logEvent, useGate} from '#/lib/statsig/statsig'
|
||||
import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants'
|
||||
import {logEvent} from '#/lib/statsig/statsig'
|
||||
import {logger} from '#/logger'
|
||||
import {
|
||||
preferencesQueryKey,
|
||||
useOverwriteSavedFeedsMutation,
|
||||
} from '#/state/queries/preferences'
|
||||
import {preferencesQueryKey} from '#/state/queries/preferences'
|
||||
import {RQKEY as profileRQKey} from '#/state/queries/profile'
|
||||
import {useAgent} from '#/state/session'
|
||||
import {useOnboardingDispatch} from '#/state/shell'
|
||||
|
@ -24,10 +19,7 @@ import {
|
|||
TitleText,
|
||||
} from '#/screens/Onboarding/Layout'
|
||||
import {Context} from '#/screens/Onboarding/state'
|
||||
import {
|
||||
bulkWriteFollows,
|
||||
sortPrimaryAlgorithmFeeds,
|
||||
} from '#/screens/Onboarding/util'
|
||||
import {bulkWriteFollows} from '#/screens/Onboarding/util'
|
||||
import {atoms as a, useTheme} from '#/alf'
|
||||
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
|
||||
import {IconCircle} from '#/components/IconCircle'
|
||||
|
@ -45,83 +37,21 @@ export function StepFinished() {
|
|||
const {state, dispatch} = React.useContext(Context)
|
||||
const onboardDispatch = useOnboardingDispatch()
|
||||
const [saving, setSaving] = React.useState(false)
|
||||
const {mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation()
|
||||
const queryClient = useQueryClient()
|
||||
const agent = useAgent()
|
||||
const gate = useGate()
|
||||
|
||||
const finishOnboarding = React.useCallback(async () => {
|
||||
setSaving(true)
|
||||
|
||||
// TODO uncomment
|
||||
const {
|
||||
interestsStepResults,
|
||||
suggestedAccountsStepResults,
|
||||
algoFeedsStepResults,
|
||||
topicalFeedsStepResults,
|
||||
profileStepResults,
|
||||
} = state
|
||||
const {interestsStepResults, profileStepResults} = state
|
||||
const {selectedInterests} = interestsStepResults
|
||||
const selectedFeeds = [
|
||||
...sortPrimaryAlgorithmFeeds(algoFeedsStepResults.feedUris),
|
||||
...topicalFeedsStepResults.feedUris,
|
||||
]
|
||||
|
||||
try {
|
||||
await Promise.all([
|
||||
bulkWriteFollows(
|
||||
agent,
|
||||
suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID),
|
||||
),
|
||||
// these must be serial
|
||||
bulkWriteFollows(agent, [BSKY_APP_ACCOUNT_DID]),
|
||||
(async () => {
|
||||
await agent.setInterestsPref({tags: selectedInterests})
|
||||
|
||||
/*
|
||||
* In the reduced onboading experiment, we'll rely on the default
|
||||
* feeds set in `createAgentAndCreateAccount`. No feeds will be
|
||||
* selected in onboarding and therefore we don't need to run this
|
||||
* code (which would overwrite the other feeds already set).
|
||||
*/
|
||||
if (!gate('reduced_onboarding_and_home_algo_v2')) {
|
||||
const otherFeeds = selectedFeeds.length
|
||||
? selectedFeeds.map(f => ({
|
||||
type: 'feed',
|
||||
value: f,
|
||||
pinned: true,
|
||||
id: TID.nextStr(),
|
||||
}))
|
||||
: []
|
||||
|
||||
/*
|
||||
* If no selected feeds and we're in prod, add the discover feed
|
||||
* (mimics old behavior)
|
||||
*/
|
||||
if (
|
||||
IS_PROD_SERVICE(agent.service.toString()) &&
|
||||
!otherFeeds.length
|
||||
) {
|
||||
otherFeeds.push({
|
||||
...DISCOVER_SAVED_FEED,
|
||||
pinned: true,
|
||||
id: TID.nextStr(),
|
||||
})
|
||||
}
|
||||
|
||||
await overwriteSavedFeeds([
|
||||
{
|
||||
...TIMELINE_SAVED_FEED,
|
||||
pinned: true,
|
||||
id: TID.nextStr(),
|
||||
},
|
||||
...otherFeeds,
|
||||
])
|
||||
}
|
||||
})(),
|
||||
|
||||
(async () => {
|
||||
if (!gate('reduced_onboarding_and_home_algo_v2')) return
|
||||
|
||||
const {imageUri, imageMime} = profileStepResults
|
||||
if (imageUri && imageMime) {
|
||||
const blobPromise = uploadBlob(agent, imageUri, imageMime)
|
||||
|
@ -134,7 +64,6 @@ export function StepFinished() {
|
|||
return existing
|
||||
})
|
||||
}
|
||||
|
||||
logEvent('onboarding:finished:avatarResult', {
|
||||
avatarResult: profileStepResults.isCreatedAvatar
|
||||
? 'created'
|
||||
|
@ -169,17 +98,7 @@ export function StepFinished() {
|
|||
track('OnboardingV2:StepFinished:End')
|
||||
track('OnboardingV2:Complete')
|
||||
logEvent('onboarding:finished:nextPressed', {})
|
||||
}, [
|
||||
state,
|
||||
dispatch,
|
||||
onboardDispatch,
|
||||
setSaving,
|
||||
overwriteSavedFeeds,
|
||||
track,
|
||||
agent,
|
||||
gate,
|
||||
queryClient,
|
||||
])
|
||||
}, [state, dispatch, onboardDispatch, setSaving, track, agent, queryClient])
|
||||
|
||||
React.useEffect(() => {
|
||||
track('OnboardingV2:StepFinished:Start')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue