feat: extend task management with new statuses and centralized configuration
- Added `cancelled` and `freeze` statuses to `TasksResponse`, `HomePageClientProps`, and `useTasks` for comprehensive task tracking. - Updated task forms to dynamically load statuses using `getAllStatuses`, enhancing maintainability and reducing hardcoded values. - Refactored Kanban components to utilize centralized status configuration, improving consistency across the application. - Adjusted visibility toggle and swimlanes to reflect new status options, ensuring a seamless user experience.
This commit is contained in:
@@ -6,6 +6,7 @@ import { useMemo, useState } from 'react';
|
||||
import { useTasksContext } from '@/contexts/TasksContext';
|
||||
import { useColumnVisibility } from '@/hooks/useColumnVisibility';
|
||||
import { ColumnVisibilityToggle } from './ColumnVisibilityToggle';
|
||||
import { getAllStatuses } from '@/lib/status-config';
|
||||
import {
|
||||
DndContext,
|
||||
DragEndEvent,
|
||||
@@ -101,12 +102,14 @@ export function SwimlanesBoard({
|
||||
})
|
||||
);
|
||||
|
||||
const statuses: { id: TaskStatus; title: string; color: string }[] = [
|
||||
{ id: 'todo', title: 'À faire', color: 'gray' },
|
||||
{ id: 'in_progress', title: 'En cours', color: 'blue' },
|
||||
{ id: 'done', title: 'Terminé', color: 'green' },
|
||||
{ id: 'cancelled', title: 'Annulé', color: 'red' }
|
||||
];
|
||||
// Configuration des statuts basée sur la config centralisée
|
||||
const statuses = useMemo(() => {
|
||||
return getAllStatuses().map(statusConfig => ({
|
||||
id: statusConfig.key,
|
||||
title: statusConfig.label,
|
||||
color: statusConfig.color
|
||||
}));
|
||||
}, []);
|
||||
|
||||
// Handlers pour le drag & drop
|
||||
const handleDragStart = (event: DragStartEvent) => {
|
||||
@@ -195,7 +198,6 @@ export function SwimlanesBoard({
|
||||
{/* Headers des colonnes avec boutons toggle */}
|
||||
<div className="flex items-center justify-between px-6 pb-4">
|
||||
<ColumnVisibilityToggle
|
||||
statuses={statuses}
|
||||
hiddenStatuses={hiddenStatuses}
|
||||
onToggleStatus={toggleStatusVisibility}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user