@@ -17,6 +17,8 @@ import {
1717 EuiContextMenuPanel ,
1818 EuiFlexGroup ,
1919 EuiFlexItem ,
20+ EuiFormControlButton ,
21+ EuiFormControlLayout ,
2022 EuiHorizontalRule ,
2123 EuiIcon ,
2224 EuiPopover ,
@@ -120,31 +122,30 @@ export function ChangeDataView({
120122 const createTrigger = function ( ) {
121123 const { label, title, 'data-test-subj' : dataTestSubj , fullWidth, ...rest } = trigger ;
122124 return (
123- < EuiButtonEmpty
125+ < EuiFormControlButton
126+ compressed
124127 css = { styles . trigger }
128+ isInvalid = { isMissingCurrent }
129+ title = { trigger . label }
130+ disabled = { isDisabled }
125131 data-test-subj = { dataTestSubj }
126132 onClick = { ( ) => {
127133 setPopoverIsOpen ( ! isPopoverOpen ) ;
128134 } }
129- color = { isMissingCurrent ? 'danger' : 'text' }
130- iconSide = "right"
131- iconType = "arrowDown"
132- title = { trigger . label }
133- disabled = { isDisabled }
134- textProps = { { className : 'eui-textTruncate' } }
135- size = "s"
136135 { ...rest }
137136 >
138- < EuiFlexGroup alignItems = "center" gutterSize = "s" responsive = { false } >
137+ < EuiFlexGroup
138+ component = "span"
139+ alignItems = "center"
140+ gutterSize = "s"
141+ responsive = { false }
142+ css = { { maxWidth : '100%' } }
143+ >
139144 { /* we don't want to display the adHoc icon on text based mode */ }
140- { isAdHocSelected && (
141- < EuiFlexItem grow = { false } >
142- < EuiIcon type = { adhoc } color = "primary" size = "s" />
143- </ EuiFlexItem >
144- ) }
145- < EuiFlexItem grow = { false } > { trigger . label } </ EuiFlexItem >
145+ { isAdHocSelected && < EuiIcon type = { adhoc } color = "primary" size = "s" /> }
146+ < span className = "eui-textTruncate" > { trigger . label } </ span >
146147 </ EuiFlexGroup >
147- </ EuiButtonEmpty >
148+ </ EuiFormControlButton >
148149 ) ;
149150 } ;
150151 const onDuplicate = useCallback ( async ( ) => {
@@ -321,46 +322,32 @@ export function ChangeDataView({
321322 < EuiFlexGroup alignItems = "center" gutterSize = "s" responsive = { false } >
322323 < >
323324 < EuiFlexItem grow = { true } css = { shrinkableContainerCss } >
324- < EuiFlexGroup alignItems = "center" gutterSize = "none" responsive = { false } >
325- < EuiFlexItem
326- grow = { false }
327- css = { css `
328- padding : 0 ${ euiTheme . size . s } ;
329- height : 100% ;
330- border-radius : ${ euiTheme . border . radius . small } 0 0 ${ euiTheme . border . radius . small } ;
331- background-color : ${ euiTheme . colors . lightestShade } ;
332- border : ${ euiTheme . border . width . thin } solid ${ euiTheme . colors . borderBasePlain } ;
333- border-right : 0 ;
334- justify-content : center;
335- ` }
325+ < EuiFormControlLayout
326+ compressed
327+ isDropdown
328+ prepend = { i18n . translate ( 'unifiedSearch.query.queryBar.esqlMenu.switcherLabelTitle' , {
329+ defaultMessage : 'Data view' ,
330+ } ) }
331+ >
332+ < EuiPopover
333+ panelClassName = "changeDataViewPopover"
334+ button = { createTrigger ( ) }
335+ panelProps = { {
336+ [ 'data-test-subj' ] : 'changeDataViewPopover' ,
337+ } }
338+ isOpen = { isPopoverOpen }
339+ closePopover = { ( ) => setPopoverIsOpen ( false ) }
340+ panelPaddingSize = "none"
341+ initialFocus = { `[id="${ searchListInputId } "]` }
342+ display = "block"
343+ buffer = { 8 }
344+ css = { { inlineSize : '100%' } }
336345 >
337- < EuiText size = "s" >
338- { i18n . translate ( 'unifiedSearch.query.queryBar.esqlMenu.switcherLabelTitle' , {
339- defaultMessage : 'Data view' ,
340- } ) }
341- </ EuiText >
342- </ EuiFlexItem >
343- < EuiFlexItem grow = { true } css = { shrinkableContainerCss } >
344- < EuiPopover
345- panelClassName = "changeDataViewPopover"
346- button = { createTrigger ( ) }
347- panelProps = { {
348- [ 'data-test-subj' ] : 'changeDataViewPopover' ,
349- } }
350- isOpen = { isPopoverOpen }
351- closePopover = { ( ) => setPopoverIsOpen ( false ) }
352- panelPaddingSize = "none"
353- initialFocus = { `[id="${ searchListInputId } "]` }
354- display = "block"
355- buffer = { 8 }
356- css = { { inlineSize : '100%' } }
357- >
358- < div css = { styles . popoverContent } >
359- < EuiContextMenuPanel size = "s" items = { items } />
360- </ div >
361- </ EuiPopover >
362- </ EuiFlexItem >
363- </ EuiFlexGroup >
346+ < div css = { styles . popoverContent } >
347+ < EuiContextMenuPanel size = "s" items = { items } />
348+ </ div >
349+ </ EuiPopover >
350+ </ EuiFormControlLayout >
364351 </ EuiFlexItem >
365352 </ >
366353 </ EuiFlexGroup >
0 commit comments