+ {columns.map((column) => {
+ const columnTasks = tasks.filter((task) => task.status === column.status);
+ return (
+
+
+
{column.label}
+ {columnTasks.length}
+
+
+ {columnTasks.map((task) => (
+
+ ))}
+
+
+ );
+ })}
+
+ );
+}
+
+interface KanbanCardProps {
+ task: UiTask;
+ onSelect?: (task: UiTask) => void;
+}
+
+function KanbanCard({ task, onSelect }: KanbanCardProps) {
+ const handleClick = () => onSelect?.(task);
+ const handleKeyDown = (event: KeyboardEvent