Conversation
Layout do Header
Primeira versão footer
…lterado ordem de exibição do footer e header no appContainer.js.
Criado diretório para criação dos componentes da página de produto. A…
Página Home
Pagina do vendedor layout pronto.
Organizando em pasta para Header/LayoutHeader
Atualizando branch
Merge pull request #7 from future4code/master
Refatorado página de produtos.
Voltando a renderizar a home.
Funções do carrinho.
Implementado funcionalidade de deletar produto do carrinho.
…rdem crescente, decrescente e alfabética.
Implementado funcionalidade do primeiro filtro, podendo filtrar por o…
Implementado parte da funcionalidade do filtro.
Funcionalidade de filtro por valor e nome do produto concluída.
Alteração tamanho e link do LayoutHeader
Renderização da lista de produtos no AddProduct
… máximo e nome do produto.
Terminado implementação da funcionalidade do filtro por valor mínimo,…
adicionado o gerenciamento de produtos e botão de deletar o produto
Reajustado estilos do site.
Revisão do código
Implementado funcionalidade de filtrar produtos por categoria.
Tentativa de apagar os inputs o único que funciona é o payment.
There was a problem hiding this comment.
Pessoal,
O projetinho de vocês foi avaliado como: acima do esperado!!! Parabéns!!!
O projeto de vocês ficou MUITO bom!!! O código muuuuito bem organizado, muito bem escrito! Houve uma clara preocupação com o layout e com a UX em cada detalhe. As lógicas também foram muito bem implementadas!!
Deixei alguns comentários só com dicas de coisinhas que podem ser melhoradas!
Vocês fecharam com chave de ouro 🥇 esse módulo 2 e me encheram de orgulho!!! Continuem voando!! 🚀
| ## Bibliotecas utilizadas no projeto: | ||
| * Material UI; | ||
| * React Bootstrap; | ||
| * styled-components. |
There was a problem hiding this comment.
AMEI esse README completinho ❤️ ! Fizeram o meu dia! Parabéeeeeens!
| ); | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
Só queria falar: INCRÍVEL! Adoreeeei a ideia do carrossel e ainda mais o fato de ter ficado muito bem feito! 👏 👏 👏
| &:hover { | ||
| background-color: #f1f1f1; | ||
| } | ||
| `; |
There was a problem hiding this comment.
Colocar os componentes de estilização em um outro arquivo ajuda a manter os componentes React com o código mais limpo, então é bem recomendável!
| <option>4x</option> | ||
| <option>5x</option> | ||
| <option>6x</option> | ||
| </select> |
There was a problem hiding this comment.
Uma dica mais relacionada a UX aqui: como o cartão de crédito é a única forma de pagamento que conseguimos parcelar, seria legal que esse select só aparecesse caso a forma de pagamento selecionada fosse cartão de crédito. Uma renderização condicional faria isso! ;)
| return 0; | ||
| } */ | ||
| }); | ||
| } |
There was a problem hiding this comment.
Essa lógica de ordenação poderia estar isolada em uma função fora do render(). Nesse caso, a função retornaria o array ordenado e dentro do render vocês armazenariam o retorno da função em uma variável!
ex:
//fora do render()
sortProducts = () => {
//lógica de ordenar produtos aqui dentro
}
//dentro do render()
const sortedProducts = sortProducts()
Assim o código fica mais organizado, pois estamos isolando as nossas lógicas em funções!
| onChangeSelectinstallments = (event) => { | ||
| this.setState({ selectinstallments: event.target.value }); | ||
| }; | ||
|
|
There was a problem hiding this comment.
Para evitar repetir várias vezes as funções de setar o estado da aplicação com o valor do input, podemos usar essa sintaxe aqui:
handleFieldChange = event => {
this.setState({
[event.target.name]: event.target.value
});
}
Vocês só teriam que se lembrar de colocar o atributo name na tag do input igual ao nome dado a ele no estado e chamar apenas essa única função em todos os inputs.
Exemplo:
<h1>Área do Vendedor:</h1>
<InputDiv tamanho="80%">
<Input
tamanho="100%"
label="Nome do Produto"
variant="filled"
value={this.state.inputName}
name='inputName'
onChange={this.handleFieldChange}
/>
</InputDiv>
<InputDiv tamanho="80%">
<Input
tamanho="100%"
label="URL da Imagem"
variant="filled"
placeholder="Coloque apenas uma foto do produto."
value={this.state.inputImage}
name='inputImage'
onChange={this.handleFieldChange}
/>
</InputDiv>
<InputDiv tamanho="80%">
<Input
tamanho="100%"
label="Descriçao"
variant="filled"
value={this.state.inputDescription}
name='inputDescription'
onChange={this.handleFieldChange}
/>
</InputDiv>
| label="Preço" | ||
| variant="filled" | ||
| value={this.state.InputPrice} | ||
| onChange={this.onChangeInputPrice} |
There was a problem hiding this comment.
A verticalização do código é uma boa prática! Gostei muito de ver isso por todo o código de vocês!
| deleteProductCart={this.deleteProductCart} | ||
| /> | ||
| )} | ||
| <BtnCartContainer> |
There was a problem hiding this comment.
Curti muito a forma como vocês fizeram o carrinho e do botão para o consumidor poder abrir e fechar a hora que quiser! Isso é pensar em UX!
Esse é um PR de correção, portanto não precisa mergear! :)