diff --git a/ui/src/shared/components/MultiSelectDropdown.js b/ui/src/shared/components/MultiSelectDropdown.js index 375aa3126..29d2217c0 100644 --- a/ui/src/shared/components/MultiSelectDropdown.js +++ b/ui/src/shared/components/MultiSelectDropdown.js @@ -3,6 +3,23 @@ import OnClickOutside from 'shared/components/OnClickOutside' import classNames from 'classnames' import _ from 'lodash' +const labelText = ({localSelectedItems, isOpen, label}) => { + if (label) { + return label + } + else if (localSelectedItems.length) { + return localSelectedItems.map((s) => s).join(', ') + } + else { + if (isOpen) { + return '0 Selected' + } + else { + return 'Apply Function' + } + } +} + class MultiSelectDropdown extends Component { constructor(props) { super(props) @@ -62,16 +79,13 @@ class MultiSelectDropdown extends Component { render() { const {localSelectedItems, isOpen} = this.state const {label} = this.props - const labelText = isOpen ? "0 Selected" : "Apply Function" return (
{ - label ? - label : - localSelectedItems.length ? localSelectedItems.map((s) => s).join(', ') : labelText + labelText({localSelectedItems, isOpen, label}) } diff --git a/ui/src/style/components/multi-select-dropdown.scss b/ui/src/style/components/multi-select-dropdown.scss index d349c2633..1bc43dc93 100644 --- a/ui/src/style/components/multi-select-dropdown.scss +++ b/ui/src/style/components/multi-select-dropdown.scss @@ -56,3 +56,9 @@ opacity: 1; } } +.multi-select-dropdown__label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + padding-right: 10px; +} diff --git a/ui/stories/admin.js b/ui/stories/admin.js index dfc2715d6..609aa6cec 100644 --- a/ui/stories/admin.js +++ b/ui/stories/admin.js @@ -6,7 +6,7 @@ import MultiSelectDropdown from 'shared/components/MultiSelectDropdown' import Tooltip from 'shared/components/Tooltip' storiesOf('MultiSelectDropdown', module) - .add('Select Roles', () => ( + .add('Select Roles w/label', () => (
)) + .add('Selected Item list', () => ( +
+ +
+ )) + .add('0 selected items', () => ( +
+ +
+ )) storiesOf('Tooltip', module) .add('Delete', () => (