import { create } from "zustand";

type ErrorState = {
  hasError: boolean;
  error?: Error;
  info?: string;
  recoverable: boolean;
  setError: (error: Error, info: string, recoverable?: boolean) => void;
  dismissError: () => void;
};

export const useErrorStore = create<ErrorState>((set) => ({
  hasError: false,
  error: undefined,
  info: undefined,
  recoverable: true,
  setError: (error: Error, info: string, recoverable = true) =>
    set({ hasError: true, error, info, recoverable }),
  dismissError: () =>
    set({
      hasError: false,
      error: undefined,
      info: undefined,
      recoverable: true,
    }),
}));
