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