Added first version of 'remove term'
authorMichael Winsauer <e1429715@student.tuwien.ac.at>
Fri, 18 Jan 2019 21:38:26 +0000 (22:38 +0100)
committerMichael Winsauer <e1429715@student.tuwien.ac.at>
Fri, 18 Jan 2019 21:38:26 +0000 (22:38 +0100)
service-website/src/SearchTerm.js
service-website/src/SentimentAnalysis.js

index 23450714d9ce2886a7b6cf8228c6865c4d2d29cb..827268ae0db3294847efba805dd0a64ac018493c 100644 (file)
@@ -13,7 +13,11 @@ class SearchTerm extends Component {
     }
 
     handleChange(event) {
-        console.log(event);
+        const target = event.target;
+        const value = target.value;
+        this.setState({
+            value,
+        });
     }
 
     handleAddTerm(event) {
@@ -21,14 +25,15 @@ class SearchTerm extends Component {
     }
 
     handleRemoveTerm(event) {
-
+        const index = this.props.index;
+        this.props.onRemoveTerm(index);
     }
 
     render() {
         return (
             <div key={this.props.index} className="search-term">
                 <input type="text" onChange={this.handleChange}/>
-                <button>Remove</button>
+                <button onClick={this.handleRemoveTerm}>Remove</button>
             </div>
         );
     }
@@ -37,6 +42,7 @@ class SearchTerm extends Component {
 SearchTerm.propTypes = {
     index: PropTypes.number.isRequired,
     onAddTerm: PropTypes.func.isRequired,
+    onRemoveTerm: PropTypes.func.isRequired,
 };
 
 export default SearchTerm;
index d32a23812f9abfa68cc04617bf9cecf8bf6ae4a5..74c4ea6b0131d59a14083db0ebee2dbca24ac72d 100644 (file)
@@ -10,6 +10,7 @@ class SentimentAnalysis extends Component {
         };
         this.handleSubmit = this.handleSubmit.bind(this);
         this.handleAddTerm = this.handleAddTerm.bind(this);
+        this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
         this.addEmptyTerm = this.addEmptyTerm.bind(this);
         this.createEmptyTerm = this.createEmptyTerm.bind(this);
     }
@@ -23,15 +24,25 @@ class SentimentAnalysis extends Component {
 
     handleSubmit(event) {
         event.preventDefault();
+        const target = event.target;
+        console.log(target);
         const terms = this.state.terms;
-        console.log(terms);
+        terms.forEach((term) => {
+            console.log(term);
+        });
     }
 
     handleAddTerm(event) {
-        console.log(event);
         this.addEmptyTerm();
     }
 
+    handleRemoveTerm(index) {
+        const terms = this.state.terms;
+        this.setState({
+            terms: [...terms.slice(0, index), ...terms.slice(index + 1)],
+        });
+    }
+
     addEmptyTerm() {
         const term = this.createEmptyTerm();
         this.setState({
@@ -42,7 +53,7 @@ class SentimentAnalysis extends Component {
     createEmptyTerm() {
         const index = this.state.terms.length;
         return (
-            <SearchTerm key={index} index={index} onAddTerm={this.handleAddTerm}/>
+            <SearchTerm key={index} index={index} onAddTerm={this.handleAddTerm} onRemoveTerm={this.handleRemoveTerm}/>
         );
     }