작업중
This commit is contained in:
@@ -1,26 +1,33 @@
|
||||
import { lens } from '@dhmk/zustand-lens';
|
||||
import { SetStateAction } from 'react';
|
||||
import { UserInfo } from './types';
|
||||
import { UserFavorite, UserInfo } from './types';
|
||||
import { StorageKeys } from '@/shared/constants/local-storage';
|
||||
|
||||
export interface UserInfoState {
|
||||
userInfo: UserInfo;
|
||||
setUserInfo: (update: SetStateAction<Partial<UserInfo>>) => void;
|
||||
resetUserInfo: () => void;
|
||||
userFavorite: Array<UserFavorite>;
|
||||
setUserFavorite: (update: SetStateAction<Array<UserFavorite>>) => void;
|
||||
};
|
||||
|
||||
const initialState = {
|
||||
const initialUserInfoState = {
|
||||
userInfo: {} as UserInfo,
|
||||
userFavorite: [] as Array<UserFavorite>
|
||||
} as UserInfoState;
|
||||
|
||||
export const createUserInfoStore = lens<UserInfoState>((set, get) => ({
|
||||
...initialState,
|
||||
...initialUserInfoState,
|
||||
setUserInfo: (update) => {
|
||||
set((state: UserInfoState) => {
|
||||
const newUserInfo = typeof update === 'function' ? update(state.userInfo) : update;
|
||||
const newUserInfo = (typeof update === 'function')
|
||||
? update(state.userInfo): update;
|
||||
return {
|
||||
...state,
|
||||
userInfo: { ...state.userInfo, ...newUserInfo },
|
||||
userInfo: {
|
||||
...state.userInfo,
|
||||
...newUserInfo
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
@@ -34,6 +41,19 @@ export const createUserInfoStore = lens<UserInfoState>((set, get) => ({
|
||||
window.localStorage.removeItem(StorageKeys.Usrid);
|
||||
// window.localStorage.removeItem(StorageKeys.ClientAddressIP);
|
||||
// window.localStorage.removeItem(StorageKeys.Requires2FA);
|
||||
set(initialState);
|
||||
set(initialUserInfoState);
|
||||
},
|
||||
setUserFavorite: (update) => {
|
||||
set((state: UserInfoState) => {
|
||||
const newUserFavorite = (typeof update === 'function')
|
||||
? update(state.userFavorite): update;
|
||||
return {
|
||||
...state,
|
||||
userFavorite: {
|
||||
...state.userFavorite,
|
||||
...newUserFavorite
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
}));
|
||||
|
||||
@@ -28,6 +28,11 @@ export interface LoginResponse {
|
||||
requires2FA?: boolean;
|
||||
};
|
||||
|
||||
export interface UserFavorite {
|
||||
title?: string;
|
||||
img?: string;
|
||||
path?: string;
|
||||
};
|
||||
export interface UserInfo extends LoginResponse {
|
||||
status: boolean;
|
||||
error?: ErrorResponse;
|
||||
|
||||
Reference in New Issue
Block a user