From 0fbedb0de338f866cdfe3b63d5f79e159ac77cea Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 00:36:10 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/components/cases/documents-tab.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/cases/documents-tab.tsx b/src/components/cases/documents-tab.tsx index 5cbbe3c..14d0dc9 100644 --- a/src/components/cases/documents-tab.tsx +++ b/src/components/cases/documents-tab.tsx @@ -298,13 +298,15 @@ export function CaseDocumentsTab({ caseId }: { caseId: string }) { const deleteFolder = async (full: string) => { const inFolder = docs.filter((d) => (d.folder || "") === full || (d.folder || "").startsWith(`${full}/`)); - if (inFolder.length && !confirm(`Folder "${full}" contains ${inFolder.length} file(s). Delete folder and all its files?`)) return; - if (!inFolder.length && !confirm(`Delete empty folder "${full}"?`)) return; - if (inFolder.length) { - await supabase.storage.from("case-documents").remove(inFolder.map((d) => d.storage_path)); - await supabase.from("documents").delete().in("id", inFolder.map((d) => d.id)); + const hasSubfolders = folders.some((f) => f.startsWith(`${full}/`)); + if (inFolder.length || hasSubfolders) { + toast.error("Folder is not empty", { + description: "Move or delete its contents before deleting the folder.", + }); + return; } - await supabase.from("document_folders").delete().eq("case_id", caseId).or(`path.eq.${full},path.like.${full}/%`); + if (!confirm(`Delete empty folder "${full}"?`)) return; + await supabase.from("document_folders").delete().eq("case_id", caseId).eq("path", full); toast.success("Folder deleted"); load(); }; @@ -553,9 +555,6 @@ export function CaseDocumentsTab({ caseId }: { caseId: string }) { - ))}