36 lines
1.2 KiB
JavaScript
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;
|
|
} |