teqo-backup/src/components/campaign
Francisco Ignácio Fontoura Solla cf6ae6c47c Pass 2 W2: correcoes de fronteira lib/utilities e client boundary
- helpers puros movidos utilities->lib: slug, phone, wordStartFilter, voteEstimate (9 inversoes lib->utilities zeradas)
- chaves de consent em src/lib/campaignConsentKeys.ts (client-safe); campaignInvite/campaignConsent re-exportam; onda0ConsentTexts referencia as constantes
- 'server-only' em 21 loaders Payload/cache (CLI segue com --conditions=react-server)
- ciclo de tipos supporterListFilters <-> supporterUi quebrado (SupporterListFilterInput estrutural; sqlFilters idem)
- votePledgeData dividido: votePledgeViews (puro, client-safe) + votePledgeData (loaders, server-only) - padrao contract-module
- predicados de role client-safe em src/lib/campaignRoles.ts; access/shared deriva deles (fonte unica); nav.ts para de importar o barrel campaignAccess (casts 'as CampaignUser' eliminados)
2026-07-25 14:38:41 -03:00
..
ActionPlanCard.tsx Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
ActionPlanDemandFields.tsx Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
ActionPlanFilters.tsx Make every campaign action feel immediate with honest pending 2026-07-23 23:21:46 -03:00
ActionPlanForm.tsx Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
ActionPlanLifecycleDialog.tsx Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
ActionPlanList.tsx Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
ActionPlanResultForm.tsx Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
ActionPlanStatusBadge.tsx Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
ActionPlanTabNav.tsx Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
ActionPlanTaskChecklist.tsx Make every campaign action feel immediate with honest pending 2026-07-23 23:21:46 -03:00
ActionPlanTaskFields.tsx Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
ActionPlanUpdateFeed.tsx Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
ActionPlanUpdateForm.tsx Deliver C9 scale/DRY for supporters and register C10 follow-ups. 2026-07-19 03:23:25 -03:00
AdvisorDebouncedTextCell.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
AdvisorMunicipalityCell.tsx B19: Gerenciar assessores (/campanha/assessores) 2026-07-25 02:40:47 -03:00
AdvisorPasswordResetButton.tsx B19: Gerenciar assessores (/campanha/assessores) 2026-07-25 02:40:47 -03:00
AdvisorsTable.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
AsyncSearchCombobox.tsx Add missing C7 modules and register C11 simplify follow-ups. 2026-07-19 03:52:22 -03:00
BahiaMap.tsx Make every campaign action feel immediate with honest pending 2026-07-23 23:21:46 -03:00
campaign-logo.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
CampaignAuthBackToLoginLink.tsx Polish campaign login auth UI after Impeccable critique. 2026-07-19 19:24:12 -03:00
CampaignAuthCardHeader.tsx Polish campaign login auth UI after Impeccable critique. 2026-07-19 19:24:12 -03:00
CampaignAuthPageShell.tsx Polish campaign login auth UI after Impeccable critique. 2026-07-19 19:24:12 -03:00
CampaignBottomNav.tsx E16: Dossiê do município (pré-agenda) with print view and budgetNotes. 2026-07-25 01:28:03 -03:00
CampaignDashboard.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
CampaignDataFreshness.tsx Polish /campanha Field Desk UX and register FD+/FD2 follow-ups. 2026-07-19 08:17:12 -03:00
CampaignFilterChips.tsx Make every campaign action feel immediate with honest pending 2026-07-23 23:21:46 -03:00
CampaignInfoHint.tsx Ship A10 vote estimate scenarios (pessimistic/central/optimistic) for Praças. 2026-07-23 19:12:22 -03:00
CampaignInviteForm.tsx Deliver C8 scale/DRY for supporters and register C9 follow-ups. 2026-07-19 00:31:06 -03:00
CampaignListEmptyState.tsx Pass 2 W1-D2: migra tripé de entidades, demandas, apoiadores, planos e assessores para o sistema de listas 2026-07-25 14:28:01 -03:00
CampaignListFooter.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
CampaignListPagination.tsx Fix the three leader-flow bugs the e2e suite pinned + RSC prop contracts 2026-07-24 00:38:40 -03:00
CampaignListPending.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
CampaignMetricStrip.tsx E8: Conta da cadeira (metas derivadas, potencial por município, cobertura) 2026-07-24 22:54:27 -03:00
CampaignPageShell.tsx Refactor campaign dashboard UX and add product discovery artifacts. 2026-07-19 21:56:01 -03:00
CampaignProfileSettings.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
CampaignScopeBadge.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
CampaignSearchForm.tsx Fix the three leader-flow bugs the e2e suite pinned + RSC prop contracts 2026-07-24 00:38:40 -03:00
CampaignSearchInput.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
CampaignSidebar.tsx E18: documentação de conceitos de inteligência de campanha 2026-07-25 01:37:37 -03:00
CampaignTable.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
CampaignUserAvatar.tsx Add campaign password reset, profile photo, and RS+ follow-up plan. 2026-07-19 05:26:56 -03:00
CandidateComparePicker.tsx Make every campaign action feel immediate with honest pending 2026-07-23 23:21:46 -03:00
ChoroplethLegend.tsx Deliver B11 percent-of-valid-votes scale on Praças map. 2026-07-21 13:12:05 -03:00
ConsentText.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
ContactCombobox.tsx Import projection-sheet strategy columns into municipalities (E4R fase 2) 2026-07-24 15:58:06 -03:00
DeclareVotesForm.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
DemandForm.tsx Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
DemandWorkflowCard.tsx Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
InstallPwaToast.tsx Add installable PWA foundation for the /campanha field app. 2026-07-18 17:28:34 -03:00
InvalidCampaignInvite.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
LeaderContactForm.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
LeaderContactsPanel.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
LeadershipForm.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
LeadershipInternalForm.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
LeadershipInviteButtons.tsx Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
MapFeatureReadout.tsx Cache the campaign hot path: committed TSE artifact + request-scoped dedup 2026-07-23 23:06:28 -03:00
MunicipalityAdvisorAvatarStack.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityAdvisorsForm.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
MunicipalityBaselineCard.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityCandidateComparisonTable.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
MunicipalityDossier.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityEstimateScenarioContext.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityFilters.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityGoalAccountCard.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityHeaderFilter.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityHoverTooltip.tsx E18: documentação de conceitos de inteligência de campanha 2026-07-25 01:37:37 -03:00
MunicipalityLeadershipsPanel.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityList.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityListAdvisorsControl.tsx B16: corrige filtros que se anulavam e registra os débitos pós-simplify 2026-07-25 03:44:25 -03:00
MunicipalityListExpectedVotesControl.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityListGoalCoverageCell.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityListOverview.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityListTrendControl.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityMapPanel.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalityMapPanelDynamic.tsx Cache the campaign hot path: committed TSE artifact + request-scoped dedup 2026-07-23 23:06:28 -03:00
MunicipalityPledgesPanel.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
MunicipalitySortableHead.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityStrategyCard.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityStrategyForm.tsx Pass 2 W1-D1: sistema de listas (column defs + CampaignTable) + split do municipalityUi + B16+ 2026-07-25 14:13:04 -03:00
MunicipalityTabNav.tsx E16: Dossiê do município (pré-agenda) with print view and budgetNotes. 2026-07-25 01:28:03 -03:00
MunicipalityUpdateFeed.tsx Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
MunicipalityUpdateForm.tsx Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
MunicipalityZoneNeighborhoodsCard.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
nav.ts Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
OrganizationForm.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
PledgeEstimateForm.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
RecentlyVisitedCard.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
RecentVisitTracker.tsx Add the tooling gate: knip, CI, zero-warning lint, as-never ban 2026-07-23 23:06:12 -03:00
RegisterServiceWorker.tsx Add installable PWA foundation for the /campanha field app. 2026-07-18 17:28:34 -03:00
RelationMultiSelect.tsx Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
RemoveSupporterDataButton.tsx Add C6 scale/DRY for supporters: bulk import, KPI aggregate, shared shells. 2026-07-18 22:17:31 -03:00
StaffMunicipalityVotesDisplay.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
StateDeputyChips.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
StateDeputyForm.tsx Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
StrictCombobox.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
SupporterFilters.tsx Make every campaign action feel immediate with honest pending 2026-07-23 23:21:46 -03:00
SupporterForm.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
SupporterImportWizard.tsx Simplify C6 supporter paths and register C8 scale/DRY follow-ups. 2026-07-18 22:34:55 -03:00
SupporterList.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
SupporterListOverview.tsx Polish /campanha Field Desk UX and register FD+/FD2 follow-ups. 2026-07-19 08:17:12 -03:00
SupporterShareKit.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
SupportStatusBadge.tsx Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
TerritoryOverviewTable.tsx Add comparative Identity Territory table to campaign dashboard (E17) 2026-07-24 17:17:31 -03:00
TseZoneBadge.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
VoteEstimateScenarioField.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
VoteEstimateScenarioInputs.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
VoteEstimateScenarioStrip.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
VoteIntentionControl.tsx Add C2 nominal supporter registry for /campanha. 2026-07-18 20:32:54 -03:00