diff options
Diffstat (limited to 'src/view/com/auth/onboarding/Welcome.tsx')
-rw-r--r-- | src/view/com/auth/onboarding/Welcome.tsx | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/src/view/com/auth/onboarding/Welcome.tsx b/src/view/com/auth/onboarding/Welcome.tsx index 87435c88a..cb3a2307a 100644 --- a/src/view/com/auth/onboarding/Welcome.tsx +++ b/src/view/com/auth/onboarding/Welcome.tsx @@ -1,13 +1,36 @@ import React from 'react' -import {StyleSheet, View} from 'react-native' +import {Pressable, StyleSheet, View} from 'react-native' import {Text} from 'view/com/util/text/Text' import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Button} from 'view/com/util/forms/Button' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {HomeTabNavigatorParams} from 'lib/routes/types' +import {useStores} from 'state/index' +import {observer} from 'mobx-react-lite' +import {HeaderButtonProps} from '@react-navigation/native-stack/lib/typescript/src/types' +import {NavigationProp, useNavigation} from '@react-navigation/native' -export const Welcome = ({next}: {next: () => void}) => { +type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Welcome'> +export const Welcome = observer(({navigation}: Props) => { const pal = usePalette('default') + const store = useStores() + + // make sure bottom nav is hidden + React.useEffect(() => { + if (!store.shell.minimalShellMode) { + store.shell.setMinimalShellMode(true) + } + }, [store.shell.minimalShellMode, store]) + + const next = () => { + const nextScreenName = store.onboarding.nextScreenName('Welcome') + if (nextScreenName) { + navigation.navigate(nextScreenName) + } + } + return ( <View style={[styles.container]}> <View testID="welcomeScreen"> @@ -60,12 +83,38 @@ export const Welcome = ({next}: {next: () => void}) => { /> </View> ) +}) + +export const WelcomeHeaderRight = (props: HeaderButtonProps) => { + const {canGoBack} = props + const pal = usePalette('default') + const navigation = useNavigation<NavigationProp<HomeTabNavigatorParams>>() + const store = useStores() + return ( + <Pressable + accessibilityRole="button" + style={[s.flexRow, s.alignCenter]} + onPress={() => { + if (canGoBack) { + store.onboarding.skip() + navigation.goBack() + } + }}> + <Text style={[pal.link]}>Skip</Text> + <FontAwesomeIcon + icon={'chevron-right'} + size={14} + color={pal.colors.link} + /> + </Pressable> + ) } const styles = StyleSheet.create({ container: { flex: 1, marginVertical: 60, + marginHorizontal: 16, justifyContent: 'space-between', }, title: { |