solid-hook-form 2.2.0 → 2.3.0
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/main.d.ts +4 -0
- package/dist/main.js +23 -1
- package/dist/main.jsx +30 -5
- package/package.json +1 -1
package/dist/main.d.ts
CHANGED
|
@@ -72,6 +72,8 @@ type ResetOptions = {
|
|
|
72
72
|
keepValues?: boolean;
|
|
73
73
|
keepTouched?: boolean;
|
|
74
74
|
keepDirty?: boolean;
|
|
75
|
+
keepIsSubmitted?: boolean;
|
|
76
|
+
keepSubmitCount?: boolean;
|
|
75
77
|
};
|
|
76
78
|
type Reset<F extends FormValues> = (values?: Partial<F>, options?: ResetOptions) => void;
|
|
77
79
|
|
|
@@ -108,6 +110,8 @@ type CreateFormReturn<F extends FormValues = FormValues> = {
|
|
|
108
110
|
isDirty: Accessor<boolean>;
|
|
109
111
|
touchedFields: Accessor<TouchedFields<F>>;
|
|
110
112
|
dirtyFields: Accessor<DirtyFields<F>>;
|
|
113
|
+
isSubmitted: Accessor<boolean>;
|
|
114
|
+
submitCount: Accessor<number>;
|
|
111
115
|
};
|
|
112
116
|
values: Accessor<F>;
|
|
113
117
|
errors: FieldErrors<F>;
|
package/dist/main.js
CHANGED
|
@@ -146,6 +146,23 @@ var createRules = () => {
|
|
|
146
146
|
};
|
|
147
147
|
return { rules, addRule, getRule };
|
|
148
148
|
};
|
|
149
|
+
var createSubmit = () => {
|
|
150
|
+
const [isSubmitted, setIsSubmitted] = createSignal(false);
|
|
151
|
+
const [submitCount, setSubmitCount] = createSignal(0);
|
|
152
|
+
const logSubmit = () => {
|
|
153
|
+
setIsSubmitted(true);
|
|
154
|
+
setSubmitCount((prev) => prev + 1);
|
|
155
|
+
};
|
|
156
|
+
const resetSubmit = (keepIsSubmitted, keepSubmitCount) => {
|
|
157
|
+
if (!keepIsSubmitted) {
|
|
158
|
+
setIsSubmitted(false);
|
|
159
|
+
}
|
|
160
|
+
if (!keepSubmitCount) {
|
|
161
|
+
setSubmitCount(0);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
return { isSubmitted, submitCount, logSubmit, resetSubmit };
|
|
165
|
+
};
|
|
149
166
|
var createTouchedFields = () => {
|
|
150
167
|
const [touchedFields, setTouchedFields] = createSignal({});
|
|
151
168
|
const addTouched = (name) => {
|
|
@@ -283,6 +300,7 @@ var createForm = (arg) => {
|
|
|
283
300
|
const { errors, appendError, removeError, resetErrors, getError } = createErrors();
|
|
284
301
|
const { touchedFields, addTouched, resetTouched } = createTouchedFields();
|
|
285
302
|
const { dirtyFields, isDirty, checkDirty, resetDirty } = createDirtyFields(defaultValues);
|
|
303
|
+
const { isSubmitted, submitCount, logSubmit, resetSubmit } = createSubmit();
|
|
286
304
|
const isValid = createMemo(() => {
|
|
287
305
|
return !Object.keys(errors).length;
|
|
288
306
|
});
|
|
@@ -418,6 +436,7 @@ var createForm = (arg) => {
|
|
|
418
436
|
const handleSubmit = (onSubmit, onError) => {
|
|
419
437
|
return async (event) => {
|
|
420
438
|
event.preventDefault();
|
|
439
|
+
logSubmit();
|
|
421
440
|
await validateAllFields();
|
|
422
441
|
if (isValid()) {
|
|
423
442
|
onSubmit(getValues());
|
|
@@ -428,6 +447,7 @@ var createForm = (arg) => {
|
|
|
428
447
|
};
|
|
429
448
|
};
|
|
430
449
|
const reset = (values2, options = {}) => {
|
|
450
|
+
resetSubmit(options.keepIsSubmitted, options.keepSubmitCount);
|
|
431
451
|
resetErrors(options.keepErrors);
|
|
432
452
|
resetTouched(options.keepTouched);
|
|
433
453
|
resetDirty(options.keepDirty);
|
|
@@ -458,7 +478,9 @@ var createForm = (arg) => {
|
|
|
458
478
|
isValid,
|
|
459
479
|
isDirty,
|
|
460
480
|
touchedFields,
|
|
461
|
-
dirtyFields
|
|
481
|
+
dirtyFields,
|
|
482
|
+
isSubmitted,
|
|
483
|
+
submitCount
|
|
462
484
|
},
|
|
463
485
|
values,
|
|
464
486
|
errors,
|
package/dist/main.jsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/create_form.ts
|
|
2
|
-
import { createMemo as createMemo2, createSignal as
|
|
2
|
+
import { createMemo as createMemo2, createSignal as createSignal4 } from "solid-js";
|
|
3
3
|
|
|
4
4
|
// src/logic/create_dirty_fields.ts
|
|
5
5
|
import { createMemo, createSignal } from "solid-js";
|
|
@@ -150,10 +150,30 @@ var createRules = () => {
|
|
|
150
150
|
return { rules, addRule, getRule };
|
|
151
151
|
};
|
|
152
152
|
|
|
153
|
-
// src/logic/
|
|
153
|
+
// src/logic/create_submit.ts
|
|
154
154
|
import { createSignal as createSignal2 } from "solid-js";
|
|
155
|
+
var createSubmit = () => {
|
|
156
|
+
const [isSubmitted, setIsSubmitted] = createSignal2(false);
|
|
157
|
+
const [submitCount, setSubmitCount] = createSignal2(0);
|
|
158
|
+
const logSubmit = () => {
|
|
159
|
+
setIsSubmitted(true);
|
|
160
|
+
setSubmitCount((prev) => prev + 1);
|
|
161
|
+
};
|
|
162
|
+
const resetSubmit = (keepIsSubmitted, keepSubmitCount) => {
|
|
163
|
+
if (!keepIsSubmitted) {
|
|
164
|
+
setIsSubmitted(false);
|
|
165
|
+
}
|
|
166
|
+
if (!keepSubmitCount) {
|
|
167
|
+
setSubmitCount(0);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
return { isSubmitted, submitCount, logSubmit, resetSubmit };
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
// src/logic/create_touched_fields.ts
|
|
174
|
+
import { createSignal as createSignal3 } from "solid-js";
|
|
155
175
|
var createTouchedFields = () => {
|
|
156
|
-
const [touchedFields, setTouchedFields] =
|
|
176
|
+
const [touchedFields, setTouchedFields] = createSignal3({});
|
|
157
177
|
const addTouched = (name) => {
|
|
158
178
|
setTouchedFields((prev) => {
|
|
159
179
|
const newState = { ...prev };
|
|
@@ -285,10 +305,11 @@ var createForm = (arg) => {
|
|
|
285
305
|
const { defaultValues, mode = "onChange", resolver } = arg;
|
|
286
306
|
const { fields, getField, setField } = createFields();
|
|
287
307
|
const { rules, addRule, getRule } = createRules();
|
|
288
|
-
const [values, setValues] =
|
|
308
|
+
const [values, setValues] = createSignal4(structuredClone(defaultValues));
|
|
289
309
|
const { errors, appendError, removeError, resetErrors, getError } = createErrors();
|
|
290
310
|
const { touchedFields, addTouched, resetTouched } = createTouchedFields();
|
|
291
311
|
const { dirtyFields, isDirty, checkDirty, resetDirty } = createDirtyFields(defaultValues);
|
|
312
|
+
const { isSubmitted, submitCount, logSubmit, resetSubmit } = createSubmit();
|
|
292
313
|
const isValid = createMemo2(() => {
|
|
293
314
|
return !Object.keys(errors).length;
|
|
294
315
|
});
|
|
@@ -424,6 +445,7 @@ var createForm = (arg) => {
|
|
|
424
445
|
const handleSubmit = (onSubmit, onError) => {
|
|
425
446
|
return async (event) => {
|
|
426
447
|
event.preventDefault();
|
|
448
|
+
logSubmit();
|
|
427
449
|
await validateAllFields();
|
|
428
450
|
if (isValid()) {
|
|
429
451
|
onSubmit(getValues());
|
|
@@ -434,6 +456,7 @@ var createForm = (arg) => {
|
|
|
434
456
|
};
|
|
435
457
|
};
|
|
436
458
|
const reset = (values2, options = {}) => {
|
|
459
|
+
resetSubmit(options.keepIsSubmitted, options.keepSubmitCount);
|
|
437
460
|
resetErrors(options.keepErrors);
|
|
438
461
|
resetTouched(options.keepTouched);
|
|
439
462
|
resetDirty(options.keepDirty);
|
|
@@ -464,7 +487,9 @@ var createForm = (arg) => {
|
|
|
464
487
|
isValid,
|
|
465
488
|
isDirty,
|
|
466
489
|
touchedFields,
|
|
467
|
-
dirtyFields
|
|
490
|
+
dirtyFields,
|
|
491
|
+
isSubmitted,
|
|
492
|
+
submitCount
|
|
468
493
|
},
|
|
469
494
|
values,
|
|
470
495
|
errors,
|