Alura Challenge Front End 7
Alura Challenge Front End 7
Repositório para guardar o código do site da Meteora, envolvida no Challenge Front End 7 da Alura de acordo com este wireframe do Figma.
| 🪧 Vitrine.Dev | |
|---|---|
| ✨ Nome | Alura Challenge Front End 7 |
| 🏷️ Tecnologias | React, NextJS, TypeScript, TailwindCSS |
| 🚀 URL | https://alurachallenge-fe-7.vercel.app/ |
🗈 Detalhes do projeto
O objetivo do desafio é criar o front end do site de comércio de roupas Meteora. Escolhi aproveitar a oportunidade para reaprender o NextJs em sua última versão.
📀 Para rodar o projeto
- Clonar o repositório;
- Entrar na pasta meteora com o terminal com o comando
cd .\meteora\; - Rodar o comando
npm install; - Rodar o projeto next com o comando
npm run dev;
🔗 Links
🛠️ Problemas Conhecidos
- Existe algum espaçamento errado no Carrosel com o Swiper que eu ainda não consegui encontrar onde está. (Não resolvido ao usar
className: w-fullno componente<Image/>no carrossel) (Resolvido ao usarclassName: w-fullem todos os componentes de<section>) ✅ - O componente CarregarProdutos.tsx está rodando em loop quando o contexto de Pesquisa é alterado. (Resolvido com
<Suspense>) ✅ - Falta encontrar um meio de desativar o estado
ativonos botôes das categorias quando se clica em outra categoria. ✅- Consegui retirar as classes usando manipulação do dom com JS puro, mas agora por algum motivo nem sempre quando se clica no botão da categoria, o clique é efetivado. ❌
- Talvez o problema seja que o app esteja lendo o estado
ativo(um booleano) de cada botão, então tem mais de um botão "ativo" ao mesmo tempo. Tentar alterar o estado em um componente de nível superior e/ou com valor diferente de booleano. ❌ - Foi necessário usar um novo Context para a categoria ativa. ✅
- Um erro de renderização está acontecendo, porque na
<ListaProdutos>a propriedade srcSet/src está diferente no servidor e no cliente.revalidatenão funcionou. ❌suppressHydrationWarning={true}não funcionou. ❌- O problema parece ser com o uso da tabela
random_produtosdo supabase, especificamente quando uso a funçãopesquisaGeral(). Este tinha sido o artifício encontrado para criar aleatoriedade na apresentação dos produtos. Estranhamente, porém, o mesmo não parece ocorrer com as outras funções de pesquisa. Vou fazer mais alguns testes pra ver se é isso mesmo.
👩🏫 Recomendações Code Review
Em 06/07/2023, foi feita uma live de revisão de código pelos instrutores da Alura, os pontos abaixo foram os indicados para melhorar neste projeto:
- Padronizar o uso da lingua no código; ✅
- Colocar um backdrop nas modais; ✅
- Separar o código em mais componentes, especialmente com relação aos tags verbosos do Tailwind; ✅
- Tag
<p>apenas para textos com duas linhas ou mais, caso contrário usar<span>; ✅ - Conferir a semântica usando IA (Chat GPT); ✅ (Veja Aqui)
- Usar tag
<nav>no header; ✅ - Conferir performance no lighthouse do Chrome;
- Nas modais de produtos, alterar os radio buttons para que a cor de fundo não confunda o usuário (accent-color); ✅
🤖 Recomendações do ChatGPT
Conforme recomendado pelos instrutores, pedi ao ChatGPT que revisasse a semântica do meu código (o HTML final gerado) e estas foram as recomendações da IA:
- Usar tags semânticas; ✅
- Usar atributo
altnas imagens. (Já exigido pelo componente<Image>do next); ✅ - Usar Listas para navegação; ✅
- Adicionar rótulos aos formulários; ✅
- Legibilidade do Código; ✅
- Otimizar Imagens. ✅
Veja meu projeto em: https://github.com/Enyus/alurachallengeFE7