import React, { createContext, useContext, useState, ReactNode } from 'react'; import { User, UserRole, users } from '@/data/dummyData'; interface AuthContextType { user: User | null; login: (email: string, password: string) => boolean; logout: () => void; isAuthenticated: boolean; } const AuthContext = createContext(undefined); export function AuthProvider({ children }: { children: ReactNode }) { const [user, setUser] = useState(() => { const saved = localStorage.getItem('shaphari_user'); return saved ? JSON.parse(saved) : null; }); const login = (email: string, password: string): boolean => { // Dummy authentication - in production, this would validate against a backend const foundUser = users.find(u => u.email.toLowerCase() === email.toLowerCase()); if (foundUser) { setUser(foundUser); localStorage.setItem('shaphari_user', JSON.stringify(foundUser)); return true; } return false; }; const logout = () => { setUser(null); localStorage.removeItem('shaphari_user'); }; return ( {children} ); } export function useAuth() { const context = useContext(AuthContext); if (context === undefined) { throw new Error('useAuth must be used within an AuthProvider'); } return context; }