import { create } from 'zustand' import { persist } from 'zustand/middleware' import type { User } from '../types' interface AuthState { token: string | null user: User | null isAuthenticated: boolean // Actions setAuth: (token: string, displayName: string, username: string) => void clearAuth: () => void updateUser: (user: Partial) => void } export const useAuthStore = create()( persist( (set) => ({ token: null, user: null, isAuthenticated: false, setAuth: (token: string, displayName: string, username: string) => set({ token, user: { username, display_name: displayName }, isAuthenticated: true, }), clearAuth: () => set({ token: null, user: null, isAuthenticated: false, }), updateUser: (userData: Partial) => set((state) => ({ user: state.user ? { ...state.user, ...userData } : null, })), }), { name: 'auth-storage', partialize: (state) => ({ token: state.token, user: state.user, isAuthenticated: state.isAuthenticated, }), } ) )