import { useState, ReactNode, ComponentProps } from "react";
import classNames from "classnames";
import { useC, Text, ThemeColor } from "../common";
import {
  useInputs,
  InputGroup,
  Initializer as InputInitializer,
  InputConfirmValueDict,
} from "../input";
import { ButtonRowV2 } from "../button";
import Dialog from "./Dialog";
import DialogContainer from "./DialogContainer";
import { useDialogController } from "./DialogProvider";
import "./OperationDialog.css";
interface OperationDialogPromptProps {
  message?: Text;
  customMessage?: Text;
  customMessageNode?: ReactNode;
  className?: string;
}
function OperationDialogPrompt(props: OperationDialogPromptProps) {
  const { message, customMessage, customMessageNode, className } = props;
  const c = useC();
  return (
    
      {message && 
{c(message)}
}
      {customMessageNode ?? (customMessage != null ? c(customMessage) : null)}
    
        
        
      
    );
    buttons = [
      {
        key: "cancel",
        text: "operationDialog.cancel",
        onClick: close,
        disabled: isProcessing,
      },
      {
        key: "confirm",
        type: "loading",
        action: "major",
        text: "operationDialog.confirm",
        color,
        loading: isProcessing,
        disabled: hasErrorAndDirty,
        onClick: onConfirm,
      },
    ];
  } else {
    const result = step;
    const promptProps: OperationDialogPromptProps =
      result.type === "success"
        ? {
            message: "operationDialog.success",
            customMessage: successPrompt?.(result.data),
            customMessageNode: successPromptNode?.(result.data),
          }
        : {
            message: "operationDialog.error",
            customMessage: failurePrompt?.(result.data),
            customMessageNode: failurePromptNode?.(result.data),
          };
    body = (
      
        
      
    );
    buttons = [
      {
        key: "ok",
        type: "normal",
        action: "major",
        color: "create",
        text: "operationDialog.ok",
        onClick: close,
      },
    ];
  }
  return (
    
  );
}
export default OperationDialog;