diff --git a/fixtures/dom/src/components/Header.js b/fixtures/dom/src/components/Header.js index 9a4a0a932d6ead..e8280a1b904db8 100644 --- a/fixtures/dom/src/components/Header.js +++ b/fixtures/dom/src/components/Header.js @@ -51,6 +51,7 @@ class Header extends React.Component { + diff --git a/fixtures/dom/src/components/fixtures/index.js b/fixtures/dom/src/components/fixtures/index.js index 295d8c572a43be..dd250b5e1227b6 100644 --- a/fixtures/dom/src/components/fixtures/index.js +++ b/fixtures/dom/src/components/fixtures/index.js @@ -4,6 +4,7 @@ import TextInputFixtures from './text-inputs'; import SelectFixtures from './selects'; import TextAreaFixtures from './textareas'; import InputChangeEvents from './input-change-events'; +import MouseEventsFixtures from './mouse-events'; import NumberInputFixtures from './number-inputs'; import PasswordInputFixtures from './password-inputs'; import ButtonFixtures from './buttons'; @@ -24,6 +25,8 @@ function FixturesPage() { return ; case '/input-change-events': return ; + case '/mouse-events': + return ; case '/number-inputs': return ; case '/password-inputs': diff --git a/fixtures/dom/src/components/fixtures/mouse-events/index.js b/fixtures/dom/src/components/fixtures/mouse-events/index.js new file mode 100644 index 00000000000000..4f3e8967d24182 --- /dev/null +++ b/fixtures/dom/src/components/fixtures/mouse-events/index.js @@ -0,0 +1,51 @@ +const React = window.React; + +const Rectangle = ({style, ...props}) => ( +
+); + +class MouseEventsFixtures extends React.Component { + state = {log: []}; + + log = msg => { + this.setState(({log}) => ({ + log: log.concat(msg), + })); + }; + clearLog = () => { + this.setState({log: []}); + }; + render() { + let getLogger = prefix => e => this.log(`${prefix}: ${e.type}`); + let outerLogger = getLogger('outer'); + let innerLogger = getLogger('inner'); + + return ( +
+
+

+ Mouse the mouse between the two rectangles. The console should + only log for a given box when the mouse crosses into the box the first + time and again when the mouse exits the + {' '} + outer + {' '} + bounds of each box. +

+ + + +
+ +
+

Console:

+
+            {this.state.log.join('\n')}
+          
+
+
+ ); + } +} + +module.exports = MouseEventsFixtures;