@@ -49,8 +49,12 @@ class AppSidebarNav2 extends Component {
49
49
50
50
_scrollBarRef = null ;
51
51
52
- handleClick ( e ) {
53
- e . preventDefault ( ) ;
52
+ handleClick ( e , item ) {
53
+ if ( item . attributes && typeof item . attributes . onClick === 'function' && ! this . isActiveRoute ( item . url , this . props ) ) {
54
+ item . attributes . onClick ( e , item )
55
+ } else {
56
+ e . preventDefault ( ) ;
57
+ }
54
58
e . currentTarget . parentElement . classList . toggle ( 'open' ) ;
55
59
}
56
60
@@ -71,7 +75,7 @@ class AppSidebarNav2 extends Component {
71
75
}
72
76
73
77
getAttribs ( attributes ) {
74
- return JSON . parse ( JSON . stringify ( attributes || { } ) ) ;
78
+ return { ... attributes } ;
75
79
}
76
80
77
81
// nav list
@@ -132,14 +136,21 @@ class AppSidebarNav2 extends Component {
132
136
delete attributes . class ;
133
137
delete attributes . className ;
134
138
const itemAttr = this . getAttribs ( item . itemAttr ) ;
135
- const liClasses = classNames ( this . activeRoute ( item . url , this . props ) , itemAttr . class , itemAttr . className )
139
+ const liClasses = classNames ( 'nav- item' , 'nav-dropdown' , itemAttr . class , itemAttr . className ) ;
136
140
delete itemAttr . class ;
137
141
delete itemAttr . className ;
142
+ const NavLink = this . props . router . NavLink || RsNavLink ;
143
+
138
144
return (
139
- < li key = { key } className = { liClasses } { ...itemAttr } >
140
- < a className = { classes } href = "#" onClick = { this . handleClick } { ...attributes } > < i className = { classIcon } />
145
+ < li key = { key } className = { classNames ( liClasses , { 'open' : this . isActiveRoute ( item . url , this . props ) } ) } { ...itemAttr } >
146
+ < NavLink activeClassName = 'open'
147
+ className = { classes }
148
+ to = { item . url || '' }
149
+ { ...attributes }
150
+ onClick = { ( e ) => this . handleClick ( e , item ) } >
151
+ < i className = { classIcon } />
141
152
{ item . name } { this . navBadge ( item . badge ) }
142
- </ a >
153
+ </ NavLink >
143
154
< ul className = "nav-dropdown-items" >
144
155
{ this . navList ( item . children ) }
145
156
</ ul >
0 commit comments