Skip to content

Commit c035703

Browse files
authoredAug 6, 2024··
fix(AnalyticalTable): add "Filter" text to column popover (#6164)
Fixes #6132
1 parent 082d1c0 commit c035703

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed
 

‎packages/main/src/components/AnalyticalTable/ColumnHeader/ColumnHeaderModal.module.css

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
.filterIcon {
1010
padding-inline-end: 0.5rem;
11-
min-width: 1rem;
12-
min-height: 1rem;
1311
color: var(--sapContent_NonInteractiveIconColor);
1412
}
13+
14+
.filterText {
15+
overflow: visible;
16+
padding-inline-end: 0.5rem;
17+
}

‎packages/main/src/components/AnalyticalTable/ColumnHeader/ColumnHeaderModal.tsx

+33-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import ListItemType from '@ui5/webcomponents/dist/types/ListItemType.js';
22
import PopoverHorizontalAlign from '@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js';
33
import PopoverPlacement from '@ui5/webcomponents/dist/types/PopoverPlacement.js';
4+
import { getScopedVarName } from '@ui5/webcomponents-base/CustomElementsScope.js';
45
import iconDecline from '@ui5/webcomponents-icons/dist/decline.js';
56
import iconFilter from '@ui5/webcomponents-icons/dist/filter.js';
67
import iconGroup from '@ui5/webcomponents-icons/dist/group-2.js';
78
import iconSortAscending from '@ui5/webcomponents-icons/dist/sort-ascending.js';
89
import iconSortDescending from '@ui5/webcomponents-icons/dist/sort-descending.js';
910
import { enrichEventWithDetails, useI18nBundle, useStylesheet } from '@ui5/webcomponents-react-base';
1011
import type { MutableRefObject } from 'react';
11-
import { useEffect, useRef } from 'react';
12+
import { useEffect, useMemo, useRef } from 'react';
1213
import { FlexBoxAlignItems, TextAlign } from '../../../enums/index.js';
13-
import { CLEAR_SORTING, GROUP, SORT_ASCENDING, SORT_DESCENDING, UNGROUP } from '../../../i18n/i18n-defaults.js';
14+
import { CLEAR_SORTING, FILTER, GROUP, SORT_ASCENDING, SORT_DESCENDING, UNGROUP } from '../../../i18n/i18n-defaults.js';
1415
import { stopPropagation } from '../../../internal/stopPropagation.js';
1516
import { getUi5TagWithSuffix } from '../../../internal/utils.js';
1617
import { Icon } from '../../../webComponents/Icon/index.js';
@@ -19,6 +20,7 @@ import { ListItemCustom } from '../../../webComponents/ListItemCustom/index.js';
1920
import { ListItemStandard } from '../../../webComponents/ListItemStandard/index.js';
2021
import type { PopoverDomRef } from '../../../webComponents/Popover/index.js';
2122
import { Popover } from '../../../webComponents/Popover/index.js';
23+
import { Text } from '../../../webComponents/Text/index.js';
2224
import { FlexBox } from '../../FlexBox/index.js';
2325
import type { AnalyticalTableColumnDefinition } from '../types/index.js';
2426
import { classNames, styleData } from './ColumnHeaderModal.module.css.js';
@@ -52,6 +54,16 @@ export const ColumnHeaderModal = (props: ColumnHeaderModalProperties) => {
5254
const sortDescendingText = i18nBundle.getText(SORT_DESCENDING);
5355
const groupText = i18nBundle.getText(GROUP);
5456
const ungroupText = i18nBundle.getText(UNGROUP);
57+
const filterText = i18nBundle.getText(FILTER);
58+
59+
const filterStyles = useMemo(() => {
60+
if (showFilter) {
61+
return {
62+
iconDimensions: `var(${getScopedVarName('--_ui5_list_item_icon_size')})`,
63+
fontSize: `var(${getScopedVarName('--_ui5_list_item_title_size')})`
64+
};
65+
}
66+
}, [showFilter]);
5567

5668
const handleSort = (e) => {
5769
const sortType = e.detail.item.getAttribute('data-sort');
@@ -195,10 +207,26 @@ export const ColumnHeaderModal = (props: ColumnHeaderModalProperties) => {
195207
</ListItemStandard>
196208
)}
197209
{showFilter && (
198-
//todo maybe need to enhance Input selection after ui5-webcomponents issue has been fixed (undefined is displayed as val)
199-
<ListItemCustom type={ListItemType.Inactive} onKeyDown={handleCustomLiKeyDown}>
210+
<ListItemCustom type={ListItemType.Inactive} onKeyDown={handleCustomLiKeyDown} accessibleName={filterText}>
200211
<FlexBox alignItems={FlexBoxAlignItems.Center}>
201-
<Icon name={iconFilter} className={classNames.filterIcon} aria-hidden />
212+
<Icon
213+
name={iconFilter}
214+
className={classNames.filterIcon}
215+
aria-hidden
216+
style={{
217+
minWidth: filterStyles.iconDimensions,
218+
minHeight: filterStyles.iconDimensions
219+
}}
220+
/>
221+
<Text
222+
maxLines={1}
223+
className={classNames.filterText}
224+
style={{
225+
fontSize: filterStyles.fontSize
226+
}}
227+
>
228+
{filterText}
229+
</Text>
202230
<Filter column={column} popoverRef={ref} />
203231
</FlexBox>
204232
</ListItemCustom>

0 commit comments

Comments
 (0)
Please sign in to comment.