rqbit/crates/librqbit/webui/src/stores/errorStore.ts

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}))
}));