Kliko/lib/context/AppProvider.tsx
2024-08-08 14:22:35 +02:00

31 lines
No EOL
822 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>;
}