@tanstack/react-form 0.13.6 → 0.14.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 (42) hide show
  1. package/dist/cjs/createFormFactory.cjs.map +1 -1
  2. package/dist/cjs/createFormFactory.d.cts +3 -3
  3. package/dist/cjs/types.d.cts +2 -2
  4. package/dist/cjs/useField.cjs +5 -28
  5. package/dist/cjs/useField.cjs.map +1 -1
  6. package/dist/cjs/useField.d.cts +4 -12
  7. package/dist/cjs/useForm.cjs +4 -6
  8. package/dist/cjs/useForm.cjs.map +1 -1
  9. package/dist/cjs/useForm.d.cts +14 -4
  10. package/dist/esm/createFormFactory.d.ts +3 -3
  11. package/dist/esm/createFormFactory.js.map +1 -1
  12. package/dist/esm/types.d.ts +2 -2
  13. package/dist/esm/useField.d.ts +4 -12
  14. package/dist/esm/useField.js +7 -30
  15. package/dist/esm/useField.js.map +1 -1
  16. package/dist/esm/useForm.d.ts +14 -4
  17. package/dist/esm/useForm.js +4 -6
  18. package/dist/esm/useForm.js.map +1 -1
  19. package/package.json +3 -3
  20. package/src/createFormFactory.ts +4 -4
  21. package/src/tests/createFormFactory.test.tsx +4 -5
  22. package/src/tests/useField.test-d.tsx +5 -5
  23. package/src/tests/useField.test.tsx +257 -32
  24. package/src/tests/useForm.test-d.tsx +1 -1
  25. package/src/tests/useForm.test.tsx +48 -25
  26. package/src/types.ts +8 -2
  27. package/src/useField.tsx +26 -68
  28. package/src/useForm.tsx +19 -14
  29. package/dist/cjs/formContext.cjs +0 -14
  30. package/dist/cjs/formContext.cjs.map +0 -1
  31. package/dist/cjs/formContext.d.cts +0 -10
  32. package/dist/cjs/useIsomorphicEffectOnce.cjs +0 -30
  33. package/dist/cjs/useIsomorphicEffectOnce.cjs.map +0 -1
  34. package/dist/cjs/useIsomorphicEffectOnce.d.cts +0 -5
  35. package/dist/esm/formContext.d.ts +0 -10
  36. package/dist/esm/formContext.js +0 -14
  37. package/dist/esm/formContext.js.map +0 -1
  38. package/dist/esm/useIsomorphicEffectOnce.d.ts +0 -5
  39. package/dist/esm/useIsomorphicEffectOnce.js +0 -30
  40. package/dist/esm/useIsomorphicEffectOnce.js.map +0 -1
  41. package/src/formContext.ts +0 -17
  42. package/src/useIsomorphicEffectOnce.ts +0 -39
@@ -1,39 +0,0 @@
1
- import { useRef, useState } from 'rehackt'
2
- import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'
3
- import type { EffectCallback } from 'rehackt'
4
-
5
- /**
6
- * This hook handles StrictMode and prod mode
7
- */
8
- export const useIsomorphicEffectOnce = (effect: EffectCallback) => {
9
- const destroyFunc = useRef<void | (() => void)>()
10
- const effectCalled = useRef(false)
11
- const renderAfterCalled = useRef(false)
12
- const [val, setVal] = useState(0)
13
-
14
- if (effectCalled.current) {
15
- renderAfterCalled.current = true
16
- }
17
-
18
- useIsomorphicLayoutEffect(() => {
19
- // only execute the effect first time around
20
- if (!effectCalled.current) {
21
- destroyFunc.current = effect()
22
- effectCalled.current = true
23
- }
24
-
25
- // this forces one render after the effect is run
26
- setVal((v) => v + 1)
27
-
28
- return () => {
29
- // if the comp didn't render since the useEffect was called,
30
- // we know it's the dummy React cycle
31
- if (!renderAfterCalled.current) {
32
- return
33
- }
34
- if (destroyFunc.current) {
35
- destroyFunc.current()
36
- }
37
- }
38
- }, [])
39
- }