import { createContext, useContext } from "react";
import type { AlertState, AlertPayload } from "../types/types";

type AlertHitContextValueType = {
  state: AlertState;
  action?: AlertPayload;
  dispatch: React.Dispatch<AlertPayload>;
  isLoading?: boolean;
  isError?: boolean;
  error?: Error | null;
};

export const AlertHitContext = createContext<
  AlertHitContextValueType | undefined
>(undefined);

export const useAlertHitContext = () => {
  const ctx = useContext(AlertHitContext);
  if (!ctx)
    throw new Error("useAlertHitContext must be used within <AlertHitContext>");
  return ctx;
};

export default AlertHitContext;
