| | |
| | | const container = searchElement.querySelector(".search-container") as HTMLElement |
| | | if (!container) return |
| | | |
| | | const sidebar = container.closest(".sidebar") as HTMLElement |
| | | if (!sidebar) return |
| | | const sidebar = container.closest(".sidebar") as HTMLElement | null |
| | | |
| | | const searchButton = searchElement.querySelector(".search-button") as HTMLButtonElement |
| | | if (!searchButton) return |
| | |
| | | function hideSearch() { |
| | | container.classList.remove("active") |
| | | searchBar.value = "" // clear the input when we dismiss the search |
| | | sidebar.style.zIndex = "" |
| | | if (sidebar) sidebar.style.zIndex = "" |
| | | removeAllChildren(results) |
| | | if (preview) { |
| | | removeAllChildren(preview) |
| | |
| | | |
| | | function showSearch(searchTypeNew: SearchType) { |
| | | searchType = searchTypeNew |
| | | sidebar.style.zIndex = "1" |
| | | if (sidebar) sidebar.style.zIndex = "1" |
| | | container.classList.add("active") |
| | | searchBar.focus() |
| | | } |
| | |
| | | |
| | | // If search is active, then we will render the first result and display accordingly |
| | | if (!container.classList.contains("active")) return |
| | | if (e.key === "Enter") { |
| | | if (e.key === "Enter" && !e.isComposing) { |
| | | // If result has focus, navigate to that one, otherwise pick first result |
| | | if (results.contains(document.activeElement)) { |
| | | const active = document.activeElement as HTMLInputElement |
| | |
| | | itemTile.classList.add("result-card") |
| | | itemTile.id = slug |
| | | itemTile.href = resolveUrl(slug).toString() |
| | | itemTile.innerHTML = `<h3>${title}</h3>${htmlTags}${ |
| | | enablePreview && window.innerWidth > 600 ? "" : `<p>${content}</p>` |
| | | }` |
| | | itemTile.innerHTML = ` |
| | | <h3 class="card-title">${title}</h3> |
| | | ${htmlTags} |
| | | <p class="card-description">${content}</p> |
| | | ` |
| | | itemTile.addEventListener("click", (event) => { |
| | | if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return |
| | | hideSearch() |