1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-01 17:38:37 +00:00

refactor(js): remove an outdated check for {passive: true}

According to https://caniuse.com/?search=passive,
all browsers released after 2016 do support passive event listeners,
so no need to check for its presence.
This commit is contained in:
Julien Voisin 2025-01-15 04:18:11 +00:00 committed by GitHub
parent 3b317b0b80
commit 8c3a9184ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 31 deletions

View file

@ -25,23 +25,4 @@ class DomHelper {
const elements = document.querySelectorAll(selector); const elements = document.querySelectorAll(selector);
return [...elements].filter((element) => this.isVisible(element)); return [...elements].filter((element) => this.isVisible(element));
} }
static hasPassiveEventListenerOption() {
var passiveSupported = false;
try {
var options = Object.defineProperty({}, "passive", {
get: function() {
passiveSupported = true;
}
});
window.addEventListener("test", options, options);
window.removeEventListener("test", options, options);
} catch(err) {
passiveSupported = false;
}
return passiveSupported;
}
} }

View file

@ -158,26 +158,26 @@ class TouchHandler {
} }
listen() { listen() {
const hasPassiveOption = DomHelper.hasPassiveEventListenerOption(); const eventListenerOptions = { passive: true };
document.querySelectorAll(".entry-swipe").forEach((element) => { document.querySelectorAll(".entry-swipe").forEach((element) => {
element.addEventListener("touchstart", (e) => this.onItemTouchStart(e), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchstart", (e) => this.onItemTouchStart(e), eventListenerOptions);
element.addEventListener("touchmove", (e) => this.onItemTouchMove(e), hasPassiveOption ? { passive: false } : false); element.addEventListener("touchmove", (e) => this.onItemTouchMove(e));
element.addEventListener("touchend", (e) => this.onItemTouchEnd(e), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchend", (e) => this.onItemTouchEnd(e), eventListenerOptions);
element.addEventListener("touchcancel", () => this.reset(), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchcancel", () => this.reset(), eventListenerOptions);
}); });
const element = document.querySelector(".entry-content"); const element = document.querySelector(".entry-content");
if (element) { if (element) {
if (element.classList.contains("gesture-nav-tap")) { if (element.classList.contains("gesture-nav-tap")) {
element.addEventListener("touchend", (e) => this.onTapEnd(e), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchend", (e) => this.onTapEnd(e), eventListenerOptions);
element.addEventListener("touchmove", () => this.reset(), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchmove", () => this.reset(), eventListenerOptions);
element.addEventListener("touchcancel", () => this.reset(), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchcancel", () => this.reset(), eventListenerOptions);
} else if (element.classList.contains("gesture-nav-swipe")) { } else if (element.classList.contains("gesture-nav-swipe")) {
element.addEventListener("touchstart", (e) => this.onContentTouchStart(e), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchstart", (e) => this.onContentTouchStart(e), eventListenerOptions);
element.addEventListener("touchmove", (e) => this.onContentTouchMove(e), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchmove", (e) => this.onContentTouchMove(e), eventListenerOptions);
element.addEventListener("touchend", (e) => this.onContentTouchEnd(e), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchend", (e) => this.onContentTouchEnd(e), eventListenerOptions);
element.addEventListener("touchcancel", () => this.reset(), hasPassiveOption ? { passive: true } : false); element.addEventListener("touchcancel", () => this.reset(), eventListenerOptions);
} }
} }
} }