|
1 | 1 | import React from 'react'; |
2 | 2 | import Home from './components/Home.js'; |
3 | 3 | import './App.css'; |
| 4 | +import Carrinho from './components/Carrinho'; |
4 | 5 | import Filtro from './components/Filtro.js'; |
5 | 6 |
|
6 | 7 | export default class App extends React.Component { |
7 | 8 |
|
8 | 9 | state = { |
| 10 | + carrinho: false, |
| 11 | + carrinhoItem: [], |
| 12 | + total: 0, |
9 | 13 | produtos: [ |
10 | 14 | { |
11 | 15 | id: '1', |
@@ -63,14 +67,54 @@ export default class App extends React.Component { |
63 | 67 | inputValueText:'', |
64 | 68 | filtroInput:false |
65 | 69 | } |
| 70 | + |
| 71 | + abreFechaCarrinho = () => { |
| 72 | + this.setState((prevState) => ({ |
| 73 | + carrinho: !prevState.carrinho, |
| 74 | + }) |
| 75 | + ) |
| 76 | + } |
| 77 | + |
| 78 | + addAcarrinho = (produto) => { |
| 79 | + const produtoAddNovo = { |
| 80 | + id: Date.now(), |
| 81 | + name: produto.name, |
| 82 | + value: produto.value, |
| 83 | + imgUrl: produto.imgUrl |
| 84 | + } |
| 85 | + |
| 86 | + const totalCarrinho = this.state.total + produtoAddNovo.value; |
| 87 | + |
| 88 | + const produtoAddLista = [produtoAddNovo, ...this.state.carrinhoItem] |
| 89 | + |
| 90 | + this.setState({total: totalCarrinho}) |
| 91 | + this.setState({carrinhoItem: produtoAddLista}) |
| 92 | + } |
| 93 | + |
| 94 | + removerDoCarrinho = (produtoID) => { |
| 95 | + const atualizaNovoCarrinho = this.state.carrinhoItem.filter((produto) => { |
| 96 | + return produtoID !== produto; |
| 97 | + }) |
| 98 | + |
| 99 | + let calculaNovoTotal = 0; |
| 100 | + calculaNovoTotal = this.state.total - produtoID.value |
| 101 | + |
| 102 | + this.setState({total: calculaNovoTotal }) |
| 103 | + this.setState({carrinhoItem: atualizaNovoCarrinho}) |
| 104 | + |
| 105 | + } |
| 106 | + |
66 | 107 | render(){ |
67 | 108 |
|
68 | 109 | return ( |
69 | 110 | <div> |
70 | 111 | <Home /> |
71 | 112 | <Filtro produtos={this.state.produtos} min={this.state.produtos.inputValueMin} max={this.state.produtos.inputValueMax} /> |
| 113 | + <button class='button-carrinho' onClick={this.abreFechaCarrinho}>Carrinho</button> |
| 114 | + <div> |
| 115 | + {this.state.carrinho ? <Carrinho /> : ''} |
| 116 | + </div> |
72 | 117 | </div> |
73 | 118 | ); |
74 | 119 | } |
75 | 120 | } |
76 | | - |
|
0 commit comments