This hook manages both single-item selection (clicking a row) and multi-file selection (using checkboxes). It tracks:
selectedItem: The currently highlighted item (file or folder)selectedFiles: Array of files selected via checkboxesconst {
selectedItem,
selectedFiles,
handleSelectItem,
handleToggleSelect,
isFileSelected,
} = useFileSelection({ enableMultiSelect: true });
// In table row
<TableRow
onClick={() => handleSelectItem(file)}
selected={isFileSelected(file)}
>
{enableMultiSelect && (
<Checkbox
checked={isFileSelected(file)}
onChange={(e) => handleToggleSelect(file, e.target.checked)}
/>
)}
</TableRow>
Hook for managing file and folder selection state.