import { create } from 'zustand'; 
 | 
import { StateCreator } from 'zustand'; 
 | 
  
 | 
interface UserInfo { 
 | 
  id: number; 
 | 
  nickname: string; 
 | 
  accountName: string; 
 | 
} 
 | 
  
 | 
interface UserState { 
 | 
  userInfo: UserInfo | null; 
 | 
  token: string | null; 
 | 
  setUserInfo: (info: UserInfo | null) => void; 
 | 
  setToken: (token: string | null) => void; 
 | 
  clearUserInfo: () => void; 
 | 
} 
 | 
  
 | 
const createUserStore: StateCreator<UserState> = (set) => ({ 
 | 
  userInfo: null, 
 | 
  token: typeof window !== 'undefined' ? localStorage.getItem('token') : null, 
 | 
  setUserInfo: (info: UserInfo | null) => set({ userInfo: info }), 
 | 
  setToken: (token: string | null) => { 
 | 
    if (token) { 
 | 
      localStorage.setItem('token', token); 
 | 
    } else { 
 | 
      localStorage.removeItem('token'); 
 | 
    } 
 | 
    set({ token }); 
 | 
  }, 
 | 
  clearUserInfo: () => { 
 | 
    localStorage.removeItem('token'); 
 | 
    set({ userInfo: null, token: null }); 
 | 
  }, 
 | 
}); 
 | 
  
 | 
export const useUserStore = create(createUserStore);  
 |