add a function to reload the user data

This commit is contained in:
Sven Czarnian
2022-11-05 01:26:07 +01:00
parent 1269cb9f6b
commit 2cced49406

View File

@@ -16,28 +16,33 @@ const InitialAuthState: IAuthState = {
const AuthContext = createContext<{
auth: IAuthState;
setAuth: Dispatch<SetStateAction<IAuthState>>;
reloadAuth: () => void;
resetAuth: () => void;
}>({ auth: InitialAuthState, setAuth: () => {}, resetAuth: () => {} });
}>({ auth: InitialAuthState, setAuth: () => {}, reloadAuth: () => {}, resetAuth: () => {} });
export const AuthProvider = ({ children }: { children: any }) => {
const [auth, setAuth] = useState<IAuthState>(InitialAuthState);
const resetAuth = () => setAuth(InitialAuthState);
useEffect(() => {
const reloadAuth = () => {
Auth.user().then((response) => {
if (response.status === BackendReturnStatus.Ok) {
setAuth({ valid: true, user: response.user });
} else {
setAuth(InitialAuthState);
}
})
});
};
const resetAuth = () => setAuth(InitialAuthState);
useEffect(() => {
reloadAuth();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
<>
<AuthContext.Provider value={{ auth, setAuth, resetAuth }}>
<AuthContext.Provider value={{ auth, setAuth, reloadAuth, resetAuth }}>
{children}
</AuthContext.Provider>
</>