gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/auth/auth.store.ts · v0.3.0-alpha2
Source
1 4466347 Mrdn 2y ago import { create } from 'zustand';
2 4466347 Mrdn 2y ago import { subscribeWithSelector } from 'zustand/middleware';
3 4466347 Mrdn 2y ago
4 4466347 Mrdn 2y ago type AdminStateType = {
5 4466347 Mrdn 2y ago isLoggedIn: boolean,
6 4466347 Mrdn 2y ago getAuthToken: () => string | null;
7 4466347 Mrdn 2y ago setAuthToken: (token: string) => void;
8 4466347 Mrdn 2y ago removeAuthToken: () => void;
9 4466347 Mrdn 2y ago }
10 4466347 Mrdn 2y ago
11 4466347 Mrdn 2y ago export const useAuth = create(
12 4466347 Mrdn 2y ago subscribeWithSelector<AdminStateType>((set,) => ({
13 4466347 Mrdn 2y ago isLoggedIn: false,
14 4466347 Mrdn 2y ago getAuthToken: () => {
15 4466347 Mrdn 2y ago return localStorage.getItem('token');
16 4466347 Mrdn 2y ago },
17 4466347 Mrdn 2y ago setAuthToken: (token: string) => {
18 4466347 Mrdn 2y ago localStorage.setItem('token', token);
19 4466347 Mrdn 2y ago set({ isLoggedIn: true });
20 4466347 Mrdn 2y ago },
21 4466347 Mrdn 2y ago
22 4466347 Mrdn 2y ago removeAuthToken: () => {
23 4466347 Mrdn 2y ago localStorage.removeItem('token');
24 4466347 Mrdn 2y ago set({ isLoggedIn: false });
25 4466347 Mrdn 2y ago },
26 4466347 Mrdn 2y ago }))
27 4466347 Mrdn 2y ago )