Skip to content

Commit 1b2b775

Browse files
committed
Merge pull request react-bootstrap#1368 from egauci/master
[added] react-bootstrap#1320 allow NavItem class to be set
2 parents 6b7bf4e + 1e54893 commit 1b2b775

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/Tab.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ const Tab = React.createClass({
1515
*/
1616
onAnimateOutEnd: React.PropTypes.func,
1717
disabled: React.PropTypes.bool,
18-
title: React.PropTypes.node
18+
title: React.PropTypes.node,
19+
/**
20+
* tabClassName is used as className for the associated NavItem
21+
*/
22+
tabClassName: React.PropTypes.string
1923
},
2024

2125
getDefaultProps() {

src/Tabs.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ const Tabs = React.createClass({
271271
return null;
272272
}
273273

274-
let { eventKey, title, disabled, onKeyDown, tabIndex = 0 } = child.props;
274+
let { eventKey, title, disabled, onKeyDown, tabClassName, tabIndex = 0 } = child.props;
275275
let isActive = this.getActiveKey() === eventKey;
276276

277277
return (
@@ -282,7 +282,8 @@ const Tabs = React.createClass({
282282
onKeyDown={createChainedFunction(this.handleKeyDown, onKeyDown)}
283283
eventKey={eventKey}
284284
tabIndex={isActive ? tabIndex : -1}
285-
disabled={disabled }>
285+
disabled={disabled }
286+
className={tabClassName}>
286287
{title}
287288
</NavItem>
288289
);

test/TabsSpec.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,15 @@ describe('Tabs', () => {
8484
let instance = ReactTestUtils.renderIntoDocument(
8585
<Tabs activeKey={1}>
8686
<Tab title="Tab 1" className="custom" id="pane0id" eventKey={1}>Tab 1 content</Tab>
87-
<Tab title="Tab 2" eventKey={2}>Tab 2 content</Tab>
87+
<Tab title="Tab 2" tabClassName="tcustom" eventKey={2}>Tab 2 content</Tab>
8888
</Tabs>
8989
);
9090

9191
let panes = ReactTestUtils.scryRenderedComponentsWithType(instance, Tab);
92+
let navs = ReactTestUtils.scryRenderedComponentsWithType(instance, NavItem);
9293

9394
assert.ok(React.findDOMNode(panes[0]).className.match(/\bcustom\b/));
95+
assert.ok(React.findDOMNode(navs[1]).className.match(/\btcustom\b/));
9496
assert.equal(React.findDOMNode(panes[0]).id, 'pane0id');
9597
});
9698

0 commit comments

Comments
 (0)