Skip to content

Instantly share code, notes, and snippets.

@iamdustan
Created May 20, 2015 13:09
Show Gist options
  • Select an option

  • Save iamdustan/2df71ed3ffcc9ebd4b75 to your computer and use it in GitHub Desktop.

Select an option

Save iamdustan/2df71ed3ffcc9ebd4b75 to your computer and use it in GitHub Desktop.
/*eslint-disable*/
require('./JSPolyfills');
/*eslint-enable*/
import EventPluginHub from 'react/lib/EventPluginHub';
import EventPluginUtils from 'react/lib/EventPluginUtils';
import HardwareDefaultEventPluginOrder from './HardwareDefaultEventPluginOrder';
import HardwareBridgeEventPlugin from './HardwareBridgeEventPlugin';
import ReactClass from 'react/lib/ReactClass';
import ReactComponentEnvironment from 'react/lib/ReactComponentEnvironment';
import ReactDefaultBatchingStrategy from 'react/lib/ReactDefaultBatchingStrategy';
import ReactNativeComponent from 'react/lib/ReactNativeComponent';
/*
var ReactEmptyComponent = require('ReactEmptyComponent');
*/
import ReactInstanceHandles from 'react/lib/ReactInstanceHandles';
/*
var ReactIOSComponentEnvironment = require('ReactIOSComponentEnvironment');
var ReactIOSComponentMixin = require('ReactIOSComponentMixin');
*/
import ReactHardwareGlobalInteractionHandler from './ReactHardwareGlobalInteractionHandler';
import ReactHardwareGlobalResponderHandler from './ReactHardwareGlobalResponderHandler';
import NodeHandle from './NodeHandle';
import ReactHardwareMount from './ReactHardwareMount';
import ReactHardwareComponentEnvironment from './ReactHardwareComponentEnvironment';
import ReactHardwareComponentMixin from './ReactHardwareComponentMixin';
import ReactUpdates from 'react/lib/ReactUpdates';
/*
var ReactIOSTextComponent = require('ReactIOSTextComponent');
*/
import ResponderEventPlugin from './ResponderEventPlugin';
import UniversalWorkerNodeHandle from './UniversalWorkerNodeHandle';
import invariant from 'react/lib/invariant';
var noop = () => {};
function inject() {
console.log('injecting');
EventPluginHub.injection.injectEventPluginOrder(HardwareDefaultEventPluginOrder);
EventPluginHub.injection.injectInstanceHandle(ReactInstanceHandles);
ResponderEventPlugin.injection.injectGlobalResponderHandler(
ReactHardwareGlobalResponderHandler
);
ResponderEventPlugin.injection.injectGlobalInteractionHandler(
ReactHardwareGlobalInteractionHandler
);
EventPluginHub.injection.injectEventPluginsByName({
'HardwareBridgeEventPlugin': HardwareBridgeEventPlugin,
});
ReactUpdates.injection.injectReconcileTransaction(
ReactHardwareComponentEnvironment.ReactReconcileTransaction
);
ReactUpdates.injection.injectBatchingStrategy(
ReactDefaultBatchingStrategy
);
ReactComponentEnvironment.injection.injectEnvironment(
ReactHardwareComponentEnvironment
);
/*
ReactEmptyComponent.injection.injectEmptyComponent(RCTView);
*/
EventPluginUtils.injection.injectMount(ReactHardwareMount);
ReactClass.injection.injectMixin(ReactHardwareComponentMixin);
ReactNativeComponent.injection.injectAutoWrapper(function(tag) {
// Show a nicer error message for non-function tags
var info = '';
if (typeof tag === 'string' && /^[a-z]/.test(tag)) {
info += ' Each component name should start with an uppercase letter.';
}
invariant(false, 'Expected a component class, got %s.%s', tag, info);
});
NodeHandle.injection.injectImplementation(UniversalWorkerNodeHandle);
// TODO: maybe possibly find a better way to do this.
// Ensure that react’s default stuff doesn’t inject into our world
// I think that https://github.com/facebook/react/pull/3866 should
// make this unnecessary.
EventPluginHub.injection.injectEventPluginOrder = noop;
EventPluginHub.injection.injectInstanceHandle = noop;
EventPluginHub.injection.injectEventPluginsByName = noop;
ReactUpdates.injection.injectReconcileTransaction = noop;
ReactUpdates.injection.injectBatchingStrategy = noop;
ReactComponentEnvironment.injection.injectEnvironment = noop;
EventPluginUtils.injection.injectMount = noop;
ReactClass.injection.injectMixin = noop;
ReactNativeComponent.injection.injectAutoWrapper = noop;
NodeHandle.injection.injectImplementation = noop;
console.log('injected');
}
module.exports = {
inject: inject,
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment