27 lines
772 B
TypeScript
27 lines
772 B
TypeScript
import { create } from 'zustand'
|
|
import { persist } from 'zustand/middleware'
|
|
|
|
interface AuthState {
|
|
accessToken: string | null
|
|
refreshToken: string | null
|
|
username: string | null
|
|
role: string | null
|
|
setTokens: (access: string, refresh: string, username: string, role: string) => void
|
|
clearTokens: () => void
|
|
}
|
|
|
|
export const useAuthStore = create<AuthState>()(
|
|
persist(
|
|
(set) => ({
|
|
accessToken: null,
|
|
refreshToken: null,
|
|
username: null,
|
|
role: null,
|
|
setTokens: (access, refresh, username, role) =>
|
|
set({ accessToken: access, refreshToken: refresh, username, role }),
|
|
clearTokens: () =>
|
|
set({ accessToken: null, refreshToken: null, username: null, role: null }),
|
|
}),
|
|
{ name: 'fleet-auth' }
|
|
)
|
|
)
|