@radicalbit/formbit 1.1.0 → 1.2.1

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.js CHANGED
@@ -3,6 +3,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
3
3
  var React = require('react');
4
4
  var React__default = _interopDefault(React);
5
5
  var lodash = require('lodash');
6
+ var uuid = require('uuid');
6
7
  var yup = require('yup');
7
8
 
8
9
  function _extends() {
@@ -177,20 +178,26 @@ var validateSyncAll = function validateSyncAll(paths, schema, form, options) {
177
178
  };
178
179
 
179
180
  var useExecuteCallbacks = (function (writer, setError) {
180
- var callbacksStore = React.useRef([]);
181
+ var callbacksStore = React.useRef({});
181
182
  React.useEffect(function () {
182
- if (callbacksStore.current.length) {
183
- callbacksStore.current.forEach(function (cb) {
184
- if (cb) {
185
- cb(writer, setError);
186
- }
187
- });
188
- callbacksStore.current = [];
183
+ if (lodash.isEmpty(callbacksStore.current)) {
184
+ return;
189
185
  }
186
+
187
+ Object.entries(callbacksStore.current).forEach(function (_ref) {
188
+ var cb = _ref[1];
189
+
190
+ if (cb) {
191
+ cb(writer, setError);
192
+ }
193
+ });
194
+ callbacksStore.current = {};
190
195
  }, [setError, writer]);
191
- return React.useCallback(function (cb) {
196
+ return React.useCallback(function (uuid, cb) {
192
197
  if (cb) {
193
- callbacksStore.current.push(cb);
198
+ var _extends2;
199
+
200
+ callbacksStore.current = _extends({}, callbacksStore.current, (_extends2 = {}, _extends2[uuid] = cb, _extends2));
194
201
  }
195
202
  }, []);
196
203
  });
@@ -212,10 +219,31 @@ var useFormbit = (function (_ref) {
212
219
  setWriter = _useState[1];
213
220
 
214
221
  var initialize = React.useCallback(function (values) {
222
+ var __metadata = values.__metadata;
223
+
224
+ if (__metadata) {
225
+ setWriter(function (w) {
226
+ return _extends({}, w, {
227
+ initialValues: values,
228
+ form: values,
229
+ errors: {},
230
+ liveValidation: {},
231
+ isDirty: false
232
+ });
233
+ });
234
+ return;
235
+ }
236
+
215
237
  setWriter(function (w) {
238
+ var __metadata = w.form.__metadata;
239
+
240
+ var newValues = _extends({}, values, {
241
+ __metadata: __metadata
242
+ });
243
+
216
244
  return _extends({}, w, {
217
- initialValues: values,
218
- form: values,
245
+ initialValues: newValues,
246
+ form: newValues,
219
247
  errors: {},
220
248
  liveValidation: {},
221
249
  isDirty: false
@@ -245,6 +273,14 @@ var useFormbit = (function (_ref) {
245
273
  _ref2$options = _ref2.options,
246
274
  options = _ref2$options === void 0 ? {} : _ref2$options;
247
275
 
276
+ var newUUID = function getUUID() {
277
+ if (successCallback || errorCallback) {
278
+ return uuid.v4();
279
+ }
280
+
281
+ return undefined;
282
+ }();
283
+
248
284
  setWriter(function (w) {
249
285
  var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
250
286
  var paths = pathsToValidate.concat(liveValidationPaths);
@@ -268,7 +304,7 @@ var useFormbit = (function (_ref) {
268
304
  });
269
305
 
270
306
  if (paths.length === 0) {
271
- executeCb(successCallback);
307
+ newUUID && executeCb(newUUID, successCallback);
272
308
  return newWriter;
273
309
  }
274
310
 
@@ -282,7 +318,7 @@ var useFormbit = (function (_ref) {
282
318
  errors: cleanErrors
283
319
  });
284
320
 
285
- executeCb(successCallback);
321
+ newUUID && executeCb(newUUID, successCallback);
286
322
  return _neww;
287
323
  }
288
324
 
@@ -303,7 +339,7 @@ var useFormbit = (function (_ref) {
303
339
  liveValidation: liveValidation
304
340
  });
305
341
 
306
- executeCb(errorCallback);
342
+ newUUID && executeCb(newUUID, errorCallback);
307
343
  return neww;
308
344
  });
309
345
  }, [executeCb]);
@@ -324,6 +360,14 @@ var useFormbit = (function (_ref) {
324
360
  _ref5$options = _ref5.options,
325
361
  options = _ref5$options === void 0 ? {} : _ref5$options;
326
362
 
363
+ var newUUID = function getUUID() {
364
+ if (successCallback || errorCallback) {
365
+ return uuid.v4();
366
+ }
367
+
368
+ return undefined;
369
+ }();
370
+
327
371
  setWriter(function (w) {
328
372
  var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
329
373
  var paths = pathsToValidate.concat(liveValidationPaths);
@@ -339,7 +383,7 @@ var useFormbit = (function (_ref) {
339
383
  });
340
384
 
341
385
  if (paths.length === 0) {
342
- executeCb(successCallback);
386
+ newUUID && executeCb(newUUID, successCallback);
343
387
  return newWriter;
344
388
  }
345
389
 
@@ -353,7 +397,7 @@ var useFormbit = (function (_ref) {
353
397
  errors: cleanErrors
354
398
  });
355
399
 
356
- executeCb(successCallback);
400
+ newUUID && executeCb(newUUID, successCallback);
357
401
  return _neww2;
358
402
  }
359
403
 
@@ -376,85 +420,122 @@ var useFormbit = (function (_ref) {
376
420
  liveValidation: liveValidation
377
421
  });
378
422
 
379
- executeCb(errorCallback);
423
+ newUUID && executeCb(newUUID, errorCallback);
380
424
  return neww;
381
425
  });
382
426
  }, [executeCb]);
383
- var validate = React.useCallback(function (path, _temp3) {
427
+ var removeAll = React.useCallback(function (arr, _temp3) {
384
428
  var _ref9 = _temp3 === void 0 ? {} : _temp3,
429
+ _ref9$noLiveValidatio = _ref9.noLiveValidation,
430
+ noLiveValidation = _ref9$noLiveValidatio === void 0 ? false : _ref9$noLiveValidatio,
431
+ _ref9$pathsToValidate = _ref9.pathsToValidate,
432
+ pathsToValidate = _ref9$pathsToValidate === void 0 ? [] : _ref9$pathsToValidate,
385
433
  successCallback = _ref9.successCallback,
386
434
  errorCallback = _ref9.errorCallback,
387
- options = _ref9.options;
435
+ _ref9$options = _ref9.options,
436
+ options = _ref9$options === void 0 ? {} : _ref9$options;
437
+
438
+ var newUUID = function getUUID() {
439
+ if (successCallback || errorCallback) {
440
+ return uuid.v4();
441
+ }
442
+
443
+ return undefined;
444
+ }();
388
445
 
389
446
  setWriter(function (w) {
390
- var cleanErrors = lodash.set(lodash.cloneDeep(w.errors), path, undefined);
391
- var inner = validateSyncAll([path], schemaRef.current, w.form, options);
447
+ var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
448
+ var paths = pathsToValidate.concat(liveValidationPaths);
449
+ var form = arr.reduce(function (acc, path) {
450
+ return lodash.set(acc, path, undefined);
451
+ }, lodash.cloneDeep(w.form));
452
+
453
+ var newWriter = _extends({}, w, {
454
+ form: form,
455
+ isDirty: true
456
+ });
457
+
458
+ if (paths.length === 0) {
459
+ newUUID && executeCb(newUUID, successCallback);
460
+ return newWriter;
461
+ }
462
+
463
+ var cleanErrors = pathsToValidate.reduce(function (acc, key) {
464
+ return lodash.set(acc, key, undefined);
465
+ }, lodash.cloneDeep(newWriter.errors));
466
+ var inner = validateSyncAll(pathsToValidate, schemaRef.current, newWriter.form, options);
392
467
 
393
468
  if (lodash.isEmpty(inner)) {
394
- var _neww3 = _extends({}, w, {
469
+ var _neww3 = _extends({}, newWriter, {
395
470
  errors: cleanErrors
396
471
  });
397
472
 
398
- executeCb(successCallback);
473
+ newUUID && executeCb(newUUID, successCallback);
399
474
  return _neww3;
400
475
  }
401
476
 
402
477
  var errors = inner.reduce(function (acc, _ref10) {
403
478
  var _ref10$path = _ref10.path,
404
- errorPath = _ref10$path === void 0 ? '' : _ref10$path,
479
+ path = _ref10$path === void 0 ? '' : _ref10$path,
405
480
  message = _ref10.message;
406
- return lodash.set(acc, errorPath, message);
481
+ return lodash.set(acc, path, message);
407
482
  }, cleanErrors);
408
483
  var liveValidation = inner.reduce(function (acc, _ref11) {
409
484
  var _extends4;
410
485
 
411
486
  var _ref11$path = _ref11.path,
412
- errorPath = _ref11$path === void 0 ? '' : _ref11$path;
413
- return _extends({}, acc, (_extends4 = {}, _extends4[errorPath] = true, _extends4));
414
- }, w.liveValidation);
487
+ path = _ref11$path === void 0 ? '' : _ref11$path;
488
+ return _extends({}, acc, (_extends4 = {}, _extends4[path] = true, _extends4));
489
+ }, newWriter.liveValidation);
415
490
 
416
- var neww = _extends({}, w, {
491
+ var neww = _extends({}, newWriter, {
417
492
  errors: errors,
418
493
  liveValidation: liveValidation
419
494
  });
420
495
 
421
- executeCb(errorCallback);
496
+ newUUID && executeCb(newUUID, errorCallback);
422
497
  return neww;
423
498
  });
424
499
  }, [executeCb]);
425
- var validateAll = React.useCallback(function (paths, _temp4) {
500
+ var validate = React.useCallback(function (path, _temp4) {
426
501
  var _ref12 = _temp4 === void 0 ? {} : _temp4,
427
502
  successCallback = _ref12.successCallback,
428
503
  errorCallback = _ref12.errorCallback,
429
504
  options = _ref12.options;
430
505
 
506
+ var newUUID = function getUUID() {
507
+ if (successCallback || errorCallback) {
508
+ return uuid.v4();
509
+ }
510
+
511
+ return undefined;
512
+ }();
513
+
431
514
  setWriter(function (w) {
432
- var cleanErrors = paths.reduce(function (acc, path) {
433
- return lodash.set(acc, path, undefined);
434
- }, lodash.cloneDeep(w.errors));
435
- var inner = validateSyncAll(paths, schemaRef.current, w.form, options);
515
+ var cleanErrors = lodash.set(lodash.cloneDeep(w.errors), path, undefined);
516
+ var inner = validateSyncAll([path], schemaRef.current, w.form, options);
436
517
 
437
518
  if (lodash.isEmpty(inner)) {
438
519
  var _neww4 = _extends({}, w, {
439
520
  errors: cleanErrors
440
521
  });
441
522
 
442
- executeCb(successCallback);
523
+ newUUID && executeCb(newUUID, successCallback);
443
524
  return _neww4;
444
525
  }
445
526
 
446
527
  var errors = inner.reduce(function (acc, _ref13) {
447
528
  var _ref13$path = _ref13.path,
448
- path = _ref13$path === void 0 ? '' : _ref13$path,
529
+ errorPath = _ref13$path === void 0 ? '' : _ref13$path,
449
530
  message = _ref13.message;
450
- return lodash.set(acc, path, message);
531
+ return lodash.set(acc, errorPath, message);
451
532
  }, cleanErrors);
452
533
  var liveValidation = inner.reduce(function (acc, _ref14) {
453
534
  var _extends5;
454
535
 
455
536
  var _ref14$path = _ref14.path,
456
- path = _ref14$path === void 0 ? '' : _ref14$path;
457
- return _extends({}, acc, (_extends5 = {}, _extends5[path] = true, _extends5));
537
+ errorPath = _ref14$path === void 0 ? '' : _ref14$path;
538
+ return _extends({}, acc, (_extends5 = {}, _extends5[errorPath] = true, _extends5));
458
539
  }, w.liveValidation);
459
540
 
460
541
  var neww = _extends({}, w, {
@@ -462,16 +543,68 @@ var useFormbit = (function (_ref) {
462
543
  liveValidation: liveValidation
463
544
  });
464
545
 
465
- executeCb(errorCallback);
546
+ newUUID && executeCb(newUUID, errorCallback);
466
547
  return neww;
467
548
  });
468
549
  }, [executeCb]);
469
- var check = React.useCallback(function (json, _temp5) {
550
+ var validateAll = React.useCallback(function (paths, _temp5) {
470
551
  var _ref15 = _temp5 === void 0 ? {} : _temp5,
471
552
  successCallback = _ref15.successCallback,
472
553
  errorCallback = _ref15.errorCallback,
473
554
  options = _ref15.options;
474
555
 
556
+ var newUUID = function getUUID() {
557
+ if (successCallback || errorCallback) {
558
+ return uuid.v4();
559
+ }
560
+
561
+ return undefined;
562
+ }();
563
+
564
+ setWriter(function (w) {
565
+ var cleanErrors = paths.reduce(function (acc, path) {
566
+ return lodash.set(acc, path, undefined);
567
+ }, lodash.cloneDeep(w.errors));
568
+ var inner = validateSyncAll(paths, schemaRef.current, w.form, options);
569
+
570
+ if (lodash.isEmpty(inner)) {
571
+ var _neww5 = _extends({}, w, {
572
+ errors: cleanErrors
573
+ });
574
+
575
+ newUUID && executeCb(newUUID, successCallback);
576
+ return _neww5;
577
+ }
578
+
579
+ var errors = inner.reduce(function (acc, _ref16) {
580
+ var _ref16$path = _ref16.path,
581
+ path = _ref16$path === void 0 ? '' : _ref16$path,
582
+ message = _ref16.message;
583
+ return lodash.set(acc, path, message);
584
+ }, cleanErrors);
585
+ var liveValidation = inner.reduce(function (acc, _ref17) {
586
+ var _extends6;
587
+
588
+ var _ref17$path = _ref17.path,
589
+ path = _ref17$path === void 0 ? '' : _ref17$path;
590
+ return _extends({}, acc, (_extends6 = {}, _extends6[path] = true, _extends6));
591
+ }, w.liveValidation);
592
+
593
+ var neww = _extends({}, w, {
594
+ errors: errors,
595
+ liveValidation: liveValidation
596
+ });
597
+
598
+ newUUID && executeCb(newUUID, errorCallback);
599
+ return neww;
600
+ });
601
+ }, [executeCb]);
602
+ var check = React.useCallback(function (json, _temp6) {
603
+ var _ref18 = _temp6 === void 0 ? {} : _temp6,
604
+ successCallback = _ref18.successCallback,
605
+ errorCallback = _ref18.errorCallback,
606
+ options = _ref18.options;
607
+
475
608
  try {
476
609
  schema.validateSync(json, _extends({
477
610
  abortEarly: false
@@ -488,16 +621,24 @@ var useFormbit = (function (_ref) {
488
621
  return undefined;
489
622
  }
490
623
  }, [schema, setError, writer]);
491
- var privateValidateForm = React.useCallback(function (successCallback, errorCallback, _temp6) {
492
- var _ref16 = _temp6 === void 0 ? {} : _temp6,
493
- options = _ref16.options;
624
+ var privateValidateForm = React.useCallback(function (successCallback, errorCallback, _temp7) {
625
+ var _ref19 = _temp7 === void 0 ? {} : _temp7,
626
+ options = _ref19.options;
627
+
628
+ var newUUID = function getUUID() {
629
+ if (successCallback || errorCallback) {
630
+ return uuid.v4();
631
+ }
632
+
633
+ return undefined;
634
+ }();
494
635
 
495
636
  setWriter(function (w) {
496
637
  try {
497
638
  schemaRef.current.validateSync(w.form, _extends({
498
639
  abortEarly: false
499
640
  }, options));
500
- executeCb(successCallback);
641
+ newUUID && executeCb(newUUID, successCallback);
501
642
  return _extends({}, w, {
502
643
  errors: {}
503
644
  });
@@ -508,19 +649,19 @@ var useFormbit = (function (_ref) {
508
649
  }
509
650
 
510
651
  var inner = e.inner;
511
- var errors = inner.reduce(function (acc, _ref17) {
512
- var message = _ref17.message,
513
- _ref17$path = _ref17.path,
514
- path = _ref17$path === void 0 ? '' : _ref17$path;
652
+ var errors = inner.reduce(function (acc, _ref20) {
653
+ var message = _ref20.message,
654
+ _ref20$path = _ref20.path,
655
+ path = _ref20$path === void 0 ? '' : _ref20$path;
515
656
  return lodash.set(acc, path, message);
516
657
  }, {});
517
658
 
518
- var _liveValidation = inner.reduce(function (acc, _ref18) {
519
- var _extends6;
659
+ var _liveValidation = inner.reduce(function (acc, _ref21) {
660
+ var _extends7;
520
661
 
521
- var _ref18$path = _ref18.path,
522
- path = _ref18$path === void 0 ? '' : _ref18$path;
523
- return _extends({}, acc, (_extends6 = {}, _extends6[path] = true, _extends6));
662
+ var _ref21$path = _ref21.path,
663
+ path = _ref21$path === void 0 ? '' : _ref21$path;
664
+ return _extends({}, acc, (_extends7 = {}, _extends7[path] = true, _extends7));
524
665
  }, w.liveValidation);
525
666
 
526
667
  var newWriter = _extends({}, w, {
@@ -528,7 +669,7 @@ var useFormbit = (function (_ref) {
528
669
  liveValidation: _liveValidation
529
670
  });
530
671
 
531
- executeCb(errorCallback);
672
+ newUUID && executeCb(newUUID, errorCallback);
532
673
  return newWriter;
533
674
  }
534
675
  });
@@ -613,6 +754,7 @@ var useFormbit = (function (_ref) {
613
754
  isFormValid: isFormValid,
614
755
  liveValidation: liveValidation,
615
756
  remove: remove,
757
+ removeAll: removeAll,
616
758
  resetForm: resetForm,
617
759
  setError: setError,
618
760
  setSchema: setSchema,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/helpers/obj-leaves.ts","../src/helpers/constants.ts","../src/types/helpers.ts","../src/validate-sync-all.ts","../src/use-execute-callbacks.ts","../src/use-formbit.ts","../src/formbit-context.tsx"],"sourcesContent":["type ObjectLeaves = (obj: unknown, acc?: string[]) => string[]\n\nfunction isObject(val: unknown): val is Record<string, unknown> {\n return val != null && typeof val === 'object' && Array.isArray(val) === false\n}\n\nconst objLeaves: ObjectLeaves = (obj, acc = []) => {\n const fn = (o: unknown, s?: string) => {\n if (Array.isArray(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}[${k}]` : k\n\n const isLeaf = fn(o[+k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n if (isObject(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}.${k}` : k\n\n const isLeaf = fn(o[k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n return false\n }\n\n fn(obj)\n return acc\n}\n\nexport default objLeaves\n","export const TEST_ERROR_MESSAGES = {\n MIN: 'must be greater than or equal',\n REQUIRED: 'is a required field'\n}\n\nexport enum ACTIONS {\n write = 'write',\n remove = 'remove'\n}\n\nexport const MISSING_CONTEXT_ERROR =\n 'No FormbitContext.Provider found, useFormbitContext can only be called inside proper context'\n","import { ValidationError } from 'yup'\n\nexport const isValidationError = (error: unknown): error is ValidationError => {\n if (error && typeof error === 'object' && 'message' in error && 'path' in error && 'inner' in error) {\n const { path, message, inner } = error\n\n return (typeof path === 'string' || path === undefined) &&\n (typeof message === 'string' || path === undefined) &&\n Array.isArray(inner)\n }\n\n return false\n}\n","import { isEmpty } from 'lodash'\nimport { Form, InitialValues, ValidateOptions, ValidationFormbitError, ValidationSchema } from './types'\nimport { isValidationError } from './types/helpers'\n\n/* We implement the validateSyncAll because yup.pick won't work with\n * schema with nested values: https://github.com/jquense/yup/issues/1269 */\nexport const validateSyncAll = <Values extends InitialValues> (\n paths:string[],\n schema:ValidationSchema<Values>,\n form: Form,\n options: ValidateOptions = {}\n): ValidationFormbitError[] => {\n let errors: ValidationFormbitError[] = []\n\n if (isEmpty(paths)) {\n return errors\n }\n\n for (const pathToValidate of paths) {\n try {\n schema.validateSyncAt(pathToValidate, form, options)\n } catch (e) {\n if (isValidationError(e)) {\n const { message, path } = e\n\n errors = errors.concat({ message, path })\n }\n\n if (options?.abortEarly) {\n break\n }\n }\n }\n\n return errors\n}\n","import { useCallback, useEffect, useRef } from 'react'\nimport { GenericCallback, InitialValues, SetError, Writer } from './types'\n\ntype CbTypes<Values extends InitialValues> = GenericCallback<Values> | undefined\n\ntype RefsStore<Values extends InitialValues> = CbTypes<Values>[]\n\n/**\n * useExecuteCallbacks\n *\n * This hook is meant to give a simple way to make sure that callbacks are called only once,\n * even if they are called inside React hooks like useEffect or setState.\n *\n *\n */\nexport default <Values extends InitialValues>(writer: Writer<Values>, setError: SetError) => {\n const callbacksStore = useRef<RefsStore<Partial<Values>>>([])\n\n useEffect(() => {\n if (callbacksStore.current.length) {\n callbacksStore.current.forEach((cb) => {\n if (cb) {\n cb(writer, setError)\n }\n })\n callbacksStore.current = []\n }\n }, [setError, writer])\n\n /**\n * executeCallbacks\n * @param cb Callback that needs to be executed.\n *\n */\n return useCallback((cb?: GenericCallback<Partial<Values>>) => {\n if (cb) {\n callbacksStore.current.push(cb)\n }\n }, [])\n}\n","import objLeaves from './helpers/obj-leaves'\nimport {\n useCallback, useRef, useState\n} from 'react'\nimport { ACTIONS } from './helpers/constants'\nimport {\n Check,\n ErrorFn,\n FormbitObject,\n InitialValues,\n IsFormInvalid,\n IsFormValid,\n LiveValidation,\n LiveValidationFn,\n PrivateValidateForm,\n Remove,\n SetError,\n SubmitForm,\n SuccessCallback,\n Validate,\n ValidateAll,\n ValidateForm,\n ValidationSchema,\n Write,\n WriteAll,\n WriteOrRemove,\n Writer\n} from './types'\nimport { isValidationError } from './types/helpers'\nimport { validateSyncAll } from './validate-sync-all'\nimport useExecuteCallbacks from './use-execute-callbacks'\nimport { cloneDeep, get, isEmpty, omit, set } from 'lodash'\n\ntype UseFormbitParams<Values extends InitialValues> = {\n initialValues?: Partial<Values>,\n yup: ValidationSchema<Values>\n}\n\nexport default <Values extends InitialValues>({\n initialValues = {},\n yup: schema\n}: UseFormbitParams<Values>): FormbitObject<Values> => {\n const schemaRef = useRef<ValidationSchema<Values>>(schema)\n\n const [writer, setWriter] = useState<Writer<Partial<Values>>>({\n form: initialValues,\n initialValues,\n errors: {},\n liveValidation: {},\n isDirty: false\n })\n\n const initialize = useCallback((values: Partial<Values>) => {\n setWriter((w) => ({\n ...w,\n initialValues: values,\n form: values,\n errors: {},\n liveValidation: {},\n isDirty: false\n }))\n }, [])\n\n const setSchema = useCallback((newSchema: ValidationSchema<Values>) => { schemaRef.current = newSchema }, [])\n\n const setError: SetError = useCallback((path, value) => {\n setWriter((w) => {\n const errors = set(cloneDeep(w.errors), path, value)\n\n return { ...w, errors }\n })\n }, [])\n\n const executeCb = useExecuteCallbacks<Partial<Values>>(writer, setError)\n\n const writeOrRemove: WriteOrRemove<Values> = useCallback((\n path,\n value,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {},\n action\n ) => {\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = (function execute() {\n switch (action) {\n case ACTIONS.write: return set(cloneDeep(w.form), path, value)\n\n case ACTIONS.remove: return omit<Partial<Values>>(cloneDeep(w.form), path)\n\n default: return cloneDeep(w.form)\n }\n }())\n\n const newWriter: Writer<Partial<Values>> = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n executeCb(successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: innerPath, message }) => innerPath ? set(acc, innerPath, message) : acc,\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: innerPath }) => innerPath ? ({ ...acc, [innerPath]: true }) : acc,\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const write: Write<Values> = useCallback((path, value, options) =>\n writeOrRemove(path, value, options, ACTIONS.write), [writeOrRemove])\n\n const remove: Remove<Values> = useCallback((path, options) =>\n writeOrRemove(path, undefined, options, ACTIONS.remove), [writeOrRemove])\n\n const writeAll: WriteAll<Values> = useCallback((\n arr,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {}\n ) => {\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = arr.reduce(\n (acc, [key, val]) => set(acc, key, val),\n cloneDeep(w.form)\n )\n\n const newWriter = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n executeCb(successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const validate: Validate<Values> = useCallback((\n path,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = set(cloneDeep(w.errors), path, undefined)\n\n // VALIDATE\n const inner = validateSyncAll([path], schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: errorPath = '', message }) => set(acc, errorPath, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: errorPath = '' }) => ({ ...acc, [errorPath]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const validateAll: ValidateAll<Values> = useCallback((\n paths,\n { successCallback, errorCallback, options } = {}\n ) => {\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, path) => set(acc, path, undefined),\n cloneDeep(w.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const check: Check<Partial<Values>> = useCallback((\n json,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n try {\n schema.validateSync(json, { abortEarly: false, ...options })\n successCallback?.(json, writer, setError)\n\n return undefined\n } catch (e) {\n if (isValidationError(e)) {\n const { inner } = e\n\n errorCallback?.(json, inner, writer, setError)\n\n return inner\n }\n\n return undefined\n }\n }, [schema, setError, writer])\n\n const privateValidateForm: PrivateValidateForm<Partial<Values>> = useCallback((\n successCallback,\n errorCallback,\n { isDirty: _, options } = {}\n ) => {\n setWriter((w) => {\n try {\n // abortEarly: false as default is to be retrocompatible\n schemaRef.current.validateSync(w.form, { abortEarly: false, ...options })\n\n executeCb(successCallback)\n\n return { ...w, errors: {} }\n } catch (e) {\n if (!isValidationError(e)) {\n // Checking if error is not formbit-related (e.g. a bug inside the successCallback)\n console.error(e)\n return w\n }\n\n const { inner } = e\n\n const errors = inner.reduce(\n (acc, { message, path = '' }) => set(acc, path, message),\n {}\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const newWriter = { ...w, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return newWriter\n }\n })\n }, [executeCb])\n\n const validateForm: ValidateForm<Partial<Values>> = useCallback((successCallback, errorCallback, options = {}) =>\n privateValidateForm(\n successCallback,\n errorCallback,\n { options }\n ), [privateValidateForm])\n\n const submitForm: SubmitForm<Values> =\n useCallback((successCallback, errorCallback, options = {}) => {\n const fn = () => setWriter((w) => ({ ...w, isDirty: false }))\n\n const successCallbackAndClearIsDirty: SuccessCallback<Partial<Values>> = (a, b) => {\n // Success callback is called only if the form is valid so we can safely cast a as Writer<Values>\n const writer = a as Writer<Values>\n\n // __metadata is a field used to store metadata about the form and should not be submitted\n const { __metadata: _, ...form } = writer.form\n\n return successCallback({ ...writer, form }, b, fn)\n }\n\n return privateValidateForm(\n successCallbackAndClearIsDirty,\n errorCallback,\n { options }\n )\n }, [privateValidateForm])\n\n const resetForm = useCallback(() => {\n setWriter((w) => ({\n ...w,\n form: w.initialValues,\n errors: {},\n isDirty: false,\n liveValidation: {}\n }))\n }, [])\n\n const isFormValid: IsFormValid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).every((leaf) => !get(e, leaf))\n }, [writer.errors])\n\n const isFormInvalid: IsFormInvalid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).some((leaf) => get(e, leaf))\n }, [writer.errors])\n\n const error: ErrorFn = useCallback((path: string) => get(writer.errors, path, undefined), [writer.errors])\n\n const liveValidation: LiveValidationFn = useCallback(\n (path: string) => get(writer.liveValidation, path, undefined),\n [writer.liveValidation]\n )\n\n return {\n check,\n error,\n errors: writer.errors,\n form: writer.form,\n initialize,\n isDirty: writer.isDirty,\n isFormInvalid,\n isFormValid,\n liveValidation,\n remove,\n resetForm,\n setError,\n setSchema,\n submitForm,\n validate,\n validateAll,\n validateForm,\n write,\n writeAll\n }\n}\n","import React, { useContext, createContext, PropsWithChildren } from 'react'\nimport useFormbit from './use-formbit'\nimport * as yup from 'yup'\nimport { FormbitObject, InitialValues, ValidationSchema } from './types'\nimport { MISSING_CONTEXT_ERROR } from './helpers/constants'\nimport { once } from 'lodash'\n\ntype Props<Values extends InitialValues> = {\n initialValues?: Partial<Values> | {}\n schema: ValidationSchema<Values>\n} & PropsWithChildren\n\nconst createFormbitContext =\n once(<Values extends InitialValues>() => createContext<FormbitObject<Values> | undefined>(undefined))\n\nexport default function FormbitContextProvider<Values extends InitialValues>({\n initialValues = {},\n schema,\n children\n}: Props<Values>) {\n const FormbitContext = createFormbitContext<Values>()\n\n const value = useFormbit({ initialValues, yup: schema || yup.object() })\n\n return (\n <FormbitContext.Provider value={value}>{children}</FormbitContext.Provider>\n )\n}\n\nexport const useFormbitContext = <Values extends InitialValues>() => {\n const context = useContext(createFormbitContext<Values>())\n\n if (!context) {\n // This error can only be thrown if this hook is called outside the context,\n // and it should only happen during develop.\n throw new Error(MISSING_CONTEXT_ERROR)\n }\n\n return context\n}\n"],"names":["isObject","val","Array","isArray","objLeaves","obj","acc","fn","o","s","Object","keys","forEach","k","path","isLeaf","push","ACTIONS","MISSING_CONTEXT_ERROR","isValidationError","error","message","inner","undefined","validateSyncAll","paths","schema","form","options","errors","isEmpty","pathToValidate","validateSyncAt","e","concat","abortEarly","writer","setError","callbacksStore","useRef","useEffect","current","length","cb","useCallback","initialValues","yup","schemaRef","useState","liveValidation","isDirty","setWriter","initialize","values","w","setSchema","newSchema","value","set","cloneDeep","executeCb","useExecuteCallbacks","writeOrRemove","action","noLiveValidation","pathsToValidate","successCallback","errorCallback","liveValidationPaths","execute","write","remove","omit","newWriter","cleanErrors","reduce","key","neww","innerPath","writeAll","arr","validate","errorPath","validateAll","check","json","validateSync","privateValidateForm","_","console","validateForm","submitForm","successCallbackAndClearIsDirty","a","b","resetForm","isFormValid","every","leaf","get","isFormInvalid","some","createFormbitContext","once","createContext","FormbitContextProvider","children","FormbitContext","useFormbit","React","useFormbitContext","context","useContext","Error"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/helpers/obj-leaves.ts","../src/helpers/constants.ts","../src/types/helpers.ts","../src/validate-sync-all.ts","../src/use-execute-callbacks.ts","../src/use-formbit.ts","../src/formbit-context.tsx"],"sourcesContent":["type ObjectLeaves = (obj: unknown, acc?: string[]) => string[]\n\nfunction isObject(val: unknown): val is Record<string, unknown> {\n return val != null && typeof val === 'object' && Array.isArray(val) === false\n}\n\nconst objLeaves: ObjectLeaves = (obj, acc = []) => {\n const fn = (o: unknown, s?: string) => {\n if (Array.isArray(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}[${k}]` : k\n\n const isLeaf = fn(o[+k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n if (isObject(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}.${k}` : k\n\n const isLeaf = fn(o[k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n return false\n }\n\n fn(obj)\n return acc\n}\n\nexport default objLeaves\n","export const TEST_ERROR_MESSAGES = {\n MIN: 'must be greater than or equal',\n REQUIRED: 'is a required field'\n}\n\nexport enum ACTIONS {\n write = 'write',\n remove = 'remove'\n}\n\nexport const MISSING_CONTEXT_ERROR =\n 'No FormbitContext.Provider found, useFormbitContext can only be called inside proper context'\n","import { ValidationError } from 'yup'\n\nexport const isValidationError = (error: unknown): error is ValidationError => {\n if (error && typeof error === 'object' && 'message' in error && 'path' in error && 'inner' in error) {\n const { path, message, inner } = error\n\n return (typeof path === 'string' || path === undefined) &&\n (typeof message === 'string' || path === undefined) &&\n Array.isArray(inner)\n }\n\n return false\n}\n","import { isEmpty } from 'lodash'\nimport { Form, InitialValues, ValidateOptions, ValidationFormbitError, ValidationSchema } from './types'\nimport { isValidationError } from './types/helpers'\n\n/* We implement the validateSyncAll because yup.pick won't work with\n * schema with nested values: https://github.com/jquense/yup/issues/1269 */\nexport const validateSyncAll = <Values extends InitialValues> (\n paths:string[],\n schema:ValidationSchema<Values>,\n form: Form,\n options: ValidateOptions = {}\n): ValidationFormbitError[] => {\n let errors: ValidationFormbitError[] = []\n\n if (isEmpty(paths)) {\n return errors\n }\n\n for (const pathToValidate of paths) {\n try {\n schema.validateSyncAt(pathToValidate, form, options)\n } catch (e) {\n if (isValidationError(e)) {\n const { message, path } = e\n\n errors = errors.concat({ message, path })\n }\n\n if (options?.abortEarly) {\n break\n }\n }\n }\n\n return errors\n}\n","import { useCallback, useEffect, useRef } from 'react'\nimport { GenericCallback, InitialValues, SetError, Writer } from './types'\nimport { isEmpty } from 'lodash'\n\n/**\n * useExecuteCallbacks\n *\n * This hook is meant to give a simple way to make sure that callbacks are called only once,\n * even if they are called inside React hooks like useEffect or setState.\n *\n *\n */\nexport default <Values extends InitialValues>(writer: Writer<Values>, setError: SetError) => {\n const callbacksStore = useRef<Object>({})\n\n useEffect(() => {\n if (isEmpty(callbacksStore.current)) {\n return\n }\n\n Object.entries(callbacksStore.current).forEach(([, cb]) => {\n if (cb) {\n cb(writer, setError)\n }\n })\n\n callbacksStore.current = {}\n }, [setError, writer])\n\n /**\n * executeCallbacks\n * @param cb Callback that needs to be executed.\n *\n */\n return useCallback((uuid: string, cb?: GenericCallback<Partial<Values>>) => {\n if (cb) {\n callbacksStore.current = { ...callbacksStore.current, [uuid]: cb }\n }\n }, [])\n}\n","import objLeaves from './helpers/obj-leaves'\nimport {\n useCallback, useRef, useState\n} from 'react'\nimport { ACTIONS } from './helpers/constants'\nimport {\n Check,\n ErrorFn,\n FormbitObject,\n InitialValues,\n IsFormInvalid,\n IsFormValid,\n LiveValidation,\n LiveValidationFn,\n PrivateValidateForm,\n Remove,\n RemoveAll,\n SetError,\n SubmitForm,\n SuccessCallback,\n Validate,\n ValidateAll,\n ValidateForm,\n ValidationSchema,\n Write,\n WriteAll,\n WriteOrRemove,\n Writer\n} from './types'\nimport { isValidationError } from './types/helpers'\nimport { validateSyncAll } from './validate-sync-all'\nimport useExecuteCallbacks from './use-execute-callbacks'\nimport { cloneDeep, get, isEmpty, omit, set } from 'lodash'\nimport { v4 as uuidv4 } from 'uuid'\n\ntype UseFormbitParams<Values extends InitialValues> = {\n initialValues?: Partial<Values>,\n yup: ValidationSchema<Values>\n}\n\nexport default <Values extends InitialValues>({\n initialValues = {},\n yup: schema\n}: UseFormbitParams<Values>): FormbitObject<Values> => {\n const schemaRef = useRef<ValidationSchema<Values>>(schema)\n\n const [writer, setWriter] = useState<Writer<Partial<Values>>>({\n form: initialValues,\n initialValues,\n errors: {},\n liveValidation: {},\n isDirty: false\n })\n\n const initialize = useCallback((values: Partial<Values>) => {\n const { __metadata } = values\n\n if (__metadata) {\n setWriter((w) => ({\n ...w,\n initialValues: values,\n form: values,\n errors: {},\n liveValidation: {},\n isDirty: false\n }))\n\n return\n }\n\n setWriter((w) => {\n const { form: { __metadata } } = w\n const newValues = { ...values, __metadata }\n\n return {\n ...w,\n initialValues: newValues,\n form: newValues,\n errors: {},\n liveValidation: {},\n isDirty: false\n }\n })\n }, [])\n\n const setSchema = useCallback((newSchema: ValidationSchema<Values>) => { schemaRef.current = newSchema }, [])\n\n const setError: SetError = useCallback((path, value) => {\n setWriter((w) => {\n const errors = set(cloneDeep(w.errors), path, value)\n\n return { ...w, errors }\n })\n }, [])\n\n const executeCb = useExecuteCallbacks<Partial<Values>>(writer, setError)\n\n const writeOrRemove: WriteOrRemove<Values> = useCallback((\n path,\n value,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {},\n action\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = (function execute() {\n switch (action) {\n case ACTIONS.write: return set(cloneDeep(w.form), path, value)\n\n case ACTIONS.remove: return omit<Partial<Values>>(cloneDeep(w.form), path)\n\n default: return cloneDeep(w.form)\n }\n }())\n\n const newWriter: Writer<Partial<Values>> = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n newUUID && executeCb(newUUID, successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: innerPath, message }) => innerPath ? set(acc, innerPath, message) : acc,\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: innerPath }) => innerPath ? ({ ...acc, [innerPath]: true }) : acc,\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const write: Write<Values> = useCallback((path, value, options) =>\n writeOrRemove(path, value, options, ACTIONS.write), [writeOrRemove])\n\n const remove: Remove<Values> = useCallback((path, options) =>\n writeOrRemove(path, undefined, options, ACTIONS.remove), [writeOrRemove])\n\n const writeAll: WriteAll<Values> = useCallback((\n arr,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = arr.reduce(\n (acc, [key, val]) => set(acc, key, val),\n cloneDeep(w.form)\n )\n\n const newWriter = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n newUUID && executeCb(newUUID, successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const removeAll: RemoveAll<Values> = useCallback(\n (\n arr,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = arr.reduce(\n (acc, path) => set(acc, path, undefined),\n cloneDeep(w.form)\n )\n\n const newWriter = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n newUUID && executeCb(newUUID, successCallback)\n return newWriter\n }\n\n const cleanErrors = pathsToValidate.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n const inner = validateSyncAll(pathsToValidate, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n newUUID && executeCb(newUUID, successCallback)\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n },\n [executeCb]\n )\n\n const validate: Validate<Values> = useCallback((\n path,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = set(cloneDeep(w.errors), path, undefined)\n\n // VALIDATE\n const inner = validateSyncAll([path], schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: errorPath = '', message }) => set(acc, errorPath, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: errorPath = '' }) => ({ ...acc, [errorPath]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const validateAll: ValidateAll<Values> = useCallback((\n paths,\n { successCallback, errorCallback, options } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, path) => set(acc, path, undefined),\n cloneDeep(w.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const check: Check<Partial<Values>> = useCallback((\n json,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n try {\n schema.validateSync(json, { abortEarly: false, ...options })\n successCallback?.(json, writer, setError)\n\n return undefined\n } catch (e) {\n if (isValidationError(e)) {\n const { inner } = e\n\n errorCallback?.(json, inner, writer, setError)\n\n return inner\n }\n\n return undefined\n }\n }, [schema, setError, writer])\n\n const privateValidateForm: PrivateValidateForm<Partial<Values>> = useCallback((\n successCallback,\n errorCallback,\n { isDirty: _, options } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n try {\n // abortEarly: false as default is to be retrocompatible\n schemaRef.current.validateSync(w.form, { abortEarly: false, ...options })\n\n newUUID && executeCb(newUUID, successCallback)\n\n return { ...w, errors: {} }\n } catch (e) {\n if (!isValidationError(e)) {\n // Checking if error is not formbit-related (e.g. a bug inside the successCallback)\n console.error(e)\n return w\n }\n\n const { inner } = e\n\n const errors = inner.reduce(\n (acc, { message, path = '' }) => set(acc, path, message),\n {}\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const newWriter = { ...w, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return newWriter\n }\n })\n }, [executeCb])\n\n const validateForm: ValidateForm<Partial<Values>> = useCallback((successCallback, errorCallback, options = {}) =>\n privateValidateForm(\n successCallback,\n errorCallback,\n { options }\n ), [privateValidateForm])\n\n const submitForm: SubmitForm<Values> =\n useCallback((successCallback, errorCallback, options = {}) => {\n const fn = () => setWriter((w) => ({ ...w, isDirty: false }))\n\n const successCallbackAndClearIsDirty: SuccessCallback<Partial<Values>> = (a, b) => {\n // Success callback is called only if the form is valid so we can safely cast a as Writer<Values>\n const writer = a as Writer<Values>\n\n // __metadata is a field used to store metadata about the form and should not be submitted\n const { __metadata: _, ...form } = writer.form\n\n return successCallback({ ...writer, form }, b, fn)\n }\n\n return privateValidateForm(\n successCallbackAndClearIsDirty,\n errorCallback,\n { options }\n )\n }, [privateValidateForm])\n\n const resetForm = useCallback(() => {\n setWriter((w) => ({\n ...w,\n form: w.initialValues,\n errors: {},\n isDirty: false,\n liveValidation: {}\n }))\n }, [])\n\n const isFormValid: IsFormValid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).every((leaf) => !get(e, leaf))\n }, [writer.errors])\n\n const isFormInvalid: IsFormInvalid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).some((leaf) => get(e, leaf))\n }, [writer.errors])\n\n const error: ErrorFn = useCallback((path: string) => get(writer.errors, path, undefined), [writer.errors])\n\n const liveValidation: LiveValidationFn = useCallback(\n (path: string) => get(writer.liveValidation, path, undefined),\n [writer.liveValidation]\n )\n\n return {\n check,\n error,\n errors: writer.errors,\n form: writer.form,\n initialize,\n isDirty: writer.isDirty,\n isFormInvalid,\n isFormValid,\n liveValidation,\n remove,\n removeAll,\n resetForm,\n setError,\n setSchema,\n submitForm,\n validate,\n validateAll,\n validateForm,\n write,\n writeAll\n }\n}\n","import React, { useContext, createContext, PropsWithChildren } from 'react'\nimport useFormbit from './use-formbit'\nimport * as yup from 'yup'\nimport { FormbitObject, InitialValues, ValidationSchema } from './types'\nimport { MISSING_CONTEXT_ERROR } from './helpers/constants'\nimport { once } from 'lodash'\n\ntype Props<Values extends InitialValues> = {\n initialValues?: Partial<Values> | {}\n schema: ValidationSchema<Values>\n} & PropsWithChildren\n\nconst createFormbitContext =\n once(<Values extends InitialValues>() => createContext<FormbitObject<Values> | undefined>(undefined))\n\nexport default function FormbitContextProvider<Values extends InitialValues>({\n initialValues = {},\n schema,\n children\n}: Props<Values>) {\n const FormbitContext = createFormbitContext<Values>()\n\n const value = useFormbit({ initialValues, yup: schema || yup.object() })\n\n return (\n <FormbitContext.Provider value={value}>{children}</FormbitContext.Provider>\n )\n}\n\nexport const useFormbitContext = <Values extends InitialValues>() => {\n const context = useContext(createFormbitContext<Values>())\n\n if (!context) {\n // This error can only be thrown if this hook is called outside the context,\n // and it should only happen during develop.\n throw new Error(MISSING_CONTEXT_ERROR)\n }\n\n return context\n}\n"],"names":["isObject","val","Array","isArray","objLeaves","obj","acc","fn","o","s","Object","keys","forEach","k","path","isLeaf","push","ACTIONS","MISSING_CONTEXT_ERROR","isValidationError","error","message","inner","undefined","validateSyncAll","paths","schema","form","options","errors","isEmpty","pathToValidate","validateSyncAt","e","concat","abortEarly","writer","setError","callbacksStore","useRef","useEffect","current","entries","cb","useCallback","uuid","initialValues","yup","schemaRef","useState","liveValidation","isDirty","setWriter","initialize","values","__metadata","w","newValues","setSchema","newSchema","value","set","cloneDeep","executeCb","useExecuteCallbacks","writeOrRemove","action","noLiveValidation","pathsToValidate","successCallback","errorCallback","newUUID","getUUID","uuidv4","liveValidationPaths","execute","write","remove","omit","newWriter","length","cleanErrors","reduce","key","neww","innerPath","writeAll","arr","removeAll","validate","errorPath","validateAll","check","json","validateSync","privateValidateForm","_","console","validateForm","submitForm","successCallbackAndClearIsDirty","a","b","resetForm","isFormValid","every","leaf","get","isFormInvalid","some","createFormbitContext","once","createContext","FormbitContextProvider","children","FormbitContext","useFormbit","React","useFormbitContext","context","useContext","Error"],"mappings":"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"}