users menu listing
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
const STORAGE_KEY = 'helpdesk.sidebar.width';
|
||||
const MIN_WIDTH = 220;
|
||||
const MAX_WIDTH = 420;
|
||||
|
||||
function initialiseShell() {
|
||||
const shell = document.querySelector('[data-hd-shell]');
|
||||
const sidebar = document.querySelector('[data-hd-sidebar]');
|
||||
const resizer = document.querySelector('[data-hd-sidebar-resizer]');
|
||||
if (!shell || !sidebar) return;
|
||||
|
||||
const stored = Number(localStorage.getItem(STORAGE_KEY));
|
||||
if (Number.isFinite(stored) && stored >= MIN_WIDTH && stored <= MAX_WIDTH) {
|
||||
document.documentElement.style.setProperty('--hd-sidebar-width', `${stored}px`);
|
||||
}
|
||||
|
||||
document.querySelectorAll('[data-hd-sidebar-toggle]').forEach((button) => {
|
||||
if (button.dataset.hdBound === '1') return;
|
||||
button.dataset.hdBound = '1';
|
||||
button.addEventListener('click', () => document.body.classList.toggle('hd-sidebar-open'));
|
||||
});
|
||||
|
||||
sidebar.querySelectorAll('a').forEach((link) => {
|
||||
link.addEventListener('click', () => document.body.classList.remove('hd-sidebar-open'));
|
||||
});
|
||||
|
||||
if (!resizer || resizer.dataset.hdBound === '1') return;
|
||||
resizer.dataset.hdBound = '1';
|
||||
|
||||
resizer.addEventListener('pointerdown', (event) => {
|
||||
if (window.matchMedia('(max-width: 1023px)').matches) return;
|
||||
event.preventDefault();
|
||||
resizer.setPointerCapture(event.pointerId);
|
||||
document.body.classList.add('hd-sidebar-resizing');
|
||||
|
||||
const move = (moveEvent) => {
|
||||
const width = Math.min(MAX_WIDTH, Math.max(MIN_WIDTH, moveEvent.clientX));
|
||||
document.documentElement.style.setProperty('--hd-sidebar-width', `${width}px`);
|
||||
};
|
||||
const finish = (upEvent) => {
|
||||
const value = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--hd-sidebar-width'), 10);
|
||||
if (Number.isFinite(value)) localStorage.setItem(STORAGE_KEY, String(value));
|
||||
document.body.classList.remove('hd-sidebar-resizing');
|
||||
resizer.releasePointerCapture?.(upEvent.pointerId);
|
||||
resizer.removeEventListener('pointermove', move);
|
||||
resizer.removeEventListener('pointerup', finish);
|
||||
resizer.removeEventListener('pointercancel', finish);
|
||||
};
|
||||
resizer.addEventListener('pointermove', move);
|
||||
resizer.addEventListener('pointerup', finish);
|
||||
resizer.addEventListener('pointercancel', finish);
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', initialiseShell);
|
||||
document.addEventListener('livewire:navigated', initialiseShell);
|
||||
initialiseShell();
|
||||
Reference in New Issue
Block a user