Skip to content

Commit ee17a47

Browse files
mking-clarieddywashere
authored andcommitted
feat(Dropdowns): use split class for split dropdowns (#92)
1 parent daa9e90 commit ee17a47

4 files changed

Lines changed: 20 additions & 4 deletions

File tree

docs/lib/Components/ButtonDropdownPage.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ DropdownToggle.propTypes = {
9292
</ButtonDropdown>`}
9393
</PrismCode>
9494
</pre>
95-
<h3>Single button dropdowns</h3>
95+
<h3>Split button dropdowns</h3>
9696
<div className="docs-example">
9797
<div>
9898
<ExampleSplit color="secondary" text="Default" />

docs/lib/examples/ButtonDropdownMultiSplit.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export default class Example extends React.Component {
2121
return (
2222
<ButtonDropdown isOpen={this.state.dropdownOpen} toggle={this.toggle}>
2323
<Button id="caret" color={this.props.color}>{this.props.text}</Button>
24-
<DropdownToggle caret>
24+
<DropdownToggle caret split>
2525
<Button color={this.props.color}><span className="sr-only">Toggle Dropdown</span></Button>
2626
</DropdownToggle>
2727
<DropdownMenu>

src/DropdownToggle.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const propTypes = {
1010
onClick: PropTypes.func,
1111
'data-toggle': PropTypes.string,
1212
'aria-haspopup': PropTypes.bool,
13+
split: PropTypes.bool,
1314
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string])
1415
};
1516

@@ -46,12 +47,13 @@ class DropdownToggle extends React.Component {
4647
}
4748

4849
render() {
49-
const { className, children, caret, color, tag: Tag, ...props } = this.props;
50+
const { className, children, caret, color, split, tag: Tag, ...props } = this.props;
5051
const classes = classNames(
5152
className,
5253
{
5354
'dropdown-toggle': caret,
54-
active: this.context.isOpen
55+
'dropdown-toggle-split': split,
56+
active: this.context.isOpen,
5557
}
5658
);
5759
const buttonClasses = classNames(

test/DropdownToggle.spec.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,20 @@ describe('DropdownToggle', () => {
5656
expect(wrapper.find('[data-toggle="dropdown"]').hasClass('dropdown-toggle')).toBe(true);
5757
});
5858

59+
it('should render a split', () => {
60+
const wrapper = mount(
61+
<DropdownToggle split>Ello world</DropdownToggle>,
62+
{
63+
context: {
64+
isOpen: isOpen,
65+
toggle: toggle
66+
}
67+
}
68+
);
69+
70+
expect(wrapper.find('[data-toggle="dropdown"]').hasClass('dropdown-toggle-split')).toBe(true);
71+
});
72+
5973
describe('onClick', () => {
6074
it('should call props.onClick if it exists', () => {
6175
const onClick = jasmine.createSpy('onClick');

0 commit comments

Comments
 (0)