diff --git a/packages/components/src/Datalist/Datalist.component.js b/packages/components/src/Datalist/Datalist.component.js
index dbcaec72fe2..9b8d6ec86f8 100644
--- a/packages/components/src/Datalist/Datalist.component.js
+++ b/packages/components/src/Datalist/Datalist.component.js
@@ -170,6 +170,10 @@ class Datalist extends Component {
if (this.props.multiSection) {
newValue = this.state.suggestions[sectionIndex].suggestions[itemIndex];
}
+ if (newValue.disabled) {
+ event.preventDefault();
+ return;
+ }
this.updateValue(event, newValue, true);
}
@@ -233,7 +237,7 @@ class Datalist extends Component {
} else {
const index = this.props.titleMap.findIndex(item => item.name === value);
this.setState({
- focusedItemIndex: index,
+ focusedItemIndex: index === -1 ? null : index,
});
}
}
diff --git a/packages/components/src/Typeahead/Typeahead.component.js b/packages/components/src/Typeahead/Typeahead.component.js
index a576ad65556..f49b1d970ed 100644
--- a/packages/components/src/Typeahead/Typeahead.component.js
+++ b/packages/components/src/Typeahead/Typeahead.component.js
@@ -113,10 +113,11 @@ function Typeahead({ onToggle, icon, position, docked, ...rest }) {
...themeProps,
...inputProps,
items: rest.items || [],
- itemProps: {
+ itemProps: ({ itemIndex }) => ({
onMouseDown: rest.onSelect,
'data-feature': rest['data-feature'],
- },
+ 'aria-disabled': rest.items[itemIndex] && rest.items[itemIndex].disabled,
+ }),
};
return