feat: enhance Kanban components with visibleStatuses prop

- Added `visibleStatuses` prop to `KanbanBoard`, `PrioritySwimlanesBoard`, `SwimlanesBase`, and `SwimlanesBoard` for improved column visibility control.
- Updated `KanbanBoardContainer` to derive `visibleStatuses` from `useColumnVisibility`, allowing dynamic filtering of displayed statuses.
- Refactored `KanbanFilters` to accept `hiddenStatuses` and `onToggleStatusVisibility` props, enabling better integration with column visibility management.
- Cleaned up visibility logic across components to ensure consistent behavior and user experience.
This commit is contained in:
Julien Froidefond
2025-09-15 11:05:11 +02:00
parent 2f18c08b55
commit 1a21f9b88b
6 changed files with 47 additions and 20 deletions

View File

@@ -10,6 +10,8 @@ import { EditTaskForm } from '@/components/forms/EditTaskForm';
import { useTasksContext } from '@/contexts/TasksContext';
import { Task, TaskStatus } from '@/lib/types';
import { UpdateTaskData } from '@/clients/tasks-client';
import { useColumnVisibility } from '@/hooks/useColumnVisibility';
import { getAllStatuses } from '@/lib/status-config';
export function KanbanBoardContainer() {
const {
@@ -25,6 +27,9 @@ export function KanbanBoardContainer() {
tags
} = useTasksContext();
const { hiddenStatuses, toggleStatusVisibility, getVisibleStatuses } = useColumnVisibility();
const allStatuses = getAllStatuses();
const visibleStatuses = getVisibleStatuses(allStatuses.map(s => ({ id: s.key }))).map(s => s.id);
const [editingTask, setEditingTask] = useState<Task | null>(null);
const handleEditTask = (task: Task) => {
@@ -56,9 +61,11 @@ export function KanbanBoardContainer() {
return (
<>
<KanbanFilters
filters={kanbanFilters}
<KanbanFilters
filters={kanbanFilters}
onFiltersChange={setKanbanFilters}
hiddenStatuses={hiddenStatuses}
onToggleStatusVisibility={toggleStatusVisibility}
/>
{/* Section Objectifs Principaux */}
@@ -82,6 +89,7 @@ export function KanbanBoardContainer() {
onUpdateTitle={handleUpdateTitle}
onUpdateStatus={handleUpdateStatus}
compactView={kanbanFilters.compactView}
visibleStatuses={visibleStatuses}
/>
) : (
<SwimlanesBoard
@@ -91,6 +99,7 @@ export function KanbanBoardContainer() {
onUpdateTitle={handleUpdateTitle}
onUpdateStatus={handleUpdateStatus}
compactView={kanbanFilters.compactView}
visibleStatuses={visibleStatuses}
/>
)
) : (
@@ -103,6 +112,7 @@ export function KanbanBoardContainer() {
onUpdateStatus={handleUpdateStatus}
loading={loading}
compactView={kanbanFilters.compactView}
visibleStatuses={visibleStatuses}
/>
)}