-
-
Notifications
You must be signed in to change notification settings - Fork 266
/
Copy pathplugin-fix-search-results.js
35 lines (32 loc) · 1.36 KB
/
plugin-fix-search-results.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Plugin
// =============================================================================
// Toggles "show" class on search wrapper element when results are displayed,
// allowing sidebar navigation visibility to be toggle on/off
export default function(hook, vm) {
hook.ready(function() {
const searchElm = document.querySelector('.sidebar .search');
const searchInputElm = document.querySelector('.sidebar .search input[type=search]');
const searchClearElm = document.querySelector('.sidebar .search .clear-button');
if (searchElm) {
// Remove "show" class on clear button click
searchElm.addEventListener('click', function(evt) {
const isClearButton = evt.target === searchClearElm || searchClearElm.contains(evt.target);
if (isClearButton) {
searchElm.classList.remove('show');
searchInputElm.focus();
}
});
}
if (searchInputElm) {
// Toggle "show" class on input
searchInputElm.addEventListener('input', function(evt) {
if (searchInputElm.value.length) {
searchElm.classList.add('show');
}
else {
searchElm.classList.remove('show');
}
});
}
});
}