Este repositório contém dois desafios de codificação front-end utilizando React. Esses exercícios surgiram como parte de um desafio técnico proposto pelo Zé Delivery em 2022. O desafio está separado em duas branches: challenge-1
e challenge-2
.
Esses desafios têm como objetivo testar suas habilidades em desenvolvimento com React, bem como seu conhecimento sobre as features do JavaScript.
O tempo dado para resolução deste dois desafios foi cerca de 60 min.
Se você quiser verificar a solução desses exercícios, você pode acessar os branches solution/challenge-1
e solution/challenge-2
, ou pode conferir as soluções no YouTube.
Lembrando que não existe uma solução consolidada, cada uma delas é apenas a solução encontrada por mim!
O desafio 1 está disponível no branch challenge-1
. Este desafio foi projetado para testar suas habilidades em manipulação de estado, componentes funcionais e lógica de renderização condicional. A seguir, estão algumas informações adicionais sobre o desafio 1:
-
📄 Descrição:
Este desafio consiste em passar um valor do tiponumber
para um componente chamadoCardList
, e esse componente deve renderizar o número de cartas que ele recebe como propriedade (size
).
Inicialmente, todas as cartas devem estar viradas para baixo, ou seja, devem conter a palavradown
. Assim que o usuário clicar em uma dessas cartas, ela deve mudar seu conteúdo paraup
. No entanto, só podemos ter uma carta com a palavraup
por vez. Portanto, ao clicar em outra carta, a carta que estava previamente comup
deve voltar a serdown
, e o novo elemento clicado deve mudar paraup
. -
📚 Tópicos abordados: Componentes funcionais, estados, eventos, renderização condicional, etc.
-
📌 Instruções: Caso queira verificar se sua solução está de acordo com os testes, você pode utilizar os seguintes comandos:
*Obs: A lista de elementos gerada deve conter a role
menuitem
.
npm run test
# ou
yarn test
O desafio 2 está disponível no branch challenge-2
. Este desafio tem como objetivo testar suas habilidades em gerenciamento de estado com useReducer, manipulação de eventos e interação com inputs. A seguir, estão algumas informações adicionais sobre o desafio 2:
-
📄 Descrição:
Este desafio envolve 2 botões e um input, chamadosadd
,subtract
e um input do tiponumber
. O aplicativo deve funcionar da seguinte maneira:- Caso não haja nenhum valor no
input
e o botãoadd
seja clicado, deve-se adicionar 1 ao valor salvo no estado. - Caso não haja nenhum valor no
input
e o botãosubtract
seja clicado, deve-se subtrair 1 do valor salvo no estado. - Caso haja algum valor no
input
e o botãoadd
e/ousubtract
seja clicado, esse valor deve ser adicionado e/ou subtraído ao valor salvo no estado. - O valor salvo no estado deve ser mostrado dentro de uma
<div data-testid="results"></div>
. É obrigatório o uso douseReducer
para gerenciar o estado deste componente.
- Caso não haja nenhum valor no
-
📚 Tópicos abordados: Gerenciamento de estado com useReducer, manipulação de eventos, interação com inputs, etc.
-
📌 Instruções: Caso queira verificar se sua solução está de acordo com os testes, você pode utilizar os seguintes comandos:
*Obs: Verifique se os elementos estão com o mesmo nome/data-testid do teste!
npm run test # ou yarn test
Caso realize o desafio e queira compartilhar sua solução no linkedin, não esqueça de me marcar para que eu possa ver! 😄
Linkedin