VORKOUT-6 #11
18
client/src/store/authStore.ts
Normal file
18
client/src/store/authStore.ts
Normal 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);
|
||||||
|
};
|
@ -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' }
|
||||||
)
|
)
|
Loading…
Reference in New Issue
Block a user