@@ -29,7 +29,7 @@ export default class Scrollbar extends Component
2929 onScrollStop : PropTypes . func ,
3030
3131 tagName : PropTypes . string ,
32- className : PropTypes . string ,
32+ className : PropTypes . oneOfType ( [ PropTypes . string , PropTypes . array ] ) ,
3333
3434 renderWrapper : PropTypes . func ,
3535 renderContent : PropTypes . func ,
@@ -56,7 +56,6 @@ export default class Scrollbar extends Component
5656 gridless : false ,
5757
5858 tagName : "div" ,
59- className : "CustomScrollbar" ,
6059 renderWrapper : defaultElementRender . wrapper ,
6160 renderContent : defaultElementRender . content ,
6261 renderTrackVertical : defaultElementRender . trackVertical ,
@@ -628,14 +627,15 @@ export default class Scrollbar extends Component
628627 const {
629628 style, thumbSizeMin, defaultStyles, scrollDetectionThreshold, permanentScrollbars, permanentScrollbarVertical, permanentScrollbarHorizontal,
630629 contentSizeTrack, contentSizeTrackInterval, noScroll, scrollX, scrollY, gridless,
631- tagName, children, renderWrapper, renderContent, renderTrackVertical, renderTrackHorizontal, renderThumbVertical, renderThumbHorizontal,
630+ tagName, className , children, renderWrapper, renderContent, renderTrackVertical, renderTrackHorizontal, renderThumbVertical, renderThumbHorizontal,
632631 onUpdate, onScroll, onScrollStart, onScrollStop,
633632 ...props
634633 } = this . props ;
635634
636635 const browserScrollbarWidth = getScrollbarWidth ( ) ;
637636
638- const holderStyle = { ...style , ...( defaultStyles && ( gridless ? defaultElementStyles . holderGridless : defaultElementStyles . holder ) ) } ,
637+ const holderClassName = [ 'CustomScrollbar' ] ,
638+ holderStyle = { ...style , ...( defaultStyles && ( gridless ? defaultElementStyles . holderGridless : defaultElementStyles . holder ) ) } ,
639639 wrapperStyle = { ...( defaultStyles && ( gridless ? defaultElementStyles . wrapperGridless : defaultElementStyles . wrapper ) ) , position : "relative" , overflow : "hidden" } ,
640640 contentStyle = { ...defaultElementStyles . content , overflowX : "scroll" , overflowY : "scroll" , marginRight : - browserScrollbarWidth , marginBottom : - browserScrollbarWidth } ,
641641 trackVerticalStyle = { ...( defaultStyles && ( gridless ? defaultElementStyles . trackVerticalGridless : defaultElementStyles . trackVertical ) ) } ,
@@ -686,9 +686,17 @@ export default class Scrollbar extends Component
686686 trackHorizontalStyle . display = "none" ;
687687 }
688688
689+ if ( className ) {
690+ if ( typeof className === 'string' ) {
691+ holderClassName . push ( className ) ;
692+ } else {
693+ holderClassName . concat ( className ) ;
694+ }
695+ }
696+
689697 return createElement (
690698 tagName ,
691- { ...props , style : holderStyle , ref : ( ref ) => { this . holder = ref ; } } ,
699+ { ...props , className : holderClassName . join ( ' ' ) , style : holderStyle , ref : ( ref ) => { this . holder = ref ; } } ,
692700 [
693701 renderWrapper ( {
694702 key : "wrapper" ,
0 commit comments