feat(frontend): Discador > Leads (tela dedicada)
/app/discador/leads — seletor de campanha, busca por telefone/nome,
adicionar lead individual, remover com confirmação de 2 cliques. O
backend (GET/POST/DELETE /campaigns/:campaignId/leads) já existia desde a
PHASE 15; a prévia de leads no detalhe da campanha já apontava pra esta
tela ("a lista completa vive em Discador > Leads") desde a PHASE 26, só
faltava construir.
LEAD_STATUS_LABELS novo (16 valores) — badge própria, não reusa
StatusBadge (mesma cautela de gênero de AgentStateBadge/TenantStatusBadge:
READY/FAILED/COMPLETED colidiriam com rótulos de campanha).
Testado ponta a ponta: campanha de teste criada, 3 leads adicionados (2
via API, 1 via UI), busca filtrando corretamente, remoção confirmada via
API. Smoke test nas 19 telas do tenant + platform, todas 200.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
@@ -37,7 +37,11 @@ export const TENANT_NAV: NavSection[] = [
|
||||
href: "/app/discador/campanhas",
|
||||
description: "Discador preditivo — campanhas deste tenant",
|
||||
},
|
||||
{ label: "Leads" },
|
||||
{
|
||||
label: "Leads",
|
||||
href: "/app/discador/leads",
|
||||
description: "Leads de uma campanha — buscar, adicionar, remover",
|
||||
},
|
||||
{ label: "Importações" },
|
||||
{ label: "Callbacks" },
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user