@mantine/form 5.1.6 → 5.2.0-alpha.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/cjs/use-form.js CHANGED
@@ -53,14 +53,21 @@ function useForm({
53
53
  const [dirty, setDirty] = react.useState(initialDirty);
54
54
  const [values, _setValues] = react.useState(initialValues);
55
55
  const [errors, _setErrors] = react.useState(filterErrors.filterErrors(initialErrors));
56
+ const _dirtyValues = react.useRef(initialValues);
57
+ const _setDirtyValues = (_values) => {
58
+ _dirtyValues.current = _values;
59
+ };
56
60
  const resetTouched = react.useCallback(() => setTouched({}), []);
57
- const resetDirty = react.useCallback(() => setDirty({}), []);
61
+ const resetDirty = (_values) => {
62
+ _setDirtyValues(_values || values);
63
+ setDirty({});
64
+ };
58
65
  const setErrors = react.useCallback((errs) => _setErrors((current) => filterErrors.filterErrors(typeof errs === "function" ? errs(current) : errs)), []);
59
66
  const clearErrors = react.useCallback(() => _setErrors({}), []);
60
67
  const reset = react.useCallback(() => {
61
68
  _setValues(initialValues);
62
69
  clearErrors();
63
- resetDirty();
70
+ resetDirty(initialValues);
64
71
  resetTouched();
65
72
  }, []);
66
73
  const setFieldError = react.useCallback((path, error) => setErrors((current) => __spreadProps(__spreadValues({}, current), { [path]: error })), []);
@@ -75,7 +82,7 @@ function useForm({
75
82
  const setFieldValue = react.useCallback((path, value) => {
76
83
  const shouldValidate = shouldValidateOnChange.shouldValidateOnChange(path, validateInputOnChange);
77
84
  _setValues((current) => {
78
- const initialValue = getPath.getPath(path, initialValues);
85
+ const initialValue = getPath.getPath(path, _dirtyValues.current);
79
86
  const isFieldDirty = !isEqual__default(initialValue, value);
80
87
  setDirty((currentDirty) => __spreadProps(__spreadValues({}, currentDirty), { [path]: isFieldDirty }));
81
88
  setTouched((currentTouched) => __spreadProps(__spreadValues({}, currentTouched), { [path]: true }));
@@ -140,6 +147,7 @@ function useForm({
140
147
  }, []);
141
148
  const isDirty = react.useCallback((path) => getStatus.getStatus(dirty, path), [dirty]);
142
149
  const isTouched = react.useCallback((path) => getStatus.getStatus(touched, path), [touched]);
150
+ const isValid = react.useCallback((path) => path ? !validateFieldValue.validateFieldValue(path, rules, values).hasError : !validateValues.validateValues(rules, values).hasErrors, [values, rules]);
143
151
  return {
144
152
  values,
145
153
  errors,
@@ -163,7 +171,8 @@ function useForm({
163
171
  setTouched,
164
172
  setDirty,
165
173
  resetTouched,
166
- resetDirty
174
+ resetDirty,
175
+ isValid
167
176
  };
168
177
  }
169
178
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport isEqual from 'fast-deep-equal';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n GetFieldStatus,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty = useCallback(() => setDirty({}), []);\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n resetDirty();\n resetTouched();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const initialValue = getPath(path, initialValues);\n const isFieldDirty = !isEqual(initialValue, value);\n setDirty((currentDirty) => ({ ...currentDirty, [path]: isFieldDirty }));\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n setDirty((current) => clearListState(`${String(path)}.${index}`, current));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: Record<string, any> = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = useCallback((path) => getStatus(dirty, path), [dirty]);\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n };\n}\n"],"names":["useState","filterErrors","useCallback","shouldValidateOnChange","getPath","isEqual","setPath","validateFieldValue","reorderPath","removePath","clearListState","insertPath","validateValues","getInputOnChange","getStatus"],"mappings":"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"}
1
+ {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback, useRef } from 'react';\nimport isEqual from 'fast-deep-equal';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n GetFieldStatus,\n ResetDirty,\n IsValid,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n const _dirtyValues = useRef<Values>(initialValues);\n const _setDirtyValues = (_values: Values) => {\n _dirtyValues.current = _values;\n };\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty: ResetDirty<Values> = (_values) => {\n _setDirtyValues(_values || values);\n setDirty({});\n };\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n resetDirty(initialValues);\n resetTouched();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const initialValue = getPath(path, _dirtyValues.current);\n const isFieldDirty = !isEqual(initialValue, value);\n setDirty((currentDirty) => ({ ...currentDirty, [path]: isFieldDirty }));\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n setDirty((current) => clearListState(`${String(path)}.${index}`, current));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: Record<string, any> = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = useCallback((path) => getStatus(dirty, path), [dirty]);\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n const isValid: IsValid<Values> = useCallback(\n (path) =>\n path\n ? !validateFieldValue(path, rules, values).hasError\n : !validateValues(rules, values).hasErrors,\n [values, rules]\n );\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n isValid,\n };\n}\n"],"names":["useState","filterErrors","useRef","useCallback","shouldValidateOnChange","getPath","isEqual","setPath","validateFieldValue","reorderPath","removePath","clearListState","insertPath","validateValues","getInputOnChange","getStatus"],"mappings":"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"}
@@ -19,7 +19,7 @@ function validateRulesRecord(rules, values, path = "", errors = {}) {
19
19
  const value = getPath.getPath(rulePath, values);
20
20
  let arrayValidation = false;
21
21
  if (typeof rule === "function") {
22
- acc[rulePath] = rule(value, values);
22
+ acc[rulePath] = rule(value, values, rulePath);
23
23
  }
24
24
  if (typeof rule === "object" && Array.isArray(value)) {
25
25
  arrayValidation = true;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":["filterErrors","getPath"],"mappings":";;;;;;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAGA,yBAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAGC,eAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE;;;;"}
1
+ {"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values, rulePath);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":["filterErrors","getPath"],"mappings":";;;;;;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAGA,yBAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAGC,eAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE;;;;"}
package/esm/use-form.js CHANGED
@@ -1,4 +1,4 @@
1
- import { useState, useCallback } from 'react';
1
+ import { useState, useRef, useCallback } from 'react';
2
2
  import isEqual from 'fast-deep-equal';
3
3
  import { filterErrors } from './filter-errors/filter-errors.js';
4
4
  import { shouldValidateOnChange } from './validate/should-validate-on-change.js';
@@ -45,14 +45,21 @@ function useForm({
45
45
  const [dirty, setDirty] = useState(initialDirty);
46
46
  const [values, _setValues] = useState(initialValues);
47
47
  const [errors, _setErrors] = useState(filterErrors(initialErrors));
48
+ const _dirtyValues = useRef(initialValues);
49
+ const _setDirtyValues = (_values) => {
50
+ _dirtyValues.current = _values;
51
+ };
48
52
  const resetTouched = useCallback(() => setTouched({}), []);
49
- const resetDirty = useCallback(() => setDirty({}), []);
53
+ const resetDirty = (_values) => {
54
+ _setDirtyValues(_values || values);
55
+ setDirty({});
56
+ };
50
57
  const setErrors = useCallback((errs) => _setErrors((current) => filterErrors(typeof errs === "function" ? errs(current) : errs)), []);
51
58
  const clearErrors = useCallback(() => _setErrors({}), []);
52
59
  const reset = useCallback(() => {
53
60
  _setValues(initialValues);
54
61
  clearErrors();
55
- resetDirty();
62
+ resetDirty(initialValues);
56
63
  resetTouched();
57
64
  }, []);
58
65
  const setFieldError = useCallback((path, error) => setErrors((current) => __spreadProps(__spreadValues({}, current), { [path]: error })), []);
@@ -67,7 +74,7 @@ function useForm({
67
74
  const setFieldValue = useCallback((path, value) => {
68
75
  const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);
69
76
  _setValues((current) => {
70
- const initialValue = getPath(path, initialValues);
77
+ const initialValue = getPath(path, _dirtyValues.current);
71
78
  const isFieldDirty = !isEqual(initialValue, value);
72
79
  setDirty((currentDirty) => __spreadProps(__spreadValues({}, currentDirty), { [path]: isFieldDirty }));
73
80
  setTouched((currentTouched) => __spreadProps(__spreadValues({}, currentTouched), { [path]: true }));
@@ -132,6 +139,7 @@ function useForm({
132
139
  }, []);
133
140
  const isDirty = useCallback((path) => getStatus(dirty, path), [dirty]);
134
141
  const isTouched = useCallback((path) => getStatus(touched, path), [touched]);
142
+ const isValid = useCallback((path) => path ? !validateFieldValue(path, rules, values).hasError : !validateValues(rules, values).hasErrors, [values, rules]);
135
143
  return {
136
144
  values,
137
145
  errors,
@@ -155,7 +163,8 @@ function useForm({
155
163
  setTouched,
156
164
  setDirty,
157
165
  resetTouched,
158
- resetDirty
166
+ resetDirty,
167
+ isValid
159
168
  };
160
169
  }
161
170
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport isEqual from 'fast-deep-equal';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n GetFieldStatus,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty = useCallback(() => setDirty({}), []);\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n resetDirty();\n resetTouched();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const initialValue = getPath(path, initialValues);\n const isFieldDirty = !isEqual(initialValue, value);\n setDirty((currentDirty) => ({ ...currentDirty, [path]: isFieldDirty }));\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n setDirty((current) => clearListState(`${String(path)}.${index}`, current));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: Record<string, any> = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = useCallback((path) => getStatus(dirty, path), [dirty]);\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback, useRef } from 'react';\nimport isEqual from 'fast-deep-equal';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n GetFieldStatus,\n ResetDirty,\n IsValid,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n const _dirtyValues = useRef<Values>(initialValues);\n const _setDirtyValues = (_values: Values) => {\n _dirtyValues.current = _values;\n };\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty: ResetDirty<Values> = (_values) => {\n _setDirtyValues(_values || values);\n setDirty({});\n };\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n resetDirty(initialValues);\n resetTouched();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const initialValue = getPath(path, _dirtyValues.current);\n const isFieldDirty = !isEqual(initialValue, value);\n setDirty((currentDirty) => ({ ...currentDirty, [path]: isFieldDirty }));\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n setDirty((current) => clearListState(`${String(path)}.${index}`, current));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: Record<string, any> = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = useCallback((path) => getStatus(dirty, path), [dirty]);\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n const isValid: IsValid<Values> = useCallback(\n (path) =>\n path\n ? !validateFieldValue(path, rules, values).hasError\n : !validateValues(rules, values).hasErrors,\n [values, rules]\n );\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n isValid,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ function validateRulesRecord(rules, values, path = "", errors = {}) {
15
15
  const value = getPath(rulePath, values);
16
16
  let arrayValidation = false;
17
17
  if (typeof rule === "function") {
18
- acc[rulePath] = rule(value, values);
18
+ acc[rulePath] = rule(value, values, rulePath);
19
19
  }
20
20
  if (typeof rule === "object" && Array.isArray(value)) {
21
21
  arrayValidation = true;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE;;;;"}
1
+ {"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values, rulePath);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE;;;;"}
package/lib/types.d.ts CHANGED
@@ -14,7 +14,7 @@ export interface ReorderPayload {
14
14
  from: number;
15
15
  to: number;
16
16
  }
17
- declare type Rule<Value, Values> = (value: Value, values: Values) => React.ReactNode;
17
+ declare type Rule<Value, Values> = (value: Value, values: Values, path: string) => React.ReactNode;
18
18
  declare type FormRule<Value, Values> = Value extends Array<infer ListValue> ? Partial<{
19
19
  [Key in keyof ListValue]: ListValue[Key] extends Array<infer NestedListItem> ? FormRulesRecord<NestedListItem> | Rule<ListValue[Key], Values> : FormRulesRecord<ListValue[Key]> | Rule<ListValue[Key], Values>;
20
20
  }> | Rule<Value, Values> : Value extends Record<string, unknown> ? FormRulesRecord<Value> | Rule<Value, Values> : Rule<Value, Values>;
@@ -45,6 +45,8 @@ export declare type InsertListItem<Values> = <Field extends LooseKeys<Values>>(p
45
45
  export declare type RemoveListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, index: number) => void;
46
46
  export declare type GetFieldStatus<Values> = <Field extends LooseKeys<Values>>(path?: Field) => boolean;
47
47
  export declare type ResetStatus = () => void;
48
+ export declare type ResetDirty<Values> = (values?: Values) => void;
49
+ export declare type IsValid<Values> = <Field extends LooseKeys<Values>>(path?: Field) => boolean;
48
50
  export interface UseFormInput<Values> {
49
51
  initialValues?: Values;
50
52
  initialErrors?: FormErrors;
@@ -77,7 +79,8 @@ export interface UseFormReturnType<Values> {
77
79
  setTouched: SetFormStatus;
78
80
  setDirty: SetFormStatus;
79
81
  resetTouched: ResetStatus;
80
- resetDirty: ResetStatus;
82
+ resetDirty: ResetDirty<Values>;
83
+ isValid: IsValid<Values>;
81
84
  }
82
85
  export {};
83
86
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,oBAAY,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAErD,oBAAY,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,oBAAY,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,aAAK,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;AAE7E,aAAK,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,KAAK,CAAC,MAAM,SAAS,CAAC,GAE3D,OAAO,CAAC;KACL,GAAG,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,cAAc,CAAC,GACxE,eAAe,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAC9D,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACnE,CAAC,GACF,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GACvB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAC5C,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAExB,oBAAY,eAAe,CAAC,MAAM,IAAI,OAAO,CAAC;KAC3C,GAAG,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACrD,CAAC,CAAC;AAEH,oBAAY,iBAAiB,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC;AAEnG,oBAAY,SAAS,CAAC,MAAM,IAAI,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE7D,oBAAY,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,oBAAY,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;AACzE,oBAAY,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;AAE7E,oBAAY,QAAQ,CAAC,MAAM,IAAI,CAC7B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,EAC/E,uBAAuB,CAAC,EAAE,CACxB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KACpC,IAAI,KACN,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AAEvD,oBAAY,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AAExE,oBAAY,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EAClE,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7E,GAAG,CAAC;AAET,oBAAY,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EAClE,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,KAAK,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,KACxD,IAAI,CAAC;AAEV,oBAAY,eAAe,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AACtD,oBAAY,WAAW,GAAG,MAAM,IAAI,CAAC;AACrC,oBAAY,KAAK,GAAG,MAAM,IAAI,CAAC;AAC/B,oBAAY,QAAQ,GAAG,MAAM,oBAAoB,CAAC;AAClD,oBAAY,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EAClE,IAAI,EAAE,KAAK,KACR,yBAAyB,CAAC;AAE/B,oBAAY,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EAClE,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,KAAK,CAAC,SAAS,KACnB,IAAI,CAAC;AAEV,oBAAY,eAAe,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EACpE,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,cAAc,KACpB,IAAI,CAAC;AAEV,oBAAY,cAAc,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EACnE,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,MAAM,KACX,IAAI,CAAC;AAEV,oBAAY,cAAc,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EACnE,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV,oBAAY,cAAc,CAAC,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC;AAChG,oBAAY,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,YAAY,CAAC,MAAM;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,iBAAiB,CAAC,MAAM;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,WAAW,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../src/use-form.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,YAAY,EAiBb,MAAM,SAAS,CAAC;AAEjB,wBAAgB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACxD,aAA4B,EAC5B,aAAkB,EAClB,YAAiB,EACjB,cAAmB,EACnB,uBAA8B,EAC9B,qBAA6B,EAC7B,QAAQ,EAAE,KAAK,GAChB,GAAE,YAAY,CAAC,MAAM,CAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CA4KvD"}
1
+ {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../src/use-form.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,YAAY,EAmBb,MAAM,SAAS,CAAC;AAEjB,wBAAgB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACxD,aAA4B,EAC5B,aAAkB,EAClB,YAAiB,EACjB,cAAmB,EACnB,uBAA8B,EAC9B,qBAA6B,EAC7B,QAAQ,EAAE,KAAK,GAChB,GAAE,YAAY,CAAC,MAAM,CAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CA4LvD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mantine/form",
3
3
  "description": "Mantine form management library",
4
- "version": "5.1.6",
4
+ "version": "5.2.0-alpha.1",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
7
7
  "types": "lib/index.d.ts",