@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.
- package/dist/cjs/createFormFactory.cjs.map +1 -1
- package/dist/cjs/createFormFactory.d.cts +3 -3
- package/dist/cjs/types.d.cts +2 -2
- package/dist/cjs/useField.cjs +5 -28
- package/dist/cjs/useField.cjs.map +1 -1
- package/dist/cjs/useField.d.cts +4 -12
- package/dist/cjs/useForm.cjs +4 -6
- package/dist/cjs/useForm.cjs.map +1 -1
- package/dist/cjs/useForm.d.cts +14 -4
- package/dist/esm/createFormFactory.d.ts +3 -3
- package/dist/esm/createFormFactory.js.map +1 -1
- package/dist/esm/types.d.ts +2 -2
- package/dist/esm/useField.d.ts +4 -12
- package/dist/esm/useField.js +7 -30
- package/dist/esm/useField.js.map +1 -1
- package/dist/esm/useForm.d.ts +14 -4
- package/dist/esm/useForm.js +4 -6
- package/dist/esm/useForm.js.map +1 -1
- package/package.json +3 -3
- package/src/createFormFactory.ts +4 -4
- package/src/tests/createFormFactory.test.tsx +4 -5
- package/src/tests/useField.test-d.tsx +5 -5
- package/src/tests/useField.test.tsx +257 -32
- package/src/tests/useForm.test-d.tsx +1 -1
- package/src/tests/useForm.test.tsx +48 -25
- package/src/types.ts +8 -2
- package/src/useField.tsx +26 -68
- package/src/useForm.tsx +19 -14
- package/dist/cjs/formContext.cjs +0 -14
- package/dist/cjs/formContext.cjs.map +0 -1
- package/dist/cjs/formContext.d.cts +0 -10
- package/dist/cjs/useIsomorphicEffectOnce.cjs +0 -30
- package/dist/cjs/useIsomorphicEffectOnce.cjs.map +0 -1
- package/dist/cjs/useIsomorphicEffectOnce.d.cts +0 -5
- package/dist/esm/formContext.d.ts +0 -10
- package/dist/esm/formContext.js +0 -14
- package/dist/esm/formContext.js.map +0 -1
- package/dist/esm/useIsomorphicEffectOnce.d.ts +0 -5
- package/dist/esm/useIsomorphicEffectOnce.js +0 -30
- package/dist/esm/useIsomorphicEffectOnce.js.map +0 -1
- package/src/formContext.ts +0 -17
- 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
|
-
}
|