Skip to content

Replace Implicit Options on SuspenseList with Explicit Options #33424

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 3, 2025

Conversation

sebmarkbage
Copy link
Collaborator

@sebmarkbage sebmarkbage commented Jun 3, 2025

We want to change the defaults for revealOrder and tail on SuspenseList. This is an intermediate step to allow experimental users to upgrade.

To explicitly specify these options I added revealOrder="independent" and tail="visible".

I then added warnings if undefined or null is passed. You must now always explicitly specify them. However, semantics are still preserved for now until the next step.

We also want to change the rendering order of the children prop for revealOrder="backwards". As an intermediate step I first added revealOrder="unstable_legacy-backwards" option. This will only be temporary until all users can switch to the new "backwards" semantics once we flip it in the next step.

I also clarified the types that the directional props requires iterable children but not iterable inside of those. Rows with multiple items can be modeled as explicit fragments.

@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Jun 3, 2025
@sebmarkbage sebmarkbage force-pushed the suspenselistdefaults branch from 56845d2 to 50a916b Compare June 3, 2025 16:50
@react-sizebot
Copy link

react-sizebot commented Jun 3, 2025

Comparing: 1540081...87656c9

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js +0.05% 529.82 kB 530.07 kB +0.06% 93.51 kB 93.57 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js +0.04% 650.91 kB 651.16 kB +0.05% 114.64 kB 114.70 kB
facebook-www/ReactDOM-prod.classic.js +0.04% 675.86 kB 676.11 kB +0.05% 118.91 kB 118.97 kB
facebook-www/ReactDOM-prod.modern.js +0.04% 666.14 kB 666.39 kB +0.05% 117.30 kB 117.36 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
test_utils/ReactAllWarnings.js +0.98% 66.44 kB 67.09 kB +1.08% 16.67 kB 16.85 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js +0.31% 570.69 kB 572.45 kB +0.29% 92.01 kB 92.28 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js +0.31% 570.72 kB 572.48 kB +0.29% 92.02 kB 92.29 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js +0.31% 570.76 kB 572.52 kB +0.29% 92.04 kB 92.31 kB
oss-stable-semver/react-art/cjs/react-art.development.js +0.31% 574.55 kB 576.31 kB +0.31% 91.89 kB 92.17 kB
oss-stable/react-art/cjs/react-art.development.js +0.31% 574.63 kB 576.39 kB +0.31% 91.91 kB 92.20 kB
facebook-www/ReactTestRenderer-dev.modern.js +0.30% 588.71 kB 590.47 kB +0.30% 95.08 kB 95.37 kB
facebook-www/ReactTestRenderer-dev.classic.js +0.30% 588.71 kB 590.47 kB +0.30% 95.08 kB 95.37 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js +0.29% 601.98 kB 603.74 kB +0.27% 96.60 kB 96.86 kB
react-native/implementations/ReactFabric-dev.js +0.27% 652.12 kB 653.88 kB +0.25% 105.76 kB 106.03 kB
react-native/implementations/ReactNativeRenderer-dev.js +0.27% 661.58 kB 663.34 kB +0.25% 107.22 kB 107.49 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js +0.26% 665.80 kB 667.55 kB +0.27% 105.28 kB 105.56 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js +0.26% 665.82 kB 667.58 kB +0.27% 105.30 kB 105.59 kB
oss-experimental/react-art/cjs/react-art.development.js +0.26% 675.11 kB 676.86 kB +0.25% 106.42 kB 106.68 kB
react-native/implementations/ReactFabric-dev.fb.js +0.26% 676.63 kB 678.39 kB +0.24% 109.78 kB 110.04 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js +0.26% 678.33 kB 680.09 kB +0.24% 110.00 kB 110.26 kB
oss-stable-semver/react-server/cjs/react-server.production.js +0.24% 134.25 kB 134.58 kB +0.16% 23.53 kB 23.57 kB
oss-stable/react-server/cjs/react-server.production.js +0.24% 134.25 kB 134.58 kB +0.16% 23.53 kB 23.57 kB
facebook-www/ReactART-dev.modern.js +0.24% 721.97 kB 723.72 kB +0.23% 112.10 kB 112.36 kB
facebook-www/ReactART-dev.classic.js +0.24% 731.46 kB 733.22 kB +0.24% 113.85 kB 114.12 kB
oss-experimental/react-server/cjs/react-server.production.js +0.22% 149.95 kB 150.28 kB +0.17% 25.87 kB 25.91 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js +0.22% 802.41 kB 804.17 kB +0.21% 125.09 kB 125.35 kB
facebook-www/ReactReconciler-dev.modern.js +0.21% 838.28 kB 840.04 kB +0.26% 129.79 kB 130.13 kB
facebook-www/ReactReconciler-dev.classic.js +0.21% 847.48 kB 849.24 kB +0.25% 131.57 kB 131.89 kB

Generated by 🚫 dangerJS against 87656c9

@sebmarkbage sebmarkbage force-pushed the suspenselistdefaults branch 7 times, most recently from 680fcf3 to ee295d8 Compare June 3, 2025 18:04
@sebmarkbage sebmarkbage force-pushed the suspenselistdefaults branch from ee295d8 to 87656c9 Compare June 3, 2025 21:32
@sebmarkbage sebmarkbage merged commit d742611 into facebook:main Jun 3, 2025
240 checks passed
github-actions bot pushed a commit that referenced this pull request Jun 3, 2025
We want to change the defaults for `revealOrder` and `tail` on
SuspenseList. This is an intermediate step to allow experimental users
to upgrade.

To explicitly specify these options I added `revealOrder="independent"`
and `tail="visible"`.

I then added warnings if `undefined` or `null` is passed. You must now
always explicitly specify them. However, semantics are still preserved
for now until the next step.

We also want to change the rendering order of the `children` prop for
`revealOrder="backwards"`. As an intermediate step I first added
`revealOrder="unstable_legacy-backwards"` option. This will only be
temporary until all users can switch to the new `"backwards"` semantics
once we flip it in the next step.

I also clarified the types that the directional props requires iterable
children but not iterable inside of those. Rows with multiple items can
be modeled as explicit fragments.

DiffTrain build for [d742611](d742611)
github-actions bot pushed a commit that referenced this pull request Jun 3, 2025
We want to change the defaults for `revealOrder` and `tail` on
SuspenseList. This is an intermediate step to allow experimental users
to upgrade.

To explicitly specify these options I added `revealOrder="independent"`
and `tail="visible"`.

I then added warnings if `undefined` or `null` is passed. You must now
always explicitly specify them. However, semantics are still preserved
for now until the next step.

We also want to change the rendering order of the `children` prop for
`revealOrder="backwards"`. As an intermediate step I first added
`revealOrder="unstable_legacy-backwards"` option. This will only be
temporary until all users can switch to the new `"backwards"` semantics
once we flip it in the next step.

I also clarified the types that the directional props requires iterable
children but not iterable inside of those. Rows with multiple items can
be modeled as explicit fragments.

DiffTrain build for [d742611](d742611)
github-actions bot pushed a commit to code/lib-react that referenced this pull request Jun 4, 2025
…ook#33424)

We want to change the defaults for `revealOrder` and `tail` on
SuspenseList. This is an intermediate step to allow experimental users
to upgrade.

To explicitly specify these options I added `revealOrder="independent"`
and `tail="visible"`.

I then added warnings if `undefined` or `null` is passed. You must now
always explicitly specify them. However, semantics are still preserved
for now until the next step.

We also want to change the rendering order of the `children` prop for
`revealOrder="backwards"`. As an intermediate step I first added
`revealOrder="unstable_legacy-backwards"` option. This will only be
temporary until all users can switch to the new `"backwards"` semantics
once we flip it in the next step.

I also clarified the types that the directional props requires iterable
children but not iterable inside of those. Rows with multiple items can
be modeled as explicit fragments.

DiffTrain build for [d742611](facebook@d742611)
github-actions bot pushed a commit to code/lib-react that referenced this pull request Jun 4, 2025
…ook#33424)

We want to change the defaults for `revealOrder` and `tail` on
SuspenseList. This is an intermediate step to allow experimental users
to upgrade.

To explicitly specify these options I added `revealOrder="independent"`
and `tail="visible"`.

I then added warnings if `undefined` or `null` is passed. You must now
always explicitly specify them. However, semantics are still preserved
for now until the next step.

We also want to change the rendering order of the `children` prop for
`revealOrder="backwards"`. As an intermediate step I first added
`revealOrder="unstable_legacy-backwards"` option. This will only be
temporary until all users can switch to the new `"backwards"` semantics
once we flip it in the next step.

I also clarified the types that the directional props requires iterable
children but not iterable inside of those. Rows with multiple items can
be modeled as explicit fragments.

DiffTrain build for [d742611](facebook@d742611)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants