solid-hook-form 2.5.1 → 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 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
- return { rules, addRule, getRule };
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.valueAsNumber) {
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, rules[name]);
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) {
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
- return { rules, addRule, getRule };
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.valueAsNumber) {
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, rules[name]);
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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-hook-form",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
4
4
  "type": "module",
5
5
  "main": "./dist/main.js",
6
6
  "module": "./dist/main.js",