import { create } from 'zustand' import { persist } from 'zustand/middleware' import type { User, Company } from '@/types' interface UserState { user: User | null token: string | null currentCompany: Company | null isLoggedIn: boolean // Actions setUser: (user: User | null) => void setToken: (token: string | null) => void setCurrentCompany: (company: Company | null) => void login: (user: User, token: string) => void logout: () => void } export const useUserStore = create()( persist( (set) => ({ user: null, token: null, currentCompany: null, isLoggedIn: false, setUser: (user) => set({ user }), setToken: (token) => set({ token }), setCurrentCompany: (currentCompany) => set({ currentCompany }), login: (user, token) => { localStorage.setItem('token', token) set({ user, token, isLoggedIn: true }) }, logout: () => { localStorage.removeItem('token') set({ user: null, token: null, currentCompany: null, isLoggedIn: false }) }, }), { name: 'user-storage', partialize: (state) => ({ user: state.user, token: state.token, currentCompany: state.currentCompany, isLoggedIn: state.isLoggedIn, }), } ) )