dealhub/resources/js/sidebar.js
2026-01-20 19:09:29 +05:30

34 lines
1019 B
JavaScript

const elements = {
closeBtn: document.getElementById('closeSidebarBtn'),
openBtn: document.getElementById('openSidebarBtn'),
wrapper: document.getElementById('sidebarWrapper'),
texts: document.querySelectorAll('.sidebar-text')
};
const SIDEBAR_STATE_KEY = 'sidebar';
const saveState = (state) => {
try {
localStorage.setItem(SIDEBAR_STATE_KEY, state);
} catch (e) {
console.error(e);
}
};
export const setSidebarState = (state) => {
const isClosed = state === 'closed';
elements.wrapper.classList.toggle('w-64', !isClosed);
elements.wrapper.classList.toggle('w-20', isClosed);
elements.closeBtn.classList.toggle('hidden', isClosed);
elements.openBtn.classList.toggle('hidden', !isClosed);
elements.texts.forEach(el => el.classList.toggle('opacity-0', isClosed));
saveState(state);
};
elements.closeBtn.addEventListener('click', () => setSidebarState('closed'));
elements.openBtn.addEventListener('click', () => setSidebarState('opened'));