Skip to content

feat(prova): fluxo condicional custom no NewProva (Card 05) - #644

Merged
FernandoAlmeidaPinto merged 1 commit into
developfrom
feature/provas-custom-card-05-newprova-custom-flow
Jul 26, 2026
Merged

feat(prova): fluxo condicional custom no NewProva (Card 05)#644
FernandoAlmeidaPinto merged 1 commit into
developfrom
feature/provas-custom-card-05-newprova-custom-flow

Conversation

@FernandoAlmeidaPinto

Copy link
Copy Markdown
Member

Resumo

Card 05 da Etapa 4 (Provas Custom) — fecha a etapa no frontend. Adapta o modal NewProva para ter comportamento condicional quando a categoria escolhida é custom: true.

O que mudou (src/pages/dashProvas/modals/newProva.tsx)

  • Rastreia a categoria escolhida → isCustom = categoriaEscolhida?.custom === true
  • Custom: campos nome e nomeSimulado aparecem e são obrigatórios; PDF/gabarito viram opcionais; formData inclui nome/nomeSimulado
  • Oficial (ENEM): fluxo intacto — PDF obrigatório, sem campos livres
  • Validação de submit e disabled do botão adaptados por isCustom
  • Hint visual discreto: "Prova personalizada — nome livre, PDF opcional."
  • criadorId não vai no body (o api-vcnafacul injeta via JWT — Card 04)

Correções vs. spec do card

  • O card mandava trocar o filtro do select de f.nome.includes("Enem") para f.selecionavel, mas o código já filtrava por f.selecionavel (feito em etapa anterior) — nada a mudar aí.
  • Fix trivial de lint pré-existente no mesmo arquivo (param _ não usado em handleRemoveGabarito/handleRemoveFile) — necessário porque o gate do client é --max-warnings 0 e eu estou tocando o arquivo. Confirmado idêntico na develop.

Test Plan

  • npm run build (tsc + vite) passa
  • lint sem warnings (--max-warnings 0)
  • Smoke em homol (depende de Formulário de Inscrição de Estudante Cursinho #160 ms-simulado + Merge branch 'develop' into fix/declaracao_interesse #504 api-vcnafacul deployados):
    • Select lista Enem Dia 1/2 + personalizadas (selecionavel)
    • Categoria custom → nome/nomeSimulado obrigatórios, PDF opcional, hint aparece
    • Categoria oficial → PDF obrigatório, sem campos livres (fluxo antigo)
    • Submeter custom sem nome → toast bloqueia; oficial sem PDF → toast bloqueia
    • Prova custom criada aparece na DashProva; ShowProva mostra 1 simulado

Closes #643

🤖 Generated with Claude Code

Card 05 da Etapa 4 (Provas Custom) — fecha a etapa no frontend.

- rastreia categoria escolhida -> isCustom (categoria.custom === true)
- custom: campos 'nome' e 'nomeSimulado' aparecem e são obrigatórios; PDF/gabarito
  viram opcionais; formData inclui nome/nomeSimulado
- oficial: fluxo intacto (PDF obrigatório, sem campos livres)
- validação de submit e disabled do botão adaptados por isCustom
- hint visual 'Prova personalizada — nome livre, PDF opcional'
- criadorId NÃO vai no body (api-vcnafacul injeta via JWT — Card 04)

Nota: o select já filtrava por f.selecionavel (o card citava f.nome.includes('Enem'),
desatualizado — já estava correto). Fix trivial de lint pré-existente no mesmo
arquivo (param '_' não usado em handleRemove*) para passar no --max-warnings 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@FernandoAlmeidaPinto FernandoAlmeidaPinto self-assigned this Jul 26, 2026
@FernandoAlmeidaPinto
FernandoAlmeidaPinto merged commit 1fd0c27 into develop Jul 26, 2026
2 checks passed
@FernandoAlmeidaPinto
FernandoAlmeidaPinto deleted the feature/provas-custom-card-05-newprova-custom-flow branch July 26, 2026 18:29
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.

[Provas Custom] Card 05 · client-vcnafacul · NewProva com fluxo condicional por categoria.custom

1 participant