improve tooltip behavior

This commit is contained in:
CodedSakura 2026-07-10 15:41:56 +03:00
parent 131a2f2dd2
commit cfa5cea524
3 changed files with 12 additions and 4 deletions

View File

@ -33,7 +33,7 @@
Filter:
<input data-input="block-filter">
</label>
<div class="list" id="block-list">
<div class="list" id="block-list" data-retain-tooltip-hover>
<template>
<div class="m1"></div>
</template>
@ -47,7 +47,7 @@
<input type="file" data-input="configuration" accept=".ncpf.json" />
</div>
<div data-state="planning">
<div class="list" id="planner">
<div class="list" id="planner" data-retain-tooltip-hover>
<template>
<div class="grid m2">
<template>

View File

@ -32,10 +32,10 @@ export function setText(dataValue, text, props = {}) {
export function debounce(fn, milliseconds = 200) {
let timeout = null;
return (e) => {
return (...e) => {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(() => fn(e), milliseconds);
timeout = setTimeout(() => fn(...e), milliseconds);
}
}

View File

@ -8,6 +8,14 @@ let suppressTooltips = false;
let activeTooltipTarget = null;
export function initializeTooltips() {
document.querySelectorAll("[data-retain-tooltip-hover]").forEach(elem =>
elem.addEventListener("mousemove", e => {
if (lastCoordinates !== null) {
e.stopPropagation();
lastCoordinates = { x: e.pageX, y: e.pageY };
emitEvent("tooltips:show");
}
}));
window.addEventListener("mousemove", () => {
if (lastCoordinates !== null) {
emitEvent("tooltips:hide");