aboutsummaryrefslogtreecommitdiff
path: root/src/routes/profile/ProfileStackScreen.tsx
diff options
context:
space:
mode:
authorIvan Chen <ivan@thetaggid.com>2020-12-29 20:21:24 -0500
committerGitHub <noreply@github.com>2020-12-29 20:21:24 -0500
commitbd2f89805d0bb1c2f1d08fe8d91099aa4f109d35 (patch)
treeac7219e034a0c4035096c6df8dbe6b92446b5111 /src/routes/profile/ProfileStackScreen.tsx
parentec478d4981c726856485b49b49ac33b0d9e6a903 (diff)
[TMA-461] Notifications Screen (#151)
* renamed ProfileStack to MainStack, created initial notifications data type * cleaned up code * added notifications to redux * finished sectioned list * updated types to make more sense * finished sectioned notifications by date * updated notification type and tested mock backend integration * finished read or unread logic * minor changes * another minor fix * finished integration * moved stuff * added ability to navigate to user profile Co-authored-by: Husam Salhab <47015061+hsalhab@users.noreply.github.com>
Diffstat (limited to 'src/routes/profile/ProfileStackScreen.tsx')
-rw-r--r--src/routes/profile/ProfileStackScreen.tsx166
1 files changed, 0 insertions, 166 deletions
diff --git a/src/routes/profile/ProfileStackScreen.tsx b/src/routes/profile/ProfileStackScreen.tsx
deleted file mode 100644
index 4fc9f0c7..00000000
--- a/src/routes/profile/ProfileStackScreen.tsx
+++ /dev/null
@@ -1,166 +0,0 @@
-import React from 'react';
-import {
- IndividualMoment,
- CaptionScreen,
- SocialMediaTaggs,
- SearchScreen,
- ProfileScreen,
- MomentCommentsScreen,
- FollowersListScreen,
- EditProfile,
- CategorySelection,
-} from '../../screens';
-import {ProfileStack, ProfileStackParams} from './ProfileStackNavigator';
-import {RouteProp} from '@react-navigation/native';
-import {ScreenType} from '../../types';
-import {AvatarHeaderHeight} from '../../utils';
-import {StackNavigationOptions} from '@react-navigation/stack';
-
-/**
- * Trying to explain the purpose of each route on the stack (ACTUALLY A STACK)
- * Profile : To display the logged in user's profile when the userXId passed in to it is (undefined | null | empty string) else displays profile of the user being visited.
- * Search : To display the search screen. Search for a user on this screen, click on a result tile and navigate to the same.
- * When you click on the search icon after looking at a user's profile, the stack gets reset and you come back to the top of the stack (First screen : Search in this case)
- * SocialMediaTaggs : To display user data for any social media account set up by the user.
- * IndividualMoment : To display individual images uploaded by the user (Navigate to comments from this screen, click on a commenter's profile pic / username, look at a user's profile. Click on the profile icon again to come back to your own profile).
- * MomentCommentsScreen : Displays comments posted by users on an image uploaded by the user.
- * EditProfile : To edit logged in user's information.
- */
-
-type ProfileStackRouteProps = RouteProp<ProfileStackParams, 'Profile'>;
-
-interface ProfileStackProps {
- route: ProfileStackRouteProps;
-}
-
-const ProfileStackScreen: React.FC<ProfileStackProps> = ({route}) => {
- const {screenType} = route.params;
-
- const isProfileStack = screenType === ScreenType.Profile;
-
- const modalStyle: StackNavigationOptions = {
- cardStyle: {backgroundColor: 'transparent'},
- gestureDirection: 'vertical',
- cardOverlayEnabled: true,
- cardStyleInterpolator: ({current: {progress}}) => ({
- cardStyle: {
- opacity: progress.interpolate({
- inputRange: [0, 0.5, 0.9, 1],
- outputRange: [0, 0.25, 0.7, 1],
- }),
- },
- overlayStyle: {
- backgroundColor: '#505050',
- opacity: progress.interpolate({
- inputRange: [0, 1],
- outputRange: [0, 0.9],
- extrapolate: 'clamp',
- }),
- },
- }),
- };
-
- return (
- <ProfileStack.Navigator
- screenOptions={{
- headerShown: false,
- }}
- mode="card"
- initialRouteName={isProfileStack ? 'Profile' : 'Search'}>
- <ProfileStack.Screen
- name="Profile"
- component={ProfileScreen}
- options={{
- headerShown: true,
- headerTransparent: true,
- headerBackTitleVisible: false,
- headerTitle: '',
- headerTintColor: 'white',
- headerStyle: {height: AvatarHeaderHeight},
- }}
- initialParams={{
- screenType,
- }}
- />
- {!isProfileStack ? (
- <ProfileStack.Screen
- name="Search"
- component={SearchScreen}
- initialParams={{screenType}}
- />
- ) : (
- <React.Fragment />
- )}
- <ProfileStack.Screen
- name="SocialMediaTaggs"
- component={SocialMediaTaggs}
- options={{
- headerShown: true,
- headerTransparent: true,
- headerBackTitleVisible: false,
- headerTitle: '',
- headerTintColor: 'white',
- headerStyle: {height: AvatarHeaderHeight},
- }}
- initialParams={{screenType}}
- />
- <ProfileStack.Screen
- name="CategorySelection"
- component={CategorySelection}
- options={{
- headerShown: true,
- headerTransparent: true,
- headerBackTitleVisible: false,
- headerTintColor: 'white',
- headerTitle: '',
- }}
- />
- {isProfileStack ? (
- <ProfileStack.Screen
- name="CaptionScreen"
- component={CaptionScreen}
- options={{...modalStyle, gestureEnabled: false}}
- />
- ) : (
- <React.Fragment />
- )}
- <ProfileStack.Screen
- name="IndividualMoment"
- component={IndividualMoment}
- options={{
- ...modalStyle,
- }}
- initialParams={{screenType}}
- />
- <ProfileStack.Screen
- name="MomentCommentsScreen"
- component={MomentCommentsScreen}
- options={{
- ...modalStyle,
- }}
- initialParams={{screenType}}
- />
- <ProfileStack.Screen
- name="FollowersListScreen"
- component={FollowersListScreen}
- options={{
- ...modalStyle,
- }}
- initialParams={{screenType}}
- />
- <ProfileStack.Screen
- name="EditProfile"
- component={EditProfile}
- options={{
- headerShown: true,
- headerTitle: 'Edit Profile',
- headerTransparent: true,
- headerBackTitleVisible: false,
- headerTintColor: 'white',
- }}
- />
- </ProfileStack.Navigator>
- );
-};
-
-export default ProfileStackScreen;