Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
514f9a3
#381 - listen to events on demand: Initial work to make sure I have t…
SanderSpies Nov 1, 2013
7972f27
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 6, 2013
f952372
On demand events are now working.
SanderSpies Nov 7, 2013
f16a6c8
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 7, 2013
193227a
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 13, 2013
8719275
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 14, 2013
b052c45
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 16, 2013
38b983e
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 20, 2013
104a249
Make ReactEventTopLevelCallback-test pass
sophiebits Nov 20, 2013
8ef5049
- Implemented tests
SanderSpies Nov 20, 2013
3efd107
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Nov 20, 2013
57fdef1
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 2, 2013
3bec953
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 2, 2013
ce48191
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 2, 2013
0b9973f
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 3, 2013
d3a880d
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 3, 2013
2437586
Revert "Merge branch 'master' of https://github.com/facebook/react in…
SanderSpies Dec 3, 2013
000f7ab
Merge branch 'master' of https://github.com/facebook/react into HEAD
SanderSpies Dec 3, 2013
1336888
Revert "Merge branch 'master' of https://github.com/facebook/react in…
SanderSpies Dec 3, 2013
7d704c3
Changes related to balpert's comments
SanderSpies Dec 3, 2013
4268841
Revert "Merge branch 'master' of https://github.com/facebook/react in…
SanderSpies Dec 3, 2013
22df2b6
Sanitizing
SanderSpies Dec 3, 2013
f3caf23
Sanitizing
SanderSpies Dec 3, 2013
8d6fb7e
Sanitizing
SanderSpies Dec 3, 2013
db2116f
sanitizing
SanderSpies Dec 3, 2013
686e817
Sanitizing
SanderSpies Dec 3, 2013
ca7b131
Added git ignore for .idea
SanderSpies Dec 3, 2013
210778a
sanitizing
SanderSpies Dec 3, 2013
0389251
Accessing non-existent property
SanderSpies Dec 3, 2013
98bb7fc
Renaming variables, completing doc.
SanderSpies Dec 3, 2013
6be9de5
Now it actually works.
SanderSpies Dec 4, 2013
9b2062b
Ordering
SanderSpies Dec 4, 2013
101be9f
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 5, 2013
a45dbd5
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 8, 2013
8f294c8
- removed all the delete document['_reactTopListenersID'];
SanderSpies Dec 9, 2013
e9b7e57
Staying closer to the 80 character limit
SanderSpies Dec 9, 2013
4c73f3d
Naming + code formatting
SanderSpies Dec 9, 2013
a892ec3
Making comment clearer
SanderSpies Dec 9, 2013
020e50a
Simplifying SimpleEventPlugin
SanderSpies Dec 10, 2013
9688444
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 19, 2013
3f4d737
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Dec 20, 2013
87c33fb
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Jan 3, 2014
33d853d
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Jan 3, 2014
d32cf27
Merge branch 'master' of https://github.com/facebook/react into on-de…
SanderSpies Jan 3, 2014
38f21b8
Accidentally pushed testing code
SanderSpies Jan 3, 2014
98e6f96
Implemented several requested changes
SanderSpies Jan 3, 2014
4e47221
implemented getListeningForDocument
SanderSpies Jan 3, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/core/React.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"use strict";

var DOMPropertyOperations = require('DOMPropertyOperations');
var EventPluginUtils = require('EventPluginUtils');
var ReactComponent = require('ReactComponent');
var ReactCompositeComponent = require('ReactCompositeComponent');
var ReactContext = require('ReactContext');
Expand All @@ -40,7 +41,7 @@ var React = {
DOM: ReactDOM,
PropTypes: ReactPropTypes,
initializeTouchEvents: function(shouldUseTouch) {
ReactMount.useTouchEvents = shouldUseTouch;
EventPluginUtils.useTouchEvents = shouldUseTouch;
},
createClass: ReactCompositeComponent.createClass,
constructAndRenderComponent: ReactMount.constructAndRenderComponent,
Expand Down
26 changes: 21 additions & 5 deletions src/core/ReactDOMComponent.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ var DOMProperty = require('DOMProperty');
var DOMPropertyOperations = require('DOMPropertyOperations');
var ReactComponent = require('ReactComponent');
var ReactEventEmitter = require('ReactEventEmitter');
var ReactMount = require('ReactMount');
var ReactMultiChild = require('ReactMultiChild');
var ReactPerf = require('ReactPerf');

Expand All @@ -33,15 +34,17 @@ var keyOf = require('keyOf');
var merge = require('merge');
var mixInto = require('mixInto');

var putListener = ReactEventEmitter.putListener;
var deleteListener = ReactEventEmitter.deleteListener;
var registrationNames = ReactEventEmitter.registrationNames;
var listenTo = ReactEventEmitter.listenTo;
var registrationNameModules = ReactEventEmitter.registrationNameModules;

// For quickly matching children type, to test if can be treated as content.
var CONTENT_TYPES = {'string': true, 'number': true};

var STYLE = keyOf({style: null});

var ELEMENT_NODE_TYPE = 1;

/**
* @param {?object} props
*/
Expand All @@ -61,6 +64,19 @@ function assertValidProps(props) {
);
}

function putListener(id, registrationName, listener) {
var container = ReactMount.findReactContainerForID(id);
if (container) {
var doc = container.nodeType === ELEMENT_NODE_TYPE ?
container.ownerDocument :
container;
listenTo(registrationName, doc);
}

ReactEventEmitter.putListener(id, registrationName, listener);
}


/**
* @constructor ReactDOMComponent
* @extends ReactComponent
Expand Down Expand Up @@ -126,7 +142,7 @@ ReactDOMComponent.Mixin = {
if (propValue == null) {
continue;
}
if (registrationNames[propKey]) {
if (registrationNameModules[propKey]) {
putListener(this._rootNodeID, propKey, propValue);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could the logic here to find the container and execute listenTo be put into ReactEventEmitter.putListener? Then it doesn't even have to be exposed on ReactEventEmitter and could be re-used below.

} else {
if (propKey === STYLE) {
Expand Down Expand Up @@ -243,7 +259,7 @@ ReactDOMComponent.Mixin = {
styleUpdates[styleName] = '';
}
}
} else if (registrationNames[propKey]) {
} else if (registrationNameModules[propKey]) {
deleteListener(this._rootNodeID, propKey);
} else if (
DOMProperty.isStandardName[propKey] ||
Expand Down Expand Up @@ -285,7 +301,7 @@ ReactDOMComponent.Mixin = {
// Relies on `updateStylesByID` not mutating `styleUpdates`.
styleUpdates = nextProp;
}
} else if (registrationNames[propKey]) {
} else if (registrationNameModules[propKey]) {
putListener(this._rootNodeID, propKey, nextProp);
} else if (
DOMProperty.isStandardName[propKey] ||
Expand Down
Loading