Skip to content

Commit 03471fe

Browse files
author
Hai Nguyen
committed
Merge pull request #1406 from mjhasbach/DropDownMenu.props.disabled
Added Disabled Prop and Styles to DropDownMenu
2 parents dd9cb40 + 731645c commit 03471fe

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-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

+8-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,
@@ -36,6 +37,7 @@ let DropDownMenu = React.createClass({
3637
getDefaultProps() {
3738
return {
3839
autoWidth: true,
40+
disabled: false,
3941
valueMember: 'payload',
4042
displayMember: 'text',
4143
};
@@ -64,6 +66,7 @@ let DropDownMenu = React.createClass({
6466
},
6567

6668
getStyles(){
69+
const {disabled} = this.props;
6770
let zIndex = 5; // As AppBar
6871
let spacing = this.context.muiTheme.spacing;
6972
let accentColor = this.context.muiTheme.component.dropDownMenu.accentColor;
@@ -78,7 +81,7 @@ let DropDownMenu = React.createClass({
7881
outline: 'none',
7982
},
8083
control: {
81-
cursor: 'pointer',
84+
cursor: disabled ? 'not-allowed' : 'pointer',
8285
position: 'static',
8386
height: '100%',
8487
},
@@ -102,7 +105,7 @@ let DropDownMenu = React.createClass({
102105
paddingLeft: spacing.desktopGutter,
103106
top: 0,
104107
opacity: 1,
105-
color: this.context.muiTheme.palette.textColor,
108+
color: disabled ? this.context.muiTheme.palette.disabledColor : this.context.muiTheme.palette.textColor,
106109
},
107110
underline: {
108111
borderTop: 'solid 1px ' + accentColor,
@@ -240,7 +243,9 @@ let DropDownMenu = React.createClass({
240243
},
241244

242245
_onControlClick() {
243-
this.setState({ open: !this.state.open });
246+
if (!this.props.disabled) {
247+
this.setState({ open: !this.state.open });
248+
}
244249
},
245250

246251
_onKeyDown(e) {

0 commit comments

Comments
 (0)