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 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 = formRef.current[stepRef.current];
634
+ const formData = getFormFields();
632
635
  return formData[name];
633
636
  }
634
637
  function getFieldsValue(nameList) {
635
- const formData = formRef.current[stepRef.current];
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
- if (reset === true) {
661
- Object.entries(formRef.current).forEach(([key]) => {
662
- formRef.current[+key][name] = value;
663
- });
664
- } else {
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 = Object.assign({}, ...Object.values(formRef.current));
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 = Object.assign({}, ...Object.values(formRef.current));
839
+ const formData = getFormFields();
821
840
  return (await validateFields()) ? (() => {
822
- formHandlersRef.current.onFinish?.(Object.assign({}, ...Object.values(formRef.current)));
841
+ formHandlersRef.current.onFinish?.(formData);
823
842
  return formData;
824
843
  })() : undefined;
825
844
  }