'use client'; import { useState } from 'react'; import { useDroppable } from '@dnd-kit/core'; import { Search, UserX } from 'lucide-react'; import { Input } from '@/components/ui/input'; import { ScrollArea } from '@/components/ui/scroll-area'; import { cn } from '@/lib/utils'; import { EmployeeCard } from './EmployeeCard'; import type { OrgEmployee } from './types'; interface UnassignedPanelProps { employees: OrgEmployee[]; onAssignClick: (employee: OrgEmployee) => void; } export function UnassignedPanel({ employees, onAssignClick }: UnassignedPanelProps) { const [searchQuery, setSearchQuery] = useState(''); const { setNodeRef, isOver } = useDroppable({ id: 'unassigned-zone', data: { type: 'unassigned-zone' }, }); const filtered = searchQuery.trim() ? employees.filter((e) => { const q = searchQuery.toLowerCase(); return ( e.displayName.toLowerCase().includes(q) || (e.positionLabel && e.positionLabel.toLowerCase().includes(q)) ); }) : employees; return (
미배치 직원 {employees.length}명
setSearchQuery(e.target.value)} className="h-7 md:h-8 pl-7 md:pl-8 text-xs md:text-sm" />
{filtered.length > 0 ? ( filtered.map((emp) => ( )) ) : (
{searchQuery ? '검색 결과가 없습니다' : '미배치 직원이 없습니다'}
)}
); }