|
|
@@ -256,27 +256,49 @@ export function FilesTable({ onFileAdded }: FilesTableProps) {
|
|
|
if (!confirmDelete) return;
|
|
|
|
|
|
try {
|
|
|
- const deletePromises = selectedRows.map(async (row) => {
|
|
|
- const response = await fetch(`/api/files/${row.original.id}`, {
|
|
|
- method: 'DELETE',
|
|
|
- });
|
|
|
-
|
|
|
- if (!response.ok) {
|
|
|
- throw new Error(`Failed to delete file: ${row.original.filename}`);
|
|
|
+ const fileIds = selectedRows.map(row => row.original.id);
|
|
|
+ const fileNames = selectedRows.map(row => row.original.filename);
|
|
|
+
|
|
|
+ console.log(`Deleting ${fileIds.length} files:`, fileNames);
|
|
|
+
|
|
|
+ // Process deletions sequentially to avoid race conditions
|
|
|
+ const results = [];
|
|
|
+ for (const row of selectedRows) {
|
|
|
+ try {
|
|
|
+ const response = await fetch(`/api/files/${row.original.id}`, {
|
|
|
+ method: 'DELETE',
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!response.ok) {
|
|
|
+ const errorText = await response.text();
|
|
|
+ console.error(`Failed to delete ${row.original.filename}:`, errorText);
|
|
|
+ results.push({ id: row.original.id, success: false, error: errorText });
|
|
|
+ } else {
|
|
|
+ console.log(`Successfully deleted: ${row.original.filename}`);
|
|
|
+ results.push({ id: row.original.id, success: true });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(`Error deleting ${row.original.filename}:`, error);
|
|
|
+ results.push({ id: row.original.id, success: false, error: String(error) });
|
|
|
}
|
|
|
-
|
|
|
- return row.original.id;
|
|
|
- });
|
|
|
+ }
|
|
|
|
|
|
- await Promise.all(deletePromises);
|
|
|
+ const successful = results.filter(r => r.success).length;
|
|
|
+ const failed = results.filter(r => !r.success).length;
|
|
|
+
|
|
|
+ if (failed > 0) {
|
|
|
+ alert(`${successful} file(s) deleted successfully, ${failed} failed. Check console for details.`);
|
|
|
+ } else {
|
|
|
+ alert(`${successful} file(s) deleted successfully.`);
|
|
|
+ }
|
|
|
|
|
|
// Clear selection and refresh the table
|
|
|
setRowSelection({});
|
|
|
refetch();
|
|
|
|
|
|
} catch (error) {
|
|
|
- console.error('Error deleting files:', error);
|
|
|
- alert('Failed to delete some files. Please try again.');
|
|
|
+ console.error('Error in delete process:', error);
|
|
|
+ alert('Failed to delete files. Please try again.');
|
|
|
}
|
|
|
};
|
|
|
|