Add onClickOutside and scrolling to FuncsButton

pull/3033/head
Andrew Watkins 2018-03-26 11:33:17 -07:00 committed by Brandon Farmer
parent e0db988a79
commit a0ef2dbc91
1 changed files with 23 additions and 8 deletions

View File

@ -1,5 +1,9 @@
import React, {PureComponent} from 'react' import React, {PureComponent} from 'react'
import FancyScrollbar from 'src/shared/components/FancyScrollbar'
import OnClickOutside from 'src/shared/components/OnClickOutside'
interface State { interface State {
isOpen: boolean isOpen: boolean
} }
@ -29,13 +33,19 @@ class FuncsButton extends PureComponent<Props, State> {
> >
<span className="icon plus" /> <span className="icon plus" />
</button> </button>
<ul className="dropdown-menu"> <ul className="dropdown-menu funcs">
{isOpen && <FancyScrollbar autoHide={false} autoHeight={true} maxHeight={240}>
funcs.map((func, i) => ( {isOpen &&
<li className="dropdown-item func" data-test="func-item" key={i}> funcs.map((func, i) => (
<a>{func}</a> <li
</li> className="dropdown-item func"
))} data-test="func-item"
key={i}
>
<a>{func}</a>
</li>
))}
</FancyScrollbar>
</ul> </ul>
</div> </div>
) )
@ -44,6 +54,11 @@ class FuncsButton extends PureComponent<Props, State> {
private handleClick = () => { private handleClick = () => {
this.setState({isOpen: !this.state.isOpen}) this.setState({isOpen: !this.state.isOpen})
} }
// tslint:disable-next-line
private handleClickOutside = () => {
this.setState({isOpen: false})
}
} }
export default FuncsButton export default OnClickOutside(FuncsButton)