Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 45x | // src/contexts/AuthContext.ts
import { createContext } from 'react';
import type { UserProfile } from '../types';
/**
* Defines the possible authentication states for a user session.
* - `Determining...`: The initial state while checking for a token.
* - `SIGNED_OUT`: No user is active.
* - `AUTHENTICATED`: The user has successfully logged in.
*/
export type AuthStatus = 'Determining...' | 'SIGNED_OUT' | 'AUTHENTICATED';
export interface AuthContextType {
userProfile: UserProfile | null;
authStatus: AuthStatus;
isLoading: boolean;
login: (token: string, profileData?: UserProfile) => Promise<void>;
logout: () => void;
updateProfile: (updatedProfileData: Partial<UserProfile>) => void;
}
export const AuthContext = createContext<AuthContextType | undefined>(undefined);
|