rn-inputforge 0.3.1 → 0.4.0

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.
Files changed (196) hide show
  1. package/README.md +224 -19
  2. package/lib/commonjs/components/FieldFlowCheckbox/FieldFlowCheckbox.js +131 -0
  3. package/lib/commonjs/components/FieldFlowCheckbox/FieldFlowCheckbox.js.map +1 -0
  4. package/lib/commonjs/components/FieldFlowCheckbox/index.js +13 -0
  5. package/lib/commonjs/components/FieldFlowCheckbox/index.js.map +1 -0
  6. package/lib/commonjs/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js +536 -0
  7. package/lib/commonjs/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js.map +1 -0
  8. package/lib/commonjs/components/FieldFlowDateTimePicker/index.js +13 -0
  9. package/lib/commonjs/components/FieldFlowDateTimePicker/index.js.map +1 -0
  10. package/lib/commonjs/components/FieldFlowDateTimePicker/types.js +6 -0
  11. package/lib/commonjs/components/FieldFlowDateTimePicker/types.js.map +1 -0
  12. package/lib/commonjs/components/FieldFlowDropdown/FieldFlowDropdown.js +24 -9
  13. package/lib/commonjs/components/FieldFlowDropdown/FieldFlowDropdown.js.map +1 -1
  14. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js +55 -24
  15. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  16. package/lib/commonjs/components/FieldFlowInput/styles.js +32 -11
  17. package/lib/commonjs/components/FieldFlowInput/styles.js.map +1 -1
  18. package/lib/commonjs/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js +66 -0
  19. package/lib/commonjs/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js.map +1 -0
  20. package/lib/commonjs/components/FieldFlowMaskedInput/index.js +13 -0
  21. package/lib/commonjs/components/FieldFlowMaskedInput/index.js.map +1 -0
  22. package/lib/commonjs/components/FieldFlowMaskedInput/types.js +6 -0
  23. package/lib/commonjs/components/FieldFlowMaskedInput/types.js.map +1 -0
  24. package/lib/commonjs/components/FieldFlowOTP/FieldFlowOTP.js +255 -0
  25. package/lib/commonjs/components/FieldFlowOTP/FieldFlowOTP.js.map +1 -0
  26. package/lib/commonjs/components/FieldFlowOTP/index.js +13 -0
  27. package/lib/commonjs/components/FieldFlowOTP/index.js.map +1 -0
  28. package/lib/commonjs/components/FieldFlowOTP/types.js +6 -0
  29. package/lib/commonjs/components/FieldFlowOTP/types.js.map +1 -0
  30. package/lib/commonjs/components/FieldFlowRadio/FieldFlowRadio.js +164 -0
  31. package/lib/commonjs/components/FieldFlowRadio/FieldFlowRadio.js.map +1 -0
  32. package/lib/commonjs/components/FieldFlowRadio/index.js +13 -0
  33. package/lib/commonjs/components/FieldFlowRadio/index.js.map +1 -0
  34. package/lib/commonjs/components/FieldFlowSwitch/FieldFlowSwitch.js +152 -0
  35. package/lib/commonjs/components/FieldFlowSwitch/FieldFlowSwitch.js.map +1 -0
  36. package/lib/commonjs/components/FieldFlowSwitch/index.js +13 -0
  37. package/lib/commonjs/components/FieldFlowSwitch/index.js.map +1 -0
  38. package/lib/commonjs/hooks/index.js.map +1 -1
  39. package/lib/commonjs/hooks/useFieldFlowForm.js +146 -31
  40. package/lib/commonjs/hooks/useFieldFlowForm.js.map +1 -1
  41. package/lib/commonjs/icons/Icon.js +719 -30
  42. package/lib/commonjs/icons/Icon.js.map +1 -1
  43. package/lib/commonjs/icons/index.js +7 -0
  44. package/lib/commonjs/icons/index.js.map +1 -1
  45. package/lib/commonjs/icons/renderIcon.js +24 -0
  46. package/lib/commonjs/icons/renderIcon.js.map +1 -0
  47. package/lib/commonjs/index.js +127 -0
  48. package/lib/commonjs/index.js.map +1 -1
  49. package/lib/commonjs/utils/masks.js +130 -0
  50. package/lib/commonjs/utils/masks.js.map +1 -0
  51. package/lib/commonjs/validation/index.js +25 -0
  52. package/lib/commonjs/validation/index.js.map +1 -1
  53. package/lib/commonjs/validation/zodAdapter.js +91 -0
  54. package/lib/commonjs/validation/zodAdapter.js.map +1 -0
  55. package/lib/module/components/FieldFlowCheckbox/FieldFlowCheckbox.js +126 -0
  56. package/lib/module/components/FieldFlowCheckbox/FieldFlowCheckbox.js.map +1 -0
  57. package/lib/module/components/FieldFlowCheckbox/index.js +4 -0
  58. package/lib/module/components/FieldFlowCheckbox/index.js.map +1 -0
  59. package/lib/module/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js +531 -0
  60. package/lib/module/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js.map +1 -0
  61. package/lib/module/components/FieldFlowDateTimePicker/index.js +4 -0
  62. package/lib/module/components/FieldFlowDateTimePicker/index.js.map +1 -0
  63. package/lib/module/components/FieldFlowDateTimePicker/types.js +4 -0
  64. package/lib/module/components/FieldFlowDateTimePicker/types.js.map +1 -0
  65. package/lib/module/components/FieldFlowDropdown/FieldFlowDropdown.js +24 -9
  66. package/lib/module/components/FieldFlowDropdown/FieldFlowDropdown.js.map +1 -1
  67. package/lib/module/components/FieldFlowInput/FieldFlowInput.js +59 -28
  68. package/lib/module/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  69. package/lib/module/components/FieldFlowInput/styles.js +32 -11
  70. package/lib/module/components/FieldFlowInput/styles.js.map +1 -1
  71. package/lib/module/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js +61 -0
  72. package/lib/module/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js.map +1 -0
  73. package/lib/module/components/FieldFlowMaskedInput/index.js +4 -0
  74. package/lib/module/components/FieldFlowMaskedInput/index.js.map +1 -0
  75. package/lib/module/components/FieldFlowMaskedInput/types.js +4 -0
  76. package/lib/module/components/FieldFlowMaskedInput/types.js.map +1 -0
  77. package/lib/module/components/FieldFlowOTP/FieldFlowOTP.js +250 -0
  78. package/lib/module/components/FieldFlowOTP/FieldFlowOTP.js.map +1 -0
  79. package/lib/module/components/FieldFlowOTP/index.js +4 -0
  80. package/lib/module/components/FieldFlowOTP/index.js.map +1 -0
  81. package/lib/module/components/FieldFlowOTP/types.js +4 -0
  82. package/lib/module/components/FieldFlowOTP/types.js.map +1 -0
  83. package/lib/module/components/FieldFlowRadio/FieldFlowRadio.js +159 -0
  84. package/lib/module/components/FieldFlowRadio/FieldFlowRadio.js.map +1 -0
  85. package/lib/module/components/FieldFlowRadio/index.js +4 -0
  86. package/lib/module/components/FieldFlowRadio/index.js.map +1 -0
  87. package/lib/module/components/FieldFlowSwitch/FieldFlowSwitch.js +147 -0
  88. package/lib/module/components/FieldFlowSwitch/FieldFlowSwitch.js.map +1 -0
  89. package/lib/module/components/FieldFlowSwitch/index.js +4 -0
  90. package/lib/module/components/FieldFlowSwitch/index.js.map +1 -0
  91. package/lib/module/hooks/index.js.map +1 -1
  92. package/lib/module/hooks/useFieldFlowForm.js +147 -32
  93. package/lib/module/hooks/useFieldFlowForm.js.map +1 -1
  94. package/lib/module/icons/Icon.js +720 -31
  95. package/lib/module/icons/Icon.js.map +1 -1
  96. package/lib/module/icons/index.js +1 -0
  97. package/lib/module/icons/index.js.map +1 -1
  98. package/lib/module/icons/renderIcon.js +19 -0
  99. package/lib/module/icons/renderIcon.js.map +1 -0
  100. package/lib/module/index.js +11 -3
  101. package/lib/module/index.js.map +1 -1
  102. package/lib/module/utils/masks.js +118 -0
  103. package/lib/module/utils/masks.js.map +1 -0
  104. package/lib/module/validation/index.js +1 -0
  105. package/lib/module/validation/index.js.map +1 -1
  106. package/lib/module/validation/zodAdapter.js +84 -0
  107. package/lib/module/validation/zodAdapter.js.map +1 -0
  108. package/lib/typescript/components/FieldFlowCheckbox/FieldFlowCheckbox.d.ts +36 -0
  109. package/lib/typescript/components/FieldFlowCheckbox/FieldFlowCheckbox.d.ts.map +1 -0
  110. package/lib/typescript/components/FieldFlowCheckbox/index.d.ts +3 -0
  111. package/lib/typescript/components/FieldFlowCheckbox/index.d.ts.map +1 -0
  112. package/lib/typescript/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.d.ts +4 -0
  113. package/lib/typescript/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.d.ts.map +1 -0
  114. package/lib/typescript/components/FieldFlowDateTimePicker/index.d.ts +3 -0
  115. package/lib/typescript/components/FieldFlowDateTimePicker/index.d.ts.map +1 -0
  116. package/lib/typescript/components/FieldFlowDateTimePicker/types.d.ts +55 -0
  117. package/lib/typescript/components/FieldFlowDateTimePicker/types.d.ts.map +1 -0
  118. package/lib/typescript/components/FieldFlowDropdown/FieldFlowDropdown.d.ts.map +1 -1
  119. package/lib/typescript/components/FieldFlowDropdown/types.d.ts +7 -1
  120. package/lib/typescript/components/FieldFlowDropdown/types.d.ts.map +1 -1
  121. package/lib/typescript/components/FieldFlowInput/FieldFlowInput.d.ts.map +1 -1
  122. package/lib/typescript/components/FieldFlowInput/styles.d.ts +19 -2
  123. package/lib/typescript/components/FieldFlowInput/styles.d.ts.map +1 -1
  124. package/lib/typescript/components/FieldFlowInput/types.d.ts +24 -5
  125. package/lib/typescript/components/FieldFlowInput/types.d.ts.map +1 -1
  126. package/lib/typescript/components/FieldFlowMaskedInput/FieldFlowMaskedInput.d.ts +5 -0
  127. package/lib/typescript/components/FieldFlowMaskedInput/FieldFlowMaskedInput.d.ts.map +1 -0
  128. package/lib/typescript/components/FieldFlowMaskedInput/index.d.ts +3 -0
  129. package/lib/typescript/components/FieldFlowMaskedInput/index.d.ts.map +1 -0
  130. package/lib/typescript/components/FieldFlowMaskedInput/types.d.ts +20 -0
  131. package/lib/typescript/components/FieldFlowMaskedInput/types.d.ts.map +1 -0
  132. package/lib/typescript/components/FieldFlowOTP/FieldFlowOTP.d.ts +4 -0
  133. package/lib/typescript/components/FieldFlowOTP/FieldFlowOTP.d.ts.map +1 -0
  134. package/lib/typescript/components/FieldFlowOTP/index.d.ts +3 -0
  135. package/lib/typescript/components/FieldFlowOTP/index.d.ts.map +1 -0
  136. package/lib/typescript/components/FieldFlowOTP/types.d.ts +52 -0
  137. package/lib/typescript/components/FieldFlowOTP/types.d.ts.map +1 -0
  138. package/lib/typescript/components/FieldFlowRadio/FieldFlowRadio.d.ts +39 -0
  139. package/lib/typescript/components/FieldFlowRadio/FieldFlowRadio.d.ts.map +1 -0
  140. package/lib/typescript/components/FieldFlowRadio/index.d.ts +3 -0
  141. package/lib/typescript/components/FieldFlowRadio/index.d.ts.map +1 -0
  142. package/lib/typescript/components/FieldFlowSwitch/FieldFlowSwitch.d.ts +31 -0
  143. package/lib/typescript/components/FieldFlowSwitch/FieldFlowSwitch.d.ts.map +1 -0
  144. package/lib/typescript/components/FieldFlowSwitch/index.d.ts +3 -0
  145. package/lib/typescript/components/FieldFlowSwitch/index.d.ts.map +1 -0
  146. package/lib/typescript/hooks/index.d.ts +1 -1
  147. package/lib/typescript/hooks/index.d.ts.map +1 -1
  148. package/lib/typescript/hooks/useFieldFlowForm.d.ts +46 -7
  149. package/lib/typescript/hooks/useFieldFlowForm.d.ts.map +1 -1
  150. package/lib/typescript/icons/Icon.d.ts +2 -2
  151. package/lib/typescript/icons/Icon.d.ts.map +1 -1
  152. package/lib/typescript/icons/index.d.ts +2 -0
  153. package/lib/typescript/icons/index.d.ts.map +1 -1
  154. package/lib/typescript/icons/renderIcon.d.ts +6 -0
  155. package/lib/typescript/icons/renderIcon.d.ts.map +1 -0
  156. package/lib/typescript/index.d.ts +20 -6
  157. package/lib/typescript/index.d.ts.map +1 -1
  158. package/lib/typescript/types/index.d.ts +4 -0
  159. package/lib/typescript/types/index.d.ts.map +1 -1
  160. package/lib/typescript/utils/masks.d.ts +37 -0
  161. package/lib/typescript/utils/masks.d.ts.map +1 -0
  162. package/lib/typescript/validation/index.d.ts +2 -0
  163. package/lib/typescript/validation/index.d.ts.map +1 -1
  164. package/lib/typescript/validation/zodAdapter.d.ts +53 -0
  165. package/lib/typescript/validation/zodAdapter.d.ts.map +1 -0
  166. package/package.json +17 -3
  167. package/src/components/FieldFlowCheckbox/FieldFlowCheckbox.tsx +174 -0
  168. package/src/components/FieldFlowCheckbox/index.ts +2 -0
  169. package/src/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.tsx +585 -0
  170. package/src/components/FieldFlowDateTimePicker/index.ts +2 -0
  171. package/src/components/FieldFlowDateTimePicker/types.ts +57 -0
  172. package/src/components/FieldFlowDropdown/FieldFlowDropdown.tsx +17 -7
  173. package/src/components/FieldFlowDropdown/types.ts +8 -1
  174. package/src/components/FieldFlowInput/FieldFlowInput.tsx +69 -26
  175. package/src/components/FieldFlowInput/styles.ts +41 -6
  176. package/src/components/FieldFlowInput/types.ts +24 -5
  177. package/src/components/FieldFlowMaskedInput/FieldFlowMaskedInput.tsx +76 -0
  178. package/src/components/FieldFlowMaskedInput/index.ts +2 -0
  179. package/src/components/FieldFlowMaskedInput/types.ts +22 -0
  180. package/src/components/FieldFlowOTP/FieldFlowOTP.tsx +305 -0
  181. package/src/components/FieldFlowOTP/index.ts +2 -0
  182. package/src/components/FieldFlowOTP/types.ts +57 -0
  183. package/src/components/FieldFlowRadio/FieldFlowRadio.tsx +215 -0
  184. package/src/components/FieldFlowRadio/index.ts +2 -0
  185. package/src/components/FieldFlowSwitch/FieldFlowSwitch.tsx +172 -0
  186. package/src/components/FieldFlowSwitch/index.ts +2 -0
  187. package/src/hooks/index.ts +3 -0
  188. package/src/hooks/useFieldFlowForm.ts +209 -33
  189. package/src/icons/Icon.tsx +451 -5
  190. package/src/icons/index.ts +2 -0
  191. package/src/icons/renderIcon.tsx +17 -0
  192. package/src/index.ts +47 -4
  193. package/src/types/index.ts +5 -0
  194. package/src/utils/masks.ts +137 -0
  195. package/src/validation/index.ts +7 -0
  196. package/src/validation/zodAdapter.ts +103 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","Animated","Pressable","StyleSheet","Text","View","useFieldFlowTheme","mergeDeep","defaultTheme","renderFieldFlowIcon","jsx","_jsx","jsxs","_jsxs","FieldFlowSwitch","value","onChange","label","helperText","errorText","disabled","required","switchPosition","leftIcon","iconSize","onTrackColor","offTrackColor","thumbColor","trackStyle","thumbStyle","containerStyle","labelStyle","helperStyle","errorStyle","theme","themeOverride","testID","contextTheme","styles","createStyles","Boolean","anim","Value","current","timing","toValue","duration","animation","useNativeDriver","start","trackColor","interpolate","inputRange","outputRange","colors","border","borderFocused","thumbTranslate","switchNode","style","track","backgroundColor","children","thumb","transform","translateX","labelNode","wrapper","onPress","row","accessibilityRole","accessibilityState","checked","accessibilityLabel","hitSlop","icon","create","marginBottom","spacing","gap","opacity","flexDirection","alignItems","justifyContent","marginRight","flex","fontSize","typography","color","text","fontFamily","width","height","borderRadius","shadowColor","shadowOpacity","shadowRadius","shadowOffset","elevation","marginTop","helperFontSize","error"],"sourceRoot":"../../../../src","sources":["components/FieldFlowSwitch/FieldFlowSwitch.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldFlowSwitch } from './FieldFlowSwitch';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldFlowSwitch"],"sourceRoot":"../../../../src","sources":["components/FieldFlowSwitch/index.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useKeyboardManager","useFieldFlowForm","useFieldState"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,sBAAsB;AAGzD,SAASC,gBAAgB,QAAQ,oBAAoB;AAOrD,SAASC,aAAa,QAAQ,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["useKeyboardManager","useFieldFlowForm","useFieldState"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,sBAAsB;AAGzD,SAASC,gBAAgB,QAAQ,oBAAoB;AAUrD,SAASC,aAAa,QAAQ,iBAAiB","ignoreList":[]}
@@ -1,97 +1,212 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useMemo, useState } from 'react';
3
+ import { useCallback, useMemo, useRef, useState } from 'react';
4
4
  import { runRules } from '../validation/validators';
5
5
  /**
6
6
  * Drop-in form state manager for a set of FieldFlow inputs. Handles values,
7
- * per-field + whole-form validation (via the same `FieldFlowRules` used by
8
- * the input components), touched-state, and submission.
7
+ * per-field + cross-field + async validation, touched-state, and submission.
9
8
  */
10
9
  export function useFieldFlowForm({
11
10
  initialValues,
12
11
  rules,
12
+ crossFieldRules,
13
+ formValidate,
14
+ asyncValidators,
15
+ asyncDebounceMs = 400,
13
16
  onSubmit
14
17
  }) {
15
18
  const [values, setValues] = useState(initialValues);
16
19
  const [errors, setErrors] = useState({});
17
20
  const [touched, setTouched] = useState({});
21
+ const [validating, setValidating] = useState({});
18
22
  const [isSubmitting, setIsSubmitting] = useState(false);
19
- const validateField = useCallback(field => {
20
- const fieldRules = rules?.[field];
21
- const result = runRules(values[field] ?? '', fieldRules);
23
+ const valuesRef = useRef(values);
24
+ valuesRef.current = values;
25
+ const debounceTimers = useRef({});
26
+ const asyncGen = useRef(0);
27
+ const syncErrorFor = useCallback((field, fieldValue, allValues) => {
28
+ const result = runRules(fieldValue, rules?.[field]);
29
+ if (!result.valid) return result.message;
30
+ if (crossFieldRules) {
31
+ for (const rule of crossFieldRules) {
32
+ if (rule.target !== field) continue;
33
+ const cross = rule.validate(allValues);
34
+ if (!cross.valid) return cross.message ?? 'Invalid';
35
+ }
36
+ }
37
+ return undefined;
38
+ }, [rules, crossFieldRules]);
39
+ const runAsyncForField = useCallback(async (field, fieldValue, allValues) => {
40
+ const validator = asyncValidators?.[field];
41
+ if (!validator) return undefined;
42
+ setValidating(prev => ({
43
+ ...prev,
44
+ [field]: true
45
+ }));
46
+ try {
47
+ const result = await validator(fieldValue, allValues);
48
+ return result.valid ? undefined : result.message;
49
+ } finally {
50
+ setValidating(prev => ({
51
+ ...prev,
52
+ [field]: false
53
+ }));
54
+ }
55
+ }, [asyncValidators]);
56
+ const scheduleAsync = useCallback((field, fieldValue, allValues) => {
57
+ if (!asyncValidators?.[field]) return;
58
+ const existing = debounceTimers.current[field];
59
+ if (existing) clearTimeout(existing);
60
+ debounceTimers.current[field] = setTimeout(async () => {
61
+ const gen = ++asyncGen.current;
62
+ const message = await runAsyncForField(field, fieldValue, allValues);
63
+ if (gen !== asyncGen.current) return;
64
+ setErrors(prev => {
65
+ const syncMsg = syncErrorFor(field, fieldValue, allValues);
66
+ if (syncMsg) return {
67
+ ...prev,
68
+ [field]: syncMsg
69
+ };
70
+ return {
71
+ ...prev,
72
+ [field]: message
73
+ };
74
+ });
75
+ }, asyncDebounceMs);
76
+ }, [asyncDebounceMs, asyncValidators, runAsyncForField, syncErrorFor]);
77
+ const validateField = useCallback(async field => {
78
+ const allValues = valuesRef.current;
79
+ const fieldValue = allValues[field] ?? '';
80
+ const syncError = syncErrorFor(field, fieldValue, allValues);
81
+ if (syncError) {
82
+ setErrors(prev => ({
83
+ ...prev,
84
+ [field]: syncError
85
+ }));
86
+ return false;
87
+ }
88
+ const asyncError = await runAsyncForField(field, fieldValue, allValues);
22
89
  setErrors(prev => ({
23
90
  ...prev,
24
- [field]: result.valid ? undefined : result.message
91
+ [field]: asyncError
25
92
  }));
26
- return result.valid;
27
- }, [rules, values]);
28
- const validateAll = useCallback(() => {
29
- if (!rules) return true;
30
- let allValid = true;
93
+ return !asyncError;
94
+ }, [runAsyncForField, syncErrorFor]);
95
+ const validateAll = useCallback(async () => {
96
+ const allValues = valuesRef.current;
31
97
  const nextErrors = {};
32
- for (const key of Object.keys(rules)) {
33
- const result = runRules(values[key] ?? '', rules[key]);
34
- if (!result.valid) {
35
- allValid = false;
36
- nextErrors[key] = result.message;
98
+ const keys = new Set([...Object.keys(allValues), ...(rules ? Object.keys(rules) : []), ...(crossFieldRules?.map(r => r.target) ?? []), ...(asyncValidators ? Object.keys(asyncValidators) : [])]);
99
+ for (const key of keys) {
100
+ const syncError = syncErrorFor(key, allValues[key] ?? '', allValues);
101
+ if (syncError) nextErrors[key] = syncError;
102
+ }
103
+ if (crossFieldRules) {
104
+ for (const rule of crossFieldRules) {
105
+ if (nextErrors[rule.target]) continue;
106
+ const result = rule.validate(allValues);
107
+ if (!result.valid) nextErrors[rule.target] = result.message ?? 'Invalid';
37
108
  }
38
109
  }
110
+ if (formValidate) {
111
+ const formErrors = await formValidate(allValues);
112
+ for (const key of Object.keys(formErrors)) {
113
+ const msg = formErrors[key];
114
+ if (msg && !nextErrors[key]) nextErrors[key] = msg;
115
+ }
116
+ }
117
+ if (asyncValidators) {
118
+ await Promise.all(Object.keys(asyncValidators).map(async key => {
119
+ if (nextErrors[key]) return;
120
+ const asyncError = await runAsyncForField(key, allValues[key] ?? '', allValues);
121
+ if (asyncError) nextErrors[key] = asyncError;
122
+ }));
123
+ }
39
124
  setErrors(nextErrors);
40
125
  setTouched(prev => {
41
126
  const next = {
42
127
  ...prev
43
128
  };
44
- for (const key of Object.keys(rules)) next[key] = true;
129
+ for (const key of keys) next[key] = true;
45
130
  return next;
46
131
  });
47
- return allValid;
48
- }, [rules, values]);
132
+ return Object.values(nextErrors).every(e => !e);
133
+ }, [rules, crossFieldRules, formValidate, asyncValidators, syncErrorFor, runAsyncForField]);
49
134
  const setValue = useCallback((field, value) => {
50
- setValues(prev => ({
51
- ...prev,
52
- [field]: value
53
- }));
135
+ setValues(prev => {
136
+ const next = {
137
+ ...prev,
138
+ [field]: value
139
+ };
140
+ valuesRef.current = next;
141
+ return next;
142
+ });
54
143
  }, []);
55
144
  const handleChange = useCallback(field => value => {
56
145
  setValue(field, value);
146
+ const allValues = {
147
+ ...valuesRef.current,
148
+ [field]: value
149
+ };
57
150
  if (touched[field]) {
58
- // live-validate once the user has already blurred this field once
59
- const result = runRules(value, rules?.[field]);
151
+ const syncError = syncErrorFor(field, value, allValues);
60
152
  setErrors(prev => ({
61
153
  ...prev,
62
- [field]: result.valid ? undefined : result.message
154
+ [field]: syncError
63
155
  }));
156
+ if (!syncError) scheduleAsync(field, value, allValues);
64
157
  }
65
- }, [rules, setValue, touched]);
158
+ if (crossFieldRules) {
159
+ for (const rule of crossFieldRules) {
160
+ if (rule.target === field) continue;
161
+ if (rule.deps && !rule.deps.includes(field)) continue;
162
+ if (!touched[rule.target] && !touched[field]) continue;
163
+ const result = rule.validate(allValues);
164
+ setErrors(prev => ({
165
+ ...prev,
166
+ [rule.target]: result.valid ? syncErrorFor(rule.target, allValues[rule.target] ?? '', allValues) : result.message ?? 'Invalid'
167
+ }));
168
+ }
169
+ }
170
+ }, [setValue, touched, syncErrorFor, scheduleAsync, crossFieldRules]);
66
171
  const handleBlur = useCallback(field => () => {
67
172
  setTouched(prev => ({
68
173
  ...prev,
69
174
  [field]: true
70
175
  }));
71
- validateField(field);
176
+ void validateField(field);
72
177
  }, [validateField]);
73
178
  const submit = useCallback(async () => {
74
- const valid = validateAll();
179
+ const valid = await validateAll();
75
180
  if (!valid) return;
76
181
  setIsSubmitting(true);
77
182
  try {
78
- await onSubmit?.(values);
183
+ await onSubmit?.(valuesRef.current);
79
184
  } finally {
80
185
  setIsSubmitting(false);
81
186
  }
82
- }, [onSubmit, validateAll, values]);
187
+ }, [onSubmit, validateAll]);
83
188
  const reset = useCallback(() => {
189
+ asyncGen.current += 1;
190
+ for (const key of Object.keys(debounceTimers.current)) {
191
+ const t = debounceTimers.current[key];
192
+ if (t) clearTimeout(t);
193
+ }
84
194
  setValues(initialValues);
195
+ valuesRef.current = initialValues;
85
196
  setErrors({});
86
197
  setTouched({});
198
+ setValidating({});
87
199
  }, [initialValues]);
88
200
  const isValid = useMemo(() => Object.values(errors).every(e => !e), [errors]);
201
+ const isValidating = useMemo(() => Object.values(validating).some(Boolean), [validating]);
89
202
  return {
90
203
  values,
91
204
  errors,
92
205
  touched,
206
+ validating,
93
207
  isSubmitting,
94
208
  isValid,
209
+ isValidating,
95
210
  setValue,
96
211
  handleChange,
97
212
  handleBlur,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useState","runRules","useFieldFlowForm","initialValues","rules","onSubmit","values","setValues","errors","setErrors","touched","setTouched","isSubmitting","setIsSubmitting","validateField","field","fieldRules","result","prev","valid","undefined","message","validateAll","allValid","nextErrors","key","Object","keys","next","setValue","value","handleChange","handleBlur","submit","reset","isValid","every","e"],"sourceRoot":"../../../src","sources":["hooks/useFieldFlowForm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useRef","useState","runRules","useFieldFlowForm","initialValues","rules","crossFieldRules","formValidate","asyncValidators","asyncDebounceMs","onSubmit","values","setValues","errors","setErrors","touched","setTouched","validating","setValidating","isSubmitting","setIsSubmitting","valuesRef","current","debounceTimers","asyncGen","syncErrorFor","field","fieldValue","allValues","result","valid","message","rule","target","cross","validate","undefined","runAsyncForField","validator","prev","scheduleAsync","existing","clearTimeout","setTimeout","gen","syncMsg","validateField","syncError","asyncError","validateAll","nextErrors","keys","Set","Object","map","r","key","formErrors","msg","Promise","all","next","every","e","setValue","value","handleChange","deps","includes","handleBlur","submit","reset","t","isValid","isValidating","some","Boolean"],"sourceRoot":"../../../src","sources":["hooks/useFieldFlowForm.ts"],"mappings":"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","ignoreList":[]}