diff --git a/src/app/(campaign)/campanha/(app)/dobradinhas/page.tsx b/src/app/(campaign)/campanha/(app)/dobradinhas/page.tsx
index ccadfd1c..f107903f 100644
--- a/src/app/(campaign)/campanha/(app)/dobradinhas/page.tsx
+++ b/src/app/(campaign)/campanha/(app)/dobradinhas/page.tsx
@@ -34,7 +34,7 @@ import {
EmptyMedia,
EmptyTitle,
} from '@/components/ui/Empty'
-import { resolveVisibleColumns, toCampaignColumnPickerColumns } from '@/lib/campaignColumnVisibility'
+import { toCampaignColumnPickerColumns } from '@/lib/campaignColumnVisibility'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import type { MunicipalityPortfolioIndexEntry } from '@/lib/municipalityPortfolio'
import { cn } from '@/lib/utils'
@@ -187,8 +187,7 @@ export default async function StateDeputiesPage({ searchParams }: StateDeputiesP
])
const columnVisibility = await readCampaignColumnVisibility('dobradinhas')
- const isLeadershipVisible =
- resolveVisibleColumns([{ id: 'leaderships' }], columnVisibility.hiddenColumnIds).length > 0
+ const isLeadershipVisible = !columnVisibility.hiddenColumnIds.includes('leaderships')
const [
{ rows, totalDocs, totalPages, filterFacets },
diff --git a/src/app/(campaign)/campanha/(app)/liderancas/page.tsx b/src/app/(campaign)/campanha/(app)/liderancas/page.tsx
index eee62cbf..86a39b18 100644
--- a/src/app/(campaign)/campanha/(app)/liderancas/page.tsx
+++ b/src/app/(campaign)/campanha/(app)/liderancas/page.tsx
@@ -41,7 +41,7 @@ import {
EmptyMedia,
EmptyTitle,
} from '@/components/ui/Empty'
-import { resolveVisibleColumns, toCampaignColumnPickerColumns } from '@/lib/campaignColumnVisibility'
+import { toCampaignColumnPickerColumns } from '@/lib/campaignColumnVisibility'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { formatBahiaDateTimeLabel } from '@/lib/campaignTime'
import {
@@ -328,8 +328,7 @@ export default async function LeadershipsPage({ searchParams }: LeadershipsPageP
])
const columnVisibility = await readCampaignColumnVisibility('liderancas')
- const isStateDeputyVisible =
- resolveVisibleColumns([{ id: 'stateDeputies' }], columnVisibility.hiddenColumnIds).length > 0
+ const isStateDeputyVisible = !columnVisibility.hiddenColumnIds.includes('stateDeputies')
const [
{ rows, totalDocs, totalPages, filterFacets },
diff --git a/src/app/(campaign)/campanha/(app)/territorios/page.tsx b/src/app/(campaign)/campanha/(app)/territorios/page.tsx
index 19c21d00..ba9cbc67 100644
--- a/src/app/(campaign)/campanha/(app)/territorios/page.tsx
+++ b/src/app/(campaign)/campanha/(app)/territorios/page.tsx
@@ -3,7 +3,7 @@ import { redirect } from 'next/navigation'
import { getPayload } from 'payload'
import { TerritoryFilters } from '@/components/campaign/municipality/TerritoryFilters'
-import { territoryListPickerColumns } from '@/components/campaign/municipality/TerritoryListColumns'
+import { territoryListColumns } from '@/components/campaign/municipality/TerritoryListColumns'
import { TerritoryList } from '@/components/campaign/municipality/TerritoryList'
import { CampaignColumnPickerTrailing } from '@/components/campaign/shared/CampaignColumnPickerTrailing'
import { CampaignListFooter } from '@/components/campaign/shared/CampaignListFooter'
@@ -13,6 +13,7 @@ import {
} from '@/components/campaign/shared/CampaignListPending'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
+import { toCampaignColumnPickerColumns } from '@/lib/campaignColumnVisibility'
import { readCampaignColumnVisibility } from '@/utilities/campaignColumnVisibilityCookie'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { loadTerritoryOverview } from '@/utilities/territory/loadTerritoryOverview'
@@ -56,7 +57,9 @@ export default async function TerritoriesPage({ searchParams }: TerritoriesPageP
trailing={
}
/>
diff --git a/src/components/campaign/municipality/TerritoryList.tsx b/src/components/campaign/municipality/TerritoryList.tsx
index 34214d28..541fb207 100644
--- a/src/components/campaign/municipality/TerritoryList.tsx
+++ b/src/components/campaign/municipality/TerritoryList.tsx
@@ -71,20 +71,18 @@ export const TerritoryList = ({
return (
- row.variant === 'parent' ? row.region : `${row.parentRegion}-${row.label}`
- }
- rowId={(row) => (row.variant === 'parent' ? territoryAnchorId(row.region) : undefined)}
- rowClassName={(row) =>
- row.variant === 'sub' ? 'bg-muted/30' : 'scroll-mt-6 target:bg-muted/50'
- }
- empty={}
- />
+ className="overflow-visible"
+ containerClassName="overflow-x-auto"
+ headerClassName="[&_th]:sticky [&_th]:top-0 [&_th]:z-10 [&_th]:bg-background [&_th]:shadow-[inset_0_-1px_0_var(--border)] [&_th:first-child]:rounded-tl-xl [&_th:last-child]:rounded-tr-xl [&_tr]:border-b-0"
+ columns={territoryListColumns({ state, regionOptions })}
+ columnVisibility={columnVisibility}
+ rows={flattenTerritoryRows(rows)}
+ rowKey={(row) => (row.variant === 'parent' ? row.region : `${row.parentRegion}-${row.label}`)}
+ rowId={(row) => (row.variant === 'parent' ? territoryAnchorId(row.region) : undefined)}
+ rowClassName={(row) =>
+ row.variant === 'sub' ? 'bg-muted/30' : 'scroll-mt-6 target:bg-muted/50'
+ }
+ empty={}
+ />
)
}
diff --git a/src/components/campaign/municipality/TerritoryListColumns.tsx b/src/components/campaign/municipality/TerritoryListColumns.tsx
index bbf8c200..ee63bf9a 100644
--- a/src/components/campaign/municipality/TerritoryListColumns.tsx
+++ b/src/components/campaign/municipality/TerritoryListColumns.tsx
@@ -4,7 +4,6 @@ import { TerritorySortableHead } from '@/components/campaign/municipality/Territ
import { CampaignTransitionAnchor } from '@/components/campaign/shared/CampaignListPending'
import type { CampaignTableColumn } from '@/components/campaign/shared/CampaignTable'
import { Badge } from '@/components/ui/Badge'
-import type { CampaignColumnPickerColumn } from '@/lib/campaignColumnVisibility'
import { formatElectionNumber } from '@/lib/electionFormat'
import {
formatGoalCoverageDeficitShortLabel,
@@ -140,19 +139,6 @@ const captureTooltipContent = (row: TerritoryTableRow) => {
)
}
-export const territoryListPickerColumns: CampaignColumnPickerColumn[] = [
- { id: 'region', label: territoryListSortLabels.region, mandatory: true },
- { id: 'municipalities', label: territoryListSortLabels.municipalities },
- { id: 'votes2022', label: territoryListSortLabels.votes2022 },
- { id: 'pct', label: territoryListSortLabels.pct },
- { id: 'validVotes2022', label: territoryListSortLabels.validVotes2022 },
- { id: 'estimate2026', label: territoryListSortLabels.estimate2026 },
- { id: 'cobertura', label: territoryListSortLabels.cobertura },
- { id: 'captura', label: territoryListSortLabels.captura },
- { id: 'classe', label: territoryListSortLabels.classe },
- { id: 'coverage', label: territoryListSortLabels.coverage },
-]
-
export const territoryListColumns = ({
state,
regionOptions,
diff --git a/src/components/campaign/shared/CampaignColumnPicker.tsx b/src/components/campaign/shared/CampaignColumnPicker.tsx
index e59b5b0a..2b160aba 100644
--- a/src/components/campaign/shared/CampaignColumnPicker.tsx
+++ b/src/components/campaign/shared/CampaignColumnPicker.tsx
@@ -15,16 +15,11 @@ import {
parseCampaignHiddenColumns,
serializeCampaignHiddenColumns,
toggleHiddenColumn,
+ type CampaignColumnPickerColumn,
type CampaignListId,
} from '@/lib/campaignColumnVisibility'
import { sameIdSet } from '@/lib/sameIdSet'
-type CampaignColumnPickerColumn = {
- id: string
- label: string
- mandatory?: boolean
-}
-
type CampaignColumnPickerProps = {
listId: CampaignListId
/** Every column of the table, hidden ones included — this is the menu. */
diff --git a/src/components/campaign/shared/CampaignTable.tsx b/src/components/campaign/shared/CampaignTable.tsx
index b3deb4b1..4d2eebb5 100644
--- a/src/components/campaign/shared/CampaignTable.tsx
+++ b/src/components/campaign/shared/CampaignTable.tsx
@@ -177,8 +177,7 @@ export const CampaignTable = ({
const visibleColumns = resolveVisibleColumns(columns, columnVisibility?.hiddenColumnIds)
return (
- <>
-
+
{caption ? {caption} : null}
@@ -229,7 +228,6 @@ export const CampaignTable = ({
))}
-
- >
+
)
}