Skip to content

Commit 3561529

Browse files
committed
FilterGroupItem: prevent side effect
1 parent a278823 commit 3561529

4 files changed

Lines changed: 16 additions & 16 deletions

File tree

packages/charts/src/internal/ChartContainer.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { Component, forwardRef } from 'react';
88
import { ResponsiveContainer } from 'recharts';
99
import { classNames, styleData } from './ChartContainer.module.css.js';
1010

11-
//todo: add feature request for parts or even a fix if this turns out to be a bug
1211
addCustomCSSWithScoping(
1312
'ui5-busy-indicator',
1413
`

packages/main/src/components/AnalyticalTable/defaults/Column/Expandable.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ export const Expandable = (props: CellInstance) => {
5252
return (
5353
<>
5454
{columnIndex === 0 && (
55-
// todo rowProps should be applied to the whole row, not just the cell. We should consider refactoring this.
5655
<>
5756
{row.canExpand || subComponentExpandable ? (
5857
<span

packages/main/src/components/AnalyticalTable/hooks/useKeyboardNavigation.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ const useGetTableProps = (
106106
if (
107107
dataset.emptyRowCell === 'true' ||
108108
Object.prototype.hasOwnProperty.call(dataset, 'subcomponentActiveElement') ||
109-
// todo: with the new popover API of ui5wc this might not be necessary anymore
110109
dataset.componentName === 'ATHeaderPopoverList' ||
111110
dataset.componentName === 'ATHeaderPopover' ||
112111
dataset.componentName === 'AnalyticalTableNoDataContainer'

packages/main/src/components/FilterGroupItem/index.tsx

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import moveDownIcon from '@ui5/webcomponents-icons/dist/navigation-down-arrow.js
1010
import moveUpIcon from '@ui5/webcomponents-icons/dist/navigation-up-arrow.js';
1111
import { useI18nBundle, useStylesheet } from '@ui5/webcomponents-react-base';
1212
import { clsx } from 'clsx';
13-
import { forwardRef, useContext, useEffect, useRef, useState } from 'react';
13+
import { forwardRef, useContext, useEffect, useMemo, useRef, useState } from 'react';
1414
import { FlexBoxAlignItems } from '../../enums/FlexBoxAlignItems.js';
1515
import { FlexBoxDirection } from '../../enums/FlexBoxDirection.js';
1616
import { FlexBoxJustifyContent } from '../../enums/FlexBoxJustifyContent.js';
@@ -93,7 +93,21 @@ const FilterGroupItem = forwardRef<HTMLDivElement, FilterGroupItemPropTypes & Fi
9393

9494
const inFB = !isFilterInDialog;
9595
const withReordering = enableReordering && !withValues && isListView;
96-
const [itemPosition, setItemPosition] = useState<undefined | 'last' | 'first'>(undefined);
96+
const initialPosition = useMemo(() => {
97+
if (index === 0) {
98+
return 'first';
99+
}
100+
if (index === filtersCount - 1) {
101+
return 'last';
102+
}
103+
return undefined;
104+
}, [index, filtersCount]);
105+
106+
const [itemPosition, setItemPosition] = useState<undefined | 'last' | 'first'>(initialPosition);
107+
108+
useEffect(() => {
109+
setItemPosition(initialPosition);
110+
}, [initialPosition]);
97111

98112
const handleFocus = (e) => {
99113
setShowBtnsOnHover(false);
@@ -106,17 +120,6 @@ const FilterGroupItem = forwardRef<HTMLDivElement, FilterGroupItemPropTypes & Fi
106120
}
107121
};
108122

109-
useEffect(() => {
110-
if (index === 0) {
111-
// Todo: check this
112-
// eslint-disable-next-line react-hooks/set-state-in-effect
113-
setItemPosition('first');
114-
}
115-
if (index === filtersCount - 1) {
116-
setItemPosition('last');
117-
}
118-
}, [index, filtersCount]);
119-
120123
const handleReorder = (e: Parameters<ButtonPropTypes['onClick']>[0]) => {
121124
setItemPosition(undefined);
122125
onReorder({

0 commit comments

Comments
 (0)