Files
blog/src/components/core/BasicScripts.astro
prototypa e95d47b5d3 Fix bugs
2022-09-04 01:44:30 -04:00

50 lines
1.5 KiB
Plaintext

---
const {} = Astro.props;
---
<script is:inline>
// Set "light" theme as default
// if (!localStorage.theme) {
// localStorage.theme = "light";
// }
if (
localStorage.theme === "dark" ||
(!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)
) {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
function attachEvent(selector, event, fn) {
const matches = document.querySelectorAll(selector);
if (matches && matches.length) {
matches.forEach((elem) => {
elem.addEventListener(event, () => fn(elem), false);
});
}
}
window.onload = function () {
attachEvent("[data-aw-toggle-menu]", "click", function (elem) {
elem.classList.toggle("expanded");
document.body.classList.toggle("overflow-hidden");
document.getElementById("menu")?.classList.toggle("hidden");
});
attachEvent("[data-aw-toggle-color-scheme]", "click", function (elem) {
document.documentElement.classList.toggle("dark");
localStorage.theme = document.documentElement.classList.contains("dark") ? "dark" : "light";
});
};
window.onpageshow = function () {
const elem = document.querySelector("[data-aw-toggle-menu]");
if (elem) {
elem.classList.remove("expanded");
}
document.body.classList.remove("overflow-hidden");
document.getElementById("menu")?.classList.add("hidden");
};
</script>