gitscope
← marzneshin / v0.3.0-alpha3 / dashboard/src/features/auth/auth.store.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/auth/auth.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 useAuth = 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)