SignatureCardFrontend/darkmode.js
2023-05-31 12:34:17 -04:00

36 lines
1.2 KiB
JavaScript

document.getElementById("theme").addEventListener("click", toggleDarkMode, false)
refreshDarkMode()
function toggleDarkMode() {
if (getCookie("darkMode") === "on") document.cookie = "darkMode=off;path=/";
else document.cookie = "darkMode=on;path=/";
refreshDarkMode();
}
function refreshDarkMode() {
let darkMode = getCookie("darkMode", "off", "/") === "on";
if (darkMode) {
document.body.classList.add("dark-theme");
document.getElementById("theme").checked = true;
} else {
if (document.body.classList.contains("dark-theme")) {
document.body.classList.remove("dark-theme");
}
document.getElementById("theme").checked = false;
}
}
function getCookie(cookieName, valIfNotExists, path) {
let cookieArray = document.cookie.split(";");
for (let i = 0; i < cookieArray.length; i++) {
let cookie = cookieArray[i].split("=");
if (cookie[0].trim() === cookieName) {
return cookie[1];
}
}
console.warn("Cookie \"" + cookieName + "\" does not exist");
document.cookie = cookieName + "=" + valIfNotExists + ";path=" + path;
return valIfNotExists;
}