From 007dcc5c836f1b368042c530d22f5421610efb7c Mon Sep 17 00:00:00 2001
From: Ivan Chen <ivan@thetaggid.com>
Date: Thu, 14 Jan 2021 14:06:07 -0500
Subject: created navigation to comment from notification (#184)

---
 src/screens/main/NotificationsScreen.tsx | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'src/screens/main/NotificationsScreen.tsx')

diff --git a/src/screens/main/NotificationsScreen.tsx b/src/screens/main/NotificationsScreen.tsx
index d6d47b02..8aa47299 100644
--- a/src/screens/main/NotificationsScreen.tsx
+++ b/src/screens/main/NotificationsScreen.tsx
@@ -17,6 +17,7 @@ import {NotificationType, ScreenType} from '../../types';
 import {getDateAge, SCREEN_HEIGHT} from '../../utils';
 
 const NotificationsScreen: React.FC = () => {
+  const {user: loggedInUser} = useSelector((state: RootState) => state.user);
   const [refreshing, setRefreshing] = useState(false);
   // used for figuring out which ones are unread
   const [lastViewed, setLastViewed] = useState<moment.Moment | undefined>(
@@ -95,7 +96,13 @@ const NotificationsScreen: React.FC = () => {
   }, [lastViewed, notifications]);
 
   const renderNotification = ({item}: {item: NotificationType}) => (
-    <Notification item={item} screenType={ScreenType.Notifications} />
+    <Notification
+      item={item}
+      userXId={
+        item.actor.id === loggedInUser.userId ? undefined : item.actor.id
+      }
+      screenType={ScreenType.Notifications}
+    />
   );
 
   const renderSectionHeader = ({section: {title, data}}) =>
-- 
cgit v1.2.3-70-g09d2


From a296cf6e26ad57f951487c94009cb1693c281c1f Mon Sep 17 00:00:00 2001
From: Ivan Chen <ivan@tagg.id>
Date: Fri, 15 Jan 2021 17:16:20 -0500
Subject: styling change

---
 src/components/notifications/Notification.tsx | 2 +-
 src/screens/main/NotificationsScreen.tsx      | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

(limited to 'src/screens/main/NotificationsScreen.tsx')

diff --git a/src/components/notifications/Notification.tsx b/src/components/notifications/Notification.tsx
index 761ea950..62aa0a0b 100644
--- a/src/components/notifications/Notification.tsx
+++ b/src/components/notifications/Notification.tsx
@@ -149,7 +149,7 @@ const styles = StyleSheet.create({
     alignItems: 'center',
   },
   avatarContainer: {
-    marginLeft: '5%',
+    marginLeft: '8%',
     flex: 1,
     justifyContent: 'center',
   },
diff --git a/src/screens/main/NotificationsScreen.tsx b/src/screens/main/NotificationsScreen.tsx
index 8aa47299..ba52d988 100644
--- a/src/screens/main/NotificationsScreen.tsx
+++ b/src/screens/main/NotificationsScreen.tsx
@@ -134,7 +134,7 @@ const NotificationsScreen: React.FC = () => {
 
 const styles = StyleSheet.create({
   header: {
-    marginLeft: '5%',
+    marginLeft: '8%',
     marginTop: '5%',
     alignSelf: 'flex-start',
     flexDirection: 'column',
@@ -156,10 +156,10 @@ const styles = StyleSheet.create({
     backgroundColor: '#f3f2f2',
   },
   sectionHeader: {
-    marginLeft: '5%',
+    marginLeft: '8%',
     marginTop: '5%',
     marginBottom: '2%',
-    fontSize: 16,
+    fontSize: 15,
   },
 });
 
-- 
cgit v1.2.3-70-g09d2


From b138c10822e399c84e54c35e2775e4eb53da1567 Mon Sep 17 00:00:00 2001
From: Ivan Chen <ivan@tagg.id>
Date: Fri, 15 Jan 2021 17:53:05 -0500
Subject: fixed some bugs

---
 src/components/notifications/Notification.tsx | 6 ++----
 src/screens/main/NotificationsScreen.tsx      | 8 +-------
 src/services/MomentServices.ts                | 4 ++--
 3 files changed, 5 insertions(+), 13 deletions(-)

(limited to 'src/screens/main/NotificationsScreen.tsx')

diff --git a/src/components/notifications/Notification.tsx b/src/components/notifications/Notification.tsx
index 62aa0a0b..5efa8b98 100644
--- a/src/components/notifications/Notification.tsx
+++ b/src/components/notifications/Notification.tsx
@@ -15,7 +15,6 @@ import {
 
 interface NotificationProps {
   item: NotificationType;
-  userXId: string | undefined;
   screenType: ScreenType;
 }
 
@@ -28,7 +27,6 @@ const Notification: React.FC<NotificationProps> = (props) => {
       notification_object,
       unread,
     },
-    userXId,
     screenType,
   } = props;
   const navigation = useNavigation();
@@ -62,7 +60,7 @@ const Notification: React.FC<NotificationProps> = (props) => {
     let mounted = true;
     const loadMomentImage = async (moment_id: string) => {
       const response = await loadMomentThumbnail(moment_id);
-      if (mounted) {
+      if (mounted && response) {
         setMomentURI(response);
       }
     };
@@ -97,7 +95,7 @@ const Notification: React.FC<NotificationProps> = (props) => {
         if (moment) {
           navigation.push('IndividualMoment', {
             moment,
-            userXId,
+            userXId: undefined, // we're only viewing our own moment here
             screenType,
           });
           setTimeout(() => {
diff --git a/src/screens/main/NotificationsScreen.tsx b/src/screens/main/NotificationsScreen.tsx
index ba52d988..da1e7a2b 100644
--- a/src/screens/main/NotificationsScreen.tsx
+++ b/src/screens/main/NotificationsScreen.tsx
@@ -96,13 +96,7 @@ const NotificationsScreen: React.FC = () => {
   }, [lastViewed, notifications]);
 
   const renderNotification = ({item}: {item: NotificationType}) => (
-    <Notification
-      item={item}
-      userXId={
-        item.actor.id === loggedInUser.userId ? undefined : item.actor.id
-      }
-      screenType={ScreenType.Notifications}
-    />
+    <Notification item={item} screenType={ScreenType.Notifications} />
   );
 
   const renderSectionHeader = ({section: {title, data}}) =>
diff --git a/src/services/MomentServices.ts b/src/services/MomentServices.ts
index 6d16de96..514b674c 100644
--- a/src/services/MomentServices.ts
+++ b/src/services/MomentServices.ts
@@ -209,10 +209,10 @@ export const loadMomentThumbnail = async (momentId: string) => {
     if (status === 200) {
       return response.path();
     } else {
-      return '';
+      return undefined;
     }
   } catch (error) {
     console.log(error);
-    return '';
+    return undefined;
   }
 };
-- 
cgit v1.2.3-70-g09d2


From 33b3bff63969e9da23722e8a70f60c5b94fe3cfb Mon Sep 17 00:00:00 2001
From: Ivan Chen <ivan@tagg.id>
Date: Fri, 15 Jan 2021 20:53:49 -0500
Subject: not fetching data in child component

---
 src/components/notifications/Notification.tsx | 10 ++++------
 src/screens/main/NotificationsScreen.tsx      |  9 ++++++++-
 2 files changed, 12 insertions(+), 7 deletions(-)

(limited to 'src/screens/main/NotificationsScreen.tsx')

diff --git a/src/components/notifications/Notification.tsx b/src/components/notifications/Notification.tsx
index 301a3c90..94937053 100644
--- a/src/components/notifications/Notification.tsx
+++ b/src/components/notifications/Notification.tsx
@@ -2,15 +2,16 @@ import {useNavigation} from '@react-navigation/native';
 import React, {useEffect, useState} from 'react';
 import {Image, StyleSheet, Text, View} from 'react-native';
 import {TouchableWithoutFeedback} from 'react-native-gesture-handler';
-import {useDispatch, useSelector, useStore} from 'react-redux';
+import {useDispatch, useStore} from 'react-redux';
 import {loadAvatar, loadMomentThumbnail} from '../../services';
 import {RootState} from '../../store/rootReducer';
-import {NotificationType, ScreenType} from '../../types';
+import {MomentType, NotificationType, ScreenType} from '../../types';
 import {fetchUserX, SCREEN_HEIGHT, userXInStore} from '../../utils';
 
 interface NotificationProps {
   item: NotificationType;
   screenType: ScreenType;
+  moments: MomentType[];
 }
 
 const Notification: React.FC<NotificationProps> = (props) => {
@@ -23,14 +24,11 @@ const Notification: React.FC<NotificationProps> = (props) => {
       unread,
     },
     screenType,
+    moments: loggedInUserMoments,
   } = props;
   const navigation = useNavigation();
   const state: RootState = useStore().getState();
   const dispatch = useDispatch();
-  const {moments: loggedInUserMoments} =
-    notification_type === 'CMT'
-      ? useSelector((state: RootState) => state.moments)
-      : {moments: undefined};
 
   const [avatarURI, setAvatarURI] = useState<string | undefined>(undefined);
   const [momentURI, setMomentURI] = useState<string | undefined>(undefined);
diff --git a/src/screens/main/NotificationsScreen.tsx b/src/screens/main/NotificationsScreen.tsx
index da1e7a2b..219a0be9 100644
--- a/src/screens/main/NotificationsScreen.tsx
+++ b/src/screens/main/NotificationsScreen.tsx
@@ -18,6 +18,9 @@ import {getDateAge, SCREEN_HEIGHT} from '../../utils';
 
 const NotificationsScreen: React.FC = () => {
   const {user: loggedInUser} = useSelector((state: RootState) => state.user);
+  const {moments: loggedInUserMoments} = useSelector(
+    (state: RootState) => state.moments,
+  );
   const [refreshing, setRefreshing] = useState(false);
   // used for figuring out which ones are unread
   const [lastViewed, setLastViewed] = useState<moment.Moment | undefined>(
@@ -96,7 +99,11 @@ const NotificationsScreen: React.FC = () => {
   }, [lastViewed, notifications]);
 
   const renderNotification = ({item}: {item: NotificationType}) => (
-    <Notification item={item} screenType={ScreenType.Notifications} />
+    <Notification
+      item={item}
+      screenType={ScreenType.Notifications}
+      moments={item.notification_type === 'CMT' ? loggedInUserMoments : []}
+    />
   );
 
   const renderSectionHeader = ({section: {title, data}}) =>
-- 
cgit v1.2.3-70-g09d2

