feat: add task creation functionality to Kanban components
- Integrated `onCreateTask` prop into `PrioritySwimlanesBoard`, `SwimlanesBoard`, and `SwimlanesBase` for task creation support. - Implemented quick add feature in `DroppableColumn` for streamlined task addition. - Added modal for complete task creation in `SwimlanesBase`, enhancing user experience. - Updated relevant components to handle loading state during task creation.
This commit is contained in:
@@ -1,28 +1,33 @@
|
||||
'use client';
|
||||
|
||||
import { Task, TaskStatus } from '@/lib/types';
|
||||
import { CreateTaskData } from '@/clients/tasks-client';
|
||||
import { useMemo } from 'react';
|
||||
import { getAllPriorities } from '@/lib/status-config';
|
||||
import { SwimlanesBase, SwimlaneData } from './SwimlanesBase';
|
||||
|
||||
interface PrioritySwimlanesoardProps {
|
||||
tasks: Task[];
|
||||
onCreateTask?: (data: CreateTaskData) => Promise<Task | null>;
|
||||
onDeleteTask?: (taskId: string) => Promise<void>;
|
||||
onEditTask?: (task: Task) => void;
|
||||
onUpdateTitle?: (taskId: string, newTitle: string) => Promise<void>;
|
||||
onUpdateStatus?: (taskId: string, newStatus: TaskStatus) => Promise<void>;
|
||||
compactView?: boolean;
|
||||
visibleStatuses?: TaskStatus[];
|
||||
loading?: boolean;
|
||||
}
|
||||
|
||||
export function PrioritySwimlanesBoard({
|
||||
tasks,
|
||||
onCreateTask,
|
||||
onDeleteTask,
|
||||
onEditTask,
|
||||
onUpdateTitle,
|
||||
onUpdateStatus,
|
||||
compactView = false,
|
||||
visibleStatuses
|
||||
visibleStatuses,
|
||||
loading = false
|
||||
}: PrioritySwimlanesoardProps) {
|
||||
|
||||
// Grouper les tâches par priorités et créer les données de swimlanes
|
||||
@@ -57,12 +62,14 @@ export function PrioritySwimlanesBoard({
|
||||
tasks={tasks}
|
||||
title="Swimlanes par Priorité"
|
||||
swimlanes={swimlanesData}
|
||||
onCreateTask={onCreateTask}
|
||||
onDeleteTask={onDeleteTask}
|
||||
onEditTask={onEditTask}
|
||||
onUpdateTitle={onUpdateTitle}
|
||||
onUpdateStatus={onUpdateStatus}
|
||||
compactView={compactView}
|
||||
visibleStatuses={visibleStatuses}
|
||||
loading={loading}
|
||||
/>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user