refacto: passing by server actions on taskCard
This commit is contained in:
@@ -9,8 +9,9 @@ import { KanbanFilters } from './KanbanFilters';
|
||||
import { EditTaskForm } from '@/components/forms/EditTaskForm';
|
||||
import { useTasksContext } from '@/contexts/TasksContext';
|
||||
import { useUserPreferences } from '@/contexts/UserPreferencesContext';
|
||||
import { Task, TaskStatus } from '@/lib/types';
|
||||
import { UpdateTaskData, CreateTaskData } from '@/clients/tasks-client';
|
||||
import { Task, TaskStatus, TaskPriority } from '@/lib/types';
|
||||
import { CreateTaskData } from '@/clients/tasks-client';
|
||||
import { updateTask, createTask } from '@/actions/tasks';
|
||||
import { getAllStatuses } from '@/lib/status-config';
|
||||
|
||||
interface KanbanBoardContainerProps {
|
||||
@@ -26,13 +27,11 @@ export function KanbanBoardContainer({
|
||||
filteredTasks,
|
||||
pinnedTasks,
|
||||
loading,
|
||||
createTask,
|
||||
deleteTask,
|
||||
updateTask,
|
||||
updateTaskOptimistic,
|
||||
kanbanFilters,
|
||||
setKanbanFilters,
|
||||
tags
|
||||
tags,
|
||||
refreshTasks
|
||||
} = useTasksContext();
|
||||
|
||||
const { preferences, toggleColumnVisibility, isColumnVisible } = useUserPreferences();
|
||||
@@ -45,24 +44,20 @@ export function KanbanBoardContainer({
|
||||
setEditingTask(task);
|
||||
};
|
||||
|
||||
const handleUpdateTask = async (data: UpdateTaskData) => {
|
||||
await updateTask(data);
|
||||
setEditingTask(null);
|
||||
const handleUpdateTask = async (data: { taskId: string; title?: string; description?: string; status?: TaskStatus; priority?: TaskPriority; tags?: string[]; dueDate?: Date; }) => {
|
||||
const result = await updateTask(data);
|
||||
if (result.success) {
|
||||
await refreshTasks(); // Rafraîchir les données
|
||||
setEditingTask(null);
|
||||
} else {
|
||||
console.error('Error updating task:', result.error);
|
||||
}
|
||||
};
|
||||
|
||||
const handleUpdateTitle = async (taskId: string, newTitle: string) => {
|
||||
await updateTask({
|
||||
taskId,
|
||||
title: newTitle
|
||||
});
|
||||
};
|
||||
|
||||
const handleUpdateStatus = async (taskId: string, newStatus: TaskStatus) => {
|
||||
// Utiliser la mise à jour optimiste pour le drag & drop
|
||||
await updateTaskOptimistic({
|
||||
taskId,
|
||||
status: newStatus
|
||||
});
|
||||
await updateTaskOptimistic(taskId, newStatus);
|
||||
};
|
||||
|
||||
// Obtenir le nom du tag épinglé pour l'affichage
|
||||
@@ -70,7 +65,12 @@ export function KanbanBoardContainer({
|
||||
|
||||
// Wrapper pour adapter le type de createTask
|
||||
const handleCreateTask = async (data: CreateTaskData): Promise<void> => {
|
||||
await createTask(data);
|
||||
const result = await createTask(data);
|
||||
if (result.success) {
|
||||
await refreshTasks(); // Rafraîchir les données
|
||||
} else {
|
||||
console.error('Error creating task:', result.error);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
@@ -89,9 +89,7 @@ export function KanbanBoardContainer({
|
||||
{showObjectives && pinnedTasks.length > 0 && (
|
||||
<ObjectivesBoard
|
||||
tasks={pinnedTasks}
|
||||
onDeleteTask={deleteTask}
|
||||
onEditTask={handleEditTask}
|
||||
onUpdateTitle={handleUpdateTitle}
|
||||
onUpdateStatus={handleUpdateStatus}
|
||||
compactView={kanbanFilters.compactView}
|
||||
pinnedTagName={pinnedTagName}
|
||||
@@ -103,9 +101,7 @@ export function KanbanBoardContainer({
|
||||
<PrioritySwimlanesBoard
|
||||
tasks={filteredTasks}
|
||||
onCreateTask={handleCreateTask}
|
||||
onDeleteTask={deleteTask}
|
||||
onEditTask={handleEditTask}
|
||||
onUpdateTitle={handleUpdateTitle}
|
||||
onUpdateStatus={handleUpdateStatus}
|
||||
compactView={kanbanFilters.compactView}
|
||||
visibleStatuses={visibleStatuses}
|
||||
@@ -115,9 +111,7 @@ export function KanbanBoardContainer({
|
||||
<SwimlanesBoard
|
||||
tasks={filteredTasks}
|
||||
onCreateTask={handleCreateTask}
|
||||
onDeleteTask={deleteTask}
|
||||
onEditTask={handleEditTask}
|
||||
onUpdateTitle={handleUpdateTitle}
|
||||
onUpdateStatus={handleUpdateStatus}
|
||||
compactView={kanbanFilters.compactView}
|
||||
visibleStatuses={visibleStatuses}
|
||||
@@ -128,9 +122,7 @@ export function KanbanBoardContainer({
|
||||
<KanbanBoard
|
||||
tasks={filteredTasks}
|
||||
onCreateTask={handleCreateTask}
|
||||
onDeleteTask={deleteTask}
|
||||
onEditTask={handleEditTask}
|
||||
onUpdateTitle={handleUpdateTitle}
|
||||
onUpdateStatus={handleUpdateStatus}
|
||||
compactView={kanbanFilters.compactView}
|
||||
visibleStatuses={visibleStatuses}
|
||||
|
||||
Reference in New Issue
Block a user