theme changes
This commit is contained in:
@@ -177,6 +177,62 @@
|
||||
desktopQuery.addEventListener("change", handleDesktop);
|
||||
}
|
||||
|
||||
const searchToggle = document.querySelector(".header-search__toggle");
|
||||
const searchPanel = document.querySelector(".header-search__panel");
|
||||
|
||||
if (searchToggle && searchPanel) {
|
||||
const searchClose = searchPanel.querySelector(".header-search__close");
|
||||
const searchField = searchPanel.querySelector(".search-form__field, .search-field");
|
||||
|
||||
const closeSearch = (restoreFocus) => {
|
||||
searchToggle.setAttribute("aria-expanded", "false");
|
||||
searchPanel.hidden = true;
|
||||
|
||||
if (restoreFocus) {
|
||||
searchToggle.focus();
|
||||
}
|
||||
};
|
||||
|
||||
const openSearch = () => {
|
||||
searchToggle.setAttribute("aria-expanded", "true");
|
||||
searchPanel.hidden = false;
|
||||
|
||||
if (searchField) {
|
||||
window.requestAnimationFrame(() => searchField.focus());
|
||||
}
|
||||
};
|
||||
|
||||
searchToggle.addEventListener("click", function () {
|
||||
if (searchToggle.getAttribute("aria-expanded") === "true") {
|
||||
closeSearch(false);
|
||||
} else {
|
||||
openSearch();
|
||||
}
|
||||
});
|
||||
|
||||
if (searchClose) {
|
||||
searchClose.addEventListener("click", function () {
|
||||
closeSearch(true);
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener("click", function (event) {
|
||||
if (searchToggle.getAttribute("aria-expanded") !== "true") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!event.target.closest(".header-search")) {
|
||||
closeSearch(false);
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("keydown", function (event) {
|
||||
if (event.key === "Escape" && searchToggle.getAttribute("aria-expanded") === "true") {
|
||||
closeSearch(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (window.location.hash.length > 1) {
|
||||
const hashId = decodeURIComponent(window.location.hash.slice(1));
|
||||
const hashTarget = document.getElementById(hashId);
|
||||
|
||||
Reference in New Issue
Block a user