mobx-react-hook-form 1.0.11 → 1.0.13

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.
@@ -1,11 +1,11 @@
1
1
  import type { Disposable } from 'disposer-util';
2
2
  import { FormState, UseFormProps, UseFormReturn } from 'react-hook-form';
3
- import { WithAbortController } from 'with-abort-controller';
4
3
  import type { AnyObject, Maybe } from 'yammies/utils/types';
5
4
  import { ConnectedMobxForm, MobxFormParams } from './mobx-form.types';
6
- export declare class MobxForm<TFieldValues extends AnyObject, TContext = any> extends WithAbortController implements Disposable {
5
+ export declare class MobxForm<TFieldValues extends AnyObject, TContext = any> implements Disposable {
6
+ protected abortController: AbortController;
7
7
  /**
8
- * Readl react-hook-form params
8
+ * Real react-hook-form params
9
9
  * Needed to connect real react-hook-form to this mobx wrapper
10
10
  */
11
11
  params: UseFormProps<TFieldValues, TContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"mobx-form.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAShD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,qBAAa,QAAQ,CAAC,YAAY,SAAS,SAAS,EAAE,QAAQ,GAAG,GAAG,CAClE,SAAQ,mBACR,YAAW,UAAU;IAErB;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE7C,SAAS,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7E,SAAS,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAC3C,YAAY,EACZ,QAAQ,CACT,CAAC,gBAAgB,CAAC,CAAC;IACpB,SAAS,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAE3E;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnD;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAE/B;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAE1B,SAAS,CAAC,WAAW,UAAS;gBAElB,EAEV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,EACT,GAAG,MAAM,EACV,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;IAgDzC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;IAItD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAIlE;;;;OAIG;IACH,SAAS,CAAC,OAAO,CACf,UAAU,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAChD,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC;IAkC5C,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"mobx-form.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,qBAAa,QAAQ,CAAC,YAAY,SAAS,SAAS,EAAE,QAAQ,GAAG,GAAG,CAClE,YAAW,UAAU;IAErB,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAE3C;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE7C,SAAS,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7E,SAAS,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAC3C,YAAY,EACZ,QAAQ,CACT,CAAC,gBAAgB,CAAC,CAAC;IACpB,SAAS,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAE3E;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnD;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAE/B;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAE1B,SAAS,CAAC,WAAW,UAAS;gBAElB,EAEV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,EACT,GAAG,MAAM,EACV,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;IAsDzC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;IAItD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAIlE;;;;OAIG;IACH,SAAS,CAAC,OAAO,CACf,UAAU,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAChD,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC;IAkD5C,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,9 +1,10 @@
1
+ import { LinkedAbortController } from 'linked-abort-controller';
1
2
  import noop from 'lodash-es/noop';
2
3
  import { action, makeObservable, observable, reaction, runInAction, } from 'mobx';
3
- import { WithAbortController } from 'with-abort-controller';
4
- export class MobxForm extends WithAbortController {
4
+ export class MobxForm {
5
+ abortController;
5
6
  /**
6
- * Readl react-hook-form params
7
+ * Real react-hook-form params
7
8
  * Needed to connect real react-hook-form to this mobx wrapper
8
9
  */
9
10
  params;
@@ -26,11 +27,11 @@ export class MobxForm extends WithAbortController {
26
27
  constructor({
27
28
  // eslint-disable-next-line sonarjs/deprecation
28
29
  disposer, abortSignal, onSubmit, onSubmitFailed, onReset, getParams, ...params }) {
29
- super(abortSignal);
30
+ this.abortController = new LinkedAbortController(abortSignal);
30
31
  if (disposer) {
31
32
  disposer.add(() => this.dispose());
32
33
  }
33
- this.abortSignal.addEventListener('abort', () => {
34
+ this.abortController.signal.addEventListener('abort', () => {
34
35
  this.form = null;
35
36
  this.data = null;
36
37
  });
@@ -62,8 +63,10 @@ export class MobxForm extends WithAbortController {
62
63
  updateParams: action.bound,
63
64
  });
64
65
  if (getParams) {
65
- reaction(getParams, (params) => this.updateParams(params), {
66
- signal: this.abortSignal,
66
+ reaction(getParams, (params) => {
67
+ this.updateParams(params);
68
+ }, {
69
+ signal: this.abortController.signal,
67
70
  });
68
71
  }
69
72
  }
@@ -99,12 +102,25 @@ export class MobxForm extends WithAbortController {
99
102
  this.data = formResult.getValues();
100
103
  });
101
104
  });
102
- this.abortSignal.addEventListener('abort', formWatchSubscription.unsubscribe);
105
+ this.abortController.signal.addEventListener('abort', formWatchSubscription.unsubscribe);
103
106
  }
104
107
  return {
105
108
  ...formResult,
106
109
  onReset: this.resetHandler ?? noop,
107
110
  onSubmit: formResult.handleSubmit(this.submitHandler ?? noop, this.submitErrorHandler),
111
+ handleSubmit: (onValid, onInvalid) => {
112
+ return formResult.handleSubmit((...args) => {
113
+ if (this.submitHandler) {
114
+ this.submitHandler(...args);
115
+ }
116
+ onValid(...args);
117
+ }, (...args) => {
118
+ if (this.submitErrorHandler) {
119
+ this.submitErrorHandler(...args);
120
+ }
121
+ onInvalid?.(...args);
122
+ });
123
+ },
108
124
  };
109
125
  }
110
126
  dispose() {
@@ -34,9 +34,9 @@ export interface MobxFormParams<TFieldValues extends AnyObject, TContext = any>
34
34
  /**
35
35
  * Interface for a connected Mobx form.
36
36
  * Extends the properties of react-hook-form's UseFormReturn,
37
- * excluding the 'handleSubmit' method, and adds custom form handlers.
37
+ * Adds custom form handlers.
38
38
  */
39
- export interface ConnectedMobxForm<TFieldValues extends AnyObject, TContext = any> extends Omit<UseFormReturn<TFieldValues, TContext>, 'handleSubmit'> {
39
+ export interface ConnectedMobxForm<TFieldValues extends AnyObject, TContext = any> extends UseFormReturn<TFieldValues, TContext> {
40
40
  /**
41
41
  * Handler to reset the form.
42
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mobx-form.types.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,SAAS,EAAE,QAAQ,GAAG,GAAG,CAC5E,SAAQ,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC;;OAEG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAClD;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAChC,YAAY,SAAS,SAAS,EAC9B,QAAQ,GAAG,GAAG,CACd,SAAQ,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnE;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB"}
1
+ {"version":3,"file":"mobx-form.types.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,SAAS,EAAE,QAAQ,GAAG,GAAG,CAC5E,SAAQ,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC;;OAEG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAClD;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAChC,YAAY,SAAS,SAAS,EAC9B,QAAQ,GAAG,GAAG,CACd,SAAQ,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC;IAC7C;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-react-hook-form",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "js2me",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "disposer-util": "^1.0.11",
16
- "with-abort-controller": "1.0.0",
16
+ "linked-abort-controller": "^1.0.1",
17
17
  "lodash-es": "^4.17.21",
18
18
  "yammies": "^2.0.8"
19
19
  },