feat: 前端添加user状态管理
This commit is contained in:
27
apps/frontend/store/useUserStore.ts
Normal file
27
apps/frontend/store/useUserStore.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
// store/useUserStore.ts
|
||||
import { User } from '@/lib/types/user';
|
||||
import { create } from 'zustand';
|
||||
import { devtools } from 'zustand/middleware';
|
||||
|
||||
interface UserState {
|
||||
user: User | null;
|
||||
isLoading: boolean;
|
||||
initialized: boolean;
|
||||
|
||||
// Actions
|
||||
setInitialized: () => void;
|
||||
setUser: (user: User | null) => void;
|
||||
clearUser: () => void;
|
||||
}
|
||||
|
||||
export const useUserStore = create<UserState>()(
|
||||
devtools((set, get) => ({
|
||||
user: null,
|
||||
isLoading: false,
|
||||
initialized: false,
|
||||
|
||||
setInitialized: () => set({ initialized: true }),
|
||||
setUser: (user) => set({ user, isLoading: false }),
|
||||
clearUser: () => set({ user: null }),
|
||||
}))
|
||||
);
|
||||
Reference in New Issue
Block a user