Files
campus-web/src/components/core/BasicScripts.astro
2022-08-19 13:19:15 -04:00

55 lines
1.4 KiB
Plaintext

---
const {} = Astro.props;
---
<script is:inline>
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);
console.log(matches);
if (matches && matches.length) {
console.log("Hello");
matches.forEach((elem) => {
console.log(elem);
elem.addEventListener(
event,
function () {
fn(elem);
},
false
);
});
}
}
window.onload = function () {
attachEvent("[data-aw-toggle-menu]", "click", function (elem) {
elem.classList.toggle("expanded");
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.getElementById("menu").classList.add("hidden");
};
</script>