diff options
Diffstat (limited to 'src/view/com/auth/LoggedOut.tsx')
-rw-r--r-- | src/view/com/auth/LoggedOut.tsx | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/src/view/com/auth/LoggedOut.tsx b/src/view/com/auth/LoggedOut.tsx index c8c81dd77..29127ec45 100644 --- a/src/view/com/auth/LoggedOut.tsx +++ b/src/view/com/auth/LoggedOut.tsx @@ -7,7 +7,6 @@ import {useNavigation} from '@react-navigation/native' import {useAnalytics} from '#/lib/analytics/analytics' import {usePalette} from '#/lib/hooks/usePalette' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {logEvent} from '#/lib/statsig/statsig' import {s} from '#/lib/styles' import {isIOS, isNative} from '#/platform/detection' @@ -22,13 +21,16 @@ import {ErrorBoundary} from '#/view/com/util/ErrorBoundary' import {Text} from '#/view/com/util/text/Text' import {Login} from '#/screens/Login' import {Signup} from '#/screens/Signup' +import {LandingScreen} from '#/screens/StarterPack/StarterPackLandingScreen' import {SplashScreen} from './SplashScreen' enum ScreenState { S_LoginOrCreateAccount, S_Login, S_CreateAccount, + S_StarterPack, } +export {ScreenState as LoggedOutScreenState} export function LoggedOut({onDismiss}: {onDismiss?: () => void}) { const {hasSession} = useSession() @@ -37,18 +39,21 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) { const setMinimalShellMode = useSetMinimalShellMode() const {screen} = useAnalytics() const {requestedAccountSwitchTo} = useLoggedOutView() - const [screenState, setScreenState] = React.useState<ScreenState>( - requestedAccountSwitchTo - ? requestedAccountSwitchTo === 'new' - ? ScreenState.S_CreateAccount - : ScreenState.S_Login - : ScreenState.S_LoginOrCreateAccount, - ) - const {isMobile} = useWebMediaQueries() + const [screenState, setScreenState] = React.useState<ScreenState>(() => { + if (requestedAccountSwitchTo === 'new') { + return ScreenState.S_CreateAccount + } else if (requestedAccountSwitchTo === 'starterpack') { + return ScreenState.S_StarterPack + } else if (requestedAccountSwitchTo != null) { + return ScreenState.S_Login + } else { + return ScreenState.S_LoginOrCreateAccount + } + }) const {clearRequestedAccount} = useLoggedOutViewControls() const navigation = useNavigation<NavigationProp>() - const isFirstScreen = screenState === ScreenState.S_LoginOrCreateAccount + const isFirstScreen = screenState === ScreenState.S_LoginOrCreateAccount React.useEffect(() => { screen('Login') setMinimalShellMode(true) @@ -66,18 +71,9 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) { }, [navigation]) return ( - <View - testID="noSessionView" - style={[ - s.hContentRegion, - pal.view, - { - // only needed if dismiss button is present - paddingTop: onDismiss && isMobile ? 40 : 0, - }, - ]}> + <View testID="noSessionView" style={[s.hContentRegion, pal.view]}> <ErrorBoundary> - {onDismiss ? ( + {onDismiss && screenState === ScreenState.S_LoginOrCreateAccount ? ( <Pressable accessibilityHint={_(msg`Go back`)} accessibilityLabel={_(msg`Go back`)} @@ -132,7 +128,9 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) { </Pressable> ) : null} - {screenState === ScreenState.S_LoginOrCreateAccount ? ( + {screenState === ScreenState.S_StarterPack ? ( + <LandingScreen setScreenState={setScreenState} /> + ) : screenState === ScreenState.S_LoginOrCreateAccount ? ( <SplashScreen onPressSignin={() => { setScreenState(ScreenState.S_Login) |