import { SortableContext, useSortable } from "@dnd-kit/sortable"; import { Column, TaskCard as Task } from "@/types"; import { CSS } from "@dnd-kit/utilities"; import { useMemo, useState } from "react"; import { PlusIcon, TrashIcon } from "@radix-ui/react-icons"; import TaskCard from "@/components/kanban/task"; interface Props { column: Column; deleteColumn: (id: string) => void; updateColumn: (id: string, title: string) => void; createTask: (columnId: string) => void; updateTask: (id: string, content: string) => void; deleteTask: (id: string) => void; tasks: Task[]; } function ColumnContainer({ column, deleteColumn, updateColumn, createTask, tasks, deleteTask, updateTask, }: Props) { const [editMode, setEditMode] = useState(false); const tasksIds = useMemo(() => { return tasks.map((task) => task.id); }, [tasks]); const { setNodeRef, attributes, listeners, transform, transition, isDragging, } = useSortable({ id: column.id, data: { type: "Column", column, }, disabled: editMode, }); const style = { transition, transform: CSS.Transform.toString(transform), }; if (isDragging) { return (
); } return (