made theme switching better

This commit is contained in:
Worble 2019-05-06 22:16:37 +01:00
parent dc3d52a7cb
commit df5fc9890b
4 changed files with 20 additions and 18 deletions

View file

@ -1,11 +1,21 @@
const THEME_KEY = "ZULMA_THEME";
let theme = localStorage.getItem(THEME_KEY);
if (theme) {
changeTheme(theme);
document.querySelectorAll('#theme-select>option').forEach(element => {
if (element.value === theme) {
element.selected = 'selected';
}
});
}
function changeTheme(themeName) {
let alternates = [];
document.querySelectorAll('link.stylesheet').forEach(element => {
if (element.id === themeName) {
element.media = '';
element.disabled = false;
}
else {
alternates.push(element);
@ -13,7 +23,7 @@ function changeTheme(themeName) {
});
alternates.forEach(element => {
element.media = 'none';
element.disabled = true;
});
saveTheme(themeName);
@ -23,18 +33,6 @@ function saveTheme(themeName) {
localStorage.setItem(THEME_KEY, themeName);
}
window.addEventListener('DOMContentLoaded', () => {
let theme = localStorage.getItem(THEME_KEY);
if (theme) {
changeTheme(theme);
document.querySelectorAll('#theme-select>option').forEach(element => {
if (element.value === theme) {
element.selected = 'selected';
}
});
}
});
window.addEventListener('load', () => {
document.getElementById('theme-select').onchange = function () {
changeTheme(this.value);