Handle cases where no dropdown values are present

pull/10616/head
Brandon Farmer 2018-04-18 14:04:28 -07:00
parent 2895bbb268
commit 98217790b6
2 changed files with 10 additions and 6 deletions

View File

@ -23,8 +23,8 @@ const TemplateControlDropdown: SFC<Props> = ({template, onSelectTemplate}) => {
? {minWidth: calculateDropdownWidth(template.values)}
: null
const selectedItem =
dropdownItems.find(item => item.selected) || dropdownItems[0]
const selectedItem = dropdownItems.find(item => item.selected) ||
dropdownItems[0] || {text: '(No values)'}
return (
<div className="template-control--dropdown" style={dropdownStyle}>
@ -33,7 +33,7 @@ const TemplateControlDropdown: SFC<Props> = ({template, onSelectTemplate}) => {
buttonSize="btn-xs"
menuClass="dropdown-astronaut"
useAutoComplete={true}
selected={selectedItem.text || '(No values)'}
selected={selectedItem.text}
onChoose={onSelectTemplate(template.id)}
/>
<label className="template-control--label">{template.tempVar}</label>

View File

@ -117,9 +117,13 @@ export class Dropdown extends Component {
applyFilter = searchTerm => {
const {items} = this.props
const filterText = searchTerm.toLowerCase()
const matchingItems = items.filter(item =>
item.text.toLowerCase().includes(filterText)
)
const matchingItems = items.filter(item => {
if (!item) {
return false
}
return item.text.toLowerCase().includes(filterText)
})
this.setState({
filteredItems: matchingItems,