diff --git a/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte b/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte index f8321ce8a6..f46b22e0ce 100644 --- a/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte @@ -22,10 +22,20 @@ let popup: HTMLDivElement | undefined + function isClickInsidePopup (target: Node): boolean { + if (popup !== undefined && popup.contains(target)) return true + if (!(target instanceof Element)) return false + + if (target.closest('.tippy-box') !== null) return true + if (target.closest('[data-block-editor-blur="true"]') !== null) return true + + return false + } + function handleClick (event: MouseEvent): void { if (event.target instanceof Node) { const top = $popups.length > 0 && $popups[$popups.length - 1].id === popupId - if (top && popup !== undefined && !popup.contains(event.target)) { + if (top && !isClickInsidePopup(event.target)) { event.preventDefault() event.stopPropagation() dispatch('close', undefined)