From 31e8d697a8fd073847394d9952c18e49c091da76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20W=C3=B6gi?= <789@webuhu.at> Date: Wed, 19 Oct 2022 15:28:57 +0200 Subject: [PATCH] Save sidebar state per session (#1619) Only restore close state. Sidebar will still auto close on window resize. --- assets/js/sidebar/sidebar-drawer.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/assets/js/sidebar/sidebar-drawer.js b/assets/js/sidebar/sidebar-drawer.js index 7fdc960f3..26b46cc6a 100644 --- a/assets/js/sidebar/sidebar-drawer.js +++ b/assets/js/sidebar/sidebar-drawer.js @@ -40,6 +40,12 @@ export function initialize () { } function setDefaultSidebarState () { + // check & set persistent session state + const persistentSessionState = sessionStorage.getItem('sidebar_state') + // set default for closed state only, so sidebar will still auto close on window resize + if (persistentSessionState === 'closed') return setClass(SIDEBAR_CLASS.closed) + + // else setClass(isScreenSmall() ? SIDEBAR_CLASS.closed : SIDEBAR_CLASS.opened) } @@ -98,6 +104,7 @@ function isSidebarOpen () { export function openSidebar () { clearTimeoutIfAny() setClass(SIDEBAR_CLASS.opening) + sessionStorage.setItem('sidebar_state', 'opened') return new Promise((resolve, reject) => { state.togglingTimeout = setTimeout(() => { @@ -115,6 +122,7 @@ export function openSidebar () { export function closeSidebar () { clearTimeoutIfAny() setClass(SIDEBAR_CLASS.closing) + sessionStorage.setItem('sidebar_state', 'closed') return new Promise((resolve, reject) => { state.togglingTimeout = setTimeout(() => {