import { useRef } from "react"; import { useDrop } from "react-dnd"; import { cn } from "../../../ui/primitives/styles"; import type { Task } from "../types"; import { getColumnColor, getColumnGlow, ItemTypes } from "../utils/task-styles"; import { TaskCard } from "./TaskCard"; interface KanbanColumnProps { status: Task["status"]; title: string; tasks: Task[]; projectId: string; onTaskMove: (taskId: string, newStatus: Task["status"]) => void; onTaskReorder: (taskId: string, targetIndex: number, status: Task["status"]) => void; onTaskEdit?: (task: Task) => void; onTaskDelete?: (task: Task) => void; hoveredTaskId: string | null; onTaskHover: (taskId: string | null) => void; } export const KanbanColumn = ({ status, title, tasks, projectId, onTaskMove, onTaskReorder, onTaskEdit, onTaskDelete, hoveredTaskId, onTaskHover, }: KanbanColumnProps) => { const ref = useRef(null); const [{ isOver }, drop] = useDrop({ accept: ItemTypes.TASK, drop: (item: { id: string; status: Task["status"] }) => { if (item.status !== status) { onTaskMove(item.id, status); } }, collect: (monitor) => ({ isOver: !!monitor.isOver(), }), }); drop(ref); return (
{/* Column Header with Glassmorphism */}

{title}

{/* Column header glow effect */}
{/* Tasks Container */}
{tasks.length === 0 ? (
No tasks
) : ( tasks.map((task, index) => ( )) )}
); };