[ML] Fix page header right side items flex responsiveness (#198625)

## Summary

Partially addresses https://github.com/elastic/kibana/issues/197892, but
not fully - https://github.com/elastic/eui/pull/8109 and
https://github.com/elastic/eui/pull/8110 will need to be merged in first
and in Kibana main as well. We can hold this PR until then if desired to
confirm that the final UI/responsive UX works as expected.

| Before | After |
|--------|--------|
| <img width="974" alt=""
src="https://github.com/user-attachments/assets/c081fbfe-d2ec-4797-addb-3c9ecbc3085d">
| <img width="983" alt=""
src="https://github.com/user-attachments/assets/6152be23-f2b7-4712-8e53-e368db606418">
|

### Checklist

- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
This commit is contained in:
Cee Chen 2024-11-04 09:38:07 -08:00 committed by GitHub
parent 0744b13ee0
commit 4fdc70bf8c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 45 additions and 45 deletions

View file

@ -9,7 +9,7 @@ import { css } from '@emotion/react';
import type { FC } from 'react'; import type { FC } from 'react';
import React, { useCallback, useMemo } from 'react'; import React, { useCallback, useMemo } from 'react';
import { EuiFlexGroup, EuiFlexItem, EuiPageHeader } from '@elastic/eui'; import { EuiPageHeader } from '@elastic/eui';
import { useUrlState } from '@kbn/ml-url-state'; import { useUrlState } from '@kbn/ml-url-state';
import { useStorage } from '@kbn/ml-local-storage'; import { useStorage } from '@kbn/ml-local-storage';
@ -71,29 +71,29 @@ export const PageHeader: FC = () => {
return ( return (
<EuiPageHeader <EuiPageHeader
pageTitle={<div css={dataViewTitleHeader}>{dataView.getName()}</div>} pageTitle={<div css={dataViewTitleHeader}>{dataView.getName()}</div>}
rightSideGroupProps={{
gutterSize: 's',
'data-test-subj': 'aiopsTimeRangeSelectorSection',
}}
rightSideItems={[ rightSideItems={[
<EuiFlexGroup gutterSize="s" data-test-subj="aiopsTimeRangeSelectorSection"> <DatePickerWrapper
{hasValidTimeField ? ( isAutoRefreshOnly={!hasValidTimeField}
<EuiFlexItem grow={false}> showRefresh={!hasValidTimeField}
<FullTimeRangeSelector width="full"
frozenDataPreference={frozenDataPreference} flexGroup={!hasValidTimeField}
setFrozenDataPreference={setFrozenDataPreference} />,
dataView={dataView} hasValidTimeField && (
query={undefined} <FullTimeRangeSelector
disabled={false} frozenDataPreference={frozenDataPreference}
timefilter={timefilter} setFrozenDataPreference={setFrozenDataPreference}
callback={updateTimeState} dataView={dataView}
/> query={undefined}
</EuiFlexItem> disabled={false}
) : null} timefilter={timefilter}
<DatePickerWrapper callback={updateTimeState}
isAutoRefreshOnly={!hasValidTimeField}
showRefresh={!hasValidTimeField}
width="full"
flexGroup={false}
/> />
</EuiFlexGroup>, ),
]} ].filter(Boolean)}
/> />
); );
}; };

View file

@ -106,31 +106,31 @@ export const PageHeader: FC<PageHeaderProps> = ({ onRefresh, needsUpdate }) => {
{dataView.getName()} {dataView.getName()}
</div> </div>
} }
rightSideGroupProps={{
gutterSize: 's',
'data-test-subj': 'dataComparisonTimeRangeSelectorSection',
}}
rightSideItems={[ rightSideItems={[
<EuiFlexGroup gutterSize="s" data-test-subj="dataComparisonTimeRangeSelectorSection"> <DatePickerWrapper
{hasValidTimeField ? ( isAutoRefreshOnly={!hasValidTimeField}
<EuiFlexItem grow={false}> showRefresh={!hasValidTimeField}
<FullTimeRangeSelector width="full"
frozenDataPreference={frozenDataPreference} flexGroup={!hasValidTimeField}
setFrozenDataPreference={setFrozenDataPreference} onRefresh={onRefresh}
dataView={dataView} needsUpdate={needsUpdate}
query={undefined} />,
disabled={false} hasValidTimeField && (
timefilter={timefilter} <FullTimeRangeSelector
callback={updateTimeState} frozenDataPreference={frozenDataPreference}
/> setFrozenDataPreference={setFrozenDataPreference}
</EuiFlexItem> dataView={dataView}
) : null} query={undefined}
<DatePickerWrapper disabled={false}
isAutoRefreshOnly={!hasValidTimeField} timefilter={timefilter}
showRefresh={!hasValidTimeField} callback={updateTimeState}
width="full"
flexGroup={false}
onRefresh={onRefresh}
needsUpdate={needsUpdate}
/> />
</EuiFlexGroup>, ),
]} ].filter(Boolean)}
/> />
); );
}; };