feat: add stores

This commit is contained in:
2025-06-16 12:32:45 +05:00
parent 5def1a9bb1
commit 79cb434ebd
2 changed files with 21 additions and 5 deletions

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 | null;
loading: boolean;
};
type UserStoreActions = {
setUser: (user: User | null) => 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 | null) => set({ user }),
}),
{ name: 'userInfo' }
)
)
);
export const useUserSelector = () => {
return useUserStore((state) => state.user);
};
export const useSetUserSelector = () => {
return useUserStore((state) => state.setUser);
};