diff --git a/javascript/setHints.js b/javascript/setHints.js index 086367a6e..e135f16d4 100644 --- a/javascript/setHints.js +++ b/javascript/setHints.js @@ -9,6 +9,8 @@ const localeData = { type: 2, hint: null, btn: null, + expandTimeout: null, // New property for expansion timeout + currentElement: null, // Track current element for expansion }; async function cycleLocale() { @@ -44,20 +46,103 @@ async function tooltipCreate() { if (window.opts.tooltips === 'UI tooltips') localeData.type = 2; } +async function expandTooltip(element, longHint) { + if (localeData.currentElement === element && localeData.hint.classList.contains('tooltip-show')) { + // Hide the progress ring + const ring = localeData.hint.querySelector('.tooltip-progress-ring'); + if (ring) { + ring.style.opacity = '0'; + } + + // Expand the container + localeData.hint.classList.add('tooltip-expanded'); + + // After container starts expanding, reveal the long content + setTimeout(() => { + const longContent = localeData.hint.querySelector('.long-content'); + if (longContent) { + longContent.classList.add('show'); + } + }, 100); + } +} + async function tooltipShow(e) { + // Clear any existing expansion timeout + if (localeData.expandTimeout) { + clearTimeout(localeData.expandTimeout); + localeData.expandTimeout = null; + } + + // Remove expanded class and reset current element + localeData.hint.classList.remove('tooltip-expanded'); + localeData.currentElement = e.target; + if (e.target.dataset.hint) { + // Create progress ring SVG + const progressRing = ` +