import React from 'react'; import { useDraggable } from '@dnd-kit/core'; import { Clock, GripVertical, Trash2 } from 'lucide-react'; import { clsx } from 'clsx'; export interface PendingAppointment { id: number; customerName: string; serviceName: string; durationMinutes: number; } export interface ResourceLayout { resourceId: number; resourceName: string; height: number; laneCount: number; } interface PendingItemProps { appointment: PendingAppointment; } const PendingItem: React.FC = ({ appointment }) => { const { attributes, listeners, setNodeRef, isDragging } = useDraggable({ id: `pending-${appointment.id}`, data: { type: 'pending', duration: appointment.durationMinutes, title: appointment.customerName }, }); return (

{appointment.customerName}

{appointment.serviceName}

{appointment.durationMinutes} min
); }; interface SidebarProps { resourceLayouts: ResourceLayout[]; pendingAppointments: PendingAppointment[]; scrollRef: React.RefObject; } const Sidebar: React.FC = ({ resourceLayouts, pendingAppointments, scrollRef }) => { return (
{/* Resources Header */}
Resources
{/* Resources List (Synced Scroll) */}
{/* Pending Requests (Fixed Bottom) */}

Pending Requests ({pendingAppointments.length})

{pendingAppointments.length === 0 ? (
No pending requests
) : ( pendingAppointments.map(apt => ( )) )}
{/* Archive Drop Zone (Visual) */}
Drop here to archive
); }; export default Sidebar;