'use client'; import { useState, useEffect } from 'react'; import { KanbanBoardContainer } from '@/components/kanban/BoardContainer'; import { Header } from '@/components/ui/Header'; import { TasksProvider, useTasksContext } from '@/contexts/TasksContext'; import { Task, Tag, TaskStats } from '@/lib/types'; import { CreateTaskData } from '@/clients/tasks-client'; import { userPreferencesService } from '@/services/user-preferences'; import { CreateTaskForm } from '@/components/forms/CreateTaskForm'; import { Button } from '@/components/ui/Button'; interface HomePageClientProps { initialTasks: Task[]; initialStats: TaskStats; initialTags: (Tag & { usage: number })[]; } function HomePageContent() { const { stats, syncing, createTask } = useTasksContext(); const [showFilters, setShowFilters] = useState(true); const [showObjectives, setShowObjectives] = useState(true); const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); // Charger les préférences depuis le service useEffect(() => { const viewPreferences = userPreferencesService.getViewPreferences(); setShowFilters(viewPreferences.showFilters); setShowObjectives(viewPreferences.showObjectives); }, []); // Sauvegarder les préférences via le service const handleToggleFilters = () => { const newValue = !showFilters; setShowFilters(newValue); userPreferencesService.updateViewPreferences({ showFilters: newValue }); }; const handleToggleObjectives = () => { const newValue = !showObjectives; setShowObjectives(newValue); userPreferencesService.updateViewPreferences({ showObjectives: newValue }); }; // Handler pour la création de tâche depuis la barre de contrôles const handleCreateTask = async (data: CreateTaskData) => { await createTask(data); setIsCreateModalOpen(false); }; return (
{/* Barre de contrôles de visibilité */}
{/* Bouton d'ajout de tâche */}
{/* Modal de création de tâche */} setIsCreateModalOpen(false)} onSubmit={handleCreateTask} loading={false} />
); } export function HomePageClient({ initialTasks, initialStats, initialTags }: HomePageClientProps) { return ( ); }