import { create } from 'zustand'; import { User } from '../types'; import * as authService from '../services/auth'; interface AuthState { user: User | null; isLoading: boolean; isAuthenticated: boolean; login: (username: string, password: string) => Promise; logout: () => Promise; checkAuth: () => Promise; } export const useAuthStore = create((set) => ({ user: null, isLoading: true, isAuthenticated: false, login: async (username: string, password: string) => { const { user } = await authService.login(username, password); set({ user, isAuthenticated: true }); }, logout: async () => { await authService.logout(); set({ user: null, isAuthenticated: false }); }, checkAuth: async () => { set({ isLoading: true }); const user = await authService.checkAuth() || await authService.getStoredUser(); set({ user, isAuthenticated: !!user, isLoading: false }); }, }));