@samitouri / QOS-React / commits / 4e2688db4a

Extract event listener from memoizedProps on Fiber instances

This makes some basic events work with Fiber. This is however not a complete solution since we may be reading the wrong Fiber.

Sebastian Markbage committed Nov 16, 2016 at 15:56 UTC 4e2688db4a18dbb36008a6439b2828a19c08d348
3 files changed +11 -4
scripts/fiber/tests-failing.txt
-3
@@ -137,9 +137,6 @@ src/renderers/dom/shared/eventPlugins/__tests__/ChangeEventPlugin-test.js
137 * should listen for both change and input events when supported
138 * should only fire events when the value changes for range inputs
139
140 -src/renderers/dom/shared/eventPlugins/__tests__/EnterLeaveEventPlugin-test.js
141 -* should set relatedTarget properly in iframe
142 -
140 src/renderers/dom/shared/eventPlugins/__tests__/SelectEventPlugin-test.js
141 * should skip extraction if no listeners are present
142 * should extract if an `onSelect` listener is present
scripts/fiber/tests-passing.txt
+3
@@ -605,6 +605,9 @@ src/renderers/dom/shared/eventPlugins/__tests__/BeforeInputEventPlugin-test.js
605 src/renderers/dom/shared/eventPlugins/__tests__/ChangeEventPlugin-test.js
606 * should unmount
607
608 +src/renderers/dom/shared/eventPlugins/__tests__/EnterLeaveEventPlugin-test.js
609 +* should set relatedTarget properly in iframe
610 +
611 src/renderers/dom/shared/eventPlugins/__tests__/FallbackCompositionState-test.js
612 * extracts value via `getText()`
613 * extracts when inserted at start of text
src/renderers/shared/shared/event/EventPluginHub.js
+8 -1
@@ -96,7 +96,14 @@ var EventPluginHub = {
96 * @return {?function} The stored callback.
97 */
98 getListener: function(inst, registrationName) {
99 - var listener = inst._currentElement.props[registrationName];
99 + var listener;
100 + if (typeof inst.tag === 'number') {
101 + // TODO: This is not safe because we might want the *other* Fiber's
102 + // props depending on which is the current one.
103 + listener = inst.memoizedProps[registrationName];
104 + } else {
105 + listener = inst._currentElement.props[registrationName];
106 + }
107 invariant(
108 !listener || typeof listener === 'function',
109 'Expected %s listener to be a function, instead got type %s',