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',