diff options
| author | Ivan Chen <ivan@thetaggid.com> | 2020-12-29 20:21:24 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-29 20:21:24 -0500 |
| commit | bd2f89805d0bb1c2f1d08fe8d91099aa4f109d35 (patch) | |
| tree | ac7219e034a0c4035096c6df8dbe6b92446b5111 /src/routes/profile | |
| parent | ec478d4981c726856485b49b49ac33b0d9e6a903 (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')
| -rw-r--r-- | src/routes/profile/ProfileStackNavigator.tsx | 50 | ||||
| -rw-r--r-- | src/routes/profile/ProfileStackScreen.tsx | 166 | ||||
| -rw-r--r-- | src/routes/profile/index.ts | 2 |
3 files changed, 0 insertions, 218 deletions
diff --git a/src/routes/profile/ProfileStackNavigator.tsx b/src/routes/profile/ProfileStackNavigator.tsx deleted file mode 100644 index bc0a9560..00000000 --- a/src/routes/profile/ProfileStackNavigator.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Note the name userXId here, it refers to the id of the user being visited - */ -import {createStackNavigator} from '@react-navigation/stack'; -import {CategorySelectionScreenType, MomentType, ScreenType} from '../../types'; - -export type ProfileStackParams = { - Search: { - screenType: ScreenType; - }; - Profile: { - userXId: string | undefined; - screenType: ScreenType; - }; - SocialMediaTaggs: { - socialMediaType: string; - userXId: string | undefined; - screenType: ScreenType; - }; - CaptionScreen: { - title: string; - image: object; - screenType: ScreenType; - }; - IndividualMoment: { - moment: MomentType; - userXId: string | undefined; - screenType: ScreenType; - }; - MomentCommentsScreen: { - moment_id: string; - userXId: string | undefined; - screenType: ScreenType; - }; - FollowersListScreen: { - isFollowers: boolean; - userXId: string | undefined; - screenType: ScreenType; - }; - EditProfile: { - userId: string; - username: string; - }; - CategorySelection: { - categories: Array<string>; - screenType: CategorySelectionScreenType; - }; -}; - -export const ProfileStack = createStackNavigator<ProfileStackParams>(); 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; diff --git a/src/routes/profile/index.ts b/src/routes/profile/index.ts deleted file mode 100644 index 05a6b24a..00000000 --- a/src/routes/profile/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ProfileStackNavigator'; -export * from './ProfileStackScreen'; |
