Skip to content

Commit 31e8d69

Browse files
authored
Save sidebar state per session (#1619)
Only restore close state. Sidebar will still auto close on window resize.
1 parent 787b3ad commit 31e8d69

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

assets/js/sidebar/sidebar-drawer.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ export function initialize () {
4040
}
4141

4242
function setDefaultSidebarState () {
43+
// check & set persistent session state
44+
const persistentSessionState = sessionStorage.getItem('sidebar_state')
45+
// set default for closed state only, so sidebar will still auto close on window resize
46+
if (persistentSessionState === 'closed') return setClass(SIDEBAR_CLASS.closed)
47+
48+
// else
4349
setClass(isScreenSmall() ? SIDEBAR_CLASS.closed : SIDEBAR_CLASS.opened)
4450
}
4551

@@ -98,6 +104,7 @@ function isSidebarOpen () {
98104
export function openSidebar () {
99105
clearTimeoutIfAny()
100106
setClass(SIDEBAR_CLASS.opening)
107+
sessionStorage.setItem('sidebar_state', 'opened')
101108

102109
return new Promise((resolve, reject) => {
103110
state.togglingTimeout = setTimeout(() => {
@@ -115,6 +122,7 @@ export function openSidebar () {
115122
export function closeSidebar () {
116123
clearTimeoutIfAny()
117124
setClass(SIDEBAR_CLASS.closing)
125+
sessionStorage.setItem('sidebar_state', 'closed')
118126

119127
return new Promise((resolve, reject) => {
120128
state.togglingTimeout = setTimeout(() => {

0 commit comments

Comments
 (0)