import React from 'react'; import { FormGroup, FormControl, DropdownButton, MenuItem, Button, Checkbox, InputGroup } from 'react-bootstrap'; import { AsyncTypeahead } from 'react-bootstrap-typeahead'; // Header.SearchForm export default class SearchForm extends React.Component { constructor(props) { super(props); this.state = { keyword: '', searchedKeyword: '', }; this.search = this.search.bind(this); this.clearForm = this.clearForm.bind(this); this.getFormClearComponent = this.getFormClearComponent.bind(this); } componentDidMount() { } componentWillUnmount() { } search(keyword) { this.setState({keyword}); if (this.state.searchedKeyword != keyword) { this.props.onSearchFormChanged({keyword}); this.setState({searchedKeyword: keyword}); } } getFormClearComponent() { let isHidden = (this.state.keyword.length === 0); return isHidden ? : ( ); } clearForm() { this._typeahead.getInstance().clear(); this.setState({keyword: ''}); } render() { const formClear = this.getFormClearComponent(); return (
this._typeahead = ref} name="q" placeholder="Search ... Page Title (Path) and Content" submitFormOnEnter={true} onSearch={this.search} /> {formClear}
); } } SearchForm.propTypes = { onSearchFormChanged: React.PropTypes.func.isRequired, };