| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { atom, getDefaultStore } from "jotai";
- interface UserState {
- id: string;
- username: string;
- avatar: string;
- token: string;
- phone: string;
- }
- export const userStateAtom = atom<UserState>({
- 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<UserState>) => {
- set(userStateAtom, { ...get(userStateAtom), ...user });
- })
- export const logout = () => {
- const store = getDefaultStore()
- store.set(clearUserStateAtom)
- localStorage.removeItem('token')
- }
|