x-ui-design 0.2.91 → 0.2.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/types/types/form.d.ts +1 -1
- package/dist/index.esm.js +15 -23
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +15 -23
- package/dist/index.js.map +1 -1
- package/lib/hooks/useForm.ts +12 -15
- package/lib/types/form.ts +1 -1
- package/package.json +1 -1
- package/src/app/page.tsx +14 -19
|
@@ -83,7 +83,7 @@ export interface FormItemChildComponentProps {
|
|
|
83
83
|
export interface FormInstance {
|
|
84
84
|
submit: () => Promise<Record<string, RuleTypes> | undefined>;
|
|
85
85
|
setFields: (fields: FieldData[]) => void;
|
|
86
|
-
resetFields: (nameList?: string[], showError?: boolean) => void;
|
|
86
|
+
resetFields: (nameList?: string[], showError?: boolean | null) => void;
|
|
87
87
|
getFieldError: (name: string) => string[];
|
|
88
88
|
registerField: (name: string, rules?: RuleObject[]) => void;
|
|
89
89
|
setFieldValue: (name: string, value: RuleTypes) => void;
|
package/dist/index.esm.js
CHANGED
|
@@ -638,12 +638,18 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange) => {
|
|
|
638
638
|
errors: err
|
|
639
639
|
}));
|
|
640
640
|
}
|
|
641
|
-
function setFieldValue(name, value, errors, reset) {
|
|
642
|
-
if (!reset && ([undefined, null].includes(value) || formRef.current[name] === value)) {
|
|
641
|
+
function setFieldValue(name, value, errors, reset = null) {
|
|
642
|
+
if (!reset && reset !== null && ([undefined, null].includes(value) || formRef.current[name] === value)) {
|
|
643
643
|
return;
|
|
644
644
|
}
|
|
645
645
|
formRef.current[name] = value;
|
|
646
646
|
touchedFieldsRef.current.add(name);
|
|
647
|
+
if (reset === null) {
|
|
648
|
+
setErrors({
|
|
649
|
+
[name]: []
|
|
650
|
+
});
|
|
651
|
+
return;
|
|
652
|
+
}
|
|
647
653
|
if (!errors?.length) {
|
|
648
654
|
validateField(name).then(() => {
|
|
649
655
|
const allValues = getFieldsValue();
|
|
@@ -737,37 +743,23 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange) => {
|
|
|
737
743
|
const results = await Promise.all(fieldsToValidate.map(name => validateField(name)));
|
|
738
744
|
return results.every(valid => valid);
|
|
739
745
|
}
|
|
740
|
-
function resetFields(nameList, showError =
|
|
746
|
+
function resetFields(nameList, showError = true) {
|
|
741
747
|
if (nameList?.length) {
|
|
742
748
|
nameList.forEach(name => {
|
|
743
749
|
formRef.current[name] = initialValues[name];
|
|
744
750
|
touchedFieldsRef.current.delete(name);
|
|
745
751
|
delete warningsRef.current[name];
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
setFieldValue(name, initialValues[name], undefined, true);
|
|
752
|
-
} else {
|
|
753
|
-
setFieldValue(name, initialValues[name], undefined, true);
|
|
754
|
-
setErrors(prev => ({
|
|
755
|
-
...prev,
|
|
756
|
-
[name]: []
|
|
757
|
-
}));
|
|
758
|
-
}
|
|
752
|
+
setErrors(prev => ({
|
|
753
|
+
...prev,
|
|
754
|
+
[name]: []
|
|
755
|
+
}));
|
|
756
|
+
setFieldValue(name, initialValues[name], undefined, showError);
|
|
759
757
|
});
|
|
760
758
|
} else {
|
|
761
759
|
touchedFieldsRef.current.clear();
|
|
762
760
|
warningsRef.current = {};
|
|
763
761
|
Object.keys(formRef.current).forEach(name => {
|
|
764
|
-
setFieldValue(name, initialValues[name], undefined,
|
|
765
|
-
if (!showError) {
|
|
766
|
-
setErrors(prev => ({
|
|
767
|
-
...prev,
|
|
768
|
-
[name]: []
|
|
769
|
-
}));
|
|
770
|
-
}
|
|
762
|
+
setFieldValue(name, initialValues[name], undefined, showError);
|
|
771
763
|
});
|
|
772
764
|
}
|
|
773
765
|
formSubscribers.current.forEach(callback => callback(getFieldsValue()));
|