64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
function setCookie(name,value,days) {
|
|
var expires = "";
|
|
if (days) {
|
|
var date = new Date();
|
|
date.setTime(date.getTime() + (days*24*60*60*1000));
|
|
expires = "; expires=" + date.toUTCString();
|
|
}
|
|
document.cookie = name + "=" + (value || "") + expires + "; path=/";
|
|
}
|
|
|
|
function getCookie(name) {
|
|
var nameEQ = name + "=";
|
|
var ca = document.cookie.split(';');
|
|
for(var i=0;i < ca.length;i++) {
|
|
var c = ca[i];
|
|
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
|
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getDarkmodeSetting() {
|
|
switch(getCookie("darkmode")) {
|
|
case "true":
|
|
return true;
|
|
case "false":
|
|
return false;
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function setDarkmodeSetting(value) {
|
|
if (value) {
|
|
setCookie("darkmode", "true", 100);
|
|
} else {
|
|
setCookie("darkmode", "false", 100);
|
|
}
|
|
}
|
|
|
|
function switchDarkmodeSetting() {
|
|
const darkmode = getDarkmodeSetting();
|
|
switch(darkmode) {
|
|
case true:
|
|
setDarkmodeSetting(false);
|
|
break;
|
|
case false:
|
|
setDarkmodeSetting(true);
|
|
break;
|
|
default:
|
|
setDarkmodeSetting(true);
|
|
break;
|
|
}
|
|
}
|
|
|
|
const check_darkmode = getDarkmodeSetting();
|
|
const darkmode_prefer = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
if (darkmode_prefer && check_darkmode === null) {
|
|
autoDarkMode();
|
|
setDarkmodeSetting(true);
|
|
} else if (check_darkmode) {
|
|
autoDarkMode();
|
|
}
|