@@ -49,8 +49,12 @@ class AppSidebarNav2 extends Component {
4949
5050 _scrollBarRef = null ;
5151
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+ }
5458 e . currentTarget . parentElement . classList . toggle ( 'open' ) ;
5559 }
5660
@@ -71,7 +75,7 @@ class AppSidebarNav2 extends Component {
7175 }
7276
7377 getAttribs ( attributes ) {
74- return JSON . parse ( JSON . stringify ( attributes || { } ) ) ;
78+ return { ... attributes } ;
7579 }
7680
7781 // nav list
@@ -132,14 +136,21 @@ class AppSidebarNav2 extends Component {
132136 delete attributes . class ;
133137 delete attributes . className ;
134138 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 ) ;
136140 delete itemAttr . class ;
137141 delete itemAttr . className ;
142+ const NavLink = this . props . router . NavLink || RsNavLink ;
143+
138144 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 } />
141152 { item . name } { this . navBadge ( item . badge ) }
142- </ a >
153+ </ NavLink >
143154 < ul className = "nav-dropdown-items" >
144155 { this . navList ( item . children ) }
145156 </ ul >
0 commit comments