Skip to content

Commit

Permalink
Restrict useOptimistic and useFormStatus APIs on the server layer (
Browse files Browse the repository at this point in the history
…#49331)

This PR extends `invalid_server_react_dom_apis` with
`experimental_useOptimistic` and `experimental_useFormStatus` to create
early compile-time errors.
  • Loading branch information
shuding committed May 8, 2023
1 parent 5ca02a8 commit 20e1349
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 0 deletions.
2 changes: 2 additions & 0 deletions packages/next-swc/crates/core/src/react_server_components.rs
Expand Up @@ -572,6 +572,8 @@ pub fn server_components<C: Comments>(
JsWord::from("findDOMNode"),
JsWord::from("flushSync"),
JsWord::from("unstable_batchedUpdates"),
JsWord::from("experimental_useFormStatus"),
JsWord::from("experimental_useOptimistic"),
],
invalid_server_react_apis: vec![
JsWord::from("Component"),
Expand Down
@@ -1,5 +1,10 @@
import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom'

import {
experimental_useOptimistic as useOptimistic,
experimental_useFormStatus,
} from 'react-dom'

export default function () {
return null
}
@@ -1,4 +1,5 @@
import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom';
import { experimental_useOptimistic as useOptimistic, experimental_useFormStatus } from 'react-dom';
export default function() {
return null;
}
Expand Up @@ -16,3 +16,19 @@
1 | import { findDOMNode, flushSync, unstable_batchedUpdates } from 'react-dom'
: ^^^^^^^^^^^^^^^^^^^^^^^
`----

x NEXT_RSC_ERR_REACT_API: experimental_useOptimistic
,-[input.js:3:1]
3 | import {
4 | experimental_useOptimistic as useOptimistic,
: ^^^^^^^^^^^^^^^^^^^^^^^^^^
5 | experimental_useFormStatus,
`----

x NEXT_RSC_ERR_REACT_API: experimental_useFormStatus
,-[input.js:4:1]
4 | experimental_useOptimistic as useOptimistic,
5 | experimental_useFormStatus,
: ^^^^^^^^^^^^^^^^^^^^^^^^^^
6 | } from 'react-dom'
`----

0 comments on commit 20e1349

Please sign in to comment.