Kanban
A kanban board component for task management with drag and drop.
Configuring your account...
Please wait while we prepare everything for you
Usage
'use client';
import * as React from 'react';
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import {
Kanban,
KanbanBoard,
KanbanColumn,
KanbanColumnContent,
KanbanColumnHandle,
KanbanItem,
KanbanItemHandle,
KanbanOverlay,
} from '@/components/ui/kanban';
import { GripVertical } from 'lucide-react';
export default function Component() {
const [columns, setColumns] = React.useState({
backlog: [
{
id: '1',
title: 'Add authentication',
priority: 'high',
assignee: 'John Doe',
dueDate: 'Jan 10, 2025',
},
// ... more tasks
],
});
return (
<Kanban value={columns} onValueChange={setColumns} getItemValue={(item) => item.id}>
<KanbanBoard className="grid auto-rows-fr grid-cols-3">
{Object.entries(columns).map(([columnValue, tasks]) => (
<TaskColumn key={columnValue} value={columnValue} tasks={tasks} />
))}
</KanbanBoard>
</Kanban>
);
}