[Flare] update getEventCurrentTarget to use fiber tree (#15708)
Dominic Gannaway committed
May 22, 2019 at 19:59 UTC
a25a793fe9d38436be7a3e87ce36ebd5d9d84921
1 file changed
+13
-9
packages/react-dom/src/events/DOMEventResponderSystem.js
+13
-9
@@ -402,16 +402,20 @@ const eventResponderContext: ReactResponderContext = {
402
},
403
getEventCurrentTarget(event: ReactResponderEvent): Element {
404
validateResponderContext();
405
- const target: any = event.target;
406
- let currentTarget = target;
407
- while (
408
- currentTarget.parentNode &&
409
- currentTarget.parentNode.nodeType === Node.ELEMENT_NODE &&
410
- isTargetWithinEventComponent(currentTarget.parentNode)
411
- ) {
412
- currentTarget = currentTarget.parentNode;
405
+ const target = event.target;
406
+ let fiber = getClosestInstanceFromNode(target);
407
+ let hostComponent = target;
408
+
409
+ while (fiber !== null) {
410
+ if (fiber.stateNode === currentInstance) {
411
+ break;
412
+ }
413
+ if (fiber.tag === HostComponent) {
414
+ hostComponent = fiber.stateNode;
415
+ }
416
+ fiber = fiber.return;
417
}
414
- return currentTarget;
418
+ return ((hostComponent: any): Element);
419
},
420
getTimeStamp(): number {
421
validateResponderContext();