Skip to content

Commit bcaf95b

Browse files
committed
Added disabled prop and styles to DropDownMenu. Fixes #1294
1 parent 538979a commit bcaf95b

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

docs/src/app/components/pages/components/drop-down-menu.jsx

+6
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ class DropDownMenuPage extends React.Component {
8383
type: 'object',
8484
header: 'optional',
8585
desc: 'Overrides the inline-styles of DropDownMenu\'s root element.'
86+
},
87+
{
88+
name: 'disabled',
89+
type: 'bool',
90+
header: 'default: false',
91+
desc: 'Disables the menu.'
8692
}
8793
]
8894
},

src/drop-down-menu.jsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ let DropDownMenu = React.createClass({
2424
displayMember: React.PropTypes.string,
2525
valueMember: React.PropTypes.string,
2626
autoWidth: React.PropTypes.bool,
27+
disabled: React.PropTypes.bool,
2728
onChange: React.PropTypes.func,
2829
menuItems: React.PropTypes.array.isRequired,
2930
menuItemStyle: React.PropTypes.object,
@@ -65,6 +66,7 @@ let DropDownMenu = React.createClass({
6566

6667
getStyles(){
6768
let zIndex = 5; // As AppBar
69+
let disabled = this.props.disabled;
6870
let spacing = this.context.muiTheme.spacing;
6971
let accentColor = this.context.muiTheme.component.dropDownMenu.accentColor;
7072
let backgroundColor = this.context.muiTheme.component.menu.backgroundColor;
@@ -78,7 +80,7 @@ let DropDownMenu = React.createClass({
7880
outline: 'none',
7981
},
8082
control: {
81-
cursor: 'pointer',
83+
cursor: disabled ? 'not-allowed' : 'pointer',
8284
position: 'static',
8385
height: '100%',
8486
},
@@ -102,7 +104,7 @@ let DropDownMenu = React.createClass({
102104
paddingLeft: spacing.desktopGutter,
103105
top: 0,
104106
opacity: 1,
105-
color: this.context.muiTheme.palette.textColor,
107+
color: disabled ? this.context.muiTheme.palette.disabledColor : this.context.muiTheme.palette.textColor,
106108
},
107109
underline: {
108110
borderTop: 'solid 1px ' + accentColor,
@@ -240,7 +242,9 @@ let DropDownMenu = React.createClass({
240242
},
241243

242244
_onControlClick() {
243-
this.setState({ open: !this.state.open });
245+
if (!this.props.disabled) {
246+
this.setState({ open: !this.state.open });
247+
}
244248
},
245249

246250
_onKeyDown(e) {

0 commit comments

Comments
 (0)