From 3362da273a4ffcc7d6362278bcb9fd919deda2b9 Mon Sep 17 00:00:00 2001 From: Ashm Walia <40498934+ashmgarv@users.noreply.github.com> Date: Tue, 10 Nov 2020 16:28:15 -0800 Subject: [TMA - 388] Block Users (Frontend) (#115) * initial * Final * sc * sc * sall change * Remove follow button when blocked * Small change * small changes again --- src/routes/authentication/AuthProvider.tsx | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/routes/authentication') diff --git a/src/routes/authentication/AuthProvider.tsx b/src/routes/authentication/AuthProvider.tsx index 383b4d5b..7da47b71 100644 --- a/src/routes/authentication/AuthProvider.tsx +++ b/src/routes/authentication/AuthProvider.tsx @@ -10,6 +10,7 @@ import { loadProfileInfo, loadRecentlySearchedUsers, loadSocialPosts, + loadBlockedUsers, } from '../../services'; import { MomentType, @@ -36,6 +37,9 @@ interface AuthContextProps { following: ProfilePreviewType[]; followersNeedUpdate: boolean; updateFollowers: (value: boolean) => void; + blockedUsers: ProfilePreviewType[]; + blockedUsersNeedUpdate: boolean; + updateBlockedUsers: (value: boolean) => void; } const NO_USER: UserType = { @@ -72,6 +76,9 @@ export const AuthContext = createContext({ following: [], followersNeedUpdate: true, updateFollowers: () => {}, + blockedUsers: [], + blockedUsersNeedUpdate: true, + updateBlockedUsers: () => {}, }); /** @@ -97,6 +104,12 @@ const AuthProvider: React.FC = ({children}) => { const [followers, setFollowers] = useState>([]); const [following, setFollowing] = useState>([]); const [followersNeedUpdate, setFollowersNeedUpdate] = useState(true); + const [blockedUsers, setBlockedUsers] = useState>( + [], + ); + const [blockedUsersNeedUpdate, setBlockedUsersNeedUpdate] = useState( + true, + ); const {userId} = user; useEffect(() => { @@ -193,6 +206,30 @@ const AuthProvider: React.FC = ({children}) => { } }, [socialAccounts, socialsNeedUpdate, userId]); + useEffect(() => { + const loadNewBlockedUsers = async () => { + try { + const token = await AsyncStorage.getItem('token'); + if (!token) { + setUser(NO_USER); + return; + } + loadBlockedUsers(userId, token, setBlockedUsers); + setBlockedUsersNeedUpdate(false); + } catch (error) { + console.log(error); + } + }; + if (blockedUsersNeedUpdate && userId) { + loadNewBlockedUsers(); + } + }, [ + setBlockedUsersNeedUpdate, + blockedUsersNeedUpdate, + userId, + setBlockedUsers, + ]); + return ( { followers, following, followersNeedUpdate, + blockedUsers, + blockedUsersNeedUpdate, login: (id, username) => { setUser({...user, userId: id, username}); }, @@ -232,6 +271,9 @@ const AuthProvider: React.FC = ({children}) => { updateFollowers: (value) => { setFollowersNeedUpdate(value); }, + updateBlockedUsers: (value) => { + setBlockedUsersNeedUpdate(value); + }, }}> {children} -- cgit v1.2.3-70-g09d2