From 7b2936c016925ea32767174ae7f911bc96ffcc50 Mon Sep 17 00:00:00 2001 From: Ryan Seddon Date: Thu, 29 May 2014 17:23:16 +1000 Subject: [PATCH] Event plugin addons with fix to make sure touch events are enabled --- src/browser/ReactWithAddons.js | 31 +++++++++++++++++----- src/browser/eventPlugins/TapEventPlugin.js | 3 +++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/browser/ReactWithAddons.js b/src/browser/ReactWithAddons.js index 68b968c8c149a..2c29722fe1ab0 100644 --- a/src/browser/ReactWithAddons.js +++ b/src/browser/ReactWithAddons.js @@ -25,26 +25,44 @@ "use strict"; +var AnalyticsEventPluginFactory = require('AnalyticsEventPluginFactory'); var LinkedStateMixin = require('LinkedStateMixin'); var React = require('React'); -var ReactComponentWithPureRenderMixin = - require('ReactComponentWithPureRenderMixin'); var ReactCSSTransitionGroup = require('ReactCSSTransitionGroup'); +var ReactInjection = require('ReactInjection'); var ReactTransitionGroup = require('ReactTransitionGroup'); +var ResponderEventPlugin = require('ResponderEventPlugin'); +var TapEventPlugin = require('TapEventPlugin'); var cx = require('cx'); var cloneWithProps = require('cloneWithProps'); -var update = require('update'); React.addons = { - CSSTransitionGroup: ReactCSSTransitionGroup, LinkedStateMixin: LinkedStateMixin, - PureRenderMixin: ReactComponentWithPureRenderMixin, + CSSTransitionGroup: ReactCSSTransitionGroup, TransitionGroup: ReactTransitionGroup, classSet: cx, cloneWithProps: cloneWithProps, - update: update + + injectTapEventPlugin: function() { + ReactInjection.EventPluginHub.injectEventPluginsByName({ + TapEventPlugin: TapEventPlugin + }); + }, + injectResponderPlugin: function() { + ReactInjection.EventPluginHub.injectEventPluginsByName({ + ResponderEventPlugin: ResponderEventPlugin + }); + }, + injectAnalyticsEventPlugin: function(cb, interval) { + ReactInjection.EventPluginHub.injectEventPluginsByName({ + AnalyticsEventPlugin: AnalyticsEventPluginFactory.createAnalyticsPlugin( + cb, + interval + ) + }); + } }; if (__DEV__) { @@ -52,4 +70,3 @@ if (__DEV__) { } module.exports = React; - diff --git a/src/browser/eventPlugins/TapEventPlugin.js b/src/browser/eventPlugins/TapEventPlugin.js index 6db72af8a9602..466fb90d2c1a7 100644 --- a/src/browser/eventPlugins/TapEventPlugin.js +++ b/src/browser/eventPlugins/TapEventPlugin.js @@ -22,6 +22,7 @@ var EventConstants = require('EventConstants'); var EventPluginUtils = require('EventPluginUtils'); var EventPropagators = require('EventPropagators'); +var React = require('React'); var SyntheticUIEvent = require('SyntheticUIEvent'); var TouchEventUtils = require('TouchEventUtils'); var ViewportMetrics = require('ViewportMetrics'); @@ -32,6 +33,8 @@ var topLevelTypes = EventConstants.topLevelTypes; var isStartish = EventPluginUtils.isStartish; var isEndish = EventPluginUtils.isEndish; +React.initializeTouchEvents(true); + /** * Number of pixels that are tolerated in between a `touchStart` and `touchEnd` * in order to still be considered a 'tap' event.