mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 15:13:07 +00:00
style: prettier em arquivos B123
This commit is contained in:
parent
24e35d5a14
commit
d4425251c6
36 changed files with 89 additions and 87 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
||||
|
|
|
|||
|
|
@ -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' }),
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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) =>
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 })
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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 = () => {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 +
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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>,
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue