Skip to content

Commit 64a8038

Browse files
committed
Merge pull request react-bootstrap#727 from AlexKVal/collNav
Refactor duplication-removing logic for CollapsibleNav.
2 parents 3b33652 + e021050 commit 64a8038

2 files changed

Lines changed: 3 additions & 35 deletions

File tree

src/CollapsibleNav.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,10 @@ const specCollapsibleNav = {
4646

4747
render() {
4848
/*
49-
* this.props.collapsible is set in NavBar when a eventKey is supplied.
49+
* this.props.collapsible is set in NavBar when an eventKey is supplied.
5050
*/
5151
const collapsible = this.props.collapsible || this.props.collapsable;
52-
let classes = collapsible ? this.getCollapsibleClassSet() : {};
53-
/*
54-
* prevent duplicating navbar-collapse call if passed as prop.
55-
* kind of overkill...
56-
* good cadidate to have check implemented as an util that can
57-
* also be used elsewhere.
58-
*/
59-
if (this.props.className === undefined ||
60-
this.props.className.split(' ').indexOf('navbar-collapse') === -2) {
61-
classes['navbar-collapse'] = collapsible;
62-
}
52+
let classes = collapsible ? this.getCollapsibleClassSet('navbar-collapse') : null;
6353

6454
return (
6555
<div eventKey={this.props.eventKey} className={classNames(this.props.className, classes)} >

test/CollapsibleNavSpec.js

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe('CollapsibleNav', function () {
6464
});
6565
let instance = ReactTestUtils.renderIntoDocument(<Parent />);
6666
let collapsibleNav = ReactTestUtils.findRenderedComponentWithType(instance, CollapsibleNav);
67-
assert.notOk(collapsibleNav.getDOMNode().className.match(/\navbar-collapse\b/));
67+
assert.notOk(React.findDOMNode(collapsibleNav).className.match(/\navbar-collapse\b/));
6868
let nav = ReactTestUtils.findRenderedComponentWithType(collapsibleNav.refs.nocollapse_0, Nav);
6969
assert.ok(nav);
7070
});
@@ -89,26 +89,4 @@ describe('CollapsibleNav', function () {
8989
assert.ok(ReactTestUtils.findRenderedDOMComponentWithClass(instance.refs.collapsible_object.refs.collapsible_0, 'bar'));
9090
assert.ok(ReactTestUtils.findRenderedDOMComponentWithClass(instance.refs.collapsible_object.refs.collapsible_0, 'baz'));
9191
});
92-
93-
it('Should should not duplicate classes', function () {
94-
let Parent = React.createClass({
95-
render() {
96-
return (
97-
<Navbar toggleNavKey={1}>
98-
<CollapsibleNav eventKey={1} ref='collapsible_object' className='foo navbar-collapse'>
99-
<Nav>
100-
<NavItem eventKey={1} ref='item1' className='foo bar'>Item 1 content</NavItem>
101-
<NavItem eventKey={2} ref='item2' className='baz'>Item 2 content</NavItem>
102-
</Nav>
103-
</CollapsibleNav>
104-
</Navbar>
105-
);
106-
}
107-
});
108-
let instance = ReactTestUtils.renderIntoDocument(<Parent />);
109-
let classDOM = ReactTestUtils.findRenderedDOMComponentWithTag(instance.refs.collapsible_object, 'DIV').props.className
110-
, classArray = classDOM.split(' ')
111-
, idx = classArray.indexOf('navbar-collapse');
112-
assert.equal(classArray.indexOf('navbar-collapse', idx + 1), -1);
113-
});
11492
});

0 commit comments

Comments
 (0)