@@ -77,6 +77,7 @@ const Sidebar = (($) => {
77
77
class Sidebar {
78
78
constructor ( element ) {
79
79
this . _element = element
80
+ this . ps = null
80
81
this . perfectScrollbar ( Event . INIT )
81
82
this . setActiveLink ( )
82
83
this . _addEventListeners ( )
@@ -92,47 +93,45 @@ const Sidebar = (($) => {
92
93
93
94
perfectScrollbar ( event ) {
94
95
if ( typeof PerfectScrollbar !== 'undefined' ) {
95
- let ps
96
-
97
96
if ( event === Event . INIT && ! document . body . classList . contains ( ClassName . SIDEBAR_MINIMIZED ) ) {
98
- ps = new PerfectScrollbar ( document . querySelector ( Selector . NAVIGATION_CONTAINER ) , {
99
- suppressScrollX : true
100
- } )
97
+ this . ps = this . makeScrollbar ( )
101
98
}
102
99
103
100
if ( event === Event . DESTROY ) {
104
- ps = new PerfectScrollbar ( document . querySelector ( Selector . NAVIGATION_CONTAINER ) , {
105
- suppressScrollX : true
106
- } )
107
- ps . destroy ( )
108
- ps = null
101
+ this . destroyScrollbar ( )
109
102
}
110
103
111
104
if ( event === Event . TOGGLE ) {
112
105
if ( document . body . classList . contains ( ClassName . SIDEBAR_MINIMIZED ) ) {
113
- ps = new PerfectScrollbar ( document . querySelector ( Selector . NAVIGATION_CONTAINER ) , {
114
- suppressScrollX : true
115
- } )
116
- ps . destroy ( )
117
- ps = null
106
+ this . destroyScrollbar ( )
118
107
} else {
119
- ps = new PerfectScrollbar ( document . querySelector ( Selector . NAVIGATION_CONTAINER ) , {
120
- suppressScrollX : true
121
- } )
108
+ this . ps = this . makeScrollbar ( )
122
109
}
123
110
}
124
111
125
- if ( event === Event . UPDATE ) {
112
+ if ( event === Event . UPDATE && ! document . body . classList . contains ( ClassName . SIDEBAR_MINIMIZED ) ) {
126
113
// ToDo: Add smooth transition
127
114
setTimeout ( ( ) => {
128
- ps = new PerfectScrollbar ( document . querySelector ( Selector . NAVIGATION_CONTAINER ) , {
129
- suppressScrollX : true
130
- } )
115
+ this . destroyScrollbar ( )
116
+ this . ps = this . makeScrollbar ( )
131
117
} , Default . transition )
132
118
}
133
119
}
134
120
}
135
121
122
+ makeScrollbar ( container = Selector . NAVIGATION_CONTAINER ) {
123
+ return new PerfectScrollbar ( document . querySelector ( container ) , {
124
+ suppressScrollX : true
125
+ } )
126
+ }
127
+
128
+ destroyScrollbar ( ) {
129
+ if ( this . ps ) {
130
+ this . ps . destroy ( )
131
+ this . ps = null
132
+ }
133
+ }
134
+
136
135
setActiveLink ( ) {
137
136
$ ( Selector . NAVIGATION ) . find ( Selector . NAV_LINK ) . each ( ( key , value ) => {
138
137
let link = value
0 commit comments