fix push changes

This commit is contained in:
murdle 2025-12-21 16:14:34 +02:00
parent e6e3ab0374
commit 6ab94bb3cd
4 changed files with 27 additions and 25 deletions

View File

@ -6,16 +6,10 @@ function checkServiceWorkerSupport() {
async function isPushRegistered() { async function isPushRegistered() {
checkServiceWorkerSupport(); checkServiceWorkerSupport();
try { try {
const registrations = await navigator.serviceWorker.getRegistrations(); const reg = await navigator.serviceWorker.ready;
if (!registrations || registrations.length === 0) return false; const sub = await reg.pushManager.getSubscription();
return !!sub;
for (let reg of registrations) { } catch {
const subscription = await reg.pushManager.getSubscription();
if (subscription) return true;
}
return false;
} catch (error) {
return false; return false;
} }
} }
@ -23,18 +17,19 @@ async function isPushRegistered() {
async function unregisterPush() { async function unregisterPush() {
checkServiceWorkerSupport(); checkServiceWorkerSupport();
try { try {
const registrations = await navigator.serviceWorker.getRegistrations(); const reg = await navigator.serviceWorker.ready;
if (!registrations || registrations.length === 0) return; const sub = await reg.pushManager.getSubscription();
for (let i = 0; i < registrations.length; i++) { if (sub) {
const reg = registrations[i]; await sub.unsubscribe();
const sub = await reg.pushManager.getSubscription(); }
if (sub) await sub.unsubscribe(); if (!window.isIOS()) {
await reg.unregister(); await reg.unregister();
} }
} catch (err) { } catch (err) {
console.error("Failed to unregister push:", err); alert("Failed to unregister push");
console.error(err);
} }
} }

View File

@ -38,3 +38,11 @@ self.addEventListener("notificationclick", (event) => {
}) })
); );
}); });
self.addEventListener("install", () => {
self.skipWaiting();
});
self.addEventListener("activate", (event) => {
event.waitUntil(self.clients.claim());
});

View File

@ -16,10 +16,6 @@
"hsl(139, calc(var(--saturation-factor, 1) * 47.3%), 43.9%)": "#43B581", // Online (green) "hsl(139, calc(var(--saturation-factor, 1) * 47.3%), 43.9%)": "#43B581", // Online (green)
}; };
const IS_MOBILE = window
.matchMedia("(pointer: coarse)")
.matches;
const TAB_CONTENT = ` const TAB_CONTENT = `
<h2 class="${CSS_CLASSES.title}">RSCord Settings</h2> <h2 class="${CSS_CLASSES.title}">RSCord Settings</h2>
<h5 class="${CSS_CLASSES.miniTitle}" style="margin-bottom: 10px">Options</h5> <h5 class="${CSS_CLASSES.miniTitle}" style="margin-bottom: 10px">Options</h5>
@ -221,7 +217,7 @@
document.body.addEventListener("click", (e) => { document.body.addEventListener("click", (e) => {
const clickedHamburger = e.target.closest(`.${CSS_CLASSES.hamburger}`) const clickedHamburger = e.target.closest(`.${CSS_CLASSES.hamburger}`)
if (clickedHamburger && IS_MOBILE) { if (clickedHamburger && window.IS_MOBILE) {
const settingsRegion = document.querySelector(`.${CSS_CLASSES.settingsRegion}`) const settingsRegion = document.querySelector(`.${CSS_CLASSES.settingsRegion}`)
settingsRegion.classList.remove(CSS_CLASSES.hidden); settingsRegion.classList.remove(CSS_CLASSES.hidden);
@ -249,7 +245,7 @@
child.style.display = "none"; child.style.display = "none";
} }
if (IS_MOBILE) { if (window.IS_MOBILE) {
const settingsRegion = document.querySelector(`.${CSS_CLASSES.settingsRegion}`) const settingsRegion = document.querySelector(`.${CSS_CLASSES.settingsRegion}`)
settingsRegion.classList.add(CSS_CLASSES.hidden); settingsRegion.classList.add(CSS_CLASSES.hidden);

View File

@ -37,6 +37,9 @@
window.AUTH_TOKEN = null; window.AUTH_TOKEN = null;
window.localStorage_ = localStorage; window.localStorage_ = localStorage;
window.IS_IOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
window.IS_MOBILE = window.matchMedia("(pointer: coarse)").matches;
function protocolRelative(url) { function protocolRelative(url) {
if (!url) return ""; if (!url) return "";
return "//" + url.replace(/^https?:\/\//, "").replace(/\/$/, ""); return "//" + url.replace(/^https?:\/\//, "").replace(/\/$/, "");