tooot/src/screens/Tabs/Me/Profile/index.tsx

71 lines
2.5 KiB
TypeScript
Raw Normal View History

import { HeaderLeft } from '@components/Header'
2021-05-09 21:59:03 +02:00
import { Message } from '@components/Message'
import { createNativeStackNavigator } from '@react-navigation/native-stack'
2022-12-11 14:08:27 +01:00
import { TabMeProfileStackParamList, TabMeStackScreenProps } from '@utils/navigation/navigators'
2021-05-09 21:59:03 +02:00
import React, { useRef } from 'react'
import { useTranslation } from 'react-i18next'
import { KeyboardAvoidingView, Platform } from 'react-native'
import FlashMessage from 'react-native-flash-message'
import TabMeProfileFields from './Fields'
import TabMeProfileName from './Name'
import TabMeProfileNote from './Note'
import TabMeProfileRoot from './Root'
2021-05-09 21:59:03 +02:00
2021-08-29 15:25:38 +02:00
const Stack = createNativeStackNavigator<TabMeProfileStackParamList>()
2021-05-09 21:59:03 +02:00
2022-12-11 14:08:27 +01:00
const TabMeProfile: React.FC<TabMeStackScreenProps<'Tab-Me-Switch'>> = ({ navigation }) => {
2021-05-09 21:59:03 +02:00
const { t } = useTranslation('screenTabs')
const messageRef = useRef<FlashMessage>(null)
return (
<KeyboardAvoidingView
style={{ flex: 1 }}
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
>
<Stack.Navigator screenOptions={{ headerShadowVisible: false }}>
2021-05-09 21:59:03 +02:00
<Stack.Screen
name='Tab-Me-Profile-Root'
options={{
2021-12-18 23:44:08 +01:00
title: t('me.stacks.profile.name'),
2021-05-09 21:59:03 +02:00
headerLeft: () => (
2022-12-11 14:08:27 +01:00
<HeaderLeft content='ChevronDown' onPress={() => navigation.goBack()} />
2021-05-09 21:59:03 +02:00
)
}}
2021-05-17 23:09:50 +02:00
>
{({ route, navigation }) => (
2022-12-11 14:08:27 +01:00
<TabMeProfileRoot messageRef={messageRef} route={route} navigation={navigation} />
2021-05-17 23:09:50 +02:00
)}
</Stack.Screen>
2021-05-09 21:59:03 +02:00
<Stack.Screen
name='Tab-Me-Profile-Name'
2022-12-11 14:08:27 +01:00
options={{ title: t('me.stacks.profileName.name') }}
2021-05-09 21:59:03 +02:00
>
{({ route, navigation }) => (
2022-12-11 14:08:27 +01:00
<TabMeProfileName messageRef={messageRef} route={route} navigation={navigation} />
2021-05-09 21:59:03 +02:00
)}
</Stack.Screen>
<Stack.Screen
name='Tab-Me-Profile-Note'
2022-12-11 14:08:27 +01:00
options={{ title: t('me.stacks.profileNote.name') }}
2021-05-09 21:59:03 +02:00
>
{({ route, navigation }) => (
2022-12-11 14:08:27 +01:00
<TabMeProfileNote messageRef={messageRef} route={route} navigation={navigation} />
2021-05-09 21:59:03 +02:00
)}
</Stack.Screen>
<Stack.Screen
name='Tab-Me-Profile-Fields'
2022-12-11 14:08:27 +01:00
options={{ title: t('me.stacks.profileFields.name') }}
2021-05-09 21:59:03 +02:00
>
{({ route, navigation }) => (
2022-12-11 14:08:27 +01:00
<TabMeProfileFields messageRef={messageRef} route={route} navigation={navigation} />
2021-05-09 21:59:03 +02:00
)}
</Stack.Screen>
</Stack.Navigator>
<Message ref={messageRef} />
</KeyboardAvoidingView>
)
}
export default TabMeProfile