mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 23:53:05 +00:00
436 seeded Praças (municipality-based; per-TSE-zone in Salvador/Camaçari) become the operational unit; roles renamed to coordinator/advisor/leader with advisors scoped to administered Praças. Leadership is one record per person across many Praças/organizations; vote pledges split leader-declared vs staff-estimated (estimates never serialized to leaders). Adds organizations, demand workflow with staff-only cost/receipts, action-plan results with deputy presence, manual political trend, multi-candidate comparison and the diverging red/white/blue map mode. Migration 20260721_020109_remodel_plazas deliberately resets the campaign vertical in production (public site untouched); test suite ported to the new model (unit 187 / int 306 / e2e 9 green).
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { Badge } from '@/components/ui/Badge'
|
|
import type { SupportStatus } from '@/lib/schemas/leadership'
|
|
|
|
export type { SupportStatus } from '@/lib/schemas/leadership'
|
|
|
|
const statusPresentation = {
|
|
engajado: {
|
|
label: 'Engajado',
|
|
variant: 'support-engaged',
|
|
summary: 'Participa ativamente da campanha nas suas Praças e pode ter acesso ao app.',
|
|
},
|
|
a_abordar: {
|
|
label: 'A abordar',
|
|
variant: 'support-to-approach',
|
|
summary: 'Cadastrado, mas o engajamento ainda não foi confirmado.',
|
|
},
|
|
em_disputa: {
|
|
label: 'Em disputa',
|
|
variant: 'support-disputed',
|
|
summary: 'Apoio contestado, incerto ou em negociação.',
|
|
},
|
|
negativo: {
|
|
label: 'Negativo',
|
|
variant: 'support-negative',
|
|
summary: 'Declarou não apoiar ou recusou o contato.',
|
|
},
|
|
} as const
|
|
|
|
export const supportStatusLabel = (status: SupportStatus): string =>
|
|
statusPresentation[status].label
|
|
|
|
export const supportStatusSummary = (status: SupportStatus): string =>
|
|
statusPresentation[status].summary
|
|
|
|
export const SupportStatusBadge = ({ status }: { status: SupportStatus }) => {
|
|
const presentation = statusPresentation[status]
|
|
|
|
return (
|
|
<Badge variant={presentation.variant} data-support-status={status}>
|
|
{presentation.label}
|
|
</Badge>
|
|
)
|
|
}
|