diff --git a/src/components/inputs/AutocompleteInput.jsx b/src/components/inputs/AutocompleteInput.jsx index a3611cce..6bd14e4d 100644 --- a/src/components/inputs/AutocompleteInput.jsx +++ b/src/components/inputs/AutocompleteInput.jsx @@ -4,11 +4,68 @@ import classnames from 'classnames' import Autocomplete from 'react-autocomplete' +class AutocompleteMenu extends React.Component { + static propTypes = { + keepMenuWithinWindowBounds: PropTypes.bool, + style: PropTypes.object, + children: PropTypes.none + } + + calcMaxHeight() { + if(this.props.keepMenuWithinWindowBounds) { + const maxHeight = window.innerHeight - this.autocompleteMenuEl.getBoundingClientRect().top; + if(maxHeight != this.state.maxHeight) { + this.setState({ + maxHeight: maxHeight + }) + } + } + } + componentDidMount() { + this.calcMaxHeight(); + } + + componentDidUpdate() { + this.calcMaxHeight(); + } + + constructor(props) { + super(props); + this.state = { + maxHeight: 90 + }; + } + + static defaultProps = { + style: {} + } + + render() { + const maxHeight = this.state.maxHeight - this.props.style.marginBottom || 0; + const style = { + maxHeight: maxHeight+"px" + } + + return ( +