import { useState, useCallback } from "react";

type ConfirmDialogOptions = {
  title: string;
  description: string;
  confirmLabel: string;
  onConfirm: () => void;
  checkRefLead?: {
    success: boolean;
    description: string;
  };
};

export const useConfirmDialog = () => {
  const [isOpen, setIsOpen] = useState(false);
  const [dialogOptions, setDialogOptions] =
    useState<ConfirmDialogOptions | null>(null);

  const openDialog = useCallback((options: ConfirmDialogOptions) => {
    setDialogOptions(options);
    setIsOpen(true);
  }, []);

  const closeDialog = useCallback(() => {
    setIsOpen(false);
    setDialogOptions(null);
  }, []);

  const handleConfirm = useCallback(() => {
    if (dialogOptions?.onConfirm) {
      dialogOptions.onConfirm();
    }
    closeDialog();
  }, [dialogOptions, closeDialog]);

  return {
    isOpen,
    openDialog,
    closeDialog,
    handleConfirm,
    dialogOptions,
    setDialogOptions,
  };
};
