import { CheckCircleFilled, ClockCircleFilled, CloseCircleFilled, ExclamationCircleFilled, InfoCircleFilled, LogoutOutlined, MenuFoldOutlined, MenuUnfoldOutlined, } from '@ant-design/icons' import { Alert, Badge, Button, Layout, Menu, Popconfirm, Space, Table, Tag, Tooltip, Typography, theme, type TableProps, } from 'antd' import { useEffect, useState, type CSSProperties } from 'react' import { isEditingAvailable, isRightPanelCollapsible, semanticStatusColors, statusDefinitions, workspaceThemeTokens, type WorkspaceStatus, } from './workspaceContracts' import type { AuthenticatedUser } from '../auth/authContracts' import { LegacySchemaCheckPanel } from '../admin/LegacySchemaCheckPanel' import { MunicipalityProfilePanel } from '../municipalities/MunicipalityProfilePanel' import { fetchLegacySchemaCheckHistory, runLegacySchemaCheck, } from '../admin/legacySchemaContracts' import './WorkspaceShell.css' const { Header, Sider, Content } = Layout const { Text, Title } = Typography type CycleRow = { key: string municipality: string cycle: string service: string status: WorkspaceStatus dueDate: string owner: string } const cycleRows: CycleRow[] = [ { key: 'CAM-1042', municipality: 'Fairview Borough', cycle: 'Primary 2026', service: 'Addressing', status: 'onTrack', dueDate: 'May 18', owner: 'Client Services', }, { key: 'CAM-1088', municipality: 'Lake Township', cycle: 'Primary 2026', service: 'Transport', status: 'atRisk', dueDate: 'May 12', owner: 'Production Lead', }, { key: 'CAM-1120', municipality: 'Northfield City', cycle: 'Special 2026', service: 'Sorting', status: 'blocked', dueDate: 'May 9', owner: 'Data Quality', }, { key: 'CAM-1137', municipality: 'Pine County', cycle: 'General 2026', service: 'Office Copies', status: 'inProgress', dueDate: 'May 22', owner: 'Operations', }, ] const riskItems = [ { id: 'RQ-18', title: 'Lake Township transport confirmation', status: 'atRisk' as WorkspaceStatus, owner: 'Production Lead', }, { id: 'RQ-21', title: 'Northfield missing sorting owner', status: 'blocked' as WorkspaceStatus, owner: 'Data Quality', }, { id: 'RQ-24', title: 'Pine County proof approval check', status: 'inProgress' as WorkspaceStatus, owner: 'Operations', }, ] const statusIcons = { onTrack: CheckCircleFilled, atRisk: ExclamationCircleFilled, blocked: CloseCircleFilled, inProgress: InfoCircleFilled, overdue: ClockCircleFilled, } satisfies Record function useViewportWidth() { const [width, setWidth] = useState(() => typeof window === 'undefined' ? 1600 : window.innerWidth, ) useEffect(() => { const updateWidth = () => setWidth(window.innerWidth) updateWidth() window.addEventListener('resize', updateWidth) return () => window.removeEventListener('resize', updateWidth) }, []) return width } function StatusIndicator({ status }: { status: WorkspaceStatus }) { const definition = statusDefinitions[status] const Icon = statusIcons[status] return ( ) } function WorkspaceNavigation({ user, selectedKey, onSelect, }: { user: AuthenticatedUser selectedKey: string onSelect: (key: string) => void }) { const menuItems = [ user.permissions.canViewMunicipalityProfile ? { key: 'municipalities', label: 'Municipalities' } : null, user.permissions.canCreateElectionCycle ? { key: 'cycles', label: 'Election Cycles' } : null, user.permissions.canViewProductionQueue ? { key: 'production', label: 'Production' } : null, user.permissions.canAccessTransportation ? { key: 'transportation', label: 'Transportation' } : null, user.permissions.canAccessSupport ? { key: 'support', label: 'Support' } : null, user.permissions.canAccessAdmin ? { key: 'admin', label: 'Admin' } : null, { key: 'reports', label: 'Reports' }, ].filter((item): item is { key: string; label: string } => item !== null) return (
Campaign Tracker Operations
onSelect(key)} /> ) } function RiskPanel({ collapsed, onToggle, canCollapse, }: { collapsed: boolean onToggle: () => void canCollapse: boolean }) { if (collapsed) { return ( {!editingAvailable ? ( ) : null} {selectedView === 'admin' && user.permissions.canAccessAdmin ? ( fetchLegacySchemaCheckHistory(adminFetch)} runCheck={() => runLegacySchemaCheck(adminFetch)} /> ) : selectedView === 'municipalities' && user.permissions.canViewMunicipalityProfile ? ( ) : (
Election cycle setup Municipality work queue
row.status === 'blocked' ? 'workspace-row--blocked' : '' } />
Last refreshed 12:48 PM. Legacy source context remains read-only; new workflow updates route through extension records.
)} setRightPanelCollapseRequested((value) => !value)} /> ) }