mirror of
https://github.com/NoCrypt/migu.git
synced 2026-03-11 17:45:32 +00:00
27 lines
No EOL
606 B
JavaScript
27 lines
No EOL
606 B
JavaScript
export function longpress(node, cb = () => {}) {
|
|
const threshold = 500
|
|
const handle_mousedown = () => {
|
|
let start = Date.now();
|
|
|
|
const timeout = setTimeout(() => {
|
|
cb();
|
|
}, threshold);
|
|
|
|
const cancel = () => {
|
|
clearTimeout(timeout);
|
|
node.removeEventListener('mousemove', cancel);
|
|
node.removeEventListener('mouseup', cancel);
|
|
};
|
|
|
|
node.addEventListener('mousemove', cancel);
|
|
node.addEventListener('mouseup', cancel);
|
|
}
|
|
|
|
node.addEventListener('mousedown', handle_mousedown);
|
|
|
|
return {
|
|
destroy() {
|
|
node.removeEventListener('mousedown', handle_mousedown);
|
|
}
|
|
};
|
|
} |