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', () => (