From 778b793fece6c91ca49e4ffadad668037141dff6 Mon Sep 17 00:00:00 2001 From: Mike Fortman Date: Mon, 24 Nov 2025 11:21:11 -0600 Subject: [PATCH] Fixes confirmation dialog to have a max number of files listed so it doesn't grow too much --- .../components/delete-confirmation-dialog.tsx | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/frontend/components/delete-confirmation-dialog.tsx b/frontend/components/delete-confirmation-dialog.tsx index c561c97d..7971933d 100644 --- a/frontend/components/delete-confirmation-dialog.tsx +++ b/frontend/components/delete-confirmation-dialog.tsx @@ -12,6 +12,26 @@ import { import { Button } from "./ui/button"; import { AlertTriangle } from "lucide-react"; +/** + * Formats a list of files to be deleted, truncating if necessary. + * @param files - Array of files with a `filename` property + * @param maxVisible - Maximum number of items to show before truncating (default: 5) + * @returns Formatted string with bullet points, truncated if needed + */ +export function formatFilesToDelete( + files: Array<{ filename: string }>, + maxVisible = 5, +): string { + const visibleFiles = files.slice(0, maxVisible); + const remainingCount = files.length - maxVisible; + const fileList = visibleFiles.map((file) => `• ${file.filename}`).join("\n"); + return remainingCount > 0 + ? `${fileList}\n• ... and ${remainingCount} more document${ + remainingCount > 1 ? "s" : "" + }` + : fileList; +} + interface DeleteConfirmationDialogProps { open: boolean; onOpenChange: (open: boolean) => void;