From 989256674721cf6126118cc5996b6ec2f2567b6e Mon Sep 17 00:00:00 2001 From: Ved Prakash <54140516+thorved@users.noreply.github.com> Date: Sun, 5 Oct 2025 05:38:55 +0530 Subject: [PATCH] Feature request: Add delete confirmation dialog to file manager (#344) * Feature request: Add delete confirmation dialog to file manager - Added confirmation dialog before deleting files/folders - Users must confirm deletion with a warning message - Works for both Delete key and right-click delete - Shows different messages for single file, folder, or multiple items - Includes permanent deletion warning - Follows existing design patterns using confirmWithToast * Adds confirmation for deletion of items including folders Updates the file deletion confirmation logic to distinguish between deleting multiple items with or without folders. Introduces a new translation string for a clearer user prompt when folders and their contents are included in the deletion. Improves clarity and reduces user error when performing bulk deletions. * feat: Add Chinese translations for delete confirmation messages --- .../Desktop/Apps/File Manager/FileManager.tsx | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/ui/Desktop/Apps/File Manager/FileManager.tsx b/src/ui/Desktop/Apps/File Manager/FileManager.tsx index ea991003..83bd98b4 100644 --- a/src/ui/Desktop/Apps/File Manager/FileManager.tsx +++ b/src/ui/Desktop/Apps/File Manager/FileManager.tsx @@ -614,6 +614,39 @@ function FileManagerContent({ initialHost, onClose }: FileManagerProps) { const fullMessage = `${confirmMessage}\n\n${t("fileManager.permanentDeleteWarning")}`; + confirmWithToast( + fullMessage, + async () => { + try { + await ensureSSHConnection(); + // Determine the confirmation message based on file count and type + let confirmMessage: string; + if (files.length === 1) { + const file = files[0]; + if (file.type === "directory") { + confirmMessage = t("fileManager.confirmDeleteFolder", { + name: file.name, + }); + } else { + confirmMessage = t("fileManager.confirmDeleteSingleItem", { + name: file.name, + }); + } + } else { + const hasDirectory = files.some((file) => file.type === "directory"); + const translationKey = hasDirectory + ? "fileManager.confirmDeleteMultipleItemsWithFolders" + : "fileManager.confirmDeleteMultipleItems"; + + confirmMessage = t(translationKey, { + count: files.length, + }); + } + + // Add permanent deletion warning + const fullMessage = `${confirmMessage}\n\n${t("fileManager.permanentDeleteWarning")}`; + + // Show confirmation dialog confirmWithToast( fullMessage, async () => {