mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-14 08:25:17 +00:00
436 seeded Praças (municipality-based; per-TSE-zone in Salvador/Camaçari) become the operational unit; roles renamed to coordinator/advisor/leader with advisors scoped to administered Praças. Leadership is one record per person across many Praças/organizations; vote pledges split leader-declared vs staff-estimated (estimates never serialized to leaders). Adds organizations, demand workflow with staff-only cost/receipts, action-plan results with deputy presence, manual political trend, multi-candidate comparison and the diverging red/white/blue map mode. Migration 20260721_020109_remodel_plazas deliberately resets the campaign vertical in production (public site untouched); test suite ported to the new model (unit 187 / int 306 / e2e 9 green).
27 lines
734 B
TypeScript
27 lines
734 B
TypeScript
'use client'
|
|
|
|
import dynamic from 'next/dynamic'
|
|
|
|
import type { FederalCandidateOption } from '@/utilities/electionCandidateOptions'
|
|
import type { PlazaMapBundle } from '@/utilities/plazaMapData'
|
|
|
|
const PlazaMapPanelLazy = dynamic(
|
|
() => import('@/components/campaign/PlazaMapPanel').then((module) => module.PlazaMapPanel),
|
|
{
|
|
ssr: false,
|
|
loading: () => (
|
|
<div
|
|
aria-hidden="true"
|
|
className="h-[420px] w-full animate-pulse rounded-xl border bg-muted/40"
|
|
/>
|
|
),
|
|
},
|
|
)
|
|
|
|
export const PlazaMapPanelDynamic = ({
|
|
bundle,
|
|
candidateOptions,
|
|
}: {
|
|
bundle: PlazaMapBundle
|
|
candidateOptions: FederalCandidateOption[]
|
|
}) => <PlazaMapPanelLazy bundle={bundle} candidateOptions={candidateOptions} />
|