import { create } from 'zustand'; import { User } from '@/lib/api'; interface AuthState { user: User | null; token: string | null; isAuthenticated: boolean; isLoading: boolean; setUser: (user: User | null) => void; setToken: (token: string) => void; setLoading: (loading: boolean) => void; logout: () => void; } export const useAuthStore = create((set) => ({ user: null, token: typeof window !== 'undefined' ? localStorage.getItem('access_token') : null, isAuthenticated: typeof window !== 'undefined' ? !!localStorage.getItem('access_token') : false, isLoading: typeof window !== 'undefined' ? !!localStorage.getItem('access_token') : false, setUser: (user) => set({ user, isAuthenticated: !!user, isLoading: false, }), setToken: (token: string) => { localStorage.setItem('access_token', token); set({ token, isAuthenticated: true }); }, setLoading: (loading) => set({ isLoading: loading }), logout: () => { localStorage.removeItem('access_token'); localStorage.removeItem('user'); set({ user: null, token: null, isAuthenticated: false }); }, }));