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