@flowgram.ai/form 0.2.28 → 0.2.30

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.d.ts CHANGED
@@ -165,6 +165,7 @@ declare class FieldModel<TValue extends FieldValue = FieldValue> implements Disp
165
165
  updateState(s: Partial<FieldModel>): void;
166
166
  dispose(): void;
167
167
  onDispose(fn: () => void): void;
168
+ get disposed(): boolean;
168
169
  }
169
170
 
170
171
  declare class FieldArrayModel<TValue = FieldValue> extends FieldModel<Array<TValue>> {
package/dist/index.js CHANGED
@@ -606,6 +606,11 @@ function Field({
606
606
  const formState = toFormState(formModelState);
607
607
  const refresh = (0, import_utils4.useRefresh)();
608
608
  React2.useEffect(() => {
609
+ if (fieldModel.disposed) {
610
+ refresh();
611
+ return () => {
612
+ };
613
+ }
609
614
  fieldModel.renderCount = fieldModel.renderCount + 1;
610
615
  if (!formModel.getValueIn(name) !== void 0 && defaultValue !== void 0) {
611
616
  formModel.setInitValueIn(name, defaultValue);
@@ -646,6 +651,7 @@ function Field({
646
651
  }
647
652
  return React2.cloneElement(children, { ...field });
648
653
  };
654
+ if (fieldModel.disposed) return /* @__PURE__ */ React2.createElement(React2.Fragment, null);
649
655
  return /* @__PURE__ */ React2.createElement(FieldModelContext.Provider, { value: fieldModel }, renderInner());
650
656
  }
651
657
 
@@ -1010,6 +1016,9 @@ var FieldModel = class {
1010
1016
  onDispose(fn) {
1011
1017
  this.toDispose.onDispose(fn);
1012
1018
  }
1019
+ get disposed() {
1020
+ return this.toDispose.disposed;
1021
+ }
1013
1022
  };
1014
1023
 
1015
1024
  // src/core/field-array-model.ts
@@ -1585,10 +1594,7 @@ function FieldArray({
1585
1594
  children
1586
1595
  }) {
1587
1596
  const formModel = useFormModel();
1588
- const fieldModel = React4.useMemo(
1589
- () => formModel.getField(name) || formModel.createFieldArray(name),
1590
- [name]
1591
- );
1597
+ const fieldModel = formModel.getField(name) || formModel.createFieldArray(name);
1592
1598
  const field = React4.useMemo(() => toFieldArray(fieldModel), [fieldModel]);
1593
1599
  const refresh = (0, import_utils16.useRefresh)();
1594
1600
  const fieldModelState = (0, import_reactive4.useReadonlyReactiveState)(fieldModel.reactiveState);
@@ -1596,6 +1602,11 @@ function FieldArray({
1596
1602
  const fieldState = toFieldState(fieldModelState);
1597
1603
  const formState = React4.useMemo(() => toFormState(formModelState), [formModelState]);
1598
1604
  React4.useEffect(() => {
1605
+ if (fieldModel.disposed) {
1606
+ refresh();
1607
+ return () => {
1608
+ };
1609
+ }
1599
1610
  fieldModel.renderCount = fieldModel.renderCount + 1;
1600
1611
  if (!formModel.getValueIn(name) !== void 0 && defaultValue !== void 0) {
1601
1612
  formModel.setInitValueIn(name, defaultValue);
@@ -1636,6 +1647,7 @@ function FieldArray({
1636
1647
  }
1637
1648
  return /* @__PURE__ */ React4.createElement(React4.Fragment, null, "Invalid Array render");
1638
1649
  };
1650
+ if (fieldModel.disposed) return /* @__PURE__ */ React4.createElement(React4.Fragment, null);
1639
1651
  return /* @__PURE__ */ React4.createElement(FieldModelContext.Provider, { value: fieldModel }, renderInner());
1640
1652
  }
1641
1653