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, ''),
14 this.handleSubmit = this.handleSubmit.bind(this);
15 this.handleTermChange = this.handleTermChange.bind(this);
16 this.handleAddTerm = this.handleAddTerm.bind(this);
17 this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
18 this.addEmptyTerm = this.addEmptyTerm.bind(this);
19 this.emptyTerms = this.emptyTerms.bind(this);
20 this.createPdf = this.createPdf.bind(this);
24 event.preventDefault();
25 const target = event.target;
27 const terms = this.state.terms;
28 terms.forEach((term) => {
35 handleTermChange(id, value) {
36 const terms = this.state.terms;
38 terms: terms.set(id, value),
42 handleAddTerm(event) {
46 handleRemoveTerm(id) {
47 const terms = this.state.terms;
49 terms: terms.delete(id),
54 const terms = this.state.terms;
55 const termId = this.state.nextTermId;
57 terms: terms.set(termId, ''),
58 nextTermId: termId + 1,
64 terms: new Map().set(0, ''),
71 .post('https://jsonplaceholder.typicode.com/posts', {
77 const data = response.data;
80 pdfLink: 'https://google.at',
89 const pdfLink = this.state.pdfLink;
92 <div className="pdf-report">
93 <a href={pdfLink} target="_blank" rel="noopener noreferrer">Download PDF report</a>
103 <div className="sentiment-analysis">
104 <form onSubmit={this.handleSubmit}>
105 <label>Search Terms</label>
106 <SearchTermsInput terms={this.state.terms}
107 onTermChange={this.handleTermChange}
108 onAddTerm={this.handleAddTerm}
109 onRemoveTerm={this.handleRemoveTerm}/>
110 <input type="submit" value="Submit"/>
118 SentimentAnalysis.propTypes = {};
120 export default SentimentAnalysis;