fix ports
This commit is contained in:
77
apps/server/internal/httpserver/static/mobile.js
Normal file
77
apps/server/internal/httpserver/static/mobile.js
Normal file
@@ -0,0 +1,77 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const backdrop = document.querySelector('[data-mobile-drawer-backdrop]');
|
||||
const pickerDrawer = document.querySelector('[data-picker-drawer]');
|
||||
const metaDrawer = document.querySelector('[data-meta-drawer]');
|
||||
const commentsAside = document.querySelector('[data-comments-aside]');
|
||||
const pickerToggle = document.querySelector('[data-toggle-picker]');
|
||||
const metaToggle = document.querySelector('[data-toggle-meta]');
|
||||
const pickerClose = document.querySelector('[data-close-picker]');
|
||||
const metaClose = document.querySelector('[data-close-meta]');
|
||||
|
||||
function anyDrawerOpen() {
|
||||
return Boolean(
|
||||
pickerDrawer?.classList.contains('is-open') ||
|
||||
metaDrawer?.classList.contains('is-open') ||
|
||||
commentsAside?.classList.contains('is-open')
|
||||
);
|
||||
}
|
||||
|
||||
function updateBackdrop() {
|
||||
document.body.classList.toggle('drawer-open', anyDrawerOpen());
|
||||
}
|
||||
|
||||
function setPickerOpen(open) {
|
||||
if (!pickerDrawer) return;
|
||||
pickerDrawer.classList.toggle('is-open', open);
|
||||
if (pickerToggle) pickerToggle.setAttribute('aria-expanded', open ? 'true' : 'false');
|
||||
updateBackdrop();
|
||||
}
|
||||
|
||||
function setMetaOpen(open) {
|
||||
if (!metaDrawer) return;
|
||||
metaDrawer.classList.toggle('is-open', open);
|
||||
if (metaToggle) metaToggle.setAttribute('aria-expanded', open ? 'true' : 'false');
|
||||
updateBackdrop();
|
||||
}
|
||||
|
||||
function closeAllDrawers() {
|
||||
setPickerOpen(false);
|
||||
setMetaOpen(false);
|
||||
if (commentsAside) {
|
||||
commentsAside.classList.remove('is-open');
|
||||
const toggle = document.querySelector('[data-toggle-comments]');
|
||||
if (toggle) toggle.setAttribute('aria-expanded', 'false');
|
||||
}
|
||||
updateBackdrop();
|
||||
}
|
||||
|
||||
if (pickerToggle) {
|
||||
pickerToggle.addEventListener('click', () => {
|
||||
const willOpen = !pickerDrawer?.classList.contains('is-open');
|
||||
closeAllDrawers();
|
||||
setPickerOpen(willOpen);
|
||||
});
|
||||
}
|
||||
|
||||
if (metaToggle) {
|
||||
metaToggle.addEventListener('click', () => {
|
||||
const willOpen = !metaDrawer?.classList.contains('is-open');
|
||||
closeAllDrawers();
|
||||
setMetaOpen(willOpen);
|
||||
});
|
||||
}
|
||||
|
||||
if (pickerClose) pickerClose.addEventListener('click', () => setPickerOpen(false));
|
||||
if (metaClose) metaClose.addEventListener('click', () => setMetaOpen(false));
|
||||
|
||||
if (backdrop) {
|
||||
backdrop.addEventListener('click', closeAllDrawers);
|
||||
}
|
||||
|
||||
// Close drawers on Escape key
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Escape') closeAllDrawers();
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user