nestjs_boilerpalte/client/app/hooks/useAuth.ts
2024-12-13 09:36:41 +01:00

34 lines
667 B
TypeScript

import { create } from "zustand";
import { persist } from "zustand/middleware";
interface User {
id: string;
email: string;
firstName: string;
lastName: string;
role: string;
}
interface AuthStore {
token: string | null;
user: User | null;
setToken: (token: string | null) => void;
setUser: (user: User | null) => void;
logout: () => void;
}
export const useAuth = create<AuthStore>()(
persist(
(set) => ({
token: null,
user: null,
setToken: (token) => set({ token }),
setUser: (user) => set({ user }),
logout: () => set({ token: null, user: null }),
}),
{
name: "auth-storage",
},
),
);