1 import React, {Component} from "react";
2 import PropTypes from "prop-types";
3 import SearchTerm from "./SearchTerm";
5 class SearchTermsInput extends Component {
6 constructor(props, context) {
8 this.handleTermChange = this.handleTermChange.bind(this);
9 this.handleAddTerm = this.handleAddTerm.bind(this);
10 this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
11 this.createSearchTerms = this.createSearchTerms.bind(this);
14 handleAddTerm(event) {
15 event.preventDefault();
16 this.props.onAddTerm(event);
19 handleRemoveTerm(id) {
20 this.props.onRemoveTerm(id);
23 handleTermChange(id, value) {
24 this.props.onTermChange(id, value);
28 const terms = this.props.terms;
29 const searchTerms = [];
30 for (const entry of terms.entries()) {
33 const value = entry[1];
38 onTermChange={this.handleTermChange}
39 onAddTerm={this.handleAddTerm}
40 onRemoveTerm={this.handleRemoveTerm}/>
42 searchTerms.push(searchTerm);
48 const searchTerms = this.createSearchTerms();
50 <div className="search-terms-input">
52 <button onClick={this.handleAddTerm}>Add term</button>
58 SearchTermsInput.propTypes = {
59 terms: PropTypes.object.isRequired,
60 onTermChange: PropTypes.func.isRequired,
61 onAddTerm: PropTypes.func.isRequired,
62 onRemoveTerm: PropTypes.func.isRequired,
65 export default SearchTermsInput;