@@ -47,8 +47,8 @@ class AppSidebarNav2 extends Component {
4747
4848 activeRoute ( routeName , props ) {
4949 return props . location . pathname . indexOf ( routeName ) > - 1
50- ? 'nav-item nav-dropdown open'
51- : 'nav-item nav-dropdown' ;
50+ ? 'nav-item nav-dropdown open'
51+ : 'nav-item nav-dropdown' ;
5252 }
5353
5454 hideMobile ( ) {
@@ -65,11 +65,11 @@ class AppSidebarNav2 extends Component {
6565 // nav type
6666 navType ( item , idx ) {
6767 return (
68- item . title ? this . navTitle ( item , idx )
69- : item . divider ? this . navDivider ( item , idx )
70- : item . label ? this . navLabel ( item , idx )
71- : item . children ? this . navDropdown ( item , idx )
72- : this . navItem ( item , idx )
68+ item . title ? this . navTitle ( item , idx )
69+ : item . divider ? this . navDivider ( item , idx )
70+ : item . label ? this . navLabel ( item , idx )
71+ : item . children ? this . navDropdown ( item , idx )
72+ : this . navItem ( item , idx )
7373 ) ;
7474 }
7575
@@ -96,27 +96,32 @@ class AppSidebarNav2 extends Component {
9696 item : classNames ( 'hidden-cn' , item . class ) ,
9797 link : classNames ( 'nav-label' , item . class ? item . class : '' ) ,
9898 icon : classNames (
99- 'nav-icon' ,
100- ! item . icon ? 'fa fa-circle' : item . icon ,
101- item . label . variant ? `text-${ item . label . variant } ` : '' ,
102- item . label . class ? item . label . class : '' ,
99+ 'nav-icon' ,
100+ ! item . icon ? 'fa fa-circle' : item . icon ,
101+ item . label . variant ? `text-${ item . label . variant } ` : '' ,
102+ item . label . class ? item . label . class : '' ,
103103 )
104104 } ;
105105 return (
106- this . navLink ( item , key , classes )
106+ this . navLink ( item , key , classes )
107107 ) ;
108108 }
109109
110110 // nav dropdown
111111 navDropdown ( item , key ) {
112112 const classIcon = classNames ( 'nav-icon' , item . icon ) ;
113+ const attributes = JSON . parse ( JSON . stringify ( item . attributes || { } ) ) ;
114+ const classes = classNames ( 'nav-link' , 'nav-dropdown-toggle' , item . class , attributes . class ) ;
115+ delete attributes . class ;
113116 return (
114- < li key = { key } className = { this . activeRoute ( item . url , this . props ) } >
115- < a className = "nav-link nav-dropdown-toggle" href = "#" onClick = { this . handleClick } > < i className = { classIcon } /> { item . name } { this . navBadge ( item . badge ) } </ a >
116- < ul className = "nav-dropdown-items" >
117- { this . navList ( item . children ) }
118- </ ul >
119- </ li > ) ;
117+ < li key = { key } className = { this . activeRoute ( item . url , this . props ) } >
118+ < a className = { classes } href = "#" onClick = { this . handleClick } { ...attributes } > < i className = { classIcon } />
119+ { item . name } { this . navBadge ( item . badge ) }
120+ </ a >
121+ < ul className = "nav-dropdown-items" >
122+ { this . navList ( item . children ) }
123+ </ ul >
124+ </ li > ) ;
120125 }
121126
122127 // nav item with nav link
@@ -127,7 +132,7 @@ class AppSidebarNav2 extends Component {
127132 icon : classNames ( 'nav-icon' , item . icon )
128133 } ;
129134 return (
130- this . navLink ( item , key , classes )
135+ this . navLink ( item , key , classes )
131136 ) ;
132137 }
133138
@@ -139,21 +144,21 @@ class AppSidebarNav2 extends Component {
139144 const attributes = item . attributes || { }
140145 const NavLink = this . props . router . NavLink || RsNavLink
141146 return (
142- < NavItem key = { key } className = { classes . item } >
143- { attributes . disabled ?
144- < RsNavLink href = { "" } className = { classes . link } { ...attributes } >
145- { itemIcon } { item . name } { itemBadge }
146- </ RsNavLink >
147- :
148- this . isExternal ( url ) || NavLink === RsNavLink ?
149- < RsNavLink href = { url } className = { classes . link } active { ...attributes } >
150- { itemIcon } { item . name } { itemBadge }
151- </ RsNavLink > :
152- < NavLink to = { url } className = { classes . link } activeClassName = "active" onClick = { this . hideMobile } { ...attributes } >
153- { itemIcon } { item . name } { itemBadge }
154- </ NavLink >
155- }
156- </ NavItem >
147+ < NavItem key = { key } className = { classes . item } >
148+ { attributes . disabled ?
149+ < RsNavLink href = { '' } className = { classes . link } { ...attributes } >
150+ { itemIcon } { item . name } { itemBadge }
151+ </ RsNavLink >
152+ :
153+ this . isExternal ( url ) || NavLink === RsNavLink ?
154+ < RsNavLink href = { url } className = { classes . link } active { ...attributes } >
155+ { itemIcon } { item . name } { itemBadge }
156+ </ RsNavLink > :
157+ < NavLink to = { url } className = { classes . link } activeClassName = "active" onClick = { this . hideMobile } { ...attributes } >
158+ { itemIcon } { item . name } { itemBadge }
159+ </ NavLink >
160+ }
161+ </ NavItem >
157162 ) ;
158163 }
159164
@@ -162,7 +167,7 @@ class AppSidebarNav2 extends Component {
162167 if ( badge ) {
163168 const classes = classNames ( badge . class ) ;
164169 return (
165- < Badge className = { classes } color = { badge . variant } > { badge . text } </ Badge >
170+ < Badge className = { classes } color = { badge . variant } > { badge . text } </ Badge >
166171 ) ;
167172 }
168173 return null ;
@@ -184,15 +189,15 @@ class AppSidebarNav2 extends Component {
184189 const navClasses = classNames ( className , 'sidebar-nav' ) ;
185190
186191 // ToDo: find better rtl fix
187- const isRtl = getComputedStyle ( document . querySelector ( 'html' ) ) . direction === 'rtl'
192+ const isRtl = getComputedStyle ( document . documentElement ) . direction === 'rtl'
188193
189194 // sidebar-nav root
190195 return (
191- < PerfectScrollbar className = { navClasses } { ...attributes } options = { { suppressScrollX : ! isRtl } } >
192- < Nav >
193- { children || this . navList ( navConfig . items ) }
194- </ Nav >
195- </ PerfectScrollbar >
196+ < PerfectScrollbar className = { navClasses } { ...attributes } options = { { suppressScrollX : ! isRtl } } >
197+ < Nav >
198+ { children || this . navList ( navConfig . items ) }
199+ </ Nav >
200+ </ PerfectScrollbar >
196201 ) ;
197202 }
198203}
0 commit comments