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

View File

@ -32,10 +32,10 @@ export function setText(dataValue, text, props = {}) {
export function debounce(fn, milliseconds = 200) { export function debounce(fn, milliseconds = 200) {
let timeout = null; let timeout = null;
return (e) => { return (...e) => {
if (timeout) { if (timeout) {
clearTimeout(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; let activeTooltipTarget = null;
export function initializeTooltips() { 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", () => { window.addEventListener("mousemove", () => {
if (lastCoordinates !== null) { if (lastCoordinates !== null) {
emitEvent("tooltips:hide"); emitEvent("tooltips:hide");