Skip to content

Commit 21cab20

Browse files
committedNov 16, 2015
[changed] dropdown props are passed through to the dropdown Button
fixes react-bootstrap#1497
1 parent f97afcc commit 21cab20

File tree

2 files changed

+34
-19
lines changed

2 files changed

+34
-19
lines changed
 

‎src/DropdownButton.js

+16-5
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,39 @@
11
import React from 'react';
22
import Dropdown from './Dropdown';
33
import omit from 'lodash-compat/object/omit';
4+
import pick from 'lodash-compat/object/pick';
45
import Button from './Button';
56

67
class DropdownButton extends React.Component {
78

89
render() {
9-
let { title, ...props } = this.props;
10+
let { bsStyle, bsSize, disabled } = this.props;
11+
let { title, children, ...props } = this.props;
1012

11-
let toggleProps = omit(props, Dropdown.ControlledComponent.propTypes);
13+
let dropdownProps = pick(props, Object.keys(Dropdown.ControlledComponent.propTypes));
14+
let toggleProps = omit(props, Object.keys(Dropdown.ControlledComponent.propTypes));
1215

1316
return (
14-
<Dropdown {...props}>
15-
<Dropdown.Toggle {...toggleProps}>
17+
<Dropdown {...dropdownProps}
18+
bsSize={bsSize}
19+
bsStyle={bsStyle}
20+
>
21+
<Dropdown.Toggle
22+
{...toggleProps}
23+
disabled={disabled}
24+
>
1625
{title}
1726
</Dropdown.Toggle>
1827
<Dropdown.Menu>
19-
{this.props.children}
28+
{children}
2029
</Dropdown.Menu>
2130
</Dropdown>
2231
);
2332
}
2433
}
2534

2635
DropdownButton.propTypes = {
36+
disabled: React.PropTypes.bool,
2737
bsStyle: Button.propTypes.bsStyle,
2838
bsSize: Button.propTypes.bsSize,
2939

@@ -37,6 +47,7 @@ DropdownButton.propTypes = {
3747
};
3848

3949
DropdownButton.defaultProps = {
50+
disabled: false,
4051
pullRight: false,
4152
dropup: false,
4253
navItem: false,

‎src/SplitButton.js

+18-14
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import React from 'react';
22
import Button from './Button';
33
import Dropdown from './Dropdown';
44
import SplitToggle from './SplitToggle';
5+
import omit from 'lodash-compat/object/omit';
6+
import pick from 'lodash-compat/object/pick';
57

68
class SplitButton extends React.Component {
79

@@ -12,30 +14,32 @@ class SplitButton extends React.Component {
1214
onClick,
1315
target,
1416
href,
17+
bsSize,
1518
bsStyle,
1619
...props } = this.props;
1720

1821
let { disabled } = props;
1922

20-
let button = (
21-
<Button
22-
onClick={onClick}
23-
bsStyle={bsStyle}
24-
disabled={disabled}
25-
target={target}
26-
href={href}
27-
>
28-
{title}
29-
</Button>
30-
);
23+
let dropdownProps = pick(props, Object.keys(Dropdown.ControlledComponent.propTypes));
24+
let buttonProps = omit(props, Object.keys(Dropdown.ControlledComponent.propTypes));
3125

3226
return (
33-
<Dropdown {...props}>
34-
{button}
35-
27+
<Dropdown {...dropdownProps}>
28+
<Button
29+
{...buttonProps}
30+
onClick={onClick}
31+
bsStyle={bsStyle}
32+
bsSize={bsSize}
33+
disabled={disabled}
34+
target={target}
35+
href={href}
36+
>
37+
{title}
38+
</Button>
3639
<SplitToggle
3740
aria-label={title}
3841
bsStyle={bsStyle}
42+
bsSize={bsSize}
3943
disabled={disabled}
4044
/>
4145
<Dropdown.Menu>

0 commit comments

Comments
 (0)
Please sign in to comment.