Skip to content

Commit d85ee6a

Browse files
committed
Ability to add extra className fro holder;
1 parent 9dbdaeb commit d85ee6a

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

examples/components/CustomStyleScrollbars/App.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Scrollbar/index.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)