docbrown/app/assets/javascripts/initializers/initializeDrawerSliders.js
rhymes f9506affb5
Use faster JS selection methods (#11409)
* Add JS tips section to frontend documentation

* Replace document.getElementsByTagName('body') with document.body

* Replace querySelectorAll with faster selecting methods where appropriate

* Replace querySelector with faster selecting methods where appropriate

* Fix typo

* Fix forEach and getElementsByClassName

* Change querySelector* to faster methods in erb files

* Change querySelector* to faster methods in ruby files

* Fix runkit tag

* Various fixes

* Update app/assets/javascripts/initializers/initializeEllipsisMenu.js

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>

* Update app/assets/javascripts/utilities/slideSidebar.js

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>

* Commenting out flaky spec

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
2020-11-16 17:35:50 +01:00

51 lines
1.6 KiB
JavaScript

/* global swipeState: true, InstantClick, initializeSwipeGestures, slideSidebar */
function initializeDrawerSliders() {
if (!initializeSwipeGestures.called) {
swipeState = 'middle';
initializeSwipeGestures();
}
if (document.getElementById('on-page-nav-controls')) {
if (document.getElementById('sidebar-bg-left')) {
document.getElementById('sidebar-bg-left').onclick = (_event) => {
swipeState = 'middle';
slideSidebar('left', 'outOfView');
};
}
if (document.getElementById('sidebar-bg-right')) {
document.getElementById('sidebar-bg-right').onclick = (_event) => {
swipeState = 'middle';
slideSidebar('right', 'outOfView');
};
}
if (document.getElementById('on-page-nav-butt-left')) {
document.getElementById('on-page-nav-butt-left').onclick = (_event) => {
swipeState = 'left';
slideSidebar('left', 'intoView');
};
}
if (document.getElementById('on-page-nav-butt-right')) {
document.getElementById('on-page-nav-butt-right').onclick = (_event) => {
swipeState = 'right'; // eslint-disable-line no-global-assign
slideSidebar('right', 'intoView');
};
}
InstantClick.on('change', (_event) => {
document.body.classList.remove('modal-open');
slideSidebar('right', 'outOfView');
slideSidebar('left', 'outOfView');
});
}
const feedFilterSelect = document.getElementById('feed-filter-select');
if (feedFilterSelect) {
feedFilterSelect.addEventListener('change', (event) => {
const url = event.target.value;
InstantClick.preload(url);
InstantClick.display(url);
});
}
}