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');
|
||||
|
||||
type UserStoreState = {
|
||||
user: User;
|
||||
user: User | null;
|
||||
loading: boolean;
|
||||
};
|
||||
|
||||
type UserStoreActions = {
|
||||
setUser: (user: User) => void;
|
||||
removeUser: () => void;
|
||||
setUser: (user: User | null) => void;
|
||||
};
|
||||
|
||||
type UserStore = UserStoreState & UserStoreActions;
|
||||
@ -22,8 +21,7 @@ export const useUserStore = create<UserStore>()(
|
||||
(set, get) => ({
|
||||
user: userInfo != null ? JSON.parse(userInfo) : ({} as User),
|
||||
loading: false,
|
||||
setUser: (user: User) => set({ user }),
|
||||
removeUser: () => set({ user: {} as User }),
|
||||
setUser: (user: User | null) => set({ user }),
|
||||
}),
|
||||
{ name: 'userInfo' }
|
||||
)
|
Loading…
Reference in New Issue
Block a user