Skip to content

Conversation

@amandarangel
Copy link

Esse é um PR de correção, portanto não precisa mergear! :)

laispetra and others added 30 commits January 18, 2021 09:45
…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…
Pagina do vendedor layout pronto.
Organizando em pasta para Header/LayoutHeader
Merge pull request #7 from future4code/master
josevictorsss and others added 29 commits January 21, 2021 20:19
Implementado funcionalidade de deletar produto do carrinho.
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
Terminado implementação da funcionalidade do filtro por valor mínimo,…
adicionado o gerenciamento de produtos e botão de deletar o produto
Implementado funcionalidade de filtrar produtos por categoria.
Tentativa de apagar os inputs o único que funciona é o payment.
Copy link
Author

@amandarangel amandarangel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AMEI esse README completinho ❤️ ! Fizeram o meu dia! Parabéeeeeens!

);
}
}

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;
}
`;
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;
} */
});
}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 });
};

Copy link
Author

@amandarangel amandarangel Jan 26, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants