diff options
Diffstat (limited to 'src/routes/profile')
| -rw-r--r-- | src/routes/profile/Profile.tsx | 40 | ||||
| -rw-r--r-- | src/routes/profile/ProfileStack.tsx | 6 |
2 files changed, 38 insertions, 8 deletions
diff --git a/src/routes/profile/Profile.tsx b/src/routes/profile/Profile.tsx index eaf5f3aa..b39b726e 100644 --- a/src/routes/profile/Profile.tsx +++ b/src/routes/profile/Profile.tsx @@ -1,14 +1,36 @@ import React from 'react'; +import { + ProfileScreen, + CaptionScreen, + SocialMediaTaggs, + SearchScreen, +} from '../../screens'; +import {RouteProp} from '@react-navigation/native'; +import {ProfileStack, ProfileStackParams} from './ProfileStack'; import {AvatarTitle} from '../../components'; -import {ProfileScreen, CaptionScreen, SocialMediaTaggs} from '../../screens'; -import {ProfileStack} from './ProfileStack'; -const Profile: React.FC = () => { +type ProfileScreenRouteProps = RouteProp<ProfileStackParams, 'Profile'>; + +interface ProfileScreenProps { + route: ProfileScreenRouteProps; +} + +const Profile: React.FC<ProfileScreenProps> = ({route}) => { + const {isProfileView} = route.params; return ( <ProfileStack.Navigator - initialRouteName="Profile" + initialRouteName={!isProfileView ? `Profile` : `Search`} screenOptions={{headerShown: false}}> - <ProfileStack.Screen name="Profile" component={ProfileScreen} /> + <ProfileStack.Screen + name="Profile" + component={ProfileScreen} + initialParams={{isProfileView: isProfileView}} + /> + {isProfileView ? ( + <ProfileStack.Screen name="Search" component={SearchScreen} /> + ) : ( + <React.Fragment /> + )} <ProfileStack.Screen name="SocialMediaTaggs" component={SocialMediaTaggs} @@ -17,10 +39,14 @@ const Profile: React.FC = () => { headerTransparent: true, headerBackTitleVisible: false, headerTintColor: 'white', - headerTitle: () => <AvatarTitle />, + headerTitle: () => <AvatarTitle isProfileView={isProfileView} />, }} /> - <ProfileStack.Screen name="CaptionScreen" component={CaptionScreen} /> + {!isProfileView ? ( + <ProfileStack.Screen name="CaptionScreen" component={CaptionScreen} /> + ) : ( + <React.Fragment /> + )} </ProfileStack.Navigator> ); }; diff --git a/src/routes/profile/ProfileStack.tsx b/src/routes/profile/ProfileStack.tsx index c1da67c1..63ab9a10 100644 --- a/src/routes/profile/ProfileStack.tsx +++ b/src/routes/profile/ProfileStack.tsx @@ -1,10 +1,14 @@ import {createStackNavigator} from '@react-navigation/stack'; export type ProfileStackParams = { - Profile: undefined; + Search: undefined; + Profile: { + isProfileView: boolean; + }; SocialMediaTaggs: { socialMediaType: string; socialMediaHandle: string; + isProfileView: boolean; }; CaptionScreen: {title: string; image: object}; }; |
