hubl/src/js/hd-app.js

62 lines
1.7 KiB
JavaScript
Raw Normal View History

2018-05-13 03:06:10 +00:00
document.addEventListener("DOMContentLoaded", function(event) {
// Constants declaration
2018-05-14 17:20:00 +00:00
const navBar = document.querySelector("#navbar");
2018-09-09 11:51:56 +00:00
const searchBar = document.querySelector("#search-bar");
2018-05-14 17:20:00 +00:00
const searchView = document.querySelector("#search-view");
const searchInput = searchBar.querySelector("#search-input");
2018-09-11 23:34:13 +00:00
const btnToggle = navBar.querySelector(".btn-toggle");
2018-05-13 03:06:10 +00:00
// Shortcuts
2018-09-09 11:51:56 +00:00
window.addEventListener("keydown", function(e) {
2018-05-13 03:06:10 +00:00
// CTRL + K triggers the search feature
if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) {
e.preventDefault();
e.stopPropagation();
2018-05-14 19:16:04 +00:00
openSearchBar();
2018-05-13 03:06:10 +00:00
}
2018-05-15 01:54:34 +00:00
// Escape key
2018-05-13 03:06:10 +00:00
else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) {
2018-05-14 19:16:04 +00:00
closeSearchBar();
2018-05-13 03:06:10 +00:00
}
});
2018-09-09 11:51:56 +00:00
searchBar.querySelector("#close-search-icon").addEventListener("click", emptySearchBar);
2018-05-13 03:06:10 +00:00
function openSearchBar(e) {
2018-05-13 03:06:10 +00:00
navBar.classList.add("search-mode");
searchBar.querySelector("#search-input").focus();
searchView.classList.add("search-mode");
}
2018-09-09 11:51:56 +00:00
function closeSearchBar(e) {
navBar.classList.remove("search-mode");
searchView.classList.remove("search-mode");
}
2018-09-09 11:51:56 +00:00
function emptySearchBar(e) {
searchInput.value = '';
openSearchBar();
searchInput.focus;
}
2018-05-14 17:20:00 +00:00
// Synchronizes the search input with the <ldp-form>s
searchInput.addEventListener("keyup", (e) => {
searchView.querySelectorAll("ldp-form input[type=text]").forEach((el) => {
el.value = searchInput.value;
});
});
2018-09-11 23:34:13 +00:00
btnToggle.addEventListener('click', e => {
navBar.classList.toggle('open');
e.stopPropagation();
});
window.addEventListener('click', e=>{
navBar.classList.remove('open');
});
2018-05-13 03:06:10 +00:00
});