From 32d17280166b0b322479ab15903d16537cf3749c Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Wed, 18 Sep 2019 19:43:20 +0100 Subject: [PATCH] address comment --- .../src/events/DOMEventResponderSystem.js | 10 ++++++++ .../DOMEventResponderSystem-test.internal.js | 24 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/packages/react-dom/src/events/DOMEventResponderSystem.js b/packages/react-dom/src/events/DOMEventResponderSystem.js index bb4589437d95e..14bd5f5fff734 100644 --- a/packages/react-dom/src/events/DOMEventResponderSystem.js +++ b/packages/react-dom/src/events/DOMEventResponderSystem.js @@ -303,6 +303,16 @@ function validateEventValue(eventValue: any): void { ); } }; + eventValue.isDefaultPrevented = () => { + if (__DEV__) { + showWarning('isDefaultPrevented()'); + } + }; + eventValue.isPropagationStopped = () => { + if (__DEV__) { + showWarning('isPropagationStopped()'); + } + }; // $FlowFixMe: we don't need value, Flow thinks we do Object.defineProperty(eventValue, 'nativeEvent', { get() { diff --git a/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js b/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js index bc09dd8be7650..83f17d0c1723d 100644 --- a/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js +++ b/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js @@ -837,6 +837,30 @@ describe('DOMEventResponderSystem', () => { ); }; + expect(() => { + handler = event => { + event.isDefaultPrevented(); + }; + ReactDOM.render(, container); + dispatchClickEvent(buttonRef.current); + }).toWarnDev( + 'Warning: isDefaultPrevented() is not available on event objects created from event responder modules ' + + '(React Flare).' + + ' Try wrapping in a conditional, i.e. `if (event.type !== "press") { event.isDefaultPrevented() }`', + {withoutStack: true}, + ); + expect(() => { + handler = event => { + event.isPropagationStopped(); + }; + ReactDOM.render(, container); + dispatchClickEvent(buttonRef.current); + }).toWarnDev( + 'Warning: isPropagationStopped() is not available on event objects created from event responder modules ' + + '(React Flare).' + + ' Try wrapping in a conditional, i.e. `if (event.type !== "press") { event.isPropagationStopped() }`', + {withoutStack: true}, + ); expect(() => { handler = event => { return event.nativeEvent;