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

@@ -2,7 +2,7 @@
import { useState, useEffect, useRef, useMemo } from 'react';
import { createPortal } from 'react-dom';
import { TaskPriority } from '@/lib/types';
import { TaskPriority, TaskStatus } from '@/lib/types';
import { Button } from '@/components/ui/Button';
import { Input } from '@/components/ui/Input';
import { useTasksContext } from '@/contexts/TasksContext';
@@ -26,11 +26,17 @@ export interface KanbanFilters {
interface KanbanFiltersProps {
filters: KanbanFilters;
onFiltersChange: (filters: KanbanFilters) => void;
hiddenStatuses?: Set<TaskStatus>;
onToggleStatusVisibility?: (status: TaskStatus) => void;
}
export function KanbanFilters({ filters, onFiltersChange }: KanbanFiltersProps) {
export function KanbanFilters({ filters, onFiltersChange, hiddenStatuses: propsHiddenStatuses, onToggleStatusVisibility }: KanbanFiltersProps) {
const { tags: availableTags, regularTasks } = useTasksContext();
const { hiddenStatuses, toggleStatusVisibility } = useColumnVisibility();
const { hiddenStatuses: localHiddenStatuses, toggleStatusVisibility: localToggleStatusVisibility } = useColumnVisibility();
// Utiliser les props si disponibles, sinon utiliser l'état local
const hiddenStatuses = propsHiddenStatuses || localHiddenStatuses;
const toggleStatusVisibility = onToggleStatusVisibility || localToggleStatusVisibility;
const [isExpanded, setIsExpanded] = useState(false);
const [isSortExpanded, setIsSortExpanded] = useState(false);
const [isSwimlaneModeExpanded, setIsSwimlaneModeExpanded] = useState(false);