Add empty terms function
authorMichael Winsauer <e1429715@student.tuwien.ac.at>
Sat, 19 Jan 2019 01:56:19 +0000 (02:56 +0100)
committerMichael Winsauer <e1429715@student.tuwien.ac.at>
Sat, 19 Jan 2019 01:56:19 +0000 (02:56 +0100)
service-website/src/components/SearchTerm.js
service-website/src/components/SentimentAnalysis.js

index 537e6632b05e48482514aa45a2f9dd5d1384feaf..aadda1c9e9d902ca1b98a59e9cbf9958b78052a3 100644 (file)
@@ -24,7 +24,7 @@ const SearchTerm = ({
 
     return (
         <div key={index} className="search-term">
-            <input type="text" onChange={handleChange}/>
+            <input type="text" value={value} onChange={handleChange}/>
             <button onClick={handleRemoveTerm}>Remove</button>
         </div>
     );
index 4a7c71baf8ac0b6a5f7837144d45a29227e33bf9..d911a627af4df6cbf89c4ecbccc5aebb225626e4 100644 (file)
@@ -6,21 +6,15 @@ class SentimentAnalysis extends Component {
     constructor(props, context) {
         super(props, context);
         this.state = {
-            terms: new Map(),
-            nextTermId: 0,
+            terms: new Map().set(0, ''),
+            nextTermId: 1,
         };
         this.handleSubmit = this.handleSubmit.bind(this);
         this.handleTermChange = this.handleTermChange.bind(this);
         this.handleAddTerm = this.handleAddTerm.bind(this);
         this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
         this.addEmptyTerm = this.addEmptyTerm.bind(this);
-    }
-
-    componentDidMount() {
-        const terms = this.state.terms;
-        if (terms.length === 0) {
-            this.addEmptyTerm();
-        }
+        this.emptyTerms = this.emptyTerms.bind(this);
     }
 
     handleSubmit(event) {
@@ -31,6 +25,7 @@ class SentimentAnalysis extends Component {
         terms.forEach((term) => {
             console.log(term);
         });
+        this.emptyTerms();
     }
 
     handleTermChange(id, value) {
@@ -60,6 +55,13 @@ class SentimentAnalysis extends Component {
         });
     }
 
+    emptyTerms() {
+        this.setState({
+            terms: new Map().set(0, ''),
+            nextTermId: 1,
+        });
+    }
+
     render() {
         return (
             <div className="sentiment-analysis">