Newer
Older
import { ReactNode, useEffect, useState } from 'react';
import { useLoaderData } from 'react-router-dom';
import { AuthContext } from '../contexts/AuthContext';
export interface IUser {
id: number;
email: string;
username: string;
type: number;
}
function AuthProvider({ children }: { children: ReactNode }) {

Cross, Liam (UG - Comp Sci & Elec Eng)
committed
const [auth, setAuth] = useState(true);
const [user, setUser] = useState<IUser>();
const data = useLoaderData() as IUser | null;
if (data) {
giveAuth();
setUser(data);

Cross, Liam (UG - Comp Sci & Elec Eng)
committed
} else {
removeAuth();
setUser(undefined);
const giveAuth = () => {
setAuth(true);
};
const removeAuth = () => {
const updateUser = (newUser: IUser) => {
setUser(newUser);
}
<AuthContext.Provider value={{ isAuth: auth, giveAuth, removeAuth, user, updateUser }}>
{children}
</AuthContext.Provider>
);
}
export default AuthProvider;