feat(reserve): implementar tela de finalização da reserva (#82)
Mudanças
- Implementação da tela de Finalizar Reserva (#82).
- Validação de todos os campos obrigatórios (nome, telefone, CPF, data de nascimento e gênero).
- Mensagens de erro ao não preencher ou preencher os campos obrigatórios incorretamente.
- Inclusão das mensagens de erro nos .json de tradução.
- Inclusão da opção de observações e do controle de pós-confirmação (
allowPostConfirmation). - Integração com o segundo passo da reserva (
ExperienceAdjustmentsStep), mantendo dados preenchidos.
Acceptance Criteria
- Validação de campos obrigatórios funcionando corretamente
- Máscaras de CPF, telefone e data aplicadas
- Dados persistem ao avançar para a próxima etapa
- Mensagens de erro
- Opção de observações e pós-confirmação funcionando
Screenshots da tela/componente desenvolvido
Mensagem de erro ao digitar um nome de apenas um caractere.
Mensagem de erro ao não informar número de telefone.
Mensagem de erro ao não informar uma data de nascimento.
Mensagem de erro ao informar uma data de nascimento inválida.
Mensagem de erro com CPF inválido.
Mensagem de erro ao não informar o gênero.
Mensagem de erro indica onde (em qual das pessoas adicionadas) está o erro.
Ao selecionar "Adicionar as pessoas após a confirmação da reserva" os dados já cadastrados ficam salvos. Só é possível selecionar a opção quando não há nenhuma informação preenchida ou se todos os campos foram preenchidos.
Botão "Próximo" só fica disponível quando todas as informações foram preenchidas corretamente ou quando o botão de "Adicionar as pessoas após a confirmação da reserva" é selecionado.
Console com as informações salvas.
Observações
- Endpoint
/api/reservationsainda é fictício; dados apenas exibidos no console para validação local.
Como testar
O teste manual pode ser feito diretamente no fluxo da tela de reserva:
- Adicionar o código abaixo na função handleNextFromPeople.
- Preencha todos os campos obrigatórios de um participante.
- Clique em “Próximo” para avançar para a próxima etapa.
- Verifique se o console exibe corretamente os dados salvos.
const handleNextFromPeople = () => {
if (!canGoNextFromPeople) {
const msg = formatFirstIssueForToast(people, t);
appToast.error(msg);
return;
}
// TESTE NO CONSOLE PARA VER COMO FICAM OS DADOS
console.log("Dados salvos:", {
participants: people,
notes,
allowPostConfirmation,
});
goToStep(2);
};
---
## 🔄 Sincronizado do GitHub
- 🔗 **PR original**: https://github.com/AGES-Pro-Mata/frontend/pull/138
- 👤 **Autor**: @bycarolina
- 📅 **Criado**: 2025-10-22T17:55:42Z
- 🔢 **ID GitHub**: #138
- 🌿 **Branches**: `feature/finalizar-reserva-82` → `dev`
- 📊 **Estado**: open
- 🔀 **Mergeable**: unknown
*Sincronizado automaticamente do GitHub para GitLab AGES*