1 import React, {Component} from "react";
2 import SearchTermsInput from "./SearchTermsInput";
3 import {Map} from "immutable";
4 import axios from "axios";
6 class SentimentAnalysis extends Component {
7 constructor(props, context) {
10 terms: new Map().set(0, ''),
13 this.handleSubmit = this.handleSubmit.bind(this);
14 this.handleTermChange = this.handleTermChange.bind(this);
15 this.handleAddTerm = this.handleAddTerm.bind(this);
16 this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
17 this.addEmptyTerm = this.addEmptyTerm.bind(this);
18 this.emptyTerms = this.emptyTerms.bind(this);
19 this.createPdf = this.createPdf.bind(this);
23 event.preventDefault();
24 const target = event.target;
26 const terms = this.state.terms;
27 terms.forEach((term) => {
34 handleTermChange(id, value) {
35 const terms = this.state.terms;
37 terms: terms.set(id, value),
41 handleAddTerm(event) {
45 handleRemoveTerm(id) {
46 const terms = this.state.terms;
48 terms: terms.delete(id),
53 const terms = this.state.terms;
54 const termId = this.state.nextTermId;
56 terms: terms.set(termId, ''),
57 nextTermId: termId + 1,
63 terms: new Map().set(0, ''),
70 .post('https://jsonplaceholder.typicode.com/posts', {
76 const data = response.data;
86 <div className="sentiment-analysis">
87 <form onSubmit={this.handleSubmit}>
88 <label>Search Terms</label>
89 <SearchTermsInput terms={this.state.terms}
90 onTermChange={this.handleTermChange}
91 onAddTerm={this.handleAddTerm}
92 onRemoveTerm={this.handleRemoveTerm}/>
93 <input type="submit" value="Submit"/>
100 SentimentAnalysis.propTypes = {};
102 export default SentimentAnalysis;