1import { router } from 'expo-router'; 2import React from 'react'; 3import { useStorageState } from './useStorageState'; 4 5const AuthContext = React.createContext(null); 6 7// This hook can be used to access the user info. 8export function useSession() { 9 const value = React.useContext(AuthContext); 10 if (!value && process.env.NODE_ENV !== 'production') { 11 throw new Error('`useSession` must be wrapped in a <SessionProvider />'); 12 } 13 14 return value; 15} 16 17export function SessionProvider(props) { 18 const [[isLoading, session], setSession] = useStorageState('session'); 19 20 return ( 21 <AuthContext.Provider 22 value={{ 23 signIn: () => { 24 setSession('xxx'); 25 router.replace('/'); 26 }, 27 signOut: () => { 28 setSession(null); 29 }, 30 user: session, 31 isLoading, 32 }}> 33 {props.children} 34 </AuthContext.Provider> 35 ); 36} 37