diff --git a/frontend/src/components/contacts/ContactFolderTree.tsx b/frontend/src/components/contacts/ContactFolderTree.tsx
index b4511da..c1c50a8 100644
--- a/frontend/src/components/contacts/ContactFolderTree.tsx
+++ b/frontend/src/components/contacts/ContactFolderTree.tsx
@@ -155,6 +155,12 @@ function FolderTreeItem({
{
+ // Prevent drag when the click originated from the more-options button
+ const target = e.target as HTMLElement;
+ if (target.tagName === 'BUTTON' || target.closest('button[aria-label="Optionen"]')) {
+ e.preventDefault();
+ return;
+ }
e.dataTransfer.setData('text/folder-id', node.id);
e.dataTransfer.effectAllowed = 'move';
}}
@@ -183,12 +189,16 @@ function FolderTreeItem({
{node.contact_count}
)}
@@ -243,7 +253,10 @@ export function ContactFolderTree({
const handleMoreClick = useCallback((e: React.MouseEvent, folderId: string) => {
e.preventDefault();
e.stopPropagation();
- const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();
+ // Robust rect: prefer currentTarget, fallback to target.closest('button')
+ const btn = (e.currentTarget as HTMLElement) || ((e.target as HTMLElement)?.closest('button'));
+ if (!btn) return;
+ const rect = btn.getBoundingClientRect();
setDropdown({ folderId, anchorRect: rect });
}, []);