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:
@@ -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}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user