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 }); }, []);