import React from 'react' import {createStarterPackLinkFromAndroidReferrer} from 'lib/strings/starter-pack' import {isAndroid} from 'platform/detection' import {useSetCurrentStarterPack} from 'state/preferences/starter-pack' import {useHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' import SwissArmyKnife from '../../../modules/expo-bluesky-swiss-army' import GooglePlayReferrer from '../../../modules/expo-google-play-referrer' export function useStarterPackEntry() { const [ready, setReady] = React.useState(false) const setCurrentStarterPack = useSetCurrentStarterPack() const hasCheckedForStarterPack = useHasCheckedForStarterPack() const setHasCheckedForStarterPack = useHasCheckedForStarterPack() React.useEffect(() => { if (ready || hasCheckedForStarterPack) return setHasCheckedForStarterPack(true) ;(async () => { let uri: string | null | undefined if (isAndroid) { const res = await GooglePlayReferrer.getReferrerInfoAsync() if (res && res.installReferrer) { uri = createStarterPackLinkFromAndroidReferrer(res.installReferrer) } } else { uri = await SwissArmyKnife.getStringValueAsync('starterPackUri', true) } if (uri && !usedStarterPacks?.includes(uri)) { setCurrentStarterPack({ uri, }) } setReady(true) })() }, [ ready, setCurrentStarterPack, setHasCheckedForStarterPack, hasCheckedForStarterPack, ]) return ready }