Kliko/context/AppProvider.tsx
2024-08-07 20:47:52 +02:00

31 lines
No EOL
762 B
TypeScript

import {createContext, PropsWithChildren, useContext} from "react";
import {useStorageState} from '@/context/UseStorageState';
type TokenType = {
token: string | null;
setToken: (token: string | null) => void;
isLoading: boolean;
}
const TokenContext = createContext<TokenType>({
setToken: () => {
},
token: null,
isLoading: true,
});
export const useToken = () => useContext(TokenContext);
export function AppProvider({ children }: PropsWithChildren) {
const [[isLoading, token], setSession] = useStorageState('appToken');
const tokenContext: TokenType = {
token,
setToken: (token) => {
setSession(token);
},
isLoading,
};
return <TokenContext.Provider value={tokenContext}>{children}</TokenContext.Provider>;
}