diff --git a/packages/grafana-ui/src/components/Cascader/Cascader.test.tsx b/packages/grafana-ui/src/components/Cascader/Cascader.test.tsx
index a49c383bbc4..efbd9b2e6c2 100644
--- a/packages/grafana-ui/src/components/Cascader/Cascader.test.tsx
+++ b/packages/grafana-ui/src/components/Cascader/Cascader.test.tsx
@@ -88,6 +88,17 @@ describe('Cascader', () => {
expect(screen.getByText('First / Third')).toBeInTheDocument();
});
+ it('displays selected value with all levels when displayAllSelectedLevels is true and selecting a value from the search', () => {
+ render(
+
+ );
+
+ userEvent.type(screen.getByPlaceholderText(placeholder), 'Third');
+ userEvent.click(screen.getByText('First / Third'));
+
+ expect(screen.getByDisplayValue('First / Third')).toBeInTheDocument();
+ });
+
it('displays all levels selected with default separator when displayAllSelectedLevels is true', () => {
render(
{}} />
diff --git a/packages/grafana-ui/src/components/Cascader/Cascader.tsx b/packages/grafana-ui/src/components/Cascader/Cascader.tsx
index c3e2fcd695e..5cd45e15849 100644
--- a/packages/grafana-ui/src/components/Cascader/Cascader.tsx
+++ b/packages/grafana-ui/src/components/Cascader/Cascader.tsx
@@ -105,7 +105,7 @@ export class Cascader extends React.PureComponent
if (optionPath.indexOf(initValue) === optionPath.length - 1) {
return {
rcValue: optionPath,
- activeLabel: option.singleLabel || '',
+ activeLabel: this.props.displayAllSelectedLevels ? option.label : option.singleLabel || '',
};
}
}
@@ -132,7 +132,7 @@ export class Cascader extends React.PureComponent
onSelect = (obj: SelectableValue) => {
const valueArray = obj.value || [];
this.setState({
- activeLabel: obj.singleLabel || '',
+ activeLabel: this.props.displayAllSelectedLevels ? obj.label : obj.singleLabel || '',
rcValue: valueArray,
isSearching: false,
});