mirror of
https://github.com/tiennm99/HugoBlox-kit.git
synced 2026-10-05 16:13:52 +00:00
Add check that admin enabled Light/Dark chooser (Params.day_night).
Fix eb8748ff17
Fix #1601
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
(function () {
|
|
function getThemeMode() {
|
|
return parseInt(localStorage.getItem('dark_mode') || 2);
|
|
}
|
|
|
|
function canChangeTheme() {
|
|
// If var is set, then user is allowed to change the theme variation.
|
|
return Boolean(window.staDarkLightChooser);
|
|
}
|
|
|
|
function initThemeVariation() {
|
|
if (!canChangeTheme) {
|
|
return;
|
|
}
|
|
|
|
let currentThemeMode = getThemeMode();
|
|
let isDarkTheme;
|
|
switch (currentThemeMode) {
|
|
case 0:
|
|
isDarkTheme = false;
|
|
break;
|
|
case 1:
|
|
isDarkTheme = true;
|
|
break;
|
|
default:
|
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
// The visitor prefers dark themes and switching to the dark variation is allowed by admin.
|
|
isDarkTheme = true;
|
|
} else if (window.matchMedia('(prefers-color-scheme: light)').matches) {
|
|
// The visitor prefers light themes and switching to the dark variation is allowed by admin.
|
|
isDarkTheme = false;
|
|
} else {
|
|
// Use the site's default theme variation based on `light` in the theme file.
|
|
isDarkTheme = isSiteThemeDark;
|
|
}
|
|
break;
|
|
}
|
|
if (isDarkTheme) {
|
|
document.body.classList.add("dark");
|
|
} else {
|
|
document.body.classList.remove("dark");
|
|
}
|
|
}
|
|
|
|
// Initialize theme variation.
|
|
initThemeVariation();
|
|
})();
|