Skip to content

fix(react): experimental option to make attaching promise status controllable #3026

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 15 commits into from
Apr 13, 2025

Conversation

dai-shi
Copy link
Member

@dai-shi dai-shi commented Mar 12, 2025

And rename to React.

Copy link

vercel bot commented Mar 12, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
jotai ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 13, 2025 11:00pm

Copy link

codesandbox-ci bot commented Mar 12, 2025

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Copy link

pkg-pr-new bot commented Mar 12, 2025

More templates

npm i https://pkg.pr.new/jotai@3026

commit: be67a8f

Copy link

github-actions bot commented Mar 12, 2025

Size Change: +399 B (+0.41%)

Total Size: 98 kB

Filename Size Change
./dist/esm/react.mjs 1.46 kB +71 B (+5.1%) 🔍
./dist/react.js 1.51 kB +78 B (+5.43%) 🔍
./dist/system/react.development.js 1.64 kB +75 B (+4.8%) 🔍
./dist/system/react.production.js 960 B +46 B (+5.03%) 🔍
./dist/umd/react.development.js 1.65 kB +80 B (+5.09%) 🔍
./dist/umd/react.production.js 1.05 kB +49 B (+4.91%) 🔍
ℹ️ View Unchanged
Filename Size
./dist/babel/plugin-debug-label.js 932 B
./dist/babel/plugin-react-refresh.js 1.14 kB
./dist/babel/preset.js 1.41 kB
./dist/esm/babel/plugin-debug-label.mjs 1 kB
./dist/esm/babel/plugin-react-refresh.mjs 1.19 kB
./dist/esm/babel/preset.mjs 1.49 kB
./dist/esm/index.mjs 62 B
./dist/esm/react/utils.mjs 746 B
./dist/esm/utils.mjs 67 B
./dist/esm/vanilla.mjs 1.15 kB
./dist/esm/vanilla/internals.mjs 3.73 kB
./dist/esm/vanilla/utils.mjs 5.07 kB
./dist/index.js 242 B
./dist/react/utils.js 1.4 kB
./dist/system/babel/plugin-debug-label.development.js 1.1 kB
./dist/system/babel/plugin-debug-label.production.js 775 B
./dist/system/babel/plugin-react-refresh.development.js 1.29 kB
./dist/system/babel/plugin-react-refresh.production.js 928 B
./dist/system/babel/preset.development.js 1.59 kB
./dist/system/babel/preset.production.js 1.14 kB
./dist/system/index.development.js 252 B
./dist/system/index.production.js 183 B
./dist/system/react/utils.development.js 860 B
./dist/system/react/utils.production.js 462 B
./dist/system/utils.development.js 257 B
./dist/system/utils.production.js 187 B
./dist/system/vanilla.development.js 1.24 kB
./dist/system/vanilla.production.js 350 B
./dist/system/vanilla/internals.development.js 3.88 kB
./dist/system/vanilla/internals.production.js 2.36 kB
./dist/system/vanilla/utils.development.js 5.28 kB
./dist/system/vanilla/utils.production.js 3.15 kB
./dist/umd/babel/plugin-debug-label.development.js 1.08 kB
./dist/umd/babel/plugin-debug-label.production.js 852 B
./dist/umd/babel/plugin-react-refresh.development.js 1.27 kB
./dist/umd/babel/plugin-react-refresh.production.js 1 kB
./dist/umd/babel/preset.development.js 1.54 kB
./dist/umd/babel/preset.production.js 1.22 kB
./dist/umd/index.development.js 383 B
./dist/umd/index.production.js 328 B
./dist/umd/react/utils.development.js 1.54 kB
./dist/umd/react/utils.production.js 1.01 kB
./dist/umd/utils.development.js 399 B
./dist/umd/utils.production.js 342 B
./dist/umd/vanilla.development.js 1.87 kB
./dist/umd/vanilla.production.js 403 B
./dist/umd/vanilla/internals.development.js 5.17 kB
./dist/umd/vanilla/internals.production.js 3.2 kB
./dist/umd/vanilla/utils.development.js 6.26 kB
./dist/umd/vanilla/utils.production.js 3.79 kB
./dist/utils.js 247 B
./dist/vanilla.js 1.77 kB
./dist/vanilla/internals.js 5.03 kB
./dist/vanilla/utils.js 6.13 kB

compressed-size-action

Copy link

github-actions bot commented Mar 12, 2025

LiveCodes Preview in LiveCodes

Latest commit: be67a8f
Last updated: Apr 13, 2025 11:00pm (UTC)

Playground Link
React demo https://livecodes.io?x=id/AA3W3P733

See documentations for usage instructions.

@dai-shi dai-shi changed the title refactor(react): avoid promise hack refactor(react): make the promise hack explicit for older React versions Mar 12, 2025
@dai-shi dai-shi mentioned this pull request Mar 18, 2025
@dai-shi
Copy link
Member Author

dai-shi commented Mar 21, 2025

https://bsky.app/profile/sebmarkbage.calyptus.eu/post/3lku7b7xjmk2w

Or, should we always attach promise meta if the value is a promise? (It's actually what I did previously.)

@dai-shi
Copy link
Member Author

dai-shi commented Mar 21, 2025

Actually, it doesn't help as it's already triggering the update.

@dai-shi
Copy link
Member Author

dai-shi commented Mar 26, 2025

Actually, it doesn't help as it's already triggering the update.

Maybe it helps for subsequent updates, as #3013 suggested by @tien.

#2848 (reply in thread)

@dai-shi dai-shi changed the title refactor(react): make the promise hack explicit for older React versions fix(react): experimental option to make attaching promise status controllable Mar 26, 2025
@tien
Copy link
Contributor

tien commented Apr 11, 2025

@dai-shi are there any downside of attaching promise status? Also, I assume this is used internally by React's use and is not documented?

EDIT: missed the post you attached https://bsky.app/profile/sebmarkbage.calyptus.eu/post/3lku7b7xjmk2w. Does sound like you should always attach status when passing promises to use when possible?

@dai-shi
Copy link
Member Author

dai-shi commented Apr 12, 2025

What they suggest is slightly different from what we do here.
Anyway, this is behind the experimental options, and you can experiment with it. If it works well, let's consider finalizing it in the future version.

@dai-shi dai-shi marked this pull request as ready for review April 12, 2025 23:51
@dai-shi dai-shi added this to the v2.12.3 milestone Apr 12, 2025
@dai-shi dai-shi merged commit cc8003d into main Apr 13, 2025
44 checks passed
@dai-shi dai-shi deleted the refactor/avoid-promise-hack branch April 13, 2025 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants