From 56c5baf0f40dbefd73f1951164cf5e5c4563ddb2 Mon Sep 17 00:00:00 2001 From: Diana Derevyankina Date: Mon, 17 Aug 2020 18:04:40 +0300 Subject: [PATCH] Fix displaying bugs --- .../query_string_input/query_string_input.tsx | 35 +++++++++---------- .../typeahead/suggestions_component.test.tsx | 6 ++++ .../ui/typeahead/suggestions_component.tsx | 8 +++-- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/src/plugins/data/public/ui/query_string_input/query_string_input.tsx b/src/plugins/data/public/ui/query_string_input/query_string_input.tsx index 93407ba2c1021a..8fa3ff0c3ce509 100644 --- a/src/plugins/data/public/ui/query_string_input/query_string_input.tsx +++ b/src/plugins/data/public/ui/query_string_input/query_string_input.tsx @@ -102,7 +102,7 @@ export class QueryStringInputUI extends Component { private abortController?: AbortController; private services = this.props.kibana.services; private componentIsUnmounting = false; - private queryBarDivRefInstance: RefObject = createRef(); + private queryBarInputDivRefInstance: RefObject = createRef(); private getQueryString = () => { return toUser(this.props.query.query); @@ -575,10 +575,7 @@ export class QueryStringInputUI extends Component { const ariaCombobox = { ...isSuggestionsVisible, role: 'combobox' }; return ( -
+
{this.props.prepend}
{
{ {this.getQueryString()}
+ + +
- - - - { suggestions={mockSuggestions} loadMore={noop} closeList={noop} + queryBarInputDivRef={{} as React.RefObject} /> ); @@ -71,6 +72,7 @@ describe('SuggestionsComponent', () => { suggestions={[]} loadMore={noop} closeList={noop} + queryBarInputDivRef={{} as React.RefObject} /> ); @@ -87,6 +89,7 @@ describe('SuggestionsComponent', () => { suggestions={mockSuggestions} loadMore={noop} closeList={noop} + queryBarInputDivRef={{} as React.RefObject} /> ); @@ -104,6 +107,7 @@ describe('SuggestionsComponent', () => { suggestions={mockSuggestions} loadMore={noop} closeList={noop} + queryBarInputDivRef={{} as React.RefObject} /> ); @@ -121,6 +125,7 @@ describe('SuggestionsComponent', () => { suggestions={mockSuggestions} loadMore={noop} closeList={noop} + queryBarInputDivRef={{} as React.RefObject} /> ); @@ -140,6 +145,7 @@ describe('SuggestionsComponent', () => { suggestions={mockSuggestions} loadMore={noop} closeList={noop} + queryBarInputDivRef={{} as React.RefObject} /> ); diff --git a/src/plugins/data/public/ui/typeahead/suggestions_component.tsx b/src/plugins/data/public/ui/typeahead/suggestions_component.tsx index 04445f518d1fcf..9892a1955c6a7f 100644 --- a/src/plugins/data/public/ui/typeahead/suggestions_component.tsx +++ b/src/plugins/data/public/ui/typeahead/suggestions_component.tsx @@ -35,7 +35,7 @@ interface Props { suggestions: QuerySuggestion[]; loadMore: () => void; closeList: () => void; - queryBarRect?: DOMRect; + queryBarInputDivRef: RefObject; dropdownHeight?: string; } @@ -47,7 +47,7 @@ export class SuggestionsComponent extends Component { updatePosition = () => { const kbnTypeaheadDiv = this.kbnTypeaheadDivRefInstance.current; - const { queryBarRect } = this.props; + const queryBarRect = this.props.queryBarInputDivRef.current?.getBoundingClientRect(); if (queryBarRect && kbnTypeaheadDiv) { const documentHeight = document.documentElement.clientHeight || window.innerHeight; @@ -80,8 +80,10 @@ export class SuggestionsComponent extends Component { } const suggestions = this.props.suggestions.map((suggestion, index) => { + const queryBarInputDiv = this.props.queryBarInputDivRef.current; const isDescriptionFittable = Boolean( - this.props.queryBarRect && this.props.queryBarRect.width >= suggestionsListRequiredWidth + queryBarInputDiv && + queryBarInputDiv.getBoundingClientRect().width >= suggestionsListRequiredWidth ); return (