Files
blog/src/components/core/BasicScripts.astro
2022-08-19 03:43:12 -04:00

43 lines
1.0 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 elem = document.querySelector(selector);
if (elem) {
elem.addEventListener(
event,
function () {
fn(elem);
},
false
);
}
}
window.onload = function () {
attachEvent("[data-aw-toggle-menu]", "click", function (elem) {
elem.classList.toggle("menu-opened");
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";
});
};
</script>