import { useEffect, useMemo, useState } from 'react'; import { getFiles } from '../api/files'; import type { FileFilter, FileItem } from '../types'; const FILTERS: FileFilter[] = ['Tous', 'Dossiers', 'Documents', 'Médias']; function matchesFilter(file: FileItem, filter: FileFilter): boolean { switch (filter) { case 'Tous': return true; case 'Dossiers': return file.kind === 'folder'; case 'Documents': return file.kind === 'document'; case 'Médias': return file.kind === 'video' || file.kind === 'image'; } } export function useRecentFiles() { const [files, setFiles] = useState([]); const [filter, setFilter] = useState('Tous'); const [sortDesc, setSortDesc] = useState(true); const [gridView, setGridView] = useState(true); useEffect(() => { void getFiles().then(setFiles); }, []); const visibleFiles = useMemo(() => { const filtered = files.filter((f) => matchesFilter(f, filter)); return sortDesc ? filtered : filtered.slice().reverse(); }, [files, filter, sortDesc]); return { files: visibleFiles, filters: FILTERS, filter, setFilter, sortDesc, toggleSort: () => setSortDesc((v) => !v), gridView, setGridView, }; }