diff options
Diffstat (limited to 'src/routes/authentication/AuthProvider.tsx')
-rw-r--r-- | src/routes/authentication/AuthProvider.tsx | 42 |
1 files changed, 42 insertions, 0 deletions
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<AuthContextProps>({ following: [], followersNeedUpdate: true, updateFollowers: () => {}, + blockedUsers: [], + blockedUsersNeedUpdate: true, + updateBlockedUsers: () => {}, }); /** @@ -97,6 +104,12 @@ const AuthProvider: React.FC = ({children}) => { const [followers, setFollowers] = useState<Array<ProfilePreviewType>>([]); const [following, setFollowing] = useState<Array<ProfilePreviewType>>([]); const [followersNeedUpdate, setFollowersNeedUpdate] = useState<boolean>(true); + const [blockedUsers, setBlockedUsers] = useState<Array<ProfilePreviewType>>( + [], + ); + const [blockedUsersNeedUpdate, setBlockedUsersNeedUpdate] = useState<boolean>( + 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 ( <AuthContext.Provider value={{ @@ -206,6 +243,8 @@ const AuthProvider: React.FC = ({children}) => { 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} </AuthContext.Provider> |