Correction dark mode : unification sur la clé localStorage 'theme'
Le script anti-flicker lisait 'dark_mode' alors que le toggle (DarkModeToggle.astro) écrivait dans 'theme', rendant la persistance du dark mode inopérante. Suppression du code dark mode mort dans main.js (showDay/showNight, listener #darkToggle, window.darkMode) qui référençait des éléments HTML supprimés du header.
This commit is contained in:
parent
86b13fb6b4
commit
24b63d4e9b
2 changed files with 1 additions and 93 deletions
|
|
@ -1,7 +1,3 @@
|
||||||
// Add your javascript here
|
|
||||||
|
|
||||||
window.darkMode = false;
|
|
||||||
|
|
||||||
const stickyClasses = ["fixed", "h-14"];
|
const stickyClasses = ["fixed", "h-14"];
|
||||||
const unstickyClasses = ["absolute", "h-20"];
|
const unstickyClasses = ["absolute", "h-20"];
|
||||||
const stickyClassesContainer = [
|
const stickyClassesContainer = [
|
||||||
|
|
@ -17,32 +13,12 @@ let headerElement = null;
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
headerElement = document.getElementById("header");
|
headerElement = document.getElementById("header");
|
||||||
|
|
||||||
if (
|
|
||||||
localStorage.getItem("dark_mode") &&
|
|
||||||
localStorage.getItem("dark_mode") === "true"
|
|
||||||
) {
|
|
||||||
window.darkMode = true;
|
|
||||||
showNight();
|
|
||||||
} else {
|
|
||||||
showDay();
|
|
||||||
}
|
|
||||||
stickyHeaderFuncionality();
|
stickyHeaderFuncionality();
|
||||||
applyMenuItemClasses();
|
applyMenuItemClasses();
|
||||||
evaluateHeaderPosition();
|
evaluateHeaderPosition();
|
||||||
mobileMenuFunctionality();
|
mobileMenuFunctionality();
|
||||||
});
|
});
|
||||||
|
|
||||||
// window.toggleDarkMode = function(){
|
|
||||||
// document.documentElement.classList.toggle('dark');
|
|
||||||
// if(document.documentElement.classList.contains('dark')){
|
|
||||||
// localStorage.setItem('dark_mode', true);
|
|
||||||
// window.darkMode = true;
|
|
||||||
// } else {
|
|
||||||
// window.darkMode = false;
|
|
||||||
// localStorage.setItem('dark_mode', false);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
window.stickyHeaderFuncionality = () => {
|
window.stickyHeaderFuncionality = () => {
|
||||||
window.addEventListener("scroll", () => {
|
window.addEventListener("scroll", () => {
|
||||||
evaluateHeaderPosition();
|
evaluateHeaderPosition();
|
||||||
|
|
@ -69,70 +45,6 @@ window.evaluateHeaderPosition = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document.getElementById("darkToggle").addEventListener("click", () => {
|
|
||||||
document.documentElement.classList.add("duration-300");
|
|
||||||
|
|
||||||
if (document.documentElement.classList.contains("dark")) {
|
|
||||||
localStorage.removeItem("dark_mode");
|
|
||||||
showDay(true);
|
|
||||||
} else {
|
|
||||||
localStorage.setItem("dark_mode", true);
|
|
||||||
showNight(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function showDay(animate) {
|
|
||||||
document.getElementById("sun").classList.remove("setting");
|
|
||||||
document.getElementById("moon").classList.remove("rising");
|
|
||||||
|
|
||||||
let timeout = 0;
|
|
||||||
|
|
||||||
if (animate) {
|
|
||||||
timeout = 500;
|
|
||||||
|
|
||||||
document.getElementById("moon").classList.add("setting");
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
document.getElementById("dayText").classList.remove("hidden");
|
|
||||||
document.getElementById("nightText").classList.add("hidden");
|
|
||||||
|
|
||||||
document.getElementById("moon").classList.add("hidden");
|
|
||||||
document.getElementById("sun").classList.remove("hidden");
|
|
||||||
|
|
||||||
if (animate) {
|
|
||||||
document.documentElement.classList.remove("dark");
|
|
||||||
document.getElementById("sun").classList.add("rising");
|
|
||||||
}
|
|
||||||
}, timeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
function showNight(animate) {
|
|
||||||
document.getElementById("moon").classList.remove("setting");
|
|
||||||
document.getElementById("sun").classList.remove("rising");
|
|
||||||
|
|
||||||
let timeout = 0;
|
|
||||||
|
|
||||||
if (animate) {
|
|
||||||
timeout = 500;
|
|
||||||
|
|
||||||
document.getElementById("sun").classList.add("setting");
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
document.getElementById("nightText").classList.remove("hidden");
|
|
||||||
document.getElementById("dayText").classList.add("hidden");
|
|
||||||
|
|
||||||
document.getElementById("sun").classList.add("hidden");
|
|
||||||
document.getElementById("moon").classList.remove("hidden");
|
|
||||||
|
|
||||||
if (animate) {
|
|
||||||
document.documentElement.classList.add("dark");
|
|
||||||
document.getElementById("moon").classList.add("rising");
|
|
||||||
}
|
|
||||||
}, timeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.applyMenuItemClasses = () => {
|
window.applyMenuItemClasses = () => {
|
||||||
const menuItems = document.querySelectorAll("#menu a");
|
const menuItems = document.querySelectorAll("#menu a");
|
||||||
for (let i = 0; i < menuItems.length; i++) {
|
for (let i = 0; i < menuItems.length; i++) {
|
||||||
|
|
@ -140,7 +52,6 @@ window.applyMenuItemClasses = () => {
|
||||||
menuItems[i].classList.add("text-neutral-900", "dark:text-white");
|
menuItems[i].classList.add("text-neutral-900", "dark:text-white");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//:class="{ 'text-neutral-900 dark:text-white': window.location.pathname == '{menu.url}', 'text-neutral-700 dark:text-neutral-400': window.location.pathname != '{menu.url}' }"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function mobileMenuFunctionality() {
|
function mobileMenuFunctionality() {
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,7 @@ const { title } = Astro.props;
|
||||||
<!-- Used to add dark mode right away, adding here prevents any flicker -->
|
<!-- Used to add dark mode right away, adding here prevents any flicker -->
|
||||||
<script is:inline>
|
<script is:inline>
|
||||||
if (typeof Storage !== 'undefined') {
|
if (typeof Storage !== 'undefined') {
|
||||||
if (
|
if (localStorage.getItem('theme') === 'dark') {
|
||||||
localStorage.getItem('dark_mode') &&
|
|
||||||
localStorage.getItem('dark_mode') == 'true'
|
|
||||||
) {
|
|
||||||
document.documentElement.classList.add('dark')
|
document.documentElement.classList.add('dark')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue