import { atom, getDefaultStore } from "jotai"; interface UserState { id: string; username: string; avatar: string; token: string; phone: string; } export const userStateAtom = atom({ id: '', username: '', avatar: '', token: '', phone: '', }) export const setUserStateAtom = atom(null, (get, set, user: UserState) => { set(userStateAtom, user); }) export const clearUserStateAtom = atom(null, (get, set) => { set(userStateAtom, { id: '', username: '', avatar: '', token: '', phone: '', }); }) export const getUserStateAtom = atom((get) => { return get(userStateAtom); }) export const updateUserStateAtom = atom(null, (get, set, user: Partial) => { set(userStateAtom, { ...get(userStateAtom), ...user }); }) export const logout = () => { const store = getDefaultStore() store.set(clearUserStateAtom) localStorage.removeItem('token') }