import React from 'react';
import PropTypes from 'prop-types';
class SearchBar extends React.Component {
constructor(props) {
super(props);
this.invokeFormPowers = this.invokeFormPowers.bind(this);
}
invokeFormPowers(e) {
e.preventDefault();
e.stopPropagation();
const searchQuery = document.getElementById(`${this.props.id}-search-input`).value;
this.props.searchHandler(searchQuery);
}
render() {
return (
<form id={`${this.props.id}-search-form`} onSubmit={this.invokeFormPowers}>
<div className="input-group">
<input
type="text"
id={`${this.props.id}-search-input`}
name={`${this.props.id}-search-input`}
className="form-control"
placeholder={this.props.placeholder}
disabled={this.props.disabled}
/>
<span className="input-group-btn">
<button
type="submit"
name={`${this.props.id}-btn`}
id={`${this.props.id}-btn`}
className="btn btn-flat"
onClick={this.invokeFormPowers}
disabled={this.props.disabled}
>
<i className="fa fa-search" />
</button>
</span>
</div>
</form>
);
}
}
SearchBar.propTypes = {
disabled: PropTypes.bool,
id: PropTypes.string,
placeholder: PropTypes.string,
searchHandler: PropTypes.func
};
SearchBar.defaultProps = {
disabled: false,
id: 'generic-searchbar',
placeholder: 'Search...'
};
export default SearchBar;
|