From bcaf95bd7f19e98f1633ca8921f16a5e7e217f95 Mon Sep 17 00:00:00 2001 From: Matthew Hasbach Date: Thu, 13 Aug 2015 13:37:06 -0400 Subject: [PATCH 1/3] Added disabled prop and styles to DropDownMenu. Fixes callemall/material-ui#1294 --- .../app/components/pages/components/drop-down-menu.jsx | 6 ++++++ src/drop-down-menu.jsx | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/src/app/components/pages/components/drop-down-menu.jsx b/docs/src/app/components/pages/components/drop-down-menu.jsx index 4f3df813b1fc6d..15acf517d88335 100644 --- a/docs/src/app/components/pages/components/drop-down-menu.jsx +++ b/docs/src/app/components/pages/components/drop-down-menu.jsx @@ -83,6 +83,12 @@ class DropDownMenuPage extends React.Component { type: 'object', header: 'optional', desc: 'Overrides the inline-styles of DropDownMenu\'s root element.' + }, + { + name: 'disabled', + type: 'bool', + header: 'default: false', + desc: 'Disables the menu.' } ] }, diff --git a/src/drop-down-menu.jsx b/src/drop-down-menu.jsx index 975a30f96db49b..85d5bdbec9290e 100644 --- a/src/drop-down-menu.jsx +++ b/src/drop-down-menu.jsx @@ -24,6 +24,7 @@ let DropDownMenu = React.createClass({ displayMember: React.PropTypes.string, valueMember: React.PropTypes.string, autoWidth: React.PropTypes.bool, + disabled: React.PropTypes.bool, onChange: React.PropTypes.func, menuItems: React.PropTypes.array.isRequired, menuItemStyle: React.PropTypes.object, @@ -65,6 +66,7 @@ let DropDownMenu = React.createClass({ getStyles(){ let zIndex = 5; // As AppBar + let disabled = this.props.disabled; let spacing = this.context.muiTheme.spacing; let accentColor = this.context.muiTheme.component.dropDownMenu.accentColor; let backgroundColor = this.context.muiTheme.component.menu.backgroundColor; @@ -78,7 +80,7 @@ let DropDownMenu = React.createClass({ outline: 'none', }, control: { - cursor: 'pointer', + cursor: disabled ? 'not-allowed' : 'pointer', position: 'static', height: '100%', }, @@ -102,7 +104,7 @@ let DropDownMenu = React.createClass({ paddingLeft: spacing.desktopGutter, top: 0, opacity: 1, - color: this.context.muiTheme.palette.textColor, + color: disabled ? this.context.muiTheme.palette.disabledColor : this.context.muiTheme.palette.textColor, }, underline: { borderTop: 'solid 1px ' + accentColor, @@ -240,7 +242,9 @@ let DropDownMenu = React.createClass({ }, _onControlClick() { - this.setState({ open: !this.state.open }); + if (!this.props.disabled) { + this.setState({ open: !this.state.open }); + } }, _onKeyDown(e) { From df2c616639c74ccee0356e93d1fd75600a74d587 Mon Sep 17 00:00:00 2001 From: Matthew Hasbach Date: Thu, 13 Aug 2015 14:37:28 -0400 Subject: [PATCH 2/3] Added disabled: false to getDefaultProps --- src/drop-down-menu.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/drop-down-menu.jsx b/src/drop-down-menu.jsx index 85d5bdbec9290e..b1edfbfdf30189 100644 --- a/src/drop-down-menu.jsx +++ b/src/drop-down-menu.jsx @@ -37,6 +37,7 @@ let DropDownMenu = React.createClass({ getDefaultProps() { return { autoWidth: true, + disabled: false, valueMember: 'payload', displayMember: 'text', }; From 731645c208262d58e31a9de44bc2abdfc25740c4 Mon Sep 17 00:00:00 2001 From: Matthew Hasbach Date: Fri, 14 Aug 2015 11:19:42 -0400 Subject: [PATCH 3/3] Make disabled a const --- src/drop-down-menu.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drop-down-menu.jsx b/src/drop-down-menu.jsx index b1edfbfdf30189..cee002f7d8f885 100644 --- a/src/drop-down-menu.jsx +++ b/src/drop-down-menu.jsx @@ -66,8 +66,8 @@ let DropDownMenu = React.createClass({ }, getStyles(){ + const {disabled} = this.props; let zIndex = 5; // As AppBar - let disabled = this.props.disabled; let spacing = this.context.muiTheme.spacing; let accentColor = this.context.muiTheme.component.dropDownMenu.accentColor; let backgroundColor = this.context.muiTheme.component.menu.backgroundColor;