@juantroconisf/lib 4.0.0 → 4.0.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/index.d.mts CHANGED
@@ -91,6 +91,7 @@ interface UseFormResponse<O extends StateType> {
91
91
  register: RegisterFunc<O>;
92
92
  hasInvalidValues: () => boolean;
93
93
  resetForm: (preservedKeys?: (keyof O)[]) => void;
94
+ resetTouched: (preservedKeys?: (keyof O)[]) => void;
94
95
  }
95
96
 
96
97
  declare function useForm<O extends StateType>(initialState: O, { validations, errorMessages }?: FormOptions<O>): UseFormResponse<O>;
package/dist/index.d.ts CHANGED
@@ -91,6 +91,7 @@ interface UseFormResponse<O extends StateType> {
91
91
  register: RegisterFunc<O>;
92
92
  hasInvalidValues: () => boolean;
93
93
  resetForm: (preservedKeys?: (keyof O)[]) => void;
94
+ resetTouched: (preservedKeys?: (keyof O)[]) => void;
94
95
  }
95
96
 
96
97
  declare function useForm<O extends StateType>(initialState: O, { validations, errorMessages }?: FormOptions<O>): UseFormResponse<O>;
package/dist/index.js CHANGED
@@ -206,13 +206,17 @@ function useForm(initialState, { validations, errorMessages } = {}) {
206
206
  },
207
207
  [errors2, touched]
208
208
  );
209
- const onBlur = (id) => !touched[id] && setTouched(
210
- (prev) => handleNestedChange({
211
- state: prev,
212
- id,
213
- value: true
214
- })
215
- ), onValueChange = (id, value) => {
209
+ const onBlur = (id) => {
210
+ validateInput(id, state[id]);
211
+ if (touched[id]) return;
212
+ setTouched(
213
+ (prev) => handleNestedChange({
214
+ state: prev,
215
+ id,
216
+ value: true
217
+ })
218
+ );
219
+ }, onValueChange = (id, value) => {
216
220
  setState((prev) => handleNestedChange({ state: prev, id, value }));
217
221
  validateInput(id, value);
218
222
  }, onSelectionChange = (id, value) => {
@@ -279,7 +283,16 @@ function useForm(initialState, { validations, errorMessages } = {}) {
279
283
  initialState
280
284
  )
281
285
  );
282
- }
286
+ },
287
+ resetTouched: (preservedKeys) => setTouched(
288
+ (prev) => preservedKeys === void 0 ? initialState : preservedKeys.reduce(
289
+ (acc, key) => ({
290
+ ...acc,
291
+ [key]: prev[key]
292
+ }),
293
+ initial.touched
294
+ )
295
+ )
283
296
  };
284
297
  }
285
298
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.mjs CHANGED
@@ -187,13 +187,17 @@ function useForm(initialState, { validations, errorMessages } = {}) {
187
187
  },
188
188
  [errors2, touched]
189
189
  );
190
- const onBlur = (id) => !touched[id] && setTouched(
191
- (prev) => handleNestedChange({
192
- state: prev,
193
- id,
194
- value: true
195
- })
196
- ), onValueChange = (id, value) => {
190
+ const onBlur = (id) => {
191
+ validateInput(id, state[id]);
192
+ if (touched[id]) return;
193
+ setTouched(
194
+ (prev) => handleNestedChange({
195
+ state: prev,
196
+ id,
197
+ value: true
198
+ })
199
+ );
200
+ }, onValueChange = (id, value) => {
197
201
  setState((prev) => handleNestedChange({ state: prev, id, value }));
198
202
  validateInput(id, value);
199
203
  }, onSelectionChange = (id, value) => {
@@ -260,7 +264,16 @@ function useForm(initialState, { validations, errorMessages } = {}) {
260
264
  initialState
261
265
  )
262
266
  );
263
- }
267
+ },
268
+ resetTouched: (preservedKeys) => setTouched(
269
+ (prev) => preservedKeys === void 0 ? initialState : preservedKeys.reduce(
270
+ (acc, key) => ({
271
+ ...acc,
272
+ [key]: prev[key]
273
+ }),
274
+ initial.touched
275
+ )
276
+ )
264
277
  };
265
278
  }
266
279
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juantroconisf/lib",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "A form validation library for HeroUI.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",