@@ -130,7 +130,7 @@ class AppSidebarNav2 extends Component {
130130
131131 // nav dropdown
132132 navDropdown ( item , key ) {
133- const classIcon = classNames ( 'nav-icon' , item . icon ) ;
133+ const itemIcon = this . navIcon ( item )
134134 const attributes = this . getAttribs ( item . attributes ) ;
135135 const classes = classNames ( 'nav-link' , 'nav-dropdown-toggle' , item . class , attributes . class , attributes . className ) ;
136136 delete attributes . class ;
@@ -148,8 +148,7 @@ class AppSidebarNav2 extends Component {
148148 to = { item . url || '' }
149149 { ...attributes }
150150 onClick = { ( e ) => this . handleClick ( e , item ) } >
151- < i className = { classIcon } />
152- { item . name } { this . navBadge ( item . badge ) }
151+ { itemIcon } { item . name } { this . navBadge ( item . badge ) }
153152 </ NavLink >
154153 < ul className = "nav-dropdown-items" >
155154 { this . navList ( item . children ) }
@@ -169,11 +168,26 @@ class AppSidebarNav2 extends Component {
169168 ) ;
170169 }
171170
171+ navIcon ( item ) {
172+ const icon = item . icon ;
173+ const iconObject = ( typeof icon === 'object' && ( icon !== null ) ) ? { iconClass : icon . class , iconClassName : icon . className , ...icon } : { iconClass : icon } ;
174+ const { iconClass, iconClassName, innerText, img, attributes} = iconObject ;
175+ const iconAttr = { ...attributes } ;
176+ delete iconAttr . class ;
177+ delete iconAttr . className ;
178+ delete iconAttr . img ;
179+ const iconImg = img && img . src ? img : null ;
180+ const iconInner = innerText || null ;
181+ const classIcon = classNames ( 'nav-icon' , iconClass , iconClassName ) ;
182+ const iconComponent = iconImg ? < img { ...iconAttr } className = { classIcon } src = { iconImg . src } /> : < i { ...iconAttr } className = { classIcon } > { iconInner } </ i >
183+ return ( iconComponent )
184+ }
185+
172186 // nav link
173187 navLink ( item , key , classes ) {
174188 const ref = React . createRef ( ) ;
175189 const url = item . url || '' ;
176- const itemIcon = < i className = { classes . icon } />
190+ const itemIcon = this . navIcon ( item )
177191 const itemBadge = this . navBadge ( item . badge )
178192 const attributes = this . getAttribs ( item . attributes )
179193 classes . link = classNames ( classes . link , attributes . class , attributes . className )
0 commit comments