diff --git a/packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js b/packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js index 6dfbc7f697..4b0d885457 100644 --- a/packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js @@ -347,8 +347,7 @@ describe('ReactDOMEventListener', () => { }); }); - // TODO: this has regressed. Fix me. - it.skip('onGotPointerCapture', () => { + it('onGotPointerCapture', () => { testNativeBubblingEvent({ type: 'div', reactEvent: 'onGotPointerCapture', @@ -413,8 +412,7 @@ describe('ReactDOMEventListener', () => { }); }); - // TODO: this has regressed. Fix me. - it.skip('onLostPointerCapture', () => { + it('onLostPointerCapture', () => { testNativeBubblingEvent({ type: 'div', reactEvent: 'onLostPointerCapture', diff --git a/packages/react-dom/src/events/DOMPluginEventSystem.js b/packages/react-dom/src/events/DOMPluginEventSystem.js index f75f32b8a3..687ac8033b 100644 --- a/packages/react-dom/src/events/DOMPluginEventSystem.js +++ b/packages/react-dom/src/events/DOMPluginEventSystem.js @@ -470,8 +470,15 @@ export function listenToReactEvent( } } } else { - // Check if the react event ends in "Capture" - const isCapturePhaseListener = reactEvent.substr(-7) === 'Capture'; + const isCapturePhaseListener = + reactEvent.substr(-7) === 'Capture' && + // Edge case: onGotPointerCapture and onLostPointerCapture + // end with "Capture" but that's part of their event names. + // The Capture versions would end with CaptureCapture. + // So we have to check against that. + // This check works because none of the events we support + // end with "Pointer". + reactEvent.substr(-14, 7) !== 'Pointer'; listenToNativeEvent( dependencies[0], isCapturePhaseListener,