30 lines
758 B
TypeScript
30 lines
758 B
TypeScript
import type { AuthData } from '@/data/AuthData';
|
|
import { create } from 'zustand';
|
|
import { createJSONStorage, persist } from 'zustand/middleware';
|
|
|
|
interface AuthStoreProps {
|
|
authData: AuthData | undefined;
|
|
login: (data: AuthData) => void;
|
|
logout: () => void;
|
|
}
|
|
|
|
const storage = sessionStorage;
|
|
export const useAuthStore = create<AuthStoreProps>()(
|
|
persist(
|
|
(set) => ({
|
|
authData: undefined,
|
|
login: (data: AuthData) => {
|
|
set({ authData: data });
|
|
},
|
|
logout: () => {
|
|
localStorage.setItem('autoLogin', 'false');
|
|
localStorage.removeItem('auth-storage');
|
|
set({ authData: undefined });
|
|
}
|
|
}),
|
|
{
|
|
name: 'auth-storage',
|
|
storage: createJSONStorage(() => storage)
|
|
}
|
|
)
|
|
); |