aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/views/common/input
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/input
parent13f6f2a451feede8037d18cfbac64843e108ccbd (diff)
downloadtimeline-22e8f24e7f7574915e4c75d3c6a5498f6e621ee8.tar.gz
timeline-22e8f24e7f7574915e4c75d3c6a5498f6e621ee8.tar.bz2
timeline-22e8f24e7f7574915e4c75d3c6a5498f6e621ee8.zip
...
Diffstat (limited to 'FrontEnd/src/views/common/input')
-rw-r--r--FrontEnd/src/views/common/input/InputGroup.tsx7
1 files changed, 6 insertions, 1 deletions
diff --git a/FrontEnd/src/views/common/input/InputGroup.tsx b/FrontEnd/src/views/common/input/InputGroup.tsx
index 858fa1a5..3d1e3ada 100644
--- a/FrontEnd/src/views/common/input/InputGroup.tsx
+++ b/FrontEnd/src/views/common/input/InputGroup.tsx
@@ -141,6 +141,7 @@ export type ConfirmResult =
export function useInputs(options: { init: Initializer }): {
inputGroupProps: InputGroupProps;
hasError: boolean;
+ hasErrorAndDirty: boolean;
confirm: () => ConfirmResult;
setAllDisabled: (disabled: boolean) => void;
} {
@@ -260,6 +261,9 @@ export function useInputs(options: { init: Initializer }): {
componentInputs.push(componentInput);
}
+ const hasError = Object.keys(data.errors).length > 0;
+ const hasDirty = Object.keys(data.dirties).some((key) => data.dirties[key]);
+
return {
inputGroupProps: {
inputs: componentInputs,
@@ -280,7 +284,8 @@ export function useInputs(options: { init: Initializer }): {
});
},
},
- hasError: Object.keys(data.errors).length > 0,
+ hasError,
+ hasErrorAndDirty: hasError && hasDirty,
confirm() {
const newDirties = createAllDirties();
const newErrors = validator?.(data.values, scheme.inputs) ?? {};