Clean up logged out screen

This commit is contained in:
Eric Bailey
2023-11-22 15:15:12 -06:00
parent 08333002cc
commit a6c6a276cc
4 changed files with 95 additions and 80 deletions
+50 -13
View File
@@ -1,5 +1,10 @@
import React from 'react' import React from 'react'
import {SafeAreaView} from 'react-native' import {View, Pressable} from 'react-native'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {useLingui} from '@lingui/react'
import {msg} from '@lingui/macro'
import {isIOS} from 'platform/detection'
import {Login} from 'view/com/auth/login/Login' import {Login} from 'view/com/auth/login/Login'
import {CreateAccount} from 'view/com/auth/create/CreateAccount' import {CreateAccount} from 'view/com/auth/create/CreateAccount'
import {ErrorBoundary} from 'view/com/util/ErrorBoundary' import {ErrorBoundary} from 'view/com/util/ErrorBoundary'
@@ -16,6 +21,7 @@ enum ScreenState {
} }
export function LoggedOut({onDismiss}: {onDismiss?: () => void}) { export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
const {_} = useLingui()
const pal = usePalette('default') const pal = usePalette('default')
const setMinimalShellMode = useSetMinimalShellMode() const setMinimalShellMode = useSetMinimalShellMode()
const {screen} = useAnalytics() const {screen} = useAnalytics()
@@ -28,19 +34,50 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
setMinimalShellMode(true) setMinimalShellMode(true)
}, [screen, setMinimalShellMode]) }, [screen, setMinimalShellMode])
if (screenState === ScreenState.S_LoginOrCreateAccount) {
return ( return (
<SplashScreen <View
onDismiss={onDismiss} testID="noSessionView"
onPressSignin={() => setScreenState(ScreenState.S_Login)} style={[
onPressCreateAccount={() => setScreenState(ScreenState.S_CreateAccount)} s.hContentRegion,
/> pal.view,
) {
} paddingTop: 40,
},
return ( ]}>
<SafeAreaView testID="noSessionView" style={[s.hContentRegion, pal.view]}>
<ErrorBoundary> <ErrorBoundary>
{onDismiss && (
<Pressable
accessibilityHint={_(msg`Go back`)}
accessibilityLabel={_(msg`Go back`)}
accessibilityRole="button"
style={{
position: 'absolute',
top: isIOS ? 0 : 20,
right: 20,
padding: 10,
zIndex: 100,
backgroundColor: pal.text.color,
borderRadius: 100,
}}
onPress={onDismiss}>
<FontAwesomeIcon
icon="x"
size={12}
style={{
color: String(pal.textInverted.color),
}}
/>
</Pressable>
)}
{screenState === ScreenState.S_LoginOrCreateAccount ? (
<SplashScreen
onPressSignin={() => setScreenState(ScreenState.S_Login)}
onPressCreateAccount={() =>
setScreenState(ScreenState.S_CreateAccount)
}
/>
) : undefined}
{screenState === ScreenState.S_Login ? ( {screenState === ScreenState.S_Login ? (
<Login <Login
onPressBack={() => onPressBack={() =>
@@ -56,6 +93,6 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
/> />
) : undefined} ) : undefined}
</ErrorBoundary> </ErrorBoundary>
</SafeAreaView> </View>
) )
} }
+1 -33
View File
@@ -1,12 +1,5 @@
import React from 'react' import React from 'react'
import { import {StyleSheet, TouchableOpacity, View} from 'react-native'
SafeAreaView,
StyleSheet,
TouchableOpacity,
Pressable,
View,
} from 'react-native'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {Text} from 'view/com/util/text/Text' import {Text} from 'view/com/util/text/Text'
import {ErrorBoundary} from 'view/com/util/ErrorBoundary' import {ErrorBoundary} from 'view/com/util/ErrorBoundary'
import {s, colors} from 'lib/styles' import {s, colors} from 'lib/styles'
@@ -16,11 +9,9 @@ import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
export const SplashScreen = ({ export const SplashScreen = ({
onDismiss,
onPressSignin, onPressSignin,
onPressCreateAccount, onPressCreateAccount,
}: { }: {
onDismiss?: () => void
onPressSignin: () => void onPressSignin: () => void
onPressCreateAccount: () => void onPressCreateAccount: () => void
}) => { }) => {
@@ -29,28 +20,6 @@ export const SplashScreen = ({
return ( return (
<CenteredView style={[styles.container, pal.view]}> <CenteredView style={[styles.container, pal.view]}>
{onDismiss && (
<Pressable
accessibilityRole="button"
style={{
position: 'absolute',
top: 20,
right: 20,
padding: 20,
zIndex: 100,
}}
onPress={onDismiss}>
<FontAwesomeIcon
icon="x"
size={24}
style={{
color: String(pal.text.color),
}}
/>
</Pressable>
)}
<SafeAreaView testID="noSessionView" style={styles.container}>
<ErrorBoundary> <ErrorBoundary>
<View style={styles.hero}> <View style={styles.hero}>
<Text style={[styles.title, pal.link]}> <Text style={[styles.title, pal.link]}>
@@ -85,7 +54,6 @@ export const SplashScreen = ({
</TouchableOpacity> </TouchableOpacity>
</View> </View>
</ErrorBoundary> </ErrorBoundary>
</SafeAreaView>
</CenteredView> </CenteredView>
) )
} }
+6 -1
View File
@@ -1 +1,6 @@
export {SearchScreenMobile as SearchScreen} from '#/view/screens/Search/Search' import {withAuthRequired} from '#/view/com/auth/withAuthRequired'
import {SearchScreenMobile} from '#/view/screens/Search/Search'
export const SearchScreen = withAuthRequired(SearchScreenMobile, {
isPublic: true,
})
+6 -1
View File
@@ -1 +1,6 @@
export {SearchScreenDesktop as SearchScreen} from '#/view/screens/Search/Search' import {withAuthRequired} from '#/view/com/auth/withAuthRequired'
import {SearchScreenDesktop} from '#/view/screens/Search/Search'
export const SearchScreen = withAuthRequired(SearchScreenDesktop, {
isPublic: true,
})