From 44d80f00a28a8d5722f34877969bffdf2cd145b5 Mon Sep 17 00:00:00 2001
From: Taksh Patel <84769392+TakshPatel5821@users.noreply.github.com>
Date: Wed, 5 Aug 2026 16:45:10 -0500
Subject: [PATCH] Add AddOrRemoveAllButton to BundleSearchResult
Adds a bulk add/remove button to bundle search results, matching the pattern used for individual vertex/edge results and the top-level "add all" button. Fixes #1221.
---
.../SearchSidebar/BundleSearchResult.tsx | 87 ++++++++++++++++++-
1 file changed, 84 insertions(+), 3 deletions(-)
diff --git a/packages/graph-explorer/src/modules/SearchSidebar/BundleSearchResult.tsx b/packages/graph-explorer/src/modules/SearchSidebar/BundleSearchResult.tsx
index 16a72415e..67d25ebc7 100644
--- a/packages/graph-explorer/src/modules/SearchSidebar/BundleSearchResult.tsx
+++ b/packages/graph-explorer/src/modules/SearchSidebar/BundleSearchResult.tsx
@@ -1,18 +1,29 @@
-import { BracketsIcon } from "lucide-react";
+import { useAtomValue } from "jotai";
+import { BracketsIcon, MinusCircleIcon, PlusCircleIcon } from "lucide-react";
import {
+ Button,
+ type ButtonProps,
CollapsibleContent,
SearchResultCollapsible,
SearchResultCollapsibleTrigger,
SearchResultSubtitle,
SearchResultSymbol,
SearchResultTitle,
+ Spinner,
+ stopPropagation,
} from "@/components";
import {
+ getAllGraphableEntities,
getDisplayValueForBundle,
type PatchedResultBundle,
} from "@/connector/entities";
-import { useTextTransform } from "@/hooks";
+import { edgesAtom, nodesAtom } from "@/core";
+import {
+ useAddToGraphMutation,
+ useRemoveFromGraph,
+ useTextTransform,
+} from "@/hooks";
import { createEntityKey, EntitySearchResult } from "./EntitySearchResult";
@@ -33,10 +44,11 @@ export function BundleSearchResult({