mobx-react-hook-form 3.0.3 → 3.0.5
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/mobx-form/mobx-form.d.ts
CHANGED
|
@@ -16,7 +16,11 @@ export declare class MobxForm<TFieldValues extends FieldValues = FieldValues, TC
|
|
|
16
16
|
isValid: boolean;
|
|
17
17
|
disabled: boolean;
|
|
18
18
|
submitCount: number;
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* deep observable default values
|
|
21
|
+
* any updates -> reset form
|
|
22
|
+
*/
|
|
23
|
+
defaultValues: DeepPartial<TFieldValues>;
|
|
20
24
|
dirtyFields: Partial<Readonly<DeepMap<DeepPartial<TFieldValues>, boolean>>>;
|
|
21
25
|
touchedFields: Partial<Readonly<DeepMap<DeepPartial<TFieldValues>, boolean>>>;
|
|
22
26
|
validatingFields: Partial<Readonly<DeepMap<DeepPartial<TFieldValues>, boolean>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobx-form.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,OAAO,EACP,WAAW,
|
|
1
|
+
{"version":3,"file":"mobx-form.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.ts"],"names":[],"mappings":"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"}
|
package/mobx-form/mobx-form.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
2
|
import { LinkedAbortController } from 'linked-abort-controller';
|
|
3
|
-
import { action, comparer, makeObservable, observable } from 'mobx';
|
|
3
|
+
import { action, comparer, makeObservable, observable, reaction } from 'mobx';
|
|
4
4
|
import { createFormControl, } from 'react-hook-form';
|
|
5
5
|
export class MobxForm {
|
|
6
6
|
config;
|
|
@@ -14,6 +14,10 @@ export class MobxForm {
|
|
|
14
14
|
isValid = false;
|
|
15
15
|
disabled = false;
|
|
16
16
|
submitCount = 0;
|
|
17
|
+
/**
|
|
18
|
+
* deep observable default values
|
|
19
|
+
* any updates -> reset form
|
|
20
|
+
*/
|
|
17
21
|
defaultValues;
|
|
18
22
|
dirtyFields = {};
|
|
19
23
|
touchedFields = {};
|
|
@@ -254,7 +258,12 @@ export class MobxForm {
|
|
|
254
258
|
constructor(config) {
|
|
255
259
|
this.config = config;
|
|
256
260
|
this.abortController = new LinkedAbortController(config.abortSignal);
|
|
257
|
-
this.originalForm = createFormControl(
|
|
261
|
+
this.originalForm = createFormControl({
|
|
262
|
+
...config,
|
|
263
|
+
defaultValues: {
|
|
264
|
+
...config.defaultValues,
|
|
265
|
+
},
|
|
266
|
+
});
|
|
258
267
|
this.setError = this.originalForm.setError;
|
|
259
268
|
this.clearErrors = this.originalForm.clearErrors;
|
|
260
269
|
this.trigger = this.originalForm.trigger;
|
|
@@ -267,7 +276,9 @@ export class MobxForm {
|
|
|
267
276
|
this.resetForm = this.originalForm.reset;
|
|
268
277
|
Object.assign(this, {
|
|
269
278
|
values: this.originalForm.getValues(),
|
|
270
|
-
defaultValues: config.defaultValues
|
|
279
|
+
defaultValues: config.defaultValues
|
|
280
|
+
? { ...config.defaultValues }
|
|
281
|
+
: {},
|
|
271
282
|
});
|
|
272
283
|
const subscription = this.originalForm.subscribe({
|
|
273
284
|
formState: {
|
|
@@ -316,6 +327,11 @@ export class MobxForm {
|
|
|
316
327
|
observable.ref(this, 'originalForm');
|
|
317
328
|
action.bound(this, 'submit');
|
|
318
329
|
action.bound(this, 'reset');
|
|
330
|
+
reaction(() => this.defaultValues, (newDefaultValues) => {
|
|
331
|
+
this.resetForm(newDefaultValues);
|
|
332
|
+
}, {
|
|
333
|
+
signal: this.abortController.signal,
|
|
334
|
+
});
|
|
319
335
|
makeObservable(this);
|
|
320
336
|
this.abortController.signal.addEventListener('abort', () => {
|
|
321
337
|
subscription();
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { FieldValues, SubmitErrorHandler, SubmitHandler, UseFormProps } from 'react-hook-form';
|
|
1
|
+
import { DeepPartial, FieldValues, SubmitErrorHandler, SubmitHandler, UseFormProps } from 'react-hook-form';
|
|
2
2
|
import type { MobxForm } from './mobx-form.js';
|
|
3
3
|
export type AnyMobxForm = MobxForm<any, any, any>;
|
|
4
4
|
/**
|
|
5
5
|
* Additional options for {@link MobxForm} constructor
|
|
6
6
|
*/
|
|
7
|
-
export interface MobxFormParams<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormProps<TFieldValues, TContext, TTransformedValues> {
|
|
7
|
+
export interface MobxFormParams<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends Omit<UseFormProps<TFieldValues, TContext, TTransformedValues>, 'defaultValues'> {
|
|
8
|
+
/**
|
|
9
|
+
* Async is not supported
|
|
10
|
+
*/
|
|
11
|
+
defaultValues?: DeepPartial<TFieldValues>;
|
|
8
12
|
/**
|
|
9
13
|
* Abort signal for mobx form
|
|
10
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobx-form.types.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,CACjC,SAAQ,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"mobx-form.types.d.ts","sourceRoot":"","sources":["../../src/mobx-form/mobx-form.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,CACjC,SAAQ,IAAI,CACV,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EACxD,eAAe,CAChB;IACD;;OAEG;IACH,aAAa,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1C;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC7C;;OAEG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAClD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CACjE,CAAC,CAAC,QAAQ,CAAC,EACX,SAAS,GAAG,IAAI,CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,WAAW,IAC5D,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC,GAClD,kBAAkB,GAClB,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobx-react-hook-form",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [],
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@types/react": "^18.3.1",
|
|
26
26
|
"linked-abort-controller": "^1.1.0",
|
|
27
27
|
"lodash-es": "^4.17.21",
|
|
28
|
-
"yummies": "^3.
|
|
28
|
+
"yummies": "^3.2.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/lodash-es": "^4.17.12",
|