feat: add user store

This commit is contained in:
Vladislav Syrochkin 2025-06-09 17:47:45 +05:00
parent 8122f1878a
commit d7a5109d8e

36
client/src/store/user.ts Normal file
View File

@ -0,0 +1,36 @@
import { create } from 'zustand';
import { devtools, persist } from 'zustand/middleware';
import { User } from '../types/user';
const userInfo = localStorage.getItem('userInfo');
type UserStoreState = {
user: User;
loading: boolean;
};
type UserStoreActions = {
setUser: (user: User) => void;
};
type UserStore = UserStoreState & UserStoreActions;
export const useUserStore = create<UserStore>()(
devtools(
persist(
(set, get) => ({
user: userInfo != null ? JSON.parse(userInfo) : ({} as User),
loading: false,
setUser: (user: User) => set({ user }),
}),
{ name: 'userInfo' }
)
)
);
export const useUserSelector = () => {
return useUserStore((state) => state.user);
};
export const useSetUserSelector = () => {
return useUserStore((state) => state.setUser);
};