From 6d7abace97b7b5b43d3816d568e977e616b560f5 Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Wed, 14 May 2025 01:00:13 +0800 Subject: [PATCH] fix(tooltip): Sometimes tooltip flashes --- apps/client/src/services/note_tooltip.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/client/src/services/note_tooltip.ts b/apps/client/src/services/note_tooltip.ts index 722728733..8ea7ac88f 100644 --- a/apps/client/src/services/note_tooltip.ts +++ b/apps/client/src/services/note_tooltip.ts @@ -10,6 +10,7 @@ import { t } from "./i18n.js"; // Track all elements that open tooltips let openTooltipElements: JQuery[] = []; +let dismissTimer: ReturnType; function setupGlobalTooltip() { $(document).on("mouseenter", "a", mouseEnterHandler); @@ -26,6 +27,7 @@ function setupGlobalTooltip() { } function dismissAllTooltips() { + clearTimeout(dismissTimer); openTooltipElements.forEach($el => { $el.tooltip("dispose"); $el.removeAttr("aria-describedby"); @@ -129,11 +131,11 @@ async function mouseEnterHandler(this: HTMLElement) { // cursor is neither over the link nor over the tooltip, user likely is not interested dismissAllTooltips(); } else { - setTimeout(checkTooltip, 1000); + dismissTimer = setTimeout(checkTooltip, 1000); } }; - setTimeout(checkTooltip, 1000); + dismissTimer = setTimeout(checkTooltip, 1000); } }