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

@@ -10,6 +10,7 @@ import { Card } from '@/components/ui/Card';
import Link from 'next/link';
import { DailyCalendar } from '@/components/daily/DailyCalendar';
import { dailyClient } from '@/clients/daily-client';
import { SimpleHeader } from '@/components/ui/SimpleHeader';
interface DailySectionProps {
title: string;
@@ -367,58 +368,51 @@ export function DailyPageClient({
return (
<div className="min-h-screen bg-[var(--background)]">
{/* Header */}
<header className="bg-[var(--card)]/80 backdrop-blur-sm border-b border-[var(--border)]/50 sticky top-0 z-10">
<div className="container mx-auto px-4 py-4">
<div className="flex items-center justify-between">
<div className="flex items-center gap-4">
<Link
href="/"
className="text-[var(--primary)] hover:text-[var(--primary)]/80 font-mono text-sm"
>
Kanban
</Link>
<h1 className="text-xl font-bold text-[var(--foreground)] font-mono">
📝 Daily
</h1>
</div>
{/* Header uniforme */}
<SimpleHeader
title="TowerControl"
subtitle="Daily - Gestion quotidienne"
syncing={saving}
/>
<div className="flex items-center gap-2">
<Button
onClick={goToPreviousDay}
variant="ghost"
size="sm"
disabled={saving}
>
</Button>
<div className="text-center min-w-[200px]">
<div className="text-sm font-bold text-[var(--foreground)] font-mono">
{formatCurrentDate()}
</div>
{!isToday() && (
<button
onClick={goToToday}
className="text-xs text-[var(--primary)] hover:text-[var(--primary)]/80 font-mono"
>
Aller à aujourd&apos;hui
</button>
)}
{/* Navigation Daily spécifique */}
<div className="bg-[var(--card)]/50 border-b border-[var(--border)]/30">
<div className="container mx-auto px-4 py-3">
<div className="flex items-center justify-center gap-2">
<Button
onClick={goToPreviousDay}
variant="ghost"
size="sm"
disabled={saving}
>
</Button>
<div className="text-center min-w-[200px]">
<div className="text-sm font-bold text-[var(--foreground)] font-mono">
{formatCurrentDate()}
</div>
<Button
onClick={goToNextDay}
variant="ghost"
size="sm"
disabled={saving}
>
</Button>
{!isToday() && (
<button
onClick={goToToday}
className="text-xs text-[var(--primary)] hover:text-[var(--primary)]/80 font-mono"
>
Aller à aujourd&apos;hui
</button>
)}
</div>
<Button
onClick={goToNextDay}
variant="ghost"
size="sm"
disabled={saving}
>
</Button>
</div>
</div>
</header>
</div>
{/* Contenu principal */}
<main className="container mx-auto px-4 py-8">