From 88fb33d1fe1cd0785e4a92cb3c20d0fafb2da54d Mon Sep 17 00:00:00 2001 From: Ashm Walia <40498934+ashmgarv@users.noreply.github.com> Date: Mon, 19 Oct 2020 17:14:37 -0700 Subject: Merged changes to make sure moments view and search work (#62) --- src/components/profile/Content.tsx | 29 ++++++++++++++--------------- src/components/profile/Moment.tsx | 23 +++++++++++++++-------- src/components/search/SearchResult.tsx | 6 ++++-- 3 files changed, 33 insertions(+), 25 deletions(-) (limited to 'src/components') diff --git a/src/components/profile/Content.tsx b/src/components/profile/Content.tsx index d52696a7..0bf66dc7 100644 --- a/src/components/profile/Content.tsx +++ b/src/components/profile/Content.tsx @@ -1,10 +1,9 @@ import AsyncStorage from '@react-native-community/async-storage'; import React, {useCallback, useEffect, useState} from 'react'; import {Alert, LayoutChangeEvent, StyleSheet, View} from 'react-native'; - import Animated from 'react-native-reanimated'; -import {AuthContext} from '../../routes/authentication'; -import {MomentType, UserType} from 'src/types'; +import {AuthContext, ProfileContext} from '../../routes/'; +import {MomentType} from 'src/types'; import {defaultMoments, MOMENTS_ENDPOINT} from '../../constants'; import {SCREEN_HEIGHT} from '../../utils'; import TaggsBar from '../taggs/TaggsBar'; @@ -20,8 +19,9 @@ interface ContentProps { const Content: React.FC = ({y, isProfileView}) => { const [profileBodyHeight, setProfileBodyHeight] = useState(0); - const {newMomentsAvailable, updateMoments} = React.useContext(AuthContext); - + const {newMomentsAvailable, updateMoments, user} = isProfileView + ? React.useContext(ProfileContext) + : React.useContext(AuthContext); const [imagesList, setImagesList] = useState([]); const [imagesMap, setImagesMap] = useState>( new Map(), @@ -68,10 +68,10 @@ const Content: React.FC = ({y, isProfileView}) => { setImagesList(data); updateMoments(!newMomentsAvailable); } else { - Alert.alert('Could not load moments!'); + console.log('Could not load moments!'); } } catch (err) { - Alert.alert('Could not load moments!'); + console.log(err); } }; @@ -91,19 +91,18 @@ const Content: React.FC = ({y, isProfileView}) => { - - - {!isProfileView ? ( - + {defaultMoments.map((title, index) => ( - + ))} - ) : ( - - )} ); }; diff --git a/src/components/profile/Moment.tsx b/src/components/profile/Moment.tsx index be7cbfba..1ec5511e 100644 --- a/src/components/profile/Moment.tsx +++ b/src/components/profile/Moment.tsx @@ -15,9 +15,10 @@ import {MomentType} from 'src/types'; interface MomentProps { title: string; images: MomentType[] | undefined; + isProfileView: boolean; } -const Moment: React.FC = ({title, images}) => { +const Moment: React.FC = ({title, images, isProfileView}) => { const navigation = useNavigation(); const navigateToImagePicker = () => { @@ -36,17 +37,23 @@ const Moment: React.FC = ({title, images}) => { }); } }) - .catch((err) => {Alert.alert('Unable to upload moment!');}); + .catch((err) => { + Alert.alert('Unable to upload moment!'); + }); }; return ( {title} - navigateToImagePicker()} - /> + {!isProfileView ? ( + navigateToImagePicker()} + /> + ) : ( + + )} = ({title, images}) => { images.map((imageObj: MomentType) => ( ))} - {(images === undefined || images.length === 0) && ( + {(images === undefined || images.length === 0) && !isProfileView && ( navigateToImagePicker()}> diff --git a/src/components/search/SearchResult.tsx b/src/components/search/SearchResult.tsx index cc960308..04624004 100644 --- a/src/components/search/SearchResult.tsx +++ b/src/components/search/SearchResult.tsx @@ -27,7 +27,7 @@ const SearchResult: React.FC = ({ style, }) => { const navigation = useNavigation(); - const {loadProfile} = useContext(ProfileContext); + const {loadProfile, updateMoments} = useContext(ProfileContext); const [avatarURI, setAvatarURI] = useState(null); const [user, setUser] = useState(NO_USER); useEffect(() => { @@ -100,10 +100,12 @@ const SearchResult: React.FC = ({ recentlySearchedList = [user]; } - //Load user profile and navigate to ProfileView + //Load user profile and set new moments to true, navigate to Profile //Load user profile makes sure that we actually load profile of the user the logged in user want to view + //Set new moments to true makes sure that we download the moment for the user being viewed again. //Not sure if we should make this call before caching the search results ?? loadProfile(user.id, user.username); + updateMoments(true); navigation.navigate('Profile', { isProfileView: true, }); -- cgit v1.2.3-70-g09d2