-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
87 lines (82 loc) · 2.33 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
function GroceryList(props) {
return ( < ul className = 'groceryItemsList' > {
props.groceryItems.map((item, index) => ( <
li key = {
index
}
onClick = {
() => props.onRemoveGroceryItem(item)
} > {
item
} < /li >
))
} <
/ul>)
}
class Grocery extends React.Component {
constructor(props) {
super(props);
this.state = {
groceryItemsList: [],
groceryItem: ''
}
this.removeGroceryItem = this.removeGroceryItem.bind(this)
this.addGroceryItem = this.addGroceryItem.bind(this)
this.getItemToAdd = this.getItemToAdd.bind(this)
}
removeGroceryItem(groceryItemToRemove) {
this.setState((currentState) => {
return {
groceryItemsList: currentState.groceryItemsList.filter((item) => item !== groceryItemToRemove)
}
})
}
addGroceryItem() {
if (this.state.groceryItem.length > 0) {
this.setState((currentState) => {
return {
groceryItemsList: currentState.groceryItemsList.concat([this.state.groceryItem]),
groceryItem: ''
};
})
}
}
getItemToAdd(groceryItemEvent) {
this.setState({
groceryItem: groceryItemEvent.target.value.toUpperCase()
})
}
render() {
return ( < div id = 'mainContainer' >
<div id = 'inputContainer' >
<input type = 'text'
placeholder = 'I want to buy ....'
name = 'groceryItem'
value = {
this.state.groceryItem
}
onChange = {
this.getItemToAdd
}
/ >
<input type = "button"
id = 'addItem'
value = 'Add'
name = 'Add'
onClick = {
this.addGroceryItem
}
/>
</div >
<div id = 'itemContainer' >
<div id="heading"> <header id="groceryItems">
Grocery Items List
</header> </div>
<GroceryList groceryItems = {this.state.groceryItemsList}
onRemoveGroceryItem = {this.removeGroceryItem}
/>
< /div >
</div>)
}
}
ReactDOM.render( < Grocery / > , document.getElementById("root"))