aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/views/common/dialog/OperationDialog.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-07-29 22:00:59 +0800
committercrupest <crupest@outlook.com>2023-07-29 22:00:59 +0800
commit22e8f24e7f7574915e4c75d3c6a5498f6e621ee8 (patch)
treea164dbcb6bf2e87e275cc736b65a22f34f788b14 /FrontEnd/src/views/common/dialog/OperationDialog.tsx
parent13f6f2a451feede8037d18cfbac64843e108ccbd (diff)
downloadtimeline-22e8f24e7f7574915e4c75d3c6a5498f6e621ee8.tar.gz
timeline-22e8f24e7f7574915e4c75d3c6a5498f6e621ee8.tar.bz2
timeline-22e8f24e7f7574915e4c75d3c6a5498f6e621ee8.zip
...
Diffstat (limited to 'FrontEnd/src/views/common/dialog/OperationDialog.tsx')
-rw-r--r--FrontEnd/src/views/common/dialog/OperationDialog.tsx22
1 files changed, 12 insertions, 10 deletions
diff --git a/FrontEnd/src/views/common/dialog/OperationDialog.tsx b/FrontEnd/src/views/common/dialog/OperationDialog.tsx
index be3f7158..74b4a5fa 100644
--- a/FrontEnd/src/views/common/dialog/OperationDialog.tsx
+++ b/FrontEnd/src/views/common/dialog/OperationDialog.tsx
@@ -39,7 +39,7 @@ function OperationDialogPrompt(props: OperationDialogPromptProps) {
export interface OperationDialogProps<TData> {
open: boolean;
- close: () => void;
+ onClose: () => void;
color?: ThemeColor;
inputColor?: ThemeColor;
@@ -57,7 +57,7 @@ export interface OperationDialogProps<TData> {
function OperationDialog<TData>(props: OperationDialogProps<TData>) {
const {
open,
- close,
+ onClose,
color,
inputColor,
title,
@@ -85,13 +85,14 @@ function OperationDialog<TData>(props: OperationDialogProps<TData>) {
const [step, setStep] = useState<Step>({ type: "input" });
- const { inputGroupProps, hasError, setAllDisabled, confirm } = useInputs({
- init: inputs,
- });
+ const { inputGroupProps, hasErrorAndDirty, setAllDisabled, confirm } =
+ useInputs({
+ init: inputs,
+ });
- function onClose() {
+ function close() {
if (step.type !== "process") {
- close();
+ onClose();
if (step.type === "success" && onSuccessAndClose) {
onSuccessAndClose?.(step.data);
}
@@ -142,12 +143,13 @@ function OperationDialog<TData>(props: OperationDialogProps<TData>) {
text="operationDialog.cancel"
color="secondary"
outline
- onClick={onClose}
+ onClick={close}
disabled={isProcessing}
/>
<LoadingButton
color={color}
loading={isProcessing}
+ disabled={hasErrorAndDirty}
onClick={onConfirm}
>
{c("operationDialog.confirm")}
@@ -173,14 +175,14 @@ function OperationDialog<TData>(props: OperationDialogProps<TData>) {
<OperationDialogPrompt {...promptProps} />
<hr />
<div className="cru-dialog-bottom-area">
- <Button text="operationDialog.ok" color="primary" onClick={onClose} />
+ <Button text="operationDialog.ok" color="primary" onClick={close} />
</div>
</div>
);
}
return (
- <Dialog open={open} onClose={onClose}>
+ <Dialog open={open} onClose={close}>
<div
className={classNames(
"cru-operation-dialog-container",