css: refactoring & fixing - day 1
This commit is contained in:
@ -1,63 +0,0 @@
|
||||
document.addEventListener("DOMContentLoaded", function (event) {
|
||||
// Constants declaration
|
||||
const navBar = document.querySelector("#navbar");
|
||||
const searchBar = document.querySelector("#search-bar");
|
||||
const searchView = document.querySelector("#search-view");
|
||||
const searchInput = searchBar.querySelector("#search-input");
|
||||
const btnToggle = document.querySelector("#button-toggle");
|
||||
|
||||
|
||||
// Shortcuts
|
||||
window.addEventListener("keydown", function (e) {
|
||||
// CTRL + K triggers the search feature
|
||||
if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
openSearchBar();
|
||||
}
|
||||
|
||||
// Escape key
|
||||
else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) {
|
||||
closeSearchBar();
|
||||
}
|
||||
});
|
||||
|
||||
searchBar.querySelector("#close-search-icon").addEventListener("click", emptySearchBar);
|
||||
|
||||
function openSearchBar(e) {
|
||||
navBar.classList.add("search-mode");
|
||||
searchBar.querySelector("#search-input").focus();
|
||||
searchView.classList.add("search-mode");
|
||||
}
|
||||
|
||||
function closeSearchBar(e) {
|
||||
navBar.classList.remove("search-mode");
|
||||
searchView.classList.remove("search-mode");
|
||||
}
|
||||
|
||||
function emptySearchBar(e) {
|
||||
searchInput.value = '';
|
||||
openSearchBar();
|
||||
searchInput.focus;
|
||||
}
|
||||
|
||||
|
||||
// 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;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
btnToggle.addEventListener('click', e => {
|
||||
navBar.classList.toggle('open');
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
window.addEventListener('click', e => {
|
||||
navBar.classList.remove('open');
|
||||
});
|
||||
|
||||
|
||||
});
|
@ -1,33 +1,6 @@
|
||||
document.addEventListener('DOMContentLoaded', function (event) {
|
||||
const navBar = document.querySelector('#navbar');
|
||||
const btnToggle = document.querySelector('#button-toggle');
|
||||
const menuWrappers = Array.from(document.querySelectorAll('.menu-wrapper'));
|
||||
const rightMenus = Array.from(document.querySelectorAll('nav.jsRightMenu'));
|
||||
|
||||
if (!navBar || !btnToggle) return;
|
||||
|
||||
btnToggle.addEventListener('click', e => {
|
||||
navBar.classList.toggle('open');
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
window.addEventListener('click', e => {
|
||||
navBar.classList.remove('open');
|
||||
});
|
||||
|
||||
function resize() {
|
||||
setTimeout(() =>
|
||||
Array.from(document.querySelectorAll('.chat-view')).forEach(elm => {
|
||||
if (!elm.offsetParent) return;
|
||||
elm.style.setProperty('--pos-top', elm.offsetTop + 'px');
|
||||
}));
|
||||
}
|
||||
window.addEventListener('resize', resize);
|
||||
window.addEventListener('navigate', resize);
|
||||
window.addEventListener('popstate', resize);
|
||||
document.addEventListener('load', resize);
|
||||
document.addEventListener('WebComponentsReady', resize);
|
||||
resize();
|
||||
|
||||
// Toggle sub-menus
|
||||
menuWrappers.forEach(menuWrapper => {
|
||||
@ -40,9 +13,10 @@ document.addEventListener('DOMContentLoaded', function (event) {
|
||||
// Open/close menu on the right
|
||||
rightMenus.forEach(rightMenu => {
|
||||
const btnRightMenu = rightMenu.querySelector("li.jsOffsiteToggle");
|
||||
|
||||
|
||||
btnRightMenu.addEventListener('click', e => {
|
||||
rightMenu.classList.toggle('offsite-is-closed');
|
||||
})
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Reference in New Issue
Block a user