1 import React, {Component} from "react";
2 import SearchTermsInput from "./SearchTermsInput";
3 import {Map} from "immutable";
5 class SentimentAnalysis extends Component {
6 constructor(props, context) {
9 terms: new Map().set(0, ''),
12 this.handleSubmit = this.handleSubmit.bind(this);
13 this.handleTermChange = this.handleTermChange.bind(this);
14 this.handleAddTerm = this.handleAddTerm.bind(this);
15 this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
16 this.addEmptyTerm = this.addEmptyTerm.bind(this);
17 this.emptyTerms = this.emptyTerms.bind(this);
21 event.preventDefault();
22 const target = event.target;
24 const terms = this.state.terms;
25 terms.forEach((term) => {
31 handleTermChange(id, value) {
32 const terms = this.state.terms;
34 terms: terms.set(id, value),
38 handleAddTerm(event) {
42 handleRemoveTerm(id) {
43 const terms = this.state.terms;
45 terms: terms.delete(id),
50 const terms = this.state.terms;
51 const termId = this.state.nextTermId;
53 terms: terms.set(termId, ''),
54 nextTermId: termId + 1,
60 terms: new Map().set(0, ''),
67 <div className="sentiment-analysis">
68 <form onSubmit={this.handleSubmit}>
69 <label>Search Terms</label>
70 <SearchTermsInput terms={this.state.terms}
71 onTermChange={this.handleTermChange}
72 onAddTerm={this.handleAddTerm}
73 onRemoveTerm={this.handleRemoveTerm}/>
74 <input type="submit" value="Submit"/>
81 SentimentAnalysis.propTypes = {};
83 export default SentimentAnalysis;