mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-15 02:23:07 +00:00
Fix duplicated JSDoc, trim stale int test, defer perf follow-ups in impl plan. Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
2.4 KiB
2.4 KiB
Impl: B129 — Remover overview da lista de municípios
Status: aprovado Atualizado em: 2026-08-02 Issue: #266 Intenção: docs/plans/remover-overview-lista-municipios.md Appetite restante: remoção cirúrgica (sem redesign)
Leitura da intenção
- Outcome:
/campanha/municipiosmostra filtros → lista, sem strip de métricas agregadas. - O que NÃO negociar: filtros + cenário na barra; overview de apoiadores e dashboard intactos; leader lockdown.
- O que reavaliar: manter prefetch
loadStatewideSuggestedGoals— sim, ainda aquece cache paraloadMunicipalityGoalCoverageBundleusado nas linhas/colunas.
Abordagem recomendada
Opções consideradas:
- A — Esconder com CSS/feature flag: rejeitada — morto no loader e no bundle é mais honesto e barato.
- B — Remover UI, manter
overviewno bundle: rejeitada — viola “dead code dies immediately”. - C — Remover UI + tipo/campo/computação do loader: recomendada.
Rejeitadas: A, B.
Componentes / mudanças
municipios/page.tsx: remover import/render deMunicipalityListOvervieweshameHref.MunicipalityListOverview.tsx: deletar arquivo.municipalityPageData.ts: removerMunicipalityListOverviewData, campooverviewdo bundle, rollup/overview-only fields; manterstaffScope→pledgeAggregates+goalCoverageByMunicipalityIDpara sort/células.- Tests: remover asserts de
bundle.overview; manter asserts de lista/filtros/classe. - Migration: sem migration.
- Access / Consent: sem mudança.
Fases verificáveis
- Server — limpar loader + deletar componente morto.
- UI — página sem overview; comentário em
MunicipalityList.tsx. - Gates —
pnpm gate:fast; push viapnpm push.
Rabbit holes / Não escopo
- Redesenhar
loading.tsx(fora do aceite). - Tocar
SupporterListOverviewou dashboard. - Defer: escopo de
loadMunicipalityGoalCoverageBundleao page slice quandoisPagedByPayload(gatilho: perf review pós-B129); skipaggregateByScenariono loader de lista (gatilho: 2º consumidor de rows-only).
Riscos e mitigação
- Sort por déficit depende de goal coverage: mitigado mantendo
loadMunicipalityGoalCoverageBundleno loader.
Aceite de engenharia
- Aceite de produto da intenção ainda coberto
- Invariantes AGENTS/engineering-standards
- Testes de domínio previstos (int
municipalityPageData)