mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
at schema-errors 62 lines 1.9 kB view raw
1import React from 'react' 2import {msg} from '@lingui/macro' 3import {useLingui} from '@lingui/react' 4 5import {Layout, OnboardingControls} from '#/screens/Onboarding/Layout' 6import {Context, initialState, reducer} from '#/screens/Onboarding/state' 7import {StepFinished} from '#/screens/Onboarding/StepFinished' 8import {StepInterests} from '#/screens/Onboarding/StepInterests' 9import {StepProfile} from '#/screens/Onboarding/StepProfile' 10import {Portal} from '#/components/Portal' 11 12export function Onboarding() { 13 const {_} = useLingui() 14 const [state, dispatch] = React.useReducer(reducer, { 15 ...initialState, 16 }) 17 18 const interestsDisplayNames = React.useMemo(() => { 19 return { 20 news: _(msg`News`), 21 journalism: _(msg`Journalism`), 22 nature: _(msg`Nature`), 23 art: _(msg`Art`), 24 comics: _(msg`Comics`), 25 writers: _(msg`Writers`), 26 culture: _(msg`Culture`), 27 sports: _(msg`Sports`), 28 pets: _(msg`Pets`), 29 animals: _(msg`Animals`), 30 books: _(msg`Books`), 31 education: _(msg`Education`), 32 climate: _(msg`Climate`), 33 science: _(msg`Science`), 34 politics: _(msg`Politics`), 35 fitness: _(msg`Fitness`), 36 tech: _(msg`Tech`), 37 dev: _(msg`Software Dev`), 38 comedy: _(msg`Comedy`), 39 gaming: _(msg`Video Games`), 40 food: _(msg`Food`), 41 cooking: _(msg`Cooking`), 42 } 43 }, [_]) 44 45 return ( 46 <Portal> 47 <OnboardingControls.Provider> 48 <Context.Provider 49 value={React.useMemo( 50 () => ({state, dispatch, interestsDisplayNames}), 51 [state, dispatch, interestsDisplayNames], 52 )}> 53 <Layout> 54 {state.activeStep === 'profile' && <StepProfile />} 55 {state.activeStep === 'interests' && <StepInterests />} 56 {state.activeStep === 'finished' && <StepFinished />} 57 </Layout> 58 </Context.Provider> 59 </OnboardingControls.Provider> 60 </Portal> 61 ) 62}