feat: add user preferences for filter and objective visibility in HomePageClient

- Implemented state management for filter and objective visibility using `useState`.
- Integrated `userPreferencesService` to load and save user preferences on component mount and toggle actions.
- Updated `KanbanBoardContainer` to conditionally render filters and objectives based on user preferences.
- Enhanced UI with buttons for toggling visibility, improving user experience and customization.
This commit is contained in:
Julien Froidefond
2025-09-15 21:31:34 +02:00
parent cb2e8e9c9f
commit 44df8c89b8
7 changed files with 235 additions and 131 deletions

View File

@@ -13,7 +13,15 @@ import { UpdateTaskData } from '@/clients/tasks-client';
import { useColumnVisibility } from '@/hooks/useColumnVisibility';
import { getAllStatuses } from '@/lib/status-config';
export function KanbanBoardContainer() {
interface KanbanBoardContainerProps {
showFilters?: boolean;
showObjectives?: boolean;
}
export function KanbanBoardContainer({
showFilters = true,
showObjectives = true
}: KanbanBoardContainerProps = {}) {
const {
filteredTasks,
pinnedTasks,
@@ -61,15 +69,18 @@ export function KanbanBoardContainer() {
return (
<>
<KanbanFilters
filters={kanbanFilters}
onFiltersChange={setKanbanFilters}
hiddenStatuses={hiddenStatuses}
onToggleStatusVisibility={toggleStatusVisibility}
/>
{/* Barre de filtres - conditionnelle */}
{showFilters && (
<KanbanFilters
filters={kanbanFilters}
onFiltersChange={setKanbanFilters}
hiddenStatuses={hiddenStatuses}
onToggleStatusVisibility={toggleStatusVisibility}
/>
)}
{/* Section Objectifs Principaux */}
{pinnedTasks.length > 0 && (
{/* Section Objectifs Principaux - conditionnelle */}
{showObjectives && pinnedTasks.length > 0 && (
<ObjectivesBoard
tasks={pinnedTasks}
onDeleteTask={deleteTask}