Skip to content

PR de Correção#52

Open
pdarvas wants to merge 125 commits into
correcaofrom
master
Open

PR de Correção#52
pdarvas wants to merge 125 commits into
correcaofrom
master

Conversation

@pdarvas
Copy link
Copy Markdown
Contributor

@pdarvas pdarvas commented Mar 15, 2021

No description provided.

DAVIGSOUZA and others added 30 commits January 19, 2021 21:44
adicionado dependencias (axios, styled components, material ui e rout…
Criando estado global e tema
adicionado componente header
paginas de add e editar endereço
Finalização do Layout da Page Perfil
inputs controlados e validação dos campos das paginas com endereço
Criação do Card de restaurantes e Estilização da barra de pesquisa
aplicando estado global de input da pesquisa
adicionando página de busca
Renderizando o botão do header por props
iniciado mock da pagina carrinho
finalizado mock do carrinho
Asoaresdev and others added 29 commits January 27, 2021 14:41
criando lógica de adicionar ao carrinho
Corrigindo responsividade da tela de login
…ver, ajustando renderização da página do carrinho
endereço do usuario no carrinho e pedido em andamento
finalizando o pedido em andamento
Limpando consoles e usando usePortectedPage
Adicionando Componente de Loading e arrumando alguns detalhes de renderização
tirando verificação de token que não deu certo
Copy link
Copy Markdown
Contributor Author

@pdarvas pdarvas 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 trabalho de vocês tá super bem feito! Tudo que eu testei funciona super bem, o layout em geral tá muito bem feito e o código tá ótimo!
Eu deixei alguns comentários de sugestão de melhoria pra vocês. Tentei ir um pouco mais fundo, por ser o último projeto, e dar umas dicas a mais.
De qualquer forma, queria dizer que fico muito orgulhoso de ver uma entrega como essa. É evidente o esforço que vocês colocaram nesse projeto e em todo o curso para conseguir chegar onde chegaram. Valorizem essa conquista, porque vocês merecem!
Continuem estudando e se dedicando, que vocês vão longe! E, claro, se precisar, estou por aqui!
Obrigado por toda a atenção e carinho!!


export default function FeedMenu() {

const teste = [
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Evitem deixar dados de mock no código. Imagino que esses dados deveriam vir da API.

Comment on lines +153 to +161
const [categoriesArray, setCategoriesArray] = useState([])

teste.map(e=> {
const position = categoriesArray.findIndex((item) => item === e.category)

if (position === -1) {
setCategoriesArray([...categoriesArray, e.category])
}
})
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Não há a necessidade de categoriesArray ser um estado, pois ele é computado com base no array de produtos. A lógica poderia ser a mesma, só que não há necessidade de colocar num estado, pode ser uma variável comum.
Além disso, uma forma mais efetiva de se fazer isso (não ensinada durante o curso) seria usar um Set, estrutura de dados semelhante ao Array, mas que não permite repetição.
Segue a documentação sobre: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Set

E uma possibilidade de como fazer isso usando ele:

// Mapeia pra um array somente com as categorias
const categories = teste.map(product => product.category)

// Utiliza o Set pra remover duplicados
const uniqueCategories = [...new Set(categories)]

Comment on lines +17 to +33
useEffect(() => {
if( props.page === "home") {
setFill({home: "#E8222E", cart: "#B8B8B8" , avatar: "#B8B8B8"})
} else if (props.page === "cart") {
setFill({home: "#B8B8B8", cart: "#E8222E" , avatar: "#B8B8B8"})
} else if (props.page === "profile") {
setFill({home: "#B8B8B8", cart: "#B8B8B8" , avatar: "#E8222E"})
}

},[] )



const selectHomeIcon = () => {
setFill({home: "#E8222E", cart: "#B8B8B8" , avatar: "#B8B8B8"})
goToHomePage(history)
}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Se props.page estiver nas dependências do useEffect, essa função do useEffect vai rodar toda vez que ele mudar. Assim, não é necessário chamar o setFill manualmente cada vez que for mudar a página.


const submitForm = (e) => {
e.preventDefault()
resetState() //resetando os inputs//
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Do ponto de vista de experiência, ficou estranho o form sendo limpo antes de enviar o formulário.
Normalmente, esperamos a resposta do servidor pra limpar o formulário. Nesse caso, como a página é trocada, nem teria necessidade de fazer isso também.

setters.setCarrinho({})
return null
}
setters.setCarrinho({"restaurante": states.restaurante, "pedido": novoPedido})
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Não há a necessidade de aspas na chave dos objetos, mas funciona sem problemas.

Comment on lines +55 to +69
const renderRestaurantInfo = () => {
const frete = Number(states.restaurante.shipping).toFixed(2)
return (
<RestaurantInfo>
<img src={states.restaurante.logoUrl} alt={`${states.restaurante.name} logo`} />
<h2>{states.restaurante.name}</h2>
<p>{states.restaurante.category}</p>
<div>
<span>{`${states.restaurante.deliveryTime} min`}</span>
<span> {`Frete R$${frete}`}</span>
</div>
<p>{states.restaurante.address}</p>
</RestaurantInfo>
)
}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Extrair para componente

Comment on lines +75 to +93
return (
<MealsContainer>
<TypeTitle>{categoria}</TypeTitle>

{(states.restaurante.products).map(item => {
if (item.category === categoria) {
return (
<ItemCard
key={item.id}
idPedido={item.id}
img={item.photoUrl}
name={item.name}
ingredientes={item.description}
valor={Number(item.price).toFixed(2)}
/>
)
}
})}
</MealsContainer>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Extrair para componente

}

const filteredArray = listaDeRestaurantes.restaurants.filter(e => {
return e.name.toLowerCase().includes(states.searchInput.toLowerCase()) || e.category.toLowerCase().includes(states.searchInput.toLowerCase())
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Duas lógicas repetidas, que poderiam ser extraídas pra uma única função:

const compareStrings = (s1, s2) => s1.toLowerCase().includes(s2.searchInput.toLowerCase())

e utilizada:

return compareStrings(e.name, states.searchInput) || compareStrings(e.category, states.searchInput)

<Header pageName={"Busca"}/>
<SearchBar onclick={"off"}/>
{states.searchInput === "" ? <p className={classes.searchPlaceholder}>Busque por nome de Restaurante</p>
: (arrayMap[0]? arrayMap : <p className={classes.searchPlaceholder}>Não encontramos :(</p>) }
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Melhor do que verificar se a primeira posição do array existe é verificar se o seu tamanho é 0:

arrayMap.length > 0 ? ...

Comment thread src/Service/user.js
}


export const order = (body, history, setLoading, id, setCarrinho) =>{
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Normalmente é uma boa prática que exista um verbo no nome da função, descrevendo o que ela faz.
Nesse caso, por exemplo, acho que createOrder seria melhor!

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.

6 participants