diff --git a/src/app/(campaign)/campanha/(app)/municipios/[slug]/MunicipalityDetailTabs.tsx b/src/app/(campaign)/campanha/(app)/municipios/[slug]/MunicipalityDetailTabs.tsx new file mode 100644 index 00000000..041d56d6 --- /dev/null +++ b/src/app/(campaign)/campanha/(app)/municipios/[slug]/MunicipalityDetailTabs.tsx @@ -0,0 +1,249 @@ +import { CampaignListPagination } from '@/components/campaign/shared/CampaignListPagination' +import { CandidateComparePicker } from '@/components/campaign/map/CandidateComparePicker' +import { MunicipalityBaselineCard } from '@/components/campaign/municipality/MunicipalityBaselineCard' +import { MunicipalityCandidateComparisonTable } from '@/components/campaign/municipality/MunicipalityCandidateComparisonTable' +import { MunicipalityDossier } from '@/components/campaign/municipality/MunicipalityDossier' +import { MunicipalityGoalAccountCard } from '@/components/campaign/municipality/MunicipalityGoalAccountCard' +import { MunicipalityLeadershipsPanel } from '@/components/campaign/municipality/MunicipalityLeadershipsPanel' +import { MunicipalityPledgesPanel } from '@/components/campaign/municipality/MunicipalityPledgesPanel' +import { MunicipalityStrategyCard } from '@/components/campaign/municipality/MunicipalityStrategyCard' +import { MunicipalityUpdateFeed } from '@/components/campaign/municipality/MunicipalityUpdateFeed' +import { MunicipalityUpdateForm } from '@/components/campaign/municipality/MunicipalityUpdateForm' +import { MunicipalityZoneNeighborhoodsCard } from '@/components/campaign/municipality/MunicipalityZoneNeighborhoodsCard' +import type { VoteEstimateScenarioViewModel } from '@/lib/voteEstimate' +import type { getCampaignUser } from '@/utilities/campaignAuth' +import { loadFederalCandidateOptions } from '@/utilities/electionCandidateOptions' +import { loadMunicipalityLeaderships } from '@/utilities/leadershipData' +import { + loadMunicipalityCandidateComparison, + MAX_COMPARISON_CANDIDATES, +} from '@/utilities/municipalityCandidateComparison' +import type { MunicipalityDetailSearchParams } from '@/utilities/municipalityDetailTabUi' +import { loadMunicipalityDossierData } from '@/utilities/municipalityDossierData' +import { municipalityElectionGeographyForSlug } from '@/utilities/municipalityElectionGeography' +import { loadMunicipalityElectoralBaseline } from '@/utilities/municipalityElectoralBaseline' +import { loadMunicipalityGoalAccount } from '@/utilities/municipalityGoalAccount' +import type { getMunicipalityDetailViewModel } from '@/utilities/municipalityPageData' +import { + loadMunicipalityUpdatesFeed, + parseMunicipalityUpdateFeedParams, +} from '@/utilities/municipalityUpdatePageData' +import type { loadAdvisorSummaries } from '@/utilities/municipalityViewModels' +import { loadMunicipalityPledges } from '@/utilities/votePledgeData' +import { + aggregateMunicipalityPledgesFromRows, + toMunicipalityPledgeCoverageView, + type MunicipalityPledgeAggregate, + type MunicipalityPledgeCoverageView, +} from '@/utilities/votePledgeViews' + +import type { getPayload } from 'payload' + +import { declareVotesFormAction, estimateVotesFormAction } from './pledgeFormActions' +import { createMunicipalityUpdateFormAction } from './updateFormActions' + +type PayloadUser = { + payload: Awaited> + user: NonNullable>> +} + +type MunicipalityDetailView = Awaited> + +export const MunicipalityTabFallback = () => ( +