Skip to content

[Flare] Move createEvent back to React object#15943

Merged
trueadm merged 3 commits intofacebook:masterfrom
trueadm:react-create-event
Jun 21, 2019
Merged

[Flare] Move createEvent back to React object#15943
trueadm merged 3 commits intofacebook:masterfrom
trueadm:react-create-event

Conversation

@trueadm
Copy link
Copy Markdown
Contributor

@trueadm trueadm commented Jun 21, 2019

Internally, we ran into issues with exporting createEvent on ReactDOM. Moving this back to React fixes the issue. This is because the ReactDOM module has side-effects that occur upon initialization of the module, which breaks in cases such as server-side rendering.

Lately, given the useEvent hook, it might make more sense for us to keep createEvent on the React object. In the RN integration PR, I found better ways to ensure Flow type safety whilst doing so, so it might be worth while looking at how we can incorporate a polymorphic createEvent on the React object, where the responder field might relate to different responders depending on the platform.

The event responders exported should always be the same shape between platforms anyway, the only thing that differs is the props they receive – so this should be safe to do.

@sebmarkbage I'd really like it if you could chime in on this one too :)

@sizebot
Copy link
Copy Markdown

sizebot commented Jun 21, 2019

React: size: 🔺+0.3%, gzip: 🔺+0.3%

ReactDOM: size: 0.0%, gzip: -0.1%

Details of bundled changes.

Comparing: 175111d...d2dea53

react

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react.development.js +0.9% +1.3% 110.14 KB 111.17 KB 27.7 KB 28.06 KB UMD_DEV
react.production.min.js 🔺+0.3% 🔺+0.3% 13.07 KB 13.11 KB 5.03 KB 5.04 KB UMD_PROD
react.profiling.min.js +0.3% +0.1% 15.24 KB 15.29 KB 5.58 KB 5.59 KB UMD_PROFILING
react.development.js +1.4% +1.8% 70.99 KB 72.02 KB 18.44 KB 18.77 KB NODE_DEV
react.production.min.js 🔺+0.6% 🔺+0.5% 6.65 KB 6.69 KB 2.74 KB 2.75 KB NODE_PROD
React-dev.js +1.5% +1.9% 69.19 KB 70.21 KB 17.68 KB 18.02 KB FB_WWW_DEV
React-prod.js 🔺+1.5% 🔺+1.1% 16.59 KB 16.84 KB 4.36 KB 4.41 KB FB_WWW_PROD
React-profiling.js +1.5% +1.1% 16.59 KB 16.84 KB 4.36 KB 4.41 KB FB_WWW_PROFILING

react-events

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-events-hover.development.js -0.2% -0.4% 8.87 KB 8.85 KB 2.16 KB 2.15 KB UMD_DEV
react-events-drag.development.js -92.9% -92.0% 84 KB 5.98 KB 21.44 KB 1.71 KB UMD_DEV
react-events-hover.production.min.js -0.3% -0.1% 3.81 KB 3.8 KB 1.41 KB 1.4 KB UMD_PROD
ReactEventsFocus-dev.js -0.1% -0.3% 7.2 KB 7.19 KB 1.87 KB 1.87 KB FB_WWW_DEV
react-events-drag.production.min.js -75.5% -70.4% 10.36 KB 2.54 KB 3.9 KB 1.15 KB UMD_PROD
ReactEventsScroll-dev.js -0.3% -0.5% 3.77 KB 3.76 KB 1.22 KB 1.21 KB FB_WWW_DEV
react-events.development.js 0.0% -0.1% 1.31 KB 1.31 KB 707 B 706 B UMD_DEV
react-events-focus-scope.development.js -0.4% -0.5% 4.27 KB 4.25 KB 1.33 KB 1.32 KB UMD_DEV
react-events.production.min.js 0.0% -0.2% 682 B 682 B 431 B 430 B UMD_PROD
ReactEventsPress-dev.js -0.0% -0.1% 24.76 KB 24.75 KB 5.65 KB 5.64 KB FB_WWW_DEV
react-events-focus-scope.production.min.js -0.6% -0.9% 1.83 KB 1.82 KB 965 B 956 B UMD_PROD
ReactEventsSwipe-dev.js -0.2% -0.4% 6.25 KB 6.24 KB 1.75 KB 1.74 KB FB_WWW_DEV
ReactEventsPress-prod.js -0.0% -0.2% 20.7 KB 20.69 KB 4.29 KB 4.28 KB FB_WWW_PROD
ReactEventsSwipe-prod.js -0.2% -0.5% 5.55 KB 5.54 KB 1.48 KB 1.48 KB FB_WWW_PROD
react-events-focus-scope.development.js -0.2% -0.5% 4.07 KB 4.06 KB 1.28 KB 1.27 KB NODE_DEV
react-events-focus-scope.production.min.js -0.2% -0.3% 1.63 KB 1.62 KB 876 B 873 B NODE_PROD
react-events-focus.development.js -0.2% -0.4% 7.26 KB 7.25 KB 1.89 KB 1.89 KB UMD_DEV
react-events-scroll.development.js -0.4% -0.5% 3.99 KB 3.97 KB 1.27 KB 1.27 KB UMD_DEV
react-events-focus.production.min.js -0.3% -0.6% 3.08 KB 3.07 KB 1.19 KB 1.18 KB UMD_PROD
ReactEventsFocusScope-dev.js -0.2% -0.5% 4.04 KB 4.04 KB 1.25 KB 1.25 KB FB_WWW_DEV
react-events-scroll.production.min.js -0.6% -0.8% 1.77 KB 1.76 KB 888 B 881 B UMD_PROD
ReactEventsFocusScope-prod.js -0.1% -0.3% 3.33 KB 3.32 KB 1.07 KB 1.06 KB FB_WWW_PROD
react-events-focus.development.js -0.1% -0.4% 7.08 KB 7.07 KB 1.84 KB 1.83 KB NODE_DEV
react-events-scroll.development.js -0.3% -0.6% 3.8 KB 3.79 KB 1.21 KB 1.21 KB NODE_DEV
react-events-focus.production.min.js -0.1% -0.2% 2.9 KB 2.89 KB 1.11 KB 1.11 KB NODE_PROD
react-events-scroll.production.min.js -0.2% -0.3% 1.56 KB 1.56 KB 797 B 795 B NODE_PROD
ReactEventsFocus-prod.js -0.2% -0.5% 6.03 KB 6.02 KB 1.45 KB 1.44 KB FB_WWW_PROD
ReactEventsScroll-prod.js -0.1% -0.5% 3.1 KB 3.1 KB 1000 B 995 B FB_WWW_PROD
react-events-hover.development.js -0.1% -0.5% 8.68 KB 8.67 KB 2.11 KB 2.1 KB NODE_DEV
react-events-drag.development.js -0.1% -0.2% 7.75 KB 7.74 KB 2.38 KB 2.38 KB NODE_DEV
react-events-hover.production.min.js -0.1% -0.1% 3.62 KB 3.62 KB 1.34 KB 1.34 KB NODE_PROD
react-events-drag.production.min.js -0.1% -0.2% 3.18 KB 3.17 KB 1.46 KB 1.46 KB NODE_PROD
react-events-press.development.js -0.1% -0.1% 23.95 KB 23.93 KB 5.5 KB 5.5 KB UMD_DEV
react-events-swipe.development.js -0.3% -0.4% 6.29 KB 6.27 KB 1.77 KB 1.77 KB UMD_DEV
react-events-press.production.min.js -0.1% -0.1% 8.49 KB 8.47 KB 3.06 KB 3.06 KB UMD_PROD
ReactEventsHover-dev.js -0.1% -0.5% 8.88 KB 8.87 KB 2.16 KB 2.15 KB FB_WWW_DEV
react-events-swipe.production.min.js -0.4% -0.4% 2.64 KB 2.63 KB 1.2 KB 1.2 KB UMD_PROD
ReactEventsDrag-dev.js -0.2% -0.4% 6.05 KB 6.04 KB 1.67 KB 1.66 KB FB_WWW_DEV
ReactEventsHover-prod.js -0.1% -0.3% 7.45 KB 7.44 KB 1.78 KB 1.78 KB FB_WWW_PROD
ReactEventsDrag-prod.js -0.2% -0.4% 5 KB 4.99 KB 1.39 KB 1.39 KB FB_WWW_PROD
react-events-press.development.js -0.0% -0.2% 23.76 KB 23.75 KB 5.45 KB 5.44 KB NODE_DEV
react-events-swipe.development.js -0.2% -0.4% 6.1 KB 6.09 KB 1.73 KB 1.72 KB NODE_DEV
react-events-press.production.min.js -0.0% -0.1% 8.3 KB 8.3 KB 3 KB 3 KB NODE_PROD
react-events-swipe.production.min.js -0.2% -0.3% 2.45 KB 2.45 KB 1.14 KB 1.13 KB NODE_PROD

react-dom

File Filesize Diff Gzip Diff Prev Size Current Size Prev Gzip Current Gzip ENV
react-dom.profiling.min.js 0.0% -0.0% 113.72 KB 113.72 KB 35.86 KB 35.86 KB NODE_PROFILING
react-dom-unstable-native-dependencies.development.js 0.0% -0.0% 60.76 KB 60.76 KB 15.85 KB 15.85 KB UMD_DEV
ReactDOM-dev.js -0.1% -0.2% 918.83 KB 917.76 KB 203.74 KB 203.43 KB FB_WWW_DEV
react-dom-unstable-native-dependencies.production.min.js 0.0% -0.1% 10.74 KB 10.74 KB 3.68 KB 3.68 KB UMD_PROD
ReactDOMServer-dev.js 0.0% -0.0% 136.32 KB 136.32 KB 34.91 KB 34.91 KB FB_WWW_DEV
react-dom-unstable-fire.development.js -0.1% -0.1% 895.59 KB 894.52 KB 203.32 KB 203.12 KB UMD_DEV
react-dom-unstable-fire.profiling.min.js 0.0% -0.0% 113.46 KB 113.46 KB 36.43 KB 36.43 KB UMD_PROFILING
react-dom-unstable-fire.development.js -0.1% -0.1% 889.95 KB 888.88 KB 201.82 KB 201.62 KB NODE_DEV
react-dom-server.node.development.js 0.0% -0.0% 135.59 KB 135.59 KB 35.86 KB 35.86 KB NODE_DEV
react-dom-unstable-fire.production.min.js 0.0% -0.0% 110.31 KB 110.31 KB 35.04 KB 35.04 KB NODE_PROD
react-dom-server.node.production.min.js 0.0% -0.0% 20.23 KB 20.23 KB 7.58 KB 7.58 KB NODE_PROD
react-dom.development.js -0.1% -0.1% 895.24 KB 894.17 KB 203.17 KB 202.98 KB UMD_DEV
react-dom-unstable-fire.profiling.min.js 0.0% -0.0% 113.73 KB 113.73 KB 35.87 KB 35.87 KB NODE_PROFILING
react-dom-server.browser.development.js 0.0% -0.0% 137.53 KB 137.53 KB 36.25 KB 36.25 KB UMD_DEV
react-dom.production.min.js 0.0% -0.0% 110.21 KB 110.21 KB 35.5 KB 35.5 KB UMD_PROD
ReactFire-dev.js -0.1% -0.2% 918.03 KB 916.96 KB 203.64 KB 203.33 KB FB_WWW_DEV
react-dom-server.browser.production.min.js 0.0% -0.0% 19.45 KB 19.45 KB 7.28 KB 7.28 KB UMD_PROD
react-dom.profiling.min.js 0.0% -0.0% 113.44 KB 113.44 KB 36.42 KB 36.42 KB UMD_PROFILING
ReactFire-prod.js -0.0% -0.1% 361.9 KB 361.74 KB 66.11 KB 66.08 KB FB_WWW_PROD
react-dom.development.js -0.1% -0.1% 889.6 KB 888.53 KB 201.67 KB 201.48 KB NODE_DEV
ReactFire-profiling.js -0.0% -0.1% 367.15 KB 366.99 KB 67.1 KB 67.07 KB FB_WWW_PROFILING
react-dom-server.browser.development.js 0.0% -0.0% 133.66 KB 133.66 KB 35.32 KB 35.32 KB NODE_DEV
react-dom.production.min.js 0.0% -0.0% 110.29 KB 110.29 KB 35.03 KB 35.03 KB NODE_PROD
react-dom-server.browser.production.min.js 0.0% -0.0% 19.38 KB 19.38 KB 7.28 KB 7.28 KB NODE_PROD
ReactDOM-prod.js -0.0% -0.1% 373.92 KB 373.76 KB 68.51 KB 68.47 KB FB_WWW_PROD
ReactDOMServer-prod.js 0.0% 0.0% 48.36 KB 48.36 KB 11.12 KB 11.12 KB FB_WWW_PROD
ReactDOM-profiling.js -0.0% -0.1% 380.42 KB 380.27 KB 69.73 KB 69.7 KB FB_WWW_PROFILING
react-dom-unstable-native-dependencies.development.js 0.0% -0.0% 60.43 KB 60.43 KB 15.72 KB 15.72 KB NODE_DEV
react-dom-unstable-fizz.node.development.js 0.0% -0.1% 3.88 KB 3.88 KB 1.51 KB 1.51 KB NODE_DEV
react-dom-unstable-native-dependencies.production.min.js 0.0% -0.1% 10.48 KB 10.48 KB 3.58 KB 3.58 KB NODE_PROD
react-dom-unstable-fizz.node.production.min.js 0.0% -0.1% 1.1 KB 1.1 KB 667 B 666 B NODE_PROD
react-dom-unstable-fizz.browser.development.js 0.0% -0.1% 3.81 KB 3.81 KB 1.54 KB 1.53 KB UMD_DEV
react-dom-unstable-fizz.browser.production.min.js 0.0% -0.1% 1.21 KB 1.21 KB 706 B 705 B UMD_PROD
react-dom-test-utils.development.js 0.0% -0.0% 56.11 KB 56.11 KB 15.55 KB 15.55 KB NODE_DEV
react-dom-unstable-fizz.browser.development.js 0.0% -0.1% 3.64 KB 3.64 KB 1.49 KB 1.49 KB NODE_DEV
react-dom-unstable-fizz.browser.production.min.js 0.0% -0.2% 1.05 KB 1.05 KB 637 B 636 B NODE_PROD

Generated by 🚫 dangerJS

@necolas
Copy link
Copy Markdown
Contributor

necolas commented Jun 21, 2019

LGTM. Don't think the types need changing back from ReactDOM to React as the ReactDOM types are only used in ReactDOM files. And it sounds like it's still something to figure out.

@trueadm trueadm merged commit 4f92fbc into facebook:master Jun 21, 2019
@trueadm trueadm deleted the react-create-event branch June 21, 2019 09:13
rickhanlonii pushed a commit to rickhanlonii/react that referenced this pull request Jun 25, 2019
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.

4 participants