import { useState, useEffect } from 'react'; import { TaskStatus } from '@/lib/types'; import { userPreferencesService } from '@/services/user-preferences'; import { getAllStatuses } from '@/lib/status-config'; export function useColumnVisibility() { const [hiddenStatuses, setHiddenStatuses] = useState>(new Set()); // Charger les préférences au montage useEffect(() => { const saved = userPreferencesService.getColumnVisibility(); setHiddenStatuses(new Set(saved.hiddenStatuses)); }, []); const toggleStatusVisibility = (status: TaskStatus) => { setHiddenStatuses(prev => { const newSet = new Set(prev); if (newSet.has(status)) { newSet.delete(status); } else { newSet.add(status); } // Sauvegarder dans localStorage userPreferencesService.saveColumnVisibility({ hiddenStatuses: Array.from(newSet) }); return newSet; }); }; const getVisibleStatuses = (statuses: T[]): T[] => { return statuses.filter(status => !hiddenStatuses.has(status.id)); }; const isStatusVisible = (status: TaskStatus): boolean => { return !hiddenStatuses.has(status); }; const getAllAvailableStatuses = () => { return getAllStatuses(); }; return { hiddenStatuses, toggleStatusVisibility, getVisibleStatuses, isStatusVisible, getAllAvailableStatuses }; }