Upgrade useInsertionEffect to stable (#22589)
@huozhi tried this out and says it's working as expected. I think we can go ahead and move this into the stable channel, so that it is available in the React 18 alpha releases.
Andrew Clark committed
Oct 19, 2021 at 17:32 UTC
02f411578a8e58af8ec28e385f6b0dcb768cdc41
9 files changed
+9
-15
packages/react-debug-tools/src/__tests__/ReactHooksInspectionIntegration-test.js
+1
-2
@@ -268,9 +268,8 @@ describe('ReactHooksInspectionIntegration', () => {
268
]);
269
});
270
271
- // @gate experimental || www
271
it('should inspect the current state of all stateful hooks, including useInsertionEffect', () => {
273
- const useInsertionEffect = React.unstable_useInsertionEffect;
272
+ const useInsertionEffect = React.useInsertionEffect;
273
const outsideRef = React.createRef();
274
function effect() {}
275
function Foo(props) {
packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.js
+1
-2
@@ -55,7 +55,7 @@ function initModules() {
55
useRef = React.useRef;
56
useDebugValue = React.useDebugValue;
57
useImperativeHandle = React.useImperativeHandle;
58
- useInsertionEffect = React.unstable_useInsertionEffect;
58
+ useInsertionEffect = React.useInsertionEffect;
59
useLayoutEffect = React.useLayoutEffect;
60
useOpaqueIdentifier = React.unstable_useOpaqueIdentifier;
61
forwardRef = React.forwardRef;
@@ -641,7 +641,6 @@ describe('ReactDOMServerHooks', () => {
641
});
642
});
643
describe('useInsertionEffect', () => {
644
- // @gate experimental || www
644
it('should warn when invoked during render', async () => {
645
function Counter() {
646
useInsertionEffect(() => {
packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js
+1
-6
@@ -47,7 +47,7 @@ describe('ReactHooksWithNoopRenderer', () => {
47
useState = React.useState;
48
useReducer = React.useReducer;
49
useEffect = React.useEffect;
50
- useInsertionEffect = React.unstable_useInsertionEffect;
50
+ useInsertionEffect = React.useInsertionEffect;
51
useLayoutEffect = React.useLayoutEffect;
52
useCallback = React.useCallback;
53
useMemo = React.useMemo;
@@ -2685,7 +2685,6 @@ describe('ReactHooksWithNoopRenderer', () => {
2685
});
2686
2687
describe('useInsertionEffect', () => {
2688
- // @gate experimental || www
2688
it('fires insertion effects after snapshots on update', () => {
2689
function CounterA(props) {
2690
useInsertionEffect(() => {
@@ -2745,7 +2744,6 @@ describe('ReactHooksWithNoopRenderer', () => {
2744
});
2745
});
2746
2748
- // @gate experimental || www
2747
it('fires insertion effects before layout effects', () => {
2748
let committedText = '(empty)';
2749
@@ -2808,7 +2806,6 @@ describe('ReactHooksWithNoopRenderer', () => {
2806
expect(Scheduler).toHaveYielded(['Destroy passive [current: 0]']);
2807
});
2808
2811
- // @gate experimental || www
2809
it('force flushes passive effects before firing new insertion effects', () => {
2810
let committedText = '(empty)';
2811
@@ -2876,7 +2873,6 @@ describe('ReactHooksWithNoopRenderer', () => {
2873
]);
2874
});
2875
2879
- // @gate experimental || www
2876
it('fires all insertion effects (interleaved) before firing any layout effects', () => {
2877
let committedA = '(empty)';
2878
let committedB = '(empty)';
@@ -3043,7 +3039,6 @@ describe('ReactHooksWithNoopRenderer', () => {
3039
});
3040
});
3041
3046
- // @gate experimental || www
3042
it('assumes insertion effect destroy function is either a function or undefined', () => {
3043
function App(props) {
3044
useInsertionEffect(() => {
packages/react/index.classic.fb.js
+1
-1
@@ -48,7 +48,7 @@ export {
48
useEffect,
49
useImperativeHandle,
50
useLayoutEffect,
51
- unstable_useInsertionEffect,
51
+ useInsertionEffect,
52
useMemo,
53
useMutableSource,
54
useMutableSource as unstable_useMutableSource,
packages/react/index.experimental.js
+1
-1
@@ -42,7 +42,7 @@ export {
42
useDeferredValue,
43
useEffect,
44
useImperativeHandle,
45
- unstable_useInsertionEffect,
45
+ useInsertionEffect,
46
useLayoutEffect,
47
useMemo,
48
useMutableSource as unstable_useMutableSource,
packages/react/index.js
+1
-1
@@ -67,7 +67,7 @@ export {
67
useDeferredValue,
68
useEffect,
69
useImperativeHandle,
70
- unstable_useInsertionEffect,
70
+ useInsertionEffect,
71
useLayoutEffect,
72
useMemo,
73
useMutableSource,
packages/react/index.modern.fb.js
+1
-1
@@ -46,7 +46,7 @@ export {
46
useDeferredValue as unstable_useDeferredValue, // TODO: Remove once call sights updated to useDeferredValue
47
useEffect,
48
useImperativeHandle,
49
- unstable_useInsertionEffect,
49
+ useInsertionEffect,
50
useLayoutEffect,
51
useMemo,
52
useMutableSource,
packages/react/index.stable.js
+1
@@ -36,6 +36,7 @@ export {
36
useDeferredValue,
37
useEffect,
38
useImperativeHandle,
39
+ useInsertionEffect,
40
useLayoutEffect,
41
useMemo,
42
useMutableSource as unstable_useMutableSource,
packages/react/src/React.js
+1
-1
@@ -92,7 +92,7 @@ export {
92
useEffect,
93
useImperativeHandle,
94
useDebugValue,
95
- useInsertionEffect as unstable_useInsertionEffect,
95
+ useInsertionEffect,
96
useLayoutEffect,
97
useMemo,
98
useMutableSource,