x-ui-design 0.6.62 → 0.6.64
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/index.esm.js +29 -10
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +29 -10
- package/dist/index.js.map +1 -1
- package/lib/hooks/useForm.ts +38 -10
- package/package.json +1 -1
- package/src/app/page.tsx +10 -6
package/dist/index.esm.js
CHANGED
|
@@ -624,15 +624,18 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange, scrollToFir
|
|
|
624
624
|
const errorSubscribers = useRef({});
|
|
625
625
|
const fieldSubscribers = useRef({});
|
|
626
626
|
const formSubscribers = useRef([]);
|
|
627
|
+
function getFormFields() {
|
|
628
|
+
return Object.assign({}, ...Object.values(formRef.current));
|
|
629
|
+
}
|
|
627
630
|
function getFieldInstance(name) {
|
|
628
631
|
return name ? fieldInstancesRef.current[name] : fieldInstancesRef.current;
|
|
629
632
|
}
|
|
630
633
|
function getFieldValue(name) {
|
|
631
|
-
const formData =
|
|
634
|
+
const formData = getFormFields();
|
|
632
635
|
return formData[name];
|
|
633
636
|
}
|
|
634
637
|
function getFieldsValue(nameList) {
|
|
635
|
-
const formData =
|
|
638
|
+
const formData = getFormFields();
|
|
636
639
|
if (!nameList) {
|
|
637
640
|
return formData;
|
|
638
641
|
}
|
|
@@ -657,11 +660,15 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange, scrollToFir
|
|
|
657
660
|
if (!reset && reset !== null && ([undefined, null].includes(value) || formRef.current[stepRef.current][name] === value)) {
|
|
658
661
|
return;
|
|
659
662
|
}
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
663
|
+
let isFieldExist = false;
|
|
664
|
+
Object.values(formRef.current).forEach((_, step) => {
|
|
665
|
+
if (formRef.current[step].hasOwnProperty(name)) {
|
|
666
|
+
formRef.current[step][name] = value;
|
|
667
|
+
isFieldExist = true;
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
});
|
|
671
|
+
if (!isFieldExist) {
|
|
665
672
|
formRef.current[stepRef.current][name] = value;
|
|
666
673
|
}
|
|
667
674
|
if (touch) {
|
|
@@ -730,7 +737,19 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange, scrollToFir
|
|
|
730
737
|
formRef.current[stepRef.current][name] = trashFormRef.current[name];
|
|
731
738
|
delete trashFormRef.current[name];
|
|
732
739
|
} else {
|
|
740
|
+
const existFields = {};
|
|
741
|
+
Object.values(formRef.current).forEach((_, step) => {
|
|
742
|
+
if (formRef.current[step][name]) {
|
|
743
|
+
existFields[name] = formRef.current[step][name];
|
|
744
|
+
delete formRef.current[step][name];
|
|
745
|
+
}
|
|
746
|
+
});
|
|
733
747
|
formRef.current[stepRef.current][name] = initialValues?.[name];
|
|
748
|
+
if (Object.keys(existFields).length) {
|
|
749
|
+
Object.entries(existFields).forEach(([_key, _value]) => {
|
|
750
|
+
formRef.current[stepRef.current][_key] = _value;
|
|
751
|
+
});
|
|
752
|
+
}
|
|
734
753
|
}
|
|
735
754
|
}
|
|
736
755
|
rulesRef.current[name] = rules;
|
|
@@ -793,7 +812,7 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange, scrollToFir
|
|
|
793
812
|
return results.every(valid => valid);
|
|
794
813
|
}
|
|
795
814
|
function resetFields(nameList, showError = true) {
|
|
796
|
-
const formData =
|
|
815
|
+
const formData = getFormFields();
|
|
797
816
|
if (nameList?.length) {
|
|
798
817
|
nameList.forEach(name => {
|
|
799
818
|
formData[name] = initialValues[name];
|
|
@@ -817,9 +836,9 @@ const useForm = (initialValues = {}, onFieldsChange, onValuesChange, scrollToFir
|
|
|
817
836
|
setIsReseting(prev => !prev);
|
|
818
837
|
}
|
|
819
838
|
async function submit() {
|
|
820
|
-
const formData =
|
|
839
|
+
const formData = getFormFields();
|
|
821
840
|
return (await validateFields()) ? (() => {
|
|
822
|
-
formHandlersRef.current.onFinish?.(
|
|
841
|
+
formHandlersRef.current.onFinish?.(formData);
|
|
823
842
|
return formData;
|
|
824
843
|
})() : undefined;
|
|
825
844
|
}
|