Merge pull request #490 from langflow-ai/delete-confirmation-list

Delete confirmation list: limit the number deleted files listed
This commit is contained in:
Mike Fortman 2025-11-24 12:46:07 -06:00 committed by GitHub
commit bfa60561e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 2 deletions

View file

@ -31,7 +31,10 @@ import {
DialogTrigger,
} from "@/components/ui/dialog";
import { StatusBadge } from "@/components/ui/status-badge";
import { DeleteConfirmationDialog } from "../../components/delete-confirmation-dialog";
import {
DeleteConfirmationDialog,
formatFilesToDelete,
} from "../../components/delete-confirmation-dialog";
import GoogleDriveIcon from "../../components/icons/google-drive-logo";
import OneDriveIcon from "../../components/icons/one-drive-logo";
import SharePointIcon from "../../components/icons/share-point-logo";
@ -399,7 +402,7 @@ function SearchPage() {
}? This will remove all chunks and data associated with these documents. This action cannot be undone.
Documents to be deleted:
${selectedRows.map((row) => `${row.filename}`).join("\n")}`}
${formatFilesToDelete(selectedRows)}`}
confirmText={selectedRows.length > 1 ? "Delete All" : "Delete"}
onConfirm={handleBulkDelete}
isLoading={deleteDocumentMutation.isPending}

View file

@ -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;