@bolttech/form-engine 3.0.0-beta.45 → 3.0.0-beta.46

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/index.esm.js CHANGED
@@ -2387,9 +2387,10 @@ function useForm(_a) {
2387
2387
  var {
2388
2388
  id,
2389
2389
  onData,
2390
- onSubmit
2390
+ onSubmit,
2391
+ onMount
2391
2392
  } = _a,
2392
- rest = __rest(_a, ["id", "onData", "onSubmit"]);
2393
+ rest = __rest(_a, ["id", "onData", "onSubmit", "onMount"]);
2393
2394
  const {
2394
2395
  formGroupInstance
2395
2396
  } = useFormGroupContext({});
@@ -2402,14 +2403,16 @@ function useForm(_a) {
2402
2403
  }, [rest]);
2403
2404
  const formValuesCallbackRefs = useRef({
2404
2405
  onData,
2405
- onSubmit
2406
+ onSubmit,
2407
+ onMount
2406
2408
  });
2407
2409
  useEffect(() => {
2408
2410
  formValuesCallbackRefs.current = {
2409
2411
  onData,
2410
- onSubmit
2412
+ onSubmit,
2413
+ onMount
2411
2414
  };
2412
- }, [onData, onSubmit]);
2415
+ }, [onData, onSubmit, onMount]);
2413
2416
  /**
2414
2417
  * handle function call after the debounce occurs on the form instance field event
2415
2418
  * subject in order to call the most updated function with the updated function
@@ -2432,26 +2435,36 @@ function useForm(_a) {
2432
2435
  return () => sub === null || sub === void 0 ? void 0 : sub.unsubscribe();
2433
2436
  }, []);
2434
2437
  useEffect(() => {
2435
- var _a, _b;
2438
+ var _a, _b, _c;
2439
+ const mountCallback = payload => {
2440
+ var _a, _b;
2441
+ if (formValuesCallbackRefs.current.onMount) {
2442
+ (_b = (_a = formValuesCallbackRefs.current).onMount) === null || _b === void 0 ? void 0 : _b.call(_a, payload);
2443
+ }
2444
+ };
2445
+ const mountSub = (_a = formGroupInstance.getForm({
2446
+ key: id
2447
+ })) === null || _a === void 0 ? void 0 : _a.subscribeOnMount(mountCallback);
2436
2448
  const dataCallback = payload => {
2437
2449
  var _a, _b;
2438
2450
  if (formValuesCallbackRefs.current.onData) {
2439
2451
  (_b = (_a = formValuesCallbackRefs.current).onData) === null || _b === void 0 ? void 0 : _b.call(_a, payload);
2440
2452
  }
2441
2453
  };
2442
- const dataSub = (_a = formGroupInstance.getForm({
2454
+ const dataSub = (_b = formGroupInstance.getForm({
2443
2455
  key: id
2444
- })) === null || _a === void 0 ? void 0 : _a.subscribeData(dataCallback);
2456
+ })) === null || _b === void 0 ? void 0 : _b.subscribeData(dataCallback);
2445
2457
  const submitCallback = payload => {
2446
2458
  var _a, _b;
2447
2459
  if (formValuesCallbackRefs.current.onSubmit) {
2448
2460
  (_b = (_a = formValuesCallbackRefs.current).onSubmit) === null || _b === void 0 ? void 0 : _b.call(_a, payload);
2449
2461
  }
2450
2462
  };
2451
- const submitSub = (_b = formGroupInstance.getForm({
2463
+ const submitSub = (_c = formGroupInstance.getForm({
2452
2464
  key: id
2453
- })) === null || _b === void 0 ? void 0 : _b.subscribeOnSubmit(submitCallback);
2465
+ })) === null || _c === void 0 ? void 0 : _c.subscribeOnSubmit(submitCallback);
2454
2466
  return () => {
2467
+ mountSub === null || mountSub === void 0 ? void 0 : mountSub.unsubscribe();
2455
2468
  dataSub === null || dataSub === void 0 ? void 0 : dataSub.unsubscribe();
2456
2469
  submitSub === null || submitSub === void 0 ? void 0 : submitSub.unsubscribe();
2457
2470
  };
@@ -2512,11 +2525,17 @@ function Form({
2512
2525
  key: schemaIndex,
2513
2526
  formInstance
2514
2527
  });
2528
+ let subMounted;
2529
+ if (onMount) {
2530
+ subMounted = formInstance.subscribeOnMount(onMount);
2531
+ }
2532
+ formInstance === null || formInstance === void 0 ? void 0 : formInstance.mounted();
2515
2533
  /*
2516
2534
  @TODO check if form instance is killed each time it is unmounted
2517
2535
  the management of multiple forms needs to be planned
2518
2536
  */
2519
2537
  return () => {
2538
+ subMounted === null || subMounted === void 0 ? void 0 : subMounted.unsubscribe();
2520
2539
  removeForm({
2521
2540
  key: schemaIndex
2522
2541
  });
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@bolttech/form-engine",
3
- "version": "3.0.0-beta.45",
3
+ "version": "3.0.0-beta.46",
4
4
  "description": "A react adapter for bolttech form engine",
5
5
  "module": "./index.esm.js",
6
6
  "type": "module",
7
7
  "main": "./index.esm.js",
8
8
  "dependencies": {
9
- "@bolttech/form-engine-core": "0.0.1-beta.32",
10
- "react": "18.2.0"
9
+ "@bolttech/form-engine-core": "0.0.1-beta.33",
10
+ "react": "18.2.0",
11
+ "rxjs": "7.8.1"
11
12
  },
12
13
  "peerDependencies": {}
13
14
  }
@@ -2,5 +2,5 @@ import { TUseFormProps } from './useForm.type';
2
2
  /**
3
3
  * Hook to register events callback functions
4
4
  */
5
- declare function useForm<T>({ id, onData, onSubmit, ...rest }: TUseFormProps<T>): void;
5
+ declare function useForm<T>({ id, onData, onSubmit, onMount, ...rest }: TUseFormProps<T>): void;
6
6
  export default useForm;
@@ -24,6 +24,7 @@ type TFormData<T> = {
24
24
  * Represents a mapping of event properties to their corresponding callback functions.
25
25
  */
26
26
  type TEventsCallbackProps<T> = Partial<Record<TEventProps, ((payload: TFieldEvent) => void) | null | undefined>> & {
27
+ onMount?: (payload: TFormValues<T>) => void;
27
28
  onData?: (payload: TFormData<T>) => void;
28
29
  onSubmit?: (payload: TFormValues<T>) => void;
29
30
  };