add darkmode cookie

This commit is contained in:
Lutz Reinhardt
2022-01-24 18:46:30 +01:00
parent d85e48916f
commit 5cc0bc0a46
3 changed files with 61 additions and 2 deletions
+57 -2
View File
@@ -1,4 +1,59 @@
let darkmode = window.matchMedia('(prefers-color-scheme: dark)').matches;
if (darkmode) {
function setCookie(cname, cvalue) {
document.cookie = cname + "=" + cvalue + ";path=/;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function getDarkmodeSetting() {
switch(getCookie("darkmode")) {
case "true":
return true;
case "false":
return false;
default:
return null;
}
}
function setDarkmodeSetting(value) {
if (value) {
setCookie("darkmode", "true");
} else {
setCookie("darkmode", "false");
}
}
function switchDarkmodeSetting() {
let darkmode = getDarkmodeSetting();
switch(darkmode) {
case true:
setDarkmodeSetting(false);
break;
case false:
setDarkmodeSetting(true);
break;
default:
setDarkmodeSetting(true);
break;
}
}
let darkmode = getDarkmodeSetting();
let darkmode_prefer = window.matchMedia('(prefers-color-scheme: dark)').matches;
if ((darkmode_prefer && darkmode===null) || darkmode) {
$(".darkmode-label").click();
}