11import { useEffect } from 'react'
22import ReactModal from 'react-modal'
33import { Steps } from 'src/components/Elements'
4- import { trackOnboardingFinish , trackOnboardingSkip , trackOnboardingStart } from 'src/lib/analytics'
4+ import { SUPPORTED_CARDS } from 'src/config'
5+ import { Tag , useRemoteConfigStore } from 'src/features/remoteConfig'
6+ import {
7+ identifyUserCards ,
8+ identifyUserLanguages ,
9+ identifyUserOccupation ,
10+ trackOnboardingFinish ,
11+ trackOnboardingSkip ,
12+ trackOnboardingStart ,
13+ } from 'src/lib/analytics'
514import { useUserPreferences } from 'src/stores/preferences'
615import { HelloTab } from './steps/HelloTab'
716import { LanguagesTab } from './steps/LanguagesTab'
@@ -14,7 +23,8 @@ type OnboardingModalProps = {
1423}
1524
1625export const OnboardingModal = ( { showOnboarding, setShowOnboarding } : OnboardingModalProps ) => {
17- const { markOnboardingAsCompleted } = useUserPreferences ( )
26+ const { markOnboardingAsCompleted, setTags, setCards } = useUserPreferences ( )
27+ const { supportedTags } = useRemoteConfigStore ( )
1828
1929 useEffect ( ( ) => {
2030 trackOnboardingStart ( )
@@ -52,6 +62,29 @@ export const OnboardingModal = ({ showOnboarding, setShowOnboarding }: Onboardin
5262 if ( tabsData ) {
5363 const { icon, ...occupation } = tabsData
5464 markOnboardingAsCompleted ( occupation )
65+ identifyUserOccupation ( occupation . title )
66+
67+ const tags =
68+ ( occupation . tags
69+ . map ( ( tag ) => supportedTags . find ( ( st ) => st . value === tag ) )
70+ . filter ( Boolean ) as Tag [ ] ) || [ ]
71+
72+ setTags ( tags )
73+ identifyUserLanguages ( tags . map ( ( tag ) => tag . value ) )
74+
75+ const cards =
76+ occupation . sources
77+ . map ( ( source ) => SUPPORTED_CARDS . find ( ( sc ) => sc . value === source ) )
78+ . filter ( Boolean )
79+ . map ( ( source , index ) => {
80+ return {
81+ id : index ,
82+ name : source ?. value || '' ,
83+ }
84+ } ) || [ ]
85+
86+ setCards ( cards )
87+ identifyUserCards ( cards . map ( ( card ) => card . name ) )
5588 }
5689
5790 setShowOnboarding ( false )
0 commit comments