import { useState } from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faSidebarFlip, faSidebar } from '@fortawesome/pro-duotone-svg-icons'; import { useAuth } from '@/providers/auth-provider'; import { useData } from '@/providers/data-provider'; import { useWorklist } from '@/hooks/use-worklist'; import { useSip } from '@/providers/sip-provider'; import { WorklistPanel } from '@/components/call-desk/worklist-panel'; import type { WorklistLead } from '@/components/call-desk/worklist-panel'; import { ContextPanel } from '@/components/call-desk/context-panel'; import { ActiveCallCard } from '@/components/call-desk/active-call-card'; import { CallPrepCard } from '@/components/call-desk/call-prep-card'; import { BadgeWithDot, Badge } from '@/components/base/badges/badges'; import { cx } from '@/utils/cx'; export const CallDeskPage = () => { const { user } = useAuth(); const { leadActivities } = useData(); const { connectionStatus, isRegistered, callState, callerNumber } = useSip(); const { missedCalls, followUps, marketingLeads, totalPending, loading } = useWorklist(); const [selectedLead, setSelectedLead] = useState(null); const [contextOpen, setContextOpen] = useState(true); const isInCall = callState === 'ringing-in' || callState === 'ringing-out' || callState === 'active'; const callerLead = callerNumber ? marketingLeads.find((l) => l.contactPhone?.[0]?.number?.endsWith(callerNumber) || callerNumber.endsWith(l.contactPhone?.[0]?.number ?? '---')) : null; const activeLead = isInCall ? (callerLead ?? selectedLead) : selectedLead; const activeLeadFull = activeLead as any; return (
{/* Compact header: title + name on left, status + toggle on right */}

Call Desk

{user.name}
{isRegistered ? 'Ready' : connectionStatus} {totalPending > 0 && ( {totalPending} pending )}
{/* Main content */}
{/* Main panel */}
{/* Active call */} {isInCall && (
)} {/* Worklist — no wrapper, tabs + table fill the space */} {!isInCall && ( setSelectedLead(lead)} selectedLeadId={selectedLead?.id ?? null} /> )}
{/* Context panel — collapsible with smooth transition */}
{contextOpen && ( )}
); };