From 96fda980905d0c7a30813c364c6623dda695012f Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Fri, 29 Jan 2021 15:14:26 -0800 Subject: full screen; with button; needs refresh&alignment; --- src/store/actions/userFriends.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/store') diff --git a/src/store/actions/userFriends.ts b/src/store/actions/userFriends.ts index 18ad247c..ae808e9a 100644 --- a/src/store/actions/userFriends.ts +++ b/src/store/actions/userFriends.ts @@ -11,6 +11,7 @@ import { declineFriendRequestService, friendOrUnfriendUser, loadFriends, + unfriendService, } from '../../services'; import {Action, ThunkAction} from '@reduxjs/toolkit'; import { @@ -85,6 +86,39 @@ export const friendUnfriendUser = ( } }; +export const unfriendUser = ( + friend: ProfilePreviewType, // userX's profile preview + screenType: ScreenType, //screentype from content +): ThunkAction, RootState, unknown, Action> => async ( + dispatch, +) => { + try { + const token = await getTokenOrLogout(dispatch); + // Calls method to send post or delete request + const success = await unfriendService(friend.id, token); + if (success) { + let data = 'no_record'; + await dispatch({ + type: updateFriends.type, + payload: { + friend, + isFriend: true, + }, + }); + await dispatch({ + type: userXFriendshipEdited.type, + payload: { + userId: friend.id, + screenType, + data, + }, + }); + } + } catch (error) { + console.log(error); + } +}; + export const acceptFriendRequest = ( requester: ProfilePreviewType, ): ThunkAction, RootState, unknown, Action> => async ( -- cgit v1.2.3-70-g09d2 From 7361492c3d25f71bb444f5f7e35b3113647318f9 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Mon, 1 Feb 2021 22:02:25 -0800 Subject: fullscreen friends + unfriend button --- src/components/profile/Content.tsx | 2 -- src/components/profile/Friends.tsx | 46 ++++++++++++++----------------- src/components/profile/ProfilePreview.tsx | 12 ++++++-- src/screens/profile/FriendsListScreen.tsx | 13 ++++----- src/store/actions/userFriends.ts | 2 +- src/utils/friends.ts | 3 +- 6 files changed, 36 insertions(+), 42 deletions(-) (limited to 'src/store') diff --git a/src/components/profile/Content.tsx b/src/components/profile/Content.tsx index 56ae1e51..28000dd7 100644 --- a/src/components/profile/Content.tsx +++ b/src/components/profile/Content.tsx @@ -25,11 +25,9 @@ import { import { blockUnblockUser, deleteUserMomentsForCategory, - friendUnfriendUser, loadFriendsData, updateMomentCategories, updateUserXFriends, - updateUserXProfileAllScreens, } from '../../store/actions'; import { EMPTY_MOMENTS_LIST, diff --git a/src/components/profile/Friends.tsx b/src/components/profile/Friends.tsx index ec2b6a68..44ce4e63 100644 --- a/src/components/profile/Friends.tsx +++ b/src/components/profile/Friends.tsx @@ -1,27 +1,27 @@ import React from 'react'; -import {View, StyleSheet, Text, ScrollView} from 'react-native'; +import {View, StyleSheet, ScrollView} from 'react-native'; import {ProfilePreviewType, ScreenType} from '../../types'; import {ProfilePreview} from '..'; -import {useNavigation} from '@react-navigation/native'; import {Button} from 'react-native-elements'; -import {SCREEN_HEIGHT, SCREEN_WIDTH} from '../../utils'; +import {normalize, SCREEN_HEIGHT, SCREEN_WIDTH} from '../../utils'; import {TAGG_LIGHT_BLUE} from '../../constants'; import {RootState} from '../../store/rootReducer'; import {useDispatch, useStore} from 'react-redux'; import {handleUnfriend} from '../../utils/friends'; +import {NO_USER} from '../../store/initialStates'; interface FriendsProps { result: Array; screenType: ScreenType; - userXId: string; + userId: string; } -const Friends: React.FC = ({result, screenType, userXId}) => { - const navigation = useNavigation(); - +const Friends: React.FC = ({result, screenType, userId}) => { const state: RootState = useStore().getState(); const dispatch = useDispatch(); + const {user: loggedInUser = NO_USER} = state; + return ( = ({result, screenType, userXId}) => { previewType={'Friend'} screenType={screenType} /> -