Files
Sheep-Service/web/lib/pages/options/script.js
2025-09-09 00:10:53 +03:00

51 lines
1.5 KiB
JavaScript

const Options = {
init: async () => {
let html = await fetch('/lib/pages/options/index.html').then((response) => response.text());
app.innerHTML = html;
await Options.optionPush.init();
Options.optionFont.init();
},
optionPush: {
init: async () => {
const element = document.getElementById("page-options-notifications");
const permission = await Notification.requestPermission();
if (!('serviceWorker' in navigator) || !('PushManager' in window) || permission !== 'granted') {
element.disabled = true;
return;
}
const registration = await navigator.serviceWorker.ready;
let subscription = await registration.pushManager.getSubscription();
if (subscription) {
element.checked = true;
} else {
element.checked = false;
}
},
edit: (state) => {
if (state) {
webPush.init();
} else {
webPush.unsubscribe();
}
}
},
optionFont: {
init: () => {
const element = document.getElementById("page-options-fontSize");
let fontSize = localStorage.getItem("fontSize")
? localStorage.getItem("fontSize")
: 'medium';
element.value = fontSize;
},
edit: (mode) => {
localStorage.setItem("fontSize", mode);
applyFontMode(mode);
}
}
}