1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-24 12:26:40 +07:00
vault-frontend/src/utils/providers/AuthProvider.tsx
Fedor Katurov a26e4168fd fix eslint
2023-10-30 21:49:10 +06:00

34 lines
1 KiB
TypeScript

import { createContext, FC, useContext } from 'react';
import { observer } from 'mobx-react-lite';
import { EMPTY_USER } from '~/constants/auth';
import { useAuth } from '~/hooks/auth/useAuth';
import { useOauthEventListeners } from '~/hooks/auth/useOauthEventListeners';
import { useRestorePasswordRedirect } from '~/hooks/auth/useRestorePasswordRedirect';
import { useSessionCookie } from '~/hooks/auth/useSessionCookie';
interface AuthProviderContextType extends ReturnType<typeof useAuth> {}
const AuthContext = createContext<AuthProviderContextType>({
user: EMPTY_USER,
isUser: false,
isTester: false,
setIsTester: (isTester) => isTester,
logout: () => {},
login: async () => EMPTY_USER,
setToken: () => {},
fetched: false,
});
export const AuthProvider: FC = observer(({ children }) => {
const value = useAuth();
useOauthEventListeners();
useRestorePasswordRedirect();
useSessionCookie();
return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;
});
export const useAuthProvider = () => useContext(AuthContext);