solid-hook-form 2.5.0 → 2.5.2
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.js +24 -10
- package/dist/main.jsx +24 -10
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createContext, createSignal, createMemo, useContext } from 'solid-js';
|
|
1
|
+
import { createContext, createSignal, createMemo, useContext, onCleanup } from 'solid-js';
|
|
2
2
|
import { createStore, produce, reconcile } from 'solid-js/store';
|
|
3
3
|
import { memo, createComponent } from 'solid-js/web';
|
|
4
4
|
|
|
@@ -140,11 +140,15 @@ var createFields = () => {
|
|
|
140
140
|
const focusField = (name) => {
|
|
141
141
|
getField(name)?.focus();
|
|
142
142
|
};
|
|
143
|
+
const removeField = (name) => {
|
|
144
|
+
delete fields[name];
|
|
145
|
+
};
|
|
143
146
|
return {
|
|
144
147
|
fields,
|
|
145
148
|
getField,
|
|
146
149
|
setField,
|
|
147
|
-
focusField
|
|
150
|
+
focusField,
|
|
151
|
+
removeField
|
|
148
152
|
};
|
|
149
153
|
};
|
|
150
154
|
|
|
@@ -166,7 +170,10 @@ var createRules = () => {
|
|
|
166
170
|
const getRule = (name) => {
|
|
167
171
|
return rules[name];
|
|
168
172
|
};
|
|
169
|
-
|
|
173
|
+
const removeRule = (name) => {
|
|
174
|
+
delete rules[name];
|
|
175
|
+
};
|
|
176
|
+
return { rules, addRule, getRule, removeRule };
|
|
170
177
|
};
|
|
171
178
|
var createSubmit = () => {
|
|
172
179
|
const [isSubmitted, setIsSubmitted] = createSignal(false);
|
|
@@ -205,7 +212,7 @@ var createTouchedFields = () => {
|
|
|
205
212
|
|
|
206
213
|
// src/logic/format_value.ts
|
|
207
214
|
var formatValue = (value, rules) => {
|
|
208
|
-
if (rules
|
|
215
|
+
if (rules?.valueAsNumber) {
|
|
209
216
|
return Number(value);
|
|
210
217
|
}
|
|
211
218
|
return value;
|
|
@@ -316,8 +323,8 @@ var getResolverFields = (fields) => {
|
|
|
316
323
|
// src/create_form.ts
|
|
317
324
|
var createForm = (arg) => {
|
|
318
325
|
const { defaultValues, mode = "onChange", shouldFocusError = true, resolver } = arg;
|
|
319
|
-
const { fields, getField, setField, focusField } = createFields();
|
|
320
|
-
const { rules, addRule, getRule } = createRules();
|
|
326
|
+
const { fields, getField, setField, focusField, removeField } = createFields();
|
|
327
|
+
const { rules, addRule, getRule, removeRule } = createRules();
|
|
321
328
|
const [values, setValues] = createSignal(structuredClone(defaultValues));
|
|
322
329
|
const { errors, appendError, clearError, resetErrors, clearErrors, getError } = createErrors();
|
|
323
330
|
const { touchedFields, addTouched, resetTouched } = createTouchedFields();
|
|
@@ -389,7 +396,7 @@ var createForm = (arg) => {
|
|
|
389
396
|
};
|
|
390
397
|
const onFieldChange = (event, name) => {
|
|
391
398
|
const fieldValue = getFieldValue(event);
|
|
392
|
-
const value = formatValue(fieldValue,
|
|
399
|
+
const value = formatValue(fieldValue, getRule(name));
|
|
393
400
|
setValues((prev) => {
|
|
394
401
|
const newState = { ...prev };
|
|
395
402
|
set(newState, name, value);
|
|
@@ -399,6 +406,11 @@ var createForm = (arg) => {
|
|
|
399
406
|
};
|
|
400
407
|
const register = (name, options = {}) => {
|
|
401
408
|
addRule(name, options);
|
|
409
|
+
onCleanup(() => {
|
|
410
|
+
removeRule(name);
|
|
411
|
+
removeField(name);
|
|
412
|
+
clearError(name);
|
|
413
|
+
});
|
|
402
414
|
return {
|
|
403
415
|
name,
|
|
404
416
|
onInput(event) {
|
|
@@ -421,11 +433,13 @@ var createForm = (arg) => {
|
|
|
421
433
|
addTouched(name);
|
|
422
434
|
},
|
|
423
435
|
ref(element) {
|
|
424
|
-
|
|
425
|
-
if (field) {
|
|
436
|
+
if (!element) {
|
|
426
437
|
return;
|
|
427
438
|
}
|
|
428
|
-
|
|
439
|
+
const field = getField(name);
|
|
440
|
+
if (field !== element) {
|
|
441
|
+
setField(name, element);
|
|
442
|
+
}
|
|
429
443
|
setFieldValue(element, get(values(), name));
|
|
430
444
|
}
|
|
431
445
|
};
|
package/dist/main.jsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/create_form.ts
|
|
2
|
-
import { createMemo as createMemo2, createSignal as createSignal4 } from "solid-js";
|
|
2
|
+
import { createMemo as createMemo2, createSignal as createSignal4, onCleanup } from "solid-js";
|
|
3
3
|
|
|
4
4
|
// src/logic/create_dirty_fields.ts
|
|
5
5
|
import { createMemo, createSignal } from "solid-js";
|
|
@@ -143,11 +143,15 @@ var createFields = () => {
|
|
|
143
143
|
const focusField = (name) => {
|
|
144
144
|
getField(name)?.focus();
|
|
145
145
|
};
|
|
146
|
+
const removeField = (name) => {
|
|
147
|
+
delete fields[name];
|
|
148
|
+
};
|
|
146
149
|
return {
|
|
147
150
|
fields,
|
|
148
151
|
getField,
|
|
149
152
|
setField,
|
|
150
|
-
focusField
|
|
153
|
+
focusField,
|
|
154
|
+
removeField
|
|
151
155
|
};
|
|
152
156
|
};
|
|
153
157
|
|
|
@@ -169,7 +173,10 @@ var createRules = () => {
|
|
|
169
173
|
const getRule = (name) => {
|
|
170
174
|
return rules[name];
|
|
171
175
|
};
|
|
172
|
-
|
|
176
|
+
const removeRule = (name) => {
|
|
177
|
+
delete rules[name];
|
|
178
|
+
};
|
|
179
|
+
return { rules, addRule, getRule, removeRule };
|
|
173
180
|
};
|
|
174
181
|
|
|
175
182
|
// src/logic/create_submit.ts
|
|
@@ -214,7 +221,7 @@ var createTouchedFields = () => {
|
|
|
214
221
|
|
|
215
222
|
// src/logic/format_value.ts
|
|
216
223
|
var formatValue = (value, rules) => {
|
|
217
|
-
if (rules
|
|
224
|
+
if (rules?.valueAsNumber) {
|
|
218
225
|
return Number(value);
|
|
219
226
|
}
|
|
220
227
|
return value;
|
|
@@ -325,8 +332,8 @@ var getResolverFields = (fields) => {
|
|
|
325
332
|
// src/create_form.ts
|
|
326
333
|
var createForm = (arg) => {
|
|
327
334
|
const { defaultValues, mode = "onChange", shouldFocusError = true, resolver } = arg;
|
|
328
|
-
const { fields, getField, setField, focusField } = createFields();
|
|
329
|
-
const { rules, addRule, getRule } = createRules();
|
|
335
|
+
const { fields, getField, setField, focusField, removeField } = createFields();
|
|
336
|
+
const { rules, addRule, getRule, removeRule } = createRules();
|
|
330
337
|
const [values, setValues] = createSignal4(structuredClone(defaultValues));
|
|
331
338
|
const { errors, appendError, clearError, resetErrors, clearErrors, getError } = createErrors();
|
|
332
339
|
const { touchedFields, addTouched, resetTouched } = createTouchedFields();
|
|
@@ -398,7 +405,7 @@ var createForm = (arg) => {
|
|
|
398
405
|
};
|
|
399
406
|
const onFieldChange = (event, name) => {
|
|
400
407
|
const fieldValue = getFieldValue(event);
|
|
401
|
-
const value = formatValue(fieldValue,
|
|
408
|
+
const value = formatValue(fieldValue, getRule(name));
|
|
402
409
|
setValues((prev) => {
|
|
403
410
|
const newState = { ...prev };
|
|
404
411
|
set(newState, name, value);
|
|
@@ -408,6 +415,11 @@ var createForm = (arg) => {
|
|
|
408
415
|
};
|
|
409
416
|
const register = (name, options = {}) => {
|
|
410
417
|
addRule(name, options);
|
|
418
|
+
onCleanup(() => {
|
|
419
|
+
removeRule(name);
|
|
420
|
+
removeField(name);
|
|
421
|
+
clearError(name);
|
|
422
|
+
});
|
|
411
423
|
return {
|
|
412
424
|
name,
|
|
413
425
|
onInput(event) {
|
|
@@ -430,11 +442,13 @@ var createForm = (arg) => {
|
|
|
430
442
|
addTouched(name);
|
|
431
443
|
},
|
|
432
444
|
ref(element) {
|
|
433
|
-
|
|
434
|
-
if (field) {
|
|
445
|
+
if (!element) {
|
|
435
446
|
return;
|
|
436
447
|
}
|
|
437
|
-
|
|
448
|
+
const field = getField(name);
|
|
449
|
+
if (field !== element) {
|
|
450
|
+
setField(name, element);
|
|
451
|
+
}
|
|
438
452
|
setFieldValue(element, get(values(), name));
|
|
439
453
|
}
|
|
440
454
|
};
|