aboutsummaryrefslogtreecommitdiff
path: root/src/routes/authentication/AuthProvider.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/authentication/AuthProvider.tsx')
-rw-r--r--src/routes/authentication/AuthProvider.tsx42
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>