From 9e9b40f155433e27839340d71403ad99ff6caad4 Mon Sep 17 00:00:00 2001 From: Nicolas Gallagher Date: Fri, 18 May 2018 18:13:30 -0700 Subject: [PATCH] [fix] ResponderEventPlugin injection for tree-shaking bundler Previously this depended on a side-effecting `import` statement which would be removed under tree-shaking. --- .../src/exports/createElement/index.js | 10 ++++++++-- .../index.js | 6 +----- 2 files changed, 9 insertions(+), 7 deletions(-) rename packages/react-native-web/src/modules/{injectResponderEventPlugin => ResponderEventPlugin}/index.js (94%) diff --git a/packages/react-native-web/src/exports/createElement/index.js b/packages/react-native-web/src/exports/createElement/index.js index 3fa5a8f8..0020bf05 100644 --- a/packages/react-native-web/src/exports/createElement/index.js +++ b/packages/react-native-web/src/exports/createElement/index.js @@ -7,12 +7,18 @@ * @noflow */ -import '../../modules/injectResponderEventPlugin'; - import AccessibilityUtil from '../../modules/AccessibilityUtil'; import createDOMProps from '../../modules/createDOMProps'; import normalizeNativeEvent from '../../modules/normalizeNativeEvent'; import React from 'react'; +import ReactDOM from 'react-dom'; +import ResponderEventPlugin from '../../modules/ResponderEventPlugin'; + +const { EventPluginHub } = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + +EventPluginHub.injection.injectEventPluginsByName({ + ResponderEventPlugin +}); /** * Ensure event handlers receive an event of the expected shape. The 'button' diff --git a/packages/react-native-web/src/modules/injectResponderEventPlugin/index.js b/packages/react-native-web/src/modules/ResponderEventPlugin/index.js similarity index 94% rename from packages/react-native-web/src/modules/injectResponderEventPlugin/index.js rename to packages/react-native-web/src/modules/ResponderEventPlugin/index.js index 049f09dc..e10fda74 100644 --- a/packages/react-native-web/src/modules/injectResponderEventPlugin/index.js +++ b/packages/react-native-web/src/modules/ResponderEventPlugin/index.js @@ -1,10 +1,8 @@ // based on https://github.com/facebook/react/pull/4303/files import normalizeNativeEvent from '../normalizeNativeEvent'; -import ReactDOM from 'react-dom'; import ReactDOMUnstableNativeDependencies from 'react-dom/unstable-native-dependencies'; -const { EventPluginHub } = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; const { ResponderEventPlugin, ResponderTouchHistoryStore } = ReactDOMUnstableNativeDependencies; const topMouseDown = 'topMouseDown'; @@ -78,6 +76,4 @@ ResponderEventPlugin.extractEvents = (topLevelType, targetInst, nativeEvent, nat ); }; -EventPluginHub.injection.injectEventPluginsByName({ - ResponderEventPlugin -}); +export default ResponderEventPlugin;