Почему js невсегда меняет тему при загрузке страницы?
Есть вот такой переключатель тем на сайте:
Вот код его работы:
//Добавление события на переключатель
const switchTumblerHandler = () => {
const wrapper = document.querySelector('.tumbler__wrapper');
wrapper.addEventListener('click', () => {
toggleNightMode();
});
};
//Переключает темы и меняет сам тумблер если theme в coockie == "dark"
const toggleNightModeLoad = () => {
document.body.classList.toggle('body--night-mode');
document.querySelector('.tumbler').classList.toggle('tumbler--night-mode');
document.querySelectorAll('.post').forEach(post => {
post.classList.toggle('post--night-mode');
});
};
//Переключение тем при нажатии на тумблер
const toggleNightMode = () => {
document.body.classList.toggle('body--night-mode');
document.querySelector('.tumbler').classList.toggle('tumbler--night-mode');
document.querySelectorAll('.post').forEach(post => {
post.classList.toggle('post--night-mode');
});
let theme_click = getCookie("theme");
//Проверка какая тема в печенюхах и выставление обратной туда
if (theme_click == "lite"){
let date = new Date(Date.now());
date.setFullYear(date.getFullYear + 12);
date = date.toUTCString();
document.cookie = "theme=dark; path=/; expires="+date;
}else{
let date = new Date(Date.now());
date.setFullYear(date.getFullYear + 12);
date = date.toUTCString();
document.cookie = "theme=lite; path=/; expires="+date;
};
};
// возвращает куки с указанным name,
// или undefined, если ничего не найдено
function getCookie(name) {
let matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
};
//Проверяет и вызывает переключение при загрузке, если в печеньках 'dark'
var theme = getCookie("theme");
if (theme == "dark"){
toggleNightModeLoad();
}
//Вызов функции с добавлением события
switchTumblerHandler();
Проблема в том, что при загрузке страницы невсегда переключается тема на dark, хотя в куки она была задана. Как это исправить? Может где-то допустил глупую ошибку(что для меня свойственно??)? Помогите, пожалуйста!
