Files
TJWaterFrontend_Refine/src/store/authStore.ts
T

29 lines
808 B
TypeScript

import { create } from "zustand";
interface AuthState {
accessToken: string | null;
sessionExpired: boolean;
sessionExpiryReason: "refresh_failed" | "session_max_age" | "unauthorized" | null;
setAccessToken: (token: string | null) => void;
markSessionExpired: (
reason: Exclude<AuthState["sessionExpiryReason"], null>,
) => void;
clearSessionExpired: () => void;
}
export const useAuthStore = create<AuthState>((set) => ({
accessToken: null,
sessionExpired: false,
sessionExpiryReason: null,
setAccessToken: (token) => set({ accessToken: token }),
markSessionExpired: (reason) => set({
accessToken: null,
sessionExpired: true,
sessionExpiryReason: reason,
}),
clearSessionExpired: () => set({
sessionExpired: false,
sessionExpiryReason: null,
}),
}));