feat: add stores

This commit is contained in:
Vladislav Syrochkin 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,18 @@
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
type AuthState = {
accessToken: string | null;
setAccessToken: (token: string | null) => void;
};
export const useAuthStore = create<AuthState>()(
devtools((set) => ({
accessToken: null,
setAccessToken: (token) => set({ accessToken: token }),
}))
);
export const useAuthSelector = () => {
return useAuthStore((state) => state.accessToken);
};

View File

@ -5,13 +5,12 @@ import { User } from '../types/user';
const userInfo = localStorage.getItem('userInfo'); const userInfo = localStorage.getItem('userInfo');
type UserStoreState = { type UserStoreState = {
user: User; user: User | null;
loading: boolean; loading: boolean;
}; };
type UserStoreActions = { type UserStoreActions = {
setUser: (user: User) => void; setUser: (user: User | null) => void;
removeUser: () => void;
}; };
type UserStore = UserStoreState & UserStoreActions; type UserStore = UserStoreState & UserStoreActions;
@ -22,8 +21,7 @@ export const useUserStore = create<UserStore>()(
(set, get) => ({ (set, get) => ({
user: userInfo != null ? JSON.parse(userInfo) : ({} as User), user: userInfo != null ? JSON.parse(userInfo) : ({} as User),
loading: false, loading: false,
setUser: (user: User) => set({ user }), setUser: (user: User | null) => set({ user }),
removeUser: () => set({ user: {} as User }),
}), }),
{ name: 'userInfo' } { name: 'userInfo' }
) )