glitchier-soc/app/javascript/flavours/glitch/packs/settings.js

43 lines
1.1 KiB
JavaScript
Raw Normal View History

import 'packs/public-path';
2023-10-24 21:23:31 +03:00
import Rails from '@rails/ujs';
import loadKeyboardExtensions from 'flavours/glitch/load_keyboard_extensions';
import { loadPolyfills } from 'flavours/glitch/polyfills';
import 'cocoon-js-vanilla';
2019-09-30 17:38:12 +03:00
function main() {
const toggleSidebar = () => {
const sidebar = document.querySelector('.sidebar ul');
const toggleButton = document.querySelector('.sidebar__toggle__icon');
if (sidebar.classList.contains('visible')) {
document.body.style.overflow = null;
toggleButton.setAttribute('aria-expanded', 'false');
} else {
document.body.style.overflow = 'hidden';
toggleButton.setAttribute('aria-expanded', 'true');
}
toggleButton.classList.toggle('active');
sidebar.classList.toggle('visible');
};
2023-10-24 21:23:31 +03:00
Rails.delegate(document, '.sidebar__toggle__icon', 'click', () => {
toggleSidebar();
});
2023-10-24 21:23:31 +03:00
Rails.delegate(document, '.sidebar__toggle__icon', 'keydown', e => {
if (e.key === ' ' || e.key === 'Enter') {
e.preventDefault();
toggleSidebar();
}
2019-09-30 17:38:12 +03:00
});
}
loadPolyfills()
.then(main)
.then(loadKeyboardExtensions)
.catch(error => {
console.error(error);
});