mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-03 15:23:41 -07:00
35 lines
853 B
JavaScript
35 lines
853 B
JavaScript
const PRESS_SELECTOR = [
|
|
"a[href]",
|
|
"button:not(:disabled)",
|
|
"input:not(:disabled)",
|
|
"label",
|
|
"select:not(:disabled)",
|
|
"summary",
|
|
"textarea:not(:disabled)",
|
|
].join(",");
|
|
|
|
/** @type {Element | null} */
|
|
let pressedElement = null;
|
|
|
|
function clearPress() {
|
|
pressedElement?.removeAttribute("data-press");
|
|
pressedElement = null;
|
|
}
|
|
|
|
document.addEventListener(
|
|
"pointerdown",
|
|
(event) => {
|
|
if (event.pointerType === "mouse") return;
|
|
if (!(event.target instanceof Element)) return;
|
|
|
|
clearPress();
|
|
pressedElement = event.target.closest(PRESS_SELECTOR);
|
|
pressedElement?.setAttribute("data-press", "");
|
|
},
|
|
{ passive: true },
|
|
);
|
|
|
|
document.addEventListener("pointerup", clearPress, { passive: true });
|
|
document.addEventListener("pointercancel", clearPress, { passive: true });
|
|
window.addEventListener("blur", clearPress);
|