diff options
author | Parker <contact@pkrm.dev> | 2025-03-28 23:47:27 -0500 |
---|---|---|
committer | Parker <contact@pkrm.dev> | 2025-03-28 23:47:27 -0500 |
commit | a46359bfe7b0698ea293e2dda5d9b29d8bf58a5c (patch) | |
tree | a6bda650bfd767d45e24dffff03aca1a5b9ae1df /js | |
parent | 5e510d137fc16f77af89f1ed9954d3cef2a643ed (diff) |
small changes
Diffstat (limited to 'js')
-rw-r--r-- | js/toggle.js | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/js/toggle.js b/js/toggle.js index 275054a..11ba783 100644 --- a/js/toggle.js +++ b/js/toggle.js @@ -1,61 +1,61 @@ const moon = document.getElementById('moon'); const sun = document.getElementById('sun'); -if (!document.cookie.includes('preference')) { - setPreference(true); +/** + * Check if the user has dark mode enabled + */ +if (localStorage.getItem('darkMode') === 'true') { + turnDark(); } else { - const preference = document.cookie.split(';').find(cookie => cookie.includes('preference')).split('=')[1]; - if (preference === 'true') { - turnLight(); - } else { - turnDark(); - } - + turnLight(); } -function setPreference(value) { - if (typeof value === 'boolean') { - const expires = new Date(); - expires.setFullYear(expires.getFullYear() + 1); // 1 year - document.cookie = `preference=${value};expires=${expires.toUTCString()};path=/`; - turnLight(); +/** + * Update local storage with the current theme + */ +function updateLocalStorage() { + if (document.documentElement.classList.contains('dark')) { + localStorage.setItem('darkMode', 'true'); + } else { + localStorage.setItem('darkMode', 'false'); } } +/** + * Toggle the theme to dark + */ function turnLight() { - document.documentElement.classList.add('light'); + document.documentElement.classList.remove('dark'); - moon.style.opacity = '0'; - sun.style.opacity = '1'; + sun.style.display = 'none'; + moon.style.display = 'block'; - setTimeout(() => { - moon.style.display = 'none'; - sun.style.display = 'block'; - } - , 100); + sun.style.opacity = '0'; + moon.style.opacity = '1'; + + updateLocalStorage(); } +/** + * Toggle the theme to light + */ function turnDark() { - document.documentElement.classList.remove('light'); + document.documentElement.classList.add('dark'); - sun.style.opacity = '0'; - moon.style.opacity = '1'; + moon.style.display = 'none'; + sun.style.display = 'block'; - setTimeout(() => { - sun.style.display = 'none'; - moon.style.display = 'block'; - } - , 100); + moon.style.opacity = '0'; + sun.style.opacity = '1'; + + updateLocalStorage(); } +// Check for icon clicks moon.addEventListener('click', () => { - document.documentElement.classList.add('light'); - setPreference(true); - turnLight(); + turnDark(); }); sun.addEventListener('click', () => { - document.documentElement.classList.remove('light'); - setPreference(false); - turnDark(); + turnLight(); }); |