import React from "react"; import { useStorageState } from "./useStorageState"; const AuthContext = React.createContext<{ signIn: () => void; signOut: () => void; session?: string | null; isLoading: boolean; }>({ signIn: () => null, signOut: () => null, session: null, isLoading: false, }); // This hook can be used to access the user info. export function useSession() { const value = React.useContext(AuthContext); if (process.env.NODE_ENV !== "production") { if (!value) { throw new Error("useSession must be wrapped in a "); } } return value; } export function SessionProvider(props: React.PropsWithChildren) { const [[isLoading, session], setSession] = useStorageState("session"); return ( { // Add your login logic here // For example purposes, we'll just set a fake session in storage //This likely would be a JWT token or other session data setSession("John Doe"); }, signOut: () => { setSession(null); }, session, isLoading, }} > {props.children} ); }