style: prettier em arquivos B123

This commit is contained in:
Cursor Agent 2026-08-02 18:11:54 +00:00
parent 24e35d5a14
commit d4425251c6
No known key found for this signature in database
36 changed files with 89 additions and 87 deletions

View file

@ -12,8 +12,8 @@ import { VoteIntentionControl } from '@/components/campaign/supporter/VoteIntent
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import {
loadSupporterDetailConsentData,
loadSupporterDetailPageData,

View file

@ -2,8 +2,8 @@ import Link from 'next/link'
import { redirect } from 'next/navigation'
import { SupporterImportWizard } from '@/components/campaign/supporter/SupporterImportWizard'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { isCampaignCoordinator } from '@/utilities/campaignAccess'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'

View file

@ -5,8 +5,8 @@ import { getPayload } from 'payload'
import { createSupporterFormAction } from '@/app/(campaign)/campanha/(app)/apoiadores/novo/formActions'
import { SupporterForm } from '@/components/campaign/supporter/SupporterForm'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { loadSupporterCreatePageData } from '@/utilities/supporter/supporterPageData'
import { canAccessSupporterArea } from '@/utilities/supporter/supporterUi'

View file

@ -11,11 +11,11 @@ import { getPayload } from 'payload'
import { CampaignListEmptyState } from '@/components/campaign/shared/CampaignListEmptyState'
import { CampaignListFooter } from '@/components/campaign/shared/CampaignListFooter'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { SupporterFilters } from '@/components/campaign/supporter/SupporterFilters'
import { SupporterList } from '@/components/campaign/supporter/SupporterList'
import { SupporterListOverview } from '@/components/campaign/supporter/SupporterListOverview'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { isCampaignCoordinator } from '@/utilities/campaignAccess'
import { readCampaignColumnVisibility } from '@/utilities/campaignColumnVisibilityCookie'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'

View file

@ -9,12 +9,12 @@ import { AdvisorPasswordResetButton } from '@/components/campaign/advisor/Adviso
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { formatBrazilianPhoneInput } from '@/lib/phone'
import { isPlanilhaPlaceholderEmail } from '@/lib/schemas/advisor'
import { loadAdvisorDetail } from '@/utilities/advisorData'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { sendAdvisorPasswordResetFormAction, updateAdvisorProfileFormAction } from '../formActions'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
export const metadata = campaignPageMetadataFromCatalog('assessores')

View file

@ -22,12 +22,12 @@ type EditActivityPageProps = {
params: Promise<{ slug: string }>
}
const activityEditSubtitle =
'Atualize os detalhes da atividade sem alterar o título original.'
const activityEditSubtitle = 'Atualize os detalhes da atividade sem alterar o título original.'
export async function generateMetadata({ params }: EditActivityPageProps) {
const { slug } = await params
if (!slug) return campaignPageMetadata({ title: 'Editar atividade', subtitle: activityEditSubtitle })
if (!slug)
return campaignPageMetadata({ title: 'Editar atividade', subtitle: activityEditSubtitle })
const [user, payload] = await Promise.all([
requireCampaignPageActor({ gate: 'staff', redirectTo: '/campanha/atividades' }),

View file

@ -17,6 +17,7 @@ import { CampaignQuickActionContextBridge } from '@/components/campaign/shell/Ca
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { formatBahiaDateTimeLabel } from '@/lib/campaignTime'
import { activityKindLabels } from '@/lib/schemas/activity'
import { getActivityDetailPageData } from '@/utilities/activityDetailPageData'
@ -31,7 +32,6 @@ import {
import { isCampaignStaff } from '@/utilities/campaignAccess'
import { firstValue, strictDecimalInteger } from '@/utilities/campaignListUrl'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { ActivityOverviewTab } from './ActivityOverviewTab'

View file

@ -14,6 +14,7 @@ import { CampaignListEmptyState } from '@/components/campaign/shared/CampaignLis
import { CampaignListFooter } from '@/components/campaign/shared/CampaignListFooter'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import type { Activity } from '@/payload-types'
import { loadActivityListPageData } from '@/utilities/activityPageData'
import {
@ -24,7 +25,6 @@ import {
import { toActivityListViewModel } from '@/utilities/activityViewModels'
import { isCampaignStaff } from '@/utilities/campaignAccess'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { loadMunicipalityOptions } from '@/utilities/campaignRelationOptions'
import { TOUR_COMPOSER_PATH } from '@/utilities/visit/visitPlannerUrl'

View file

@ -1,12 +1,12 @@
import type { Metadata } from 'next'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import {
CAMPAIGN_CONCEPT_CATEGORIES,
campaignConceptsByCategory,
type CampaignIntelligenceConcept,
} from '@/lib/campaignIntelligenceConcepts'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
export const metadata: Metadata = campaignPageMetadataFromCatalog('conceitos')

View file

@ -3,10 +3,10 @@ import { redirect } from 'next/navigation'
import { getPayload } from 'payload'
import { LeaderContactsPanel } from '@/components/campaign/leadership/LeaderContactsPanel'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { isCampaignLeader } from '@/utilities/campaignAccess'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { loadLeaderContactsPageData } from '@/utilities/leaderContactsPageData'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
export const dynamic = 'force-dynamic'

View file

@ -9,6 +9,7 @@ import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell
import { CampaignQuickActionContextSync } from '@/components/campaign/shell/CampaignQuickActionContextSync'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import {
campaignDemandKindLabels,
campaignDemandStatusLabels,
@ -17,7 +18,6 @@ import {
import { isCampaignUnrestricted } from '@/utilities/campaignAccess'
import { loadDemandDetail } from '@/utilities/campaignDemandData'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import {
attachDemandReceiptFormAction,
setDemandCostFormAction,

View file

@ -6,8 +6,8 @@ import { getPayload } from 'payload'
import { searchDemandActivityOptions } from '@/app/(campaign)/campanha/(app)/demandas/activitySearchActions'
import { DemandForm } from '@/components/campaign/demand/DemandForm'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { loadActivityRelationOptionById } from '@/utilities/activityRelationOptions'
import { firstValue, strictDecimalInteger } from '@/utilities/campaignListUrl'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'

View file

@ -14,6 +14,7 @@ import { CampaignTable, type CampaignTableColumn } from '@/components/campaign/s
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import {
campaignDemandKindLabels,
campaignDemandStatusLabels,
@ -28,7 +29,6 @@ import {
type DemandRowViewModel,
} from '@/utilities/campaignDemandData'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
export const metadata = campaignPageMetadataFromCatalog('demandas')
@ -103,11 +103,7 @@ export default async function DemandsPage({ searchParams }: DemandsPageProps) {
])
const state = parseDemandListParams(rawSearchParams)
const { rows, totalDocs, totalPages } = await loadDemandListPageData(
payload,
user,
state,
)
const { rows, totalDocs, totalPages } = await loadDemandListPageData(payload, user, state)
const columnVisibility = await readCampaignColumnVisibility('demandas')
const hrefForStatus = (status?: CampaignDemandStatus) =>

View file

@ -8,8 +8,8 @@ import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell
import { StateDeputyForm } from '@/components/campaign/stateDeputy/StateDeputyForm'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { loadStateDeputyDetail } from '@/utilities/stateDeputyData'
import { updateStateDeputyFormAction } from './formActions'

View file

@ -2,9 +2,9 @@ import { ArrowLeftIcon } from 'lucide-react'
import Link from 'next/link'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { StateDeputyForm } from '@/components/campaign/stateDeputy/StateDeputyForm'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { createStateDeputyFormAction } from './formActions'

View file

@ -34,12 +34,12 @@ import {
EmptyTitle,
} from '@/components/ui/Empty'
import { resolveVisibleColumns } from '@/lib/campaignColumnVisibility'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import type { MunicipalityPortfolioIndexEntry } from '@/lib/municipalityPortfolio'
import { cn } from '@/lib/utils'
import { getAdvisorMunicipalityIds } from '@/utilities/campaignAccess'
import { readCampaignColumnVisibility } from '@/utilities/campaignColumnVisibilityCookie'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { loadLeadershipOptions } from '@/utilities/campaignRelationOptions'
import { loadMunicipalityPortfolioIndex } from '@/utilities/municipality/municipalityPortfolioIndex'
import {

View file

@ -10,21 +10,17 @@ import {
type BiometricEnrollmentOffer,
} from '@/components/campaign/shell/BiometricEnrollmentToast'
import { CampaignAppScrollChrome } from '@/components/campaign/shell/CampaignAppScrollChrome'
import { CampaignHomeSearchChromeProvider } from '@/components/campaign/shell/CampaignHomeSearchChromeContext'
import { CampaignDesktopHeader } from '@/components/campaign/shell/CampaignDesktopHeader'
import { CampaignHomeSearchChromeProvider } from '@/components/campaign/shell/CampaignHomeSearchChromeContext'
import { CampaignMobileTopBar } from '@/components/campaign/shell/CampaignMobileTopBar'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignNotificationBellSlot } from '@/components/campaign/shell/CampaignNotificationBellSlot'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignQuickActionContextProvider } from '@/components/campaign/shell/CampaignQuickActionContext'
import { CampaignSidebar } from '@/components/campaign/shell/CampaignSidebar'
import { CampaignSidebarViewportDefault } from '@/components/campaign/shell/CampaignSidebarViewportDefault'
import { CampaignWizardChromeProvider } from '@/components/campaign/shell/CampaignWizardChromeContext'
import { InstallPwaToast } from '@/components/campaign/shell/InstallPwaToast'
import {
SIDEBAR_COOKIE_NAME,
SidebarInset,
SidebarProvider,
} from '@/components/ui/Sidebar'
import { SIDEBAR_COOKIE_NAME, SidebarInset, SidebarProvider } from '@/components/ui/Sidebar'
import { Toaster } from '@/components/ui/Toaster'
import { TooltipProvider } from '@/components/ui/tooltip'
import { deviceLabelFromUserAgent } from '@/lib/deviceLabel'
@ -77,32 +73,34 @@ export default async function CampaignAppLayout({ children }: { children: React.
<CampaignSidebar user={campaignUserShellView(user)} />
<SidebarInset className="h-svh min-h-0 overflow-hidden print:h-auto print:overflow-visible">
<CampaignPageChromeProvider role={user.role}>
<CampaignWizardChromeProvider>
<CampaignHomeSearchChromeProvider>
<CampaignQuickActionContextProvider>
<CampaignListPendingBoundary>
<CampaignMobileTopBar
notificationBell={<CampaignNotificationBellSlot user={user} />}
/>
<CampaignDesktopHeader user={user} />
{/*
<CampaignWizardChromeProvider>
<CampaignHomeSearchChromeProvider>
<CampaignQuickActionContextProvider>
<CampaignListPendingBoundary>
<CampaignMobileTopBar
notificationBell={<CampaignNotificationBellSlot user={user} />}
/>
<CampaignDesktopHeader user={user} />
{/*
Provider must wrap CampaignAppScrollChrome, not only page children:
the mobile quick-actions drawer (B91/B100) mounts as a sibling of
the scrollport and renders search hits with CampaignHoverTooltip
(priority flag). Nested only around {children} left focus→suggest
without a provider and crashed the page (B102).
*/}
<TooltipProvider delayDuration={300}>
<CampaignAppScrollChrome role={user.role}>{children}</CampaignAppScrollChrome>
</TooltipProvider>
<Toaster position="top-center" />
<InstallPwaToast />
{biometricEnrollment ? <BiometricEnrollmentToast {...biometricEnrollment} /> : null}
</CampaignListPendingBoundary>
</CampaignQuickActionContextProvider>
</CampaignHomeSearchChromeProvider>
</CampaignWizardChromeProvider>
</CampaignPageChromeProvider>
<TooltipProvider delayDuration={300}>
<CampaignAppScrollChrome role={user.role}>{children}</CampaignAppScrollChrome>
</TooltipProvider>
<Toaster position="top-center" />
<InstallPwaToast />
{biometricEnrollment ? (
<BiometricEnrollmentToast {...biometricEnrollment} />
) : null}
</CampaignListPendingBoundary>
</CampaignQuickActionContextProvider>
</CampaignHomeSearchChromeProvider>
</CampaignWizardChromeProvider>
</CampaignPageChromeProvider>
</SidebarInset>
</SidebarProvider>
)

View file

@ -12,9 +12,9 @@ import { CampaignQuickActionContextSync } from '@/components/campaign/shell/Camp
import { StateDeputyChips } from '@/components/campaign/stateDeputy/StateDeputyChips'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { resolvedPortfolioEntriesById } from '@/lib/municipalityPortfolio'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import {
loadMunicipalityOptions,
loadOrganizationOptions,

View file

@ -5,8 +5,8 @@ import { getPayload } from 'payload'
import { LeadershipForm } from '@/components/campaign/leadership/LeadershipForm'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import {
loadMunicipalityOptions,

View file

@ -41,6 +41,7 @@ import {
EmptyTitle,
} from '@/components/ui/Empty'
import { resolveVisibleColumns } from '@/lib/campaignColumnVisibility'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { formatBahiaDateTimeLabel } from '@/lib/campaignTime'
import {
resolvedPortfolioEntriesById,
@ -52,7 +53,6 @@ import { cn } from '@/lib/utils'
import { getAdvisorMunicipalityIds } from '@/utilities/campaignAccess'
import { readCampaignColumnVisibility } from '@/utilities/campaignColumnVisibilityCookie'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { loadStateDeputyOptions } from '@/utilities/campaignRelationOptions'
import { formatRelativeAge } from '@/utilities/formatRelativeAge'
import {

View file

@ -6,8 +6,8 @@ import { getPayload } from 'payload'
import { MunicipalityAdvisorsForm } from '@/components/campaign/municipality/MunicipalityAdvisorsForm'
import { MunicipalityStrategyForm } from '@/components/campaign/municipality/MunicipalityStrategyForm'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { SetCampaignPageChrome } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Button } from '@/components/ui/button'
import { campaignPageMetadata } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
@ -35,12 +35,18 @@ const municipalityEditSubtitle =
export async function generateMetadata({ params }: MunicipalityEditPageProps) {
const { slug } = await params
const payload = await getPayload({ config })
const user = await requireCampaignPageActor({ gate: 'staff', redirectTo: `/campanha/municipios/${slug}` })
const user = await requireCampaignPageActor({
gate: 'staff',
redirectTo: `/campanha/municipios/${slug}`,
})
try {
const context = await resolveAccessibleMunicipalityContext(payload, user, slug)
const view = await getMunicipalityDetailViewModel(payload, context, user)
return campaignPageMetadata({ title: `Editar ${view.name}`, subtitle: municipalityEditSubtitle })
return campaignPageMetadata({
title: `Editar ${view.name}`,
subtitle: municipalityEditSubtitle,
})
} catch {
return campaignPageMetadata({ title: 'Editar município', subtitle: municipalityEditSubtitle })
}

View file

@ -8,8 +8,8 @@ import { RecentVisitTracker } from '@/components/campaign/dashboard/RecentVisitT
import { MunicipalityTabNav } from '@/components/campaign/municipality/MunicipalityTabNav'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Badge } from '@/components/ui/Badge'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import {
resolveMunicipalityDetailTab,
type MunicipalityDetailSearchParams,

View file

@ -9,9 +9,9 @@ import { OrganizationForm } from '@/components/campaign/organization/Organizatio
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { organizationKindLabels } from '@/lib/schemas/organization'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { loadMunicipalityOptions } from '@/utilities/campaignRelationOptions'
import { loadOrganizationDetail } from '@/utilities/organizationData'
import { updateOrganizationFormAction } from './formActions'

View file

@ -5,8 +5,8 @@ import { getPayload } from 'payload'
import { OrganizationForm } from '@/components/campaign/organization/OrganizationForm'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { loadMunicipalityOptions } from '@/utilities/campaignRelationOptions'
import { createOrganizationFormAction } from './formActions'

View file

@ -14,10 +14,10 @@ import { CampaignTable, type CampaignTableColumn } from '@/components/campaign/s
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { Badge } from '@/components/ui/Badge'
import { Button } from '@/components/ui/button'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { organizationKindLabels } from '@/lib/schemas/organization'
import { readCampaignColumnVisibility } from '@/utilities/campaignColumnVisibilityCookie'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import {
buildOrganizationListHref,
loadOrganizationListPageData,

View file

@ -8,11 +8,11 @@ import { CampaignHomeStaffChrome } from '@/components/campaign/dashboard/Campaig
import { CampaignHomeSummary } from '@/components/campaign/dashboard/CampaignHomeSummary'
import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell'
import { UNCOVERED_MUNICIPALITIES_LIST_HREF } from '@/lib/campaignHomeActions'
import { campaignPageMetadata } from '@/lib/campaignPageChrome'
import { isStaffCampaignRole } from '@/lib/campaignRoles'
import { loadCampaignHomeSummary } from '@/utilities/campaignDashboardData'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { loadHomeSearchSuggestions } from '@/utilities/homeSearch/loadHomeSearchSuggestions'
import { campaignPageMetadata } from '@/lib/campaignPageChrome'
export const dynamic = 'force-dynamic'

View file

@ -6,6 +6,7 @@ import { getPayload } from 'payload'
import { CampaignPasskeysCard } from '@/components/campaign/auth/CampaignPasskeysCard'
import { CampaignProfileSettings } from '@/components/campaign/auth/CampaignProfileSettings'
import { CampaignPushNotificationsCard } from '@/components/campaign/auth/CampaignPushNotificationsCard'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { deviceLabelFromUserAgent } from '@/lib/deviceLabel'
import { getCampaignUserWithAvatar } from '@/utilities/campaignAuth'
import { getCampaignPushConsent } from '@/utilities/campaignConsent'
@ -13,7 +14,6 @@ import { campaignUserShellView } from '@/utilities/campaignUserProfile'
import { getCampaignVapidPublicKey } from '@/utilities/notification/sendCampaignPush'
import { loadCampaignPasskeys } from '@/utilities/webauthn/campaignWebAuthnCeremony'
import { resolveCampaignWebAuthnRelyingParty } from '@/utilities/webauthn/campaignWebAuthnConfig'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
export const metadata = campaignPageMetadataFromCatalog('perfil')

View file

@ -9,10 +9,10 @@ import {
SuggestionSilenceStrip,
SuggestionsPanel,
} from '@/components/campaign/suggestion/SuggestionsPanel'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import type { CampaignUser } from '@/payload-types'
import { getCampaignDashboardData } from '@/utilities/campaignDashboardData'
import { requireCampaignPageActor } from '@/utilities/campaignPageActor'
import { campaignPageMetadataFromCatalog } from '@/lib/campaignPageChrome'
import { loadFederalCandidateOptions } from '@/utilities/electionCandidateOptions'
import { loadMunicipalityMapBundle } from '@/utilities/municipality/municipalityMapData'
import { loadMunicipalitySuggestions } from '@/utilities/municipality/municipalityTriggers'

View file

@ -5,8 +5,8 @@ import type { ReactNode } from 'react'
import { useCampaignListTransition } from '@/components/campaign/shared/CampaignListPending'
import { CampaignWizardNavLink } from '@/components/campaign/shared/CampaignWizardNavLink'
import { CampaignPageChromeDisplay } from '@/components/campaign/shell/CampaignPageChromeDisplay'
import { useCampaignHomeSearchChrome } from '@/components/campaign/shell/CampaignHomeSearchChromeContext'
import { CampaignPageChromeDisplay } from '@/components/campaign/shell/CampaignPageChromeDisplay'
import { useCampaignWizardChrome } from '@/components/campaign/shell/CampaignWizardChromeContext'
import { Button } from '@/components/ui/button'
import { SidebarTrigger } from '@/components/ui/Sidebar'

View file

@ -2,11 +2,11 @@
import { usePathname } from 'next/navigation'
import { CampaignPageChromeText } from '@/components/campaign/shell/CampaignPageChromeText'
import {
useCampaignPageChromeOverride,
useCampaignPageChromeRole,
} from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignPageChromeText } from '@/components/campaign/shell/CampaignPageChromeText'
import { resolveCampaignPageChrome } from '@/lib/campaignPageChrome'
export const useEffectiveCampaignPageChrome = () => {

View file

@ -25,10 +25,7 @@ export const CampaignPageChromeText = ({
}
return (
<div
data-slot="campaign-page-chrome"
className={cn('min-w-0 flex-1 leading-tight', className)}
>
<div data-slot="campaign-page-chrome" className={cn('min-w-0 flex-1 leading-tight', className)}>
<span className="block truncate text-sm font-semibold">{chrome.title}</span>
{chrome.subtitle ? (
<span className="block truncate text-xs text-primary-foreground/80">{chrome.subtitle}</span>

View file

@ -41,7 +41,8 @@ export const campaignPageChromeCatalog = {
},
liderancas: {
title: 'Lideranças',
subtitle: 'Uma ficha por pessoa — cada liderança pode atuar em vários municípios e organizações.',
subtitle:
'Uma ficha por pessoa — cada liderança pode atuar em vários municípios e organizações.',
},
liderancasNova: {
title: 'Nova liderança',
@ -131,8 +132,7 @@ const resolveCatalogEntry = (
role: CampaignRole,
): CampaignPageChrome | null => {
if (!entry) return null
const subtitle =
typeof entry.subtitle === 'function' ? entry.subtitle(role) : entry.subtitle
const subtitle = typeof entry.subtitle === 'function' ? entry.subtitle(role) : entry.subtitle
return { title: entry.title, subtitle }
}

View file

@ -1,4 +1,9 @@
import { campaignPageChrome, expect, expectPostResponse, test } from './fixtures/campaignE2EFixtures.js'
import {
campaignPageChrome,
expect,
expectPostResponse,
test,
} from './fixtures/campaignE2EFixtures.js'
/**
* `/campanha/liderancas` journeys: the B32 support-status quick edit (Popover +

View file

@ -16,8 +16,8 @@ import {
useSetCampaignHomeSearchChrome,
type CampaignHomeSearchChromeState,
} from '@/components/campaign/shell/CampaignHomeSearchChromeContext'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignMobileTopBar } from '@/components/campaign/shell/CampaignMobileTopBar'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import {
CampaignWizardChromeProvider,
useSetCampaignWizardChrome,

View file

@ -10,8 +10,8 @@ vi.mock('next/navigation', () => ({
}))
import { CampaignWizardShell } from '@/components/campaign/shared/CampaignWizardShell'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignMobileTopBar } from '@/components/campaign/shell/CampaignMobileTopBar'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignWizardChromeProvider } from '@/components/campaign/shell/CampaignWizardChromeContext'
import { SidebarProvider } from '@/components/ui/Sidebar'
import { WIZARD_MUNICIPALITY_STEP_TITLE, wizardFlowChromeAriaLabel } from '@/lib/campaignWizardCopy'

View file

@ -18,8 +18,8 @@ vi.mock('next/navigation', async (importActual) => ({
import { CampaignListPendingBoundary } from '@/components/campaign/shared/CampaignListPending'
import { CampaignWizardShell } from '@/components/campaign/shared/CampaignWizardShell'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignMobileTopBar } from '@/components/campaign/shell/CampaignMobileTopBar'
import { CampaignPageChromeProvider } from '@/components/campaign/shell/CampaignPageChromeContext'
import { CampaignWizardChromeProvider } from '@/components/campaign/shell/CampaignWizardChromeContext'
import { SidebarProvider } from '@/components/ui/Sidebar'
import { WIZARD_STEP_PENDING_MESSAGE } from '@/lib/campaignWizardCopy'
@ -33,17 +33,17 @@ const mountWizardNavigation = () =>
<CampaignListPendingBoundary>
<CampaignMobileTopBar />
<CampaignWizardShell
flowTitle="Ajustar votos"
stepTitle="Quantos votos?"
isEntryStep={false}
previousHref="/campanha/acoes/atualizar-votos"
dismissHref="/campanha"
municipalityLabel="Cairu"
>
Corpo do passo
</CampaignWizardShell>
</CampaignListPendingBoundary>
</CampaignWizardChromeProvider>
flowTitle="Ajustar votos"
stepTitle="Quantos votos?"
isEntryStep={false}
previousHref="/campanha/acoes/atualizar-votos"
dismissHref="/campanha"
municipalityLabel="Cairu"
>
Corpo do passo
</CampaignWizardShell>
</CampaignListPendingBoundary>
</CampaignWizardChromeProvider>
</CampaignPageChromeProvider>
</SidebarProvider>,
)