'use client' import { useState, useCallback } from 'react' import type { FolderEntry } from '@/lib/client-types' import { revokeEntryUrls } from '@/lib/client-object-urls' export function useFolderEntries() { const [entries, setEntries] = useState([]) const updateEntry = useCallback((index: number, patch: Partial) => { setEntries((prev) => prev.map((f, i) => (i === index ? { ...f, ...patch } : f))) }, []) const removeEntry = useCallback((index: number) => { setEntries((prev) => { const entry = prev[index] if (entry) revokeEntryUrls(entry) return prev.filter((_, i) => i !== index) }) }, []) const resetEntries = useCallback(() => { setEntries((prev) => { prev.forEach((f) => { revokeEntryUrls(f) }) return [] }) }, []) const allDone = entries.length > 0 && entries.every((f) => f.status === 'success') const hasErrors = entries.some((f) => f.status === 'error') return { entries, setEntries, updateEntry, removeEntry, resetEntries, allDone, hasErrors, } }