From c32197f793005a81a0a06c6d755ed374078624c3 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Mon, 8 Feb 2021 14:43:20 -0800 Subject: navigation bar to go to suggested people --- .../navigationIcons/suggested-people-clicked.png | Bin 0 -> 435183 bytes src/assets/navigationIcons/suggested-people.png | Bin 0 -> 673387 bytes src/components/common/NavigationIcon.tsx | 13 ++++++++- src/routes/main/MainStackNavigator.tsx | 1 + src/routes/main/MainStackScreen.tsx | 12 +++++++++ src/routes/tabs/NavigationBar.tsx | 9 +++++++ src/screens/index.ts | 1 + .../suggestedPeople/SuggestedPeopleScreen.tsx | 30 +++++++++++++++++++++ src/screens/suggestedPeople/index.ts | 1 + src/types/types.ts | 1 + 10 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/assets/navigationIcons/suggested-people-clicked.png create mode 100644 src/assets/navigationIcons/suggested-people.png create mode 100644 src/screens/suggestedPeople/SuggestedPeopleScreen.tsx create mode 100644 src/screens/suggestedPeople/index.ts (limited to 'src') diff --git a/src/assets/navigationIcons/suggested-people-clicked.png b/src/assets/navigationIcons/suggested-people-clicked.png new file mode 100644 index 00000000..e297b2e6 Binary files /dev/null and b/src/assets/navigationIcons/suggested-people-clicked.png differ diff --git a/src/assets/navigationIcons/suggested-people.png b/src/assets/navigationIcons/suggested-people.png new file mode 100644 index 00000000..d19cc167 Binary files /dev/null and b/src/assets/navigationIcons/suggested-people.png differ diff --git a/src/components/common/NavigationIcon.tsx b/src/components/common/NavigationIcon.tsx index 4bf35360..1a9934f2 100644 --- a/src/components/common/NavigationIcon.tsx +++ b/src/components/common/NavigationIcon.tsx @@ -8,7 +8,13 @@ import { } from 'react-native'; interface NavigationIconProps extends TouchableOpacityProps { - tab: 'Home' | 'Search' | 'Upload' | 'Notifications' | 'Profile'; + tab: + | 'Home' + | 'Search' + | 'Upload' + | 'Notifications' + | 'Profile' + | 'SuggestedPeople'; disabled?: boolean; newIcon?: boolean; } @@ -43,6 +49,11 @@ const NavigationIcon = (props: NavigationIconProps) => { ? require('../../assets/navigationIcons/profile.png') : require('../../assets/navigationIcons/profile-clicked.png'); break; + case 'SuggestedPeople': + imgSrc = props.disabled + ? require('../../assets/navigationIcons/suggested-people.png') + : require('../../assets/navigationIcons/suggested-people-clicked.png'); + break; default: imgSrc = null; } diff --git a/src/routes/main/MainStackNavigator.tsx b/src/routes/main/MainStackNavigator.tsx index 74993af9..04d2fc38 100644 --- a/src/routes/main/MainStackNavigator.tsx +++ b/src/routes/main/MainStackNavigator.tsx @@ -11,6 +11,7 @@ import { } from '../../types'; export type MainStackParams = { + SuggestedPeople: {screenType: ScreenType}; Search: { screenType: ScreenType; }; diff --git a/src/routes/main/MainStackScreen.tsx b/src/routes/main/MainStackScreen.tsx index c0cef3ea..15950729 100644 --- a/src/routes/main/MainStackScreen.tsx +++ b/src/routes/main/MainStackScreen.tsx @@ -16,6 +16,7 @@ import { RequestContactsAccess, SearchScreen, SocialMediaTaggs, + SuggestedPeopleScreen, } from '../../screens'; import {ScreenType} from '../../types'; import {AvatarHeaderHeight, SCREEN_WIDTH} from '../../utils'; @@ -43,6 +44,7 @@ const MainStackScreen: React.FC = ({route}) => { // const isProfileTab = screenType === ScreenType.Profile; const isSearchTab = screenType === ScreenType.Search; const isNotificationsTab = screenType === ScreenType.Notifications; + const isSuggestedPeopleTab = screenType === ScreenType.SuggestedPeople; AsyncStorage.getItem('respondedToAccessContacts').then((value) => setRespondedToAccessContacts(value ? value : 'false'), @@ -60,6 +62,8 @@ const MainStackScreen: React.FC = ({route}) => { return 'Search'; case ScreenType.Notifications: return 'Notifications'; + case ScreenType.SuggestedPeople: + return 'SuggestedPeople'; } })(); @@ -77,6 +81,7 @@ const MainStackScreen: React.FC = ({route}) => { }), }; + console.log('screenType: ', screenType); return ( = ({route}) => { initialParams={{screenType}} /> )} + {isSuggestedPeopleTab && console.log('triggered') && ( + + )} { ); case 'Profile': return ; + case 'SuggestedPeople': + return ( + + ); default: return ; } @@ -72,6 +76,11 @@ const NavigationBar: React.FC = () => { bottom: '1%', }, }}> + { + /** + * This is a double safety check to avoid app crash. + * Checks if the required userXId is present in the store, if not userXId is set to dummy id + */ + // if (userXId && !(userXId in useStore().getState().userX[screenType])) { + // userXId = DUMMY_USERID; + // } + + return ( + <> + {/* */} + + Suggested People + + ); +}; + +export default SuggestedPeopleScreen; diff --git a/src/screens/suggestedPeople/index.ts b/src/screens/suggestedPeople/index.ts new file mode 100644 index 00000000..a42d9c52 --- /dev/null +++ b/src/screens/suggestedPeople/index.ts @@ -0,0 +1 @@ +export {default as SuggestedPeopleScreen} from './SuggestedPeopleScreen'; diff --git a/src/types/types.ts b/src/types/types.ts index ab995292..7fccaa44 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -114,6 +114,7 @@ export enum ScreenType { Profile, Search, Notifications, + SuggestedPeople, } export type ExploreSectionType = -- cgit v1.2.3-70-g09d2