Skip to content

Conversation

@ArnaudBarre
Copy link
Contributor

@ArnaudBarre ArnaudBarre commented Dec 7, 2025

Summary

Fixes vitejs/vite-plugin-react#1006

I'm not sure a lot of users do nest hooks at the second level, but the added complexity to the Babel plugin fells low enough to add support to it.

Before this change, the signature for the test would have been _s(App, "useNestedThing{foo}", true) which would force reset on HMR.

@meta-cla meta-cla bot added the CLA Signed label Dec 7, 2025
@react-sizebot
Copy link

Comparing: 4174533...217828a

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.84 kB 6.84 kB = 1.88 kB 1.88 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 608.36 kB 608.36 kB = 107.68 kB 107.68 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.84 kB 6.84 kB = 1.88 kB 1.88 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 667.47 kB 667.47 kB = 117.57 kB 117.57 kB
facebook-www/ReactDOM-prod.classic.js = 693.67 kB 693.67 kB = 122.07 kB 122.07 kB
facebook-www/ReactDOM-prod.modern.js = 684.10 kB 684.10 kB = 120.45 kB 120.45 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-refresh/cjs/react-refresh-babel.production.js +0.81% 20.63 kB 20.80 kB +0.42% 4.08 kB 4.09 kB
oss-stable-semver/react-refresh/cjs/react-refresh-babel.production.js +0.81% 20.63 kB 20.80 kB +0.42% 4.08 kB 4.09 kB
oss-stable/react-refresh/cjs/react-refresh-babel.production.js +0.81% 20.63 kB 20.80 kB +0.42% 4.08 kB 4.09 kB
oss-experimental/react-refresh/cjs/react-refresh-babel.development.js +0.79% 22.10 kB 22.27 kB +0.43% 4.15 kB 4.17 kB
oss-stable-semver/react-refresh/cjs/react-refresh-babel.development.js +0.79% 22.10 kB 22.27 kB +0.43% 4.15 kB 4.17 kB
oss-stable/react-refresh/cjs/react-refresh-babel.development.js +0.79% 22.10 kB 22.27 kB +0.43% 4.15 kB 4.17 kB

Generated by 🚫 dangerJS against 217828a

@Dunqing
Copy link

Dunqing commented Dec 7, 2025

The issue you linked in the description is incorrect. Should be vitejs/vite-plugin-react#1006, right?

@ArnaudBarre
Copy link
Contributor Author

yeah my bad!

Copilot AI added a commit to oxc-project/oxc that referenced this pull request Dec 8, 2025
…fresh

Add support for detecting hooks called via nested member expressions like
`FancyHook.property.useNestedThing()` in React Fast Refresh.

Previously, only direct hook calls and single-level member expressions were
supported. This caused nested member expression hooks to force a full reset
on HMR instead of preserving state.

This implementation matches React PR #35318:
facebook/react#35318

Co-authored-by: Dunqing <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hooks inside deeply nested objects always cause state reset

3 participants