29 lines
809 B
TypeScript
29 lines
809 B
TypeScript
import { create } from "zustand";
|
|
import { ErrorDetails } from "../api-types";
|
|
|
|
export interface ErrorWithLabel {
|
|
text: string;
|
|
details?: ErrorDetails;
|
|
}
|
|
|
|
export const useErrorStore = create<{
|
|
alert: ErrorWithLabel | null;
|
|
setAlert: (alert: ErrorWithLabel) => void;
|
|
removeAlert: () => void;
|
|
|
|
closeableError: ErrorWithLabel | null;
|
|
setCloseableError: (error: ErrorWithLabel | null) => void;
|
|
|
|
otherError: ErrorWithLabel | null;
|
|
setOtherError: (error: ErrorWithLabel | null) => void;
|
|
}>((set) => ({
|
|
closeableError: null,
|
|
setCloseableError: (closeableError) => set(() => ({ closeableError })),
|
|
|
|
otherError: null,
|
|
setOtherError: (otherError) => set(() => ({ otherError })),
|
|
|
|
alert: null,
|
|
setAlert: (alert) => set(() => ({alert})),
|
|
removeAlert: () => set(() => ({alert: null}))
|
|
}));
|