Skip to content
Snippets Groups Projects
AuthProvider.tsx 969 B
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 }) {
  const [auth, setAuth] = useState(true);
  const [user, setUser] = useState<IUser>();
  const data = useLoaderData() as IUser | null;

  useEffect(() => {
    if (data) {
      giveAuth();
      setUser(data);
  const giveAuth = () => {
    setAuth(true);
  };

  const removeAuth = () => {
  const updateUser = (newUser: IUser) => {
    setUser(newUser);
  }

    <AuthContext.Provider value={{ isAuth: auth, giveAuth, removeAuth, user, updateUser }}>
    </AuthContext.Provider>
  );
}

export default AuthProvider;