Commit 8444b7bd by Ari Rizzitano

lintfix dropdown -> jsx

parent 099d6843
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom';
import classNames from 'classnames'; import classNames from 'classnames';
const classes = { const classes = {
...@@ -33,7 +32,7 @@ export default class Dropdown extends React.Component { ...@@ -33,7 +32,7 @@ export default class Dropdown extends React.Component {
this.toggle = this.toggle.bind(this); this.toggle = this.toggle.bind(this);
this.state = { this.state = {
open: false open: false,
}; };
} }
...@@ -60,8 +59,7 @@ export default class Dropdown extends React.Component { ...@@ -60,8 +59,7 @@ export default class Dropdown extends React.Component {
} }
handleDocumentClick(e) { handleDocumentClick(e) {
const container = ReactDOM.findDOMNode(this); if (this.container.contains(e.target) && this.container !== e.target) {
if (container.contains(e.target) && container !== e.target) {
return; return;
} }
this.toggle(); this.toggle();
...@@ -78,32 +76,35 @@ export default class Dropdown extends React.Component { ...@@ -78,32 +76,35 @@ export default class Dropdown extends React.Component {
toggle() { toggle() {
this.setState({ this.setState({
open: !this.state.open open: !this.state.open,
}); });
} }
render() { render() {
const props = { const props = {
title: 'Settings' title: 'Settings',
}; };
return ( return (
<div> <div>
<div className={classNames([ <div
classes.dropdown, className={classNames([
{[classes.show]: this.state.open} classes.dropdown,
])}> { [classes.show]: this.state.open },
])}
ref={(container) => { this.container = container; }}
>
<button <button
aria-expanded={this.state.open} aria-expanded={this.state.open}
aria-haspopup="true" aria-haspopup="true"
className={classNames([ className={classNames([
classes.toggle, classes.toggle,
{[classes.active]: this.state.open} { [classes.active]: this.state.open },
])} ])}
onClick={this.toggle} onClick={this.toggle}
onKeyDown={this.handleToggleKeyDown} onKeyDown={this.handleToggleKeyDown}
type="button" type="button"
ref={(toggleElem) => {this.toggleElem = toggleElem;}} ref={(toggleElem) => { this.toggleElem = toggleElem; }}
> >
{props.title} {props.title}
</button> </button>
...@@ -113,13 +114,13 @@ export default class Dropdown extends React.Component { ...@@ -113,13 +114,13 @@ export default class Dropdown extends React.Component {
className={classes.menu} className={classes.menu}
role="menu" role="menu"
> >
<li role="none" className={classes.menuItem}> <li className={classes.menuItem}>
<a role="menuitem" href="http://google.com" ref={(firstItem) => {this.firstItem = firstItem;}}>Option 1</a> <a role="menuitem" href="http://google.com" ref={(firstItem) => { this.firstItem = firstItem; }}>Option 1</a>
</li> </li>
<li role="none" className={classes.menuItem}> <li className={classes.menuItem}>
<a role="menuitem" href="http://google.com">Option 2</a> <a role="menuitem" href="http://google.com">Option 2</a>
</li> </li>
<li role="none" className={classes.menuItem}> <li className={classes.menuItem}>
<a role="menuitem" href="http://google.com">Option 3</a> <a role="menuitem" href="http://google.com">Option 3</a>
</li> </li>
</ul> </ul>
......
...@@ -93,6 +93,6 @@ storiesOf('InputSelect', module) ...@@ -93,6 +93,6 @@ storiesOf('InputSelect', module)
)); ));
storiesOf('Dropdown', module) storiesOf('Dropdown', module)
.add('with validation', () => ( .add('basic usage', () => (
<Dropdown /> <Dropdown />
)); ));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment