Skip to content

Commit dd4f391

Browse files
authored
Save sidebar state per session (#1606)
Means sidebar stays open or close if you navigate. For example using previous / next page navigation.
1 parent 7d400e5 commit dd4f391

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 persistenSessionState = sessionStorage.getItem('sidebar_state')
45+
if (persistenSessionState === 'opened') return setClass(SIDEBAR_CLASS.opened)
46+
if (persistenSessionState === '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)