diff --git a/package-lock.json b/package-lock.json index cc5ab3612..aca693cd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2558,6 +2558,11 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, + "bulma": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.7.5.tgz", + "integrity": "sha512-cX98TIn0I6sKba/DhW0FBjtaDpxTelU166pf7ICXpCCuplHWyu6C9LYZmL5PEsnePIeJaiorsTEzzNk3Tsm1hw==" + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", diff --git a/package.json b/package.json index 35c988ded..7db0418e1 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "bulma": "^0.7.5", "react": "^16.8.1", "react-dom": "^16.8.1", "react-scripts": "2.1.5" diff --git a/src/App.js b/src/App.js index 7e261ca47..671d69924 100755 --- a/src/App.js +++ b/src/App.js @@ -1,25 +1,36 @@ import React, { Component } from 'react'; -import logo from './logo.svg'; +import Foodbox from './components/Foodbox'; +import foods from './data/foods.json'; +import Button from './components/Button'; +import Search from './components/Search' import './App.css'; class App extends Component { + state = { + foods, + originalFoods: foods, + name: '', + calories: '', + image: '', + isAddingNew: false, + quantity: [] + } + + changeFoods = (foods) => { + this.setState({foods}) + } + + showFood = (foods) => { + this.setState({foods}) + } + + render() { return (
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
+
); } diff --git a/src/components/Button.js b/src/components/Button.js new file mode 100644 index 000000000..cb9d23f51 --- /dev/null +++ b/src/components/Button.js @@ -0,0 +1,66 @@ +import React, {Component} from 'react' +import Foodbox from './Foodbox' + +class Button extends Component { + state = { + name: '', + calories: '', + image: '', + foods: [], + isAddingNew: false, + quantity: [] + } + +addNewFood = (event) => { + const {isAddingNew} = this.state; + this.setState ({ + isAddingNew: !isAddingNew + }) + } + + +handleInputChange = (event) => { + event.preventDefault(); + const {name, value} = event.target + this.setState({ + [name]:value + }) +} + +handleSubmit = (event) => { + event.preventDefault(); + const {name , calories, image, foods} = this.state; + const foodsCopy = [...foods]; + const newFood = {name, calories, image} + foodsCopy.push(newFood) + this.setState ({ + foods: foodsCopy, + name: '', + calories: '', + image: '', + },()=>{this.addNewFood()}) +} + + render() { + const {name , calories, image, foods, isAddingNew} = this.state + return ( + <> + + { isAddingNew ? (
+
+ + + + + + + +
+ +
) : null} + + )} + +} + +export default Button; \ No newline at end of file diff --git a/src/components/Foodbox.js b/src/components/Foodbox.js new file mode 100644 index 000000000..33c6d23bb --- /dev/null +++ b/src/components/Foodbox.js @@ -0,0 +1,46 @@ +import React, { Component } from 'react' + + class Foodbox extends Component { + render() { + return ( +
+ {this.props.foods.map((food, index) => { + return ( +
+
+
+ +
+
+
+
+

+ {food.name}
+ {food.calories} calories +

+
+
+
+
+
+ +
+
+ +
+
+
+
+ )})} +
+ ) + } +} +export default Foodbox; + diff --git a/src/components/Search.js b/src/components/Search.js new file mode 100644 index 000000000..5a6e0b1e2 --- /dev/null +++ b/src/components/Search.js @@ -0,0 +1,21 @@ +import React, { Component } from 'react' + + class Search extends Component { + + + handleSearchBar = (event) => { + const name = event.target.value; + let newFoods = this.props.originalFoods; + let filteredFoods = newFoods.filter((food => food.name.includes(name))) + this.props.changeFoods(filteredFoods) + } + + render() { + return ( +
+ this.handleSearchBar(e)}/> +
+ ) + } +} +export default Search; \ No newline at end of file diff --git a/src/index.js b/src/index.js index 0c5e75da1..c2c9c4b2d 100755 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; +import 'bulma/css/bulma.css'; import App from './App'; import * as serviceWorker from './serviceWorker';