Skip to content

Commit f527cad

Browse files
Improve search bar navigation (#1827)
1 parent d3fbf9e commit f527cad

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

assets/css/autocomplete.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
top: 9px;
1717
left: 10%;
1818
transform: translateX(-50%);
19-
z-index: 250;
19+
z-index: 100;
2020
background-color: transparent;
2121
}
2222

assets/js/autocomplete/autocomplete-list.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { getSuggestions } from './suggestions'
22
import { isBlank, qs } from '../helpers'
33

44
export const AUTOCOMPLETE_CONTAINER_SELECTOR = '.autocomplete'
5+
export const AUTOCOMPLETE_SUGGESTION_LIST_SELECTOR = '.autocomplete-suggestions'
56
export const AUTOCOMPLETE_SUGGESTION_SELECTOR = '.autocomplete-suggestion'
67

78
const state = {
@@ -88,6 +89,9 @@ export function moveAutocompleteSelection (offset) {
8889

8990
if (elementToSelect) {
9091
elementToSelect.classList.add('selected')
92+
elementToSelect.scrollIntoView({ block: 'nearest' })
93+
} else {
94+
qs(AUTOCOMPLETE_SUGGESTION_LIST_SELECTOR).scrollTop = 0
9195
}
9296
}
9397

assets/js/search-bar.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,17 @@ function addEventListeners () {
4141
const searchInput = qs(SEARCH_INPUT_SELECTOR)
4242

4343
searchInput.addEventListener('keydown', event => {
44+
const macOS = isMacOS()
45+
4446
if (event.key === 'Escape') {
4547
clearSearch()
4648
searchInput.blur()
4749
} else if (event.key === 'Enter') {
4850
handleAutocompleteFormSubmission(event)
49-
} else if (event.key === 'ArrowUp') {
51+
} else if (event.key === 'ArrowUp' || (macOS && event.ctrlKey && event.key === 'p')) {
5052
moveAutocompleteSelection(-1)
5153
event.preventDefault()
52-
} else if (event.key === 'ArrowDown') {
54+
} else if (event.key === 'ArrowDown' || (macOS && event.ctrlKey && event.key === 'n')) {
5355
moveAutocompleteSelection(1)
5456
event.preventDefault()
5557
}
@@ -135,3 +137,7 @@ function hideAutocomplete () {
135137
document.body.classList.remove('search-focused')
136138
hideAutocompleteList()
137139
}
140+
141+
function isMacOS () {
142+
return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)
143+
}

lib/ex_doc/formatter/html/templates/sidebar_template.eex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,4 @@
8989
</div>
9090
</div>
9191
<div class="autocomplete">
92-
<div class="autocomplete-results">
93-
</div>
9492
</div>

0 commit comments

Comments
 (0)