From 0b654fa8dc132cce191f43fb9bdf4d5864e11b7c Mon Sep 17 00:00:00 2001 From: silverwind Date: Wed, 18 Oct 2023 17:16:06 +0200 Subject: Clipboard copy enhancements (#27669) 1. Do not show temporary tooltips that are triggered from within dropdowns. Previously this resulted in the tooltip being stuck to top-left of the page like seen on issue comment URL copy. I could not figure out any tippy options that prevent this, so I think it's better to just not show it. 1. Refactor `initGlobalCopyToClipboardListener` so that it does not run a often useless `document.querySelector` on every click, make `data-clipboard-text-type` work with `data-clipboard-target`. No use in current code base but still good to have. Finally some minor code cleanup in the function. Point 1 is for this copy button: image --------- Co-authored-by: Giteabot --- web_src/js/modules/tippy.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'web_src/js/modules') diff --git a/web_src/js/modules/tippy.js b/web_src/js/modules/tippy.js index 372f7bc8f3..4eed0aa4bb 100644 --- a/web_src/js/modules/tippy.js +++ b/web_src/js/modules/tippy.js @@ -169,6 +169,11 @@ export function initGlobalTooltips() { } export function showTemporaryTooltip(target, content) { + // if the target is inside a dropdown, don't show the tooltip because when the dropdown + // closes, the tippy would be pushed unsightly to the top-left of the screen like seen + // on the issue comment menu. + if (target.closest('.ui.dropdown > .menu')) return; + const tippy = target._tippy ?? attachTooltip(target, content); tippy.setContent(content); if (!tippy.state.isShown) tippy.show(); -- cgit v1.2.3