@@ -10,7 +10,7 @@ import moveDownIcon from '@ui5/webcomponents-icons/dist/navigation-down-arrow.js
1010import moveUpIcon from '@ui5/webcomponents-icons/dist/navigation-up-arrow.js' ;
1111import { useI18nBundle , useStylesheet } from '@ui5/webcomponents-react-base' ;
1212import { clsx } from 'clsx' ;
13- import { forwardRef , useContext , useEffect , useRef , useState } from 'react' ;
13+ import { forwardRef , useContext , useEffect , useMemo , useRef , useState } from 'react' ;
1414import { FlexBoxAlignItems } from '../../enums/FlexBoxAlignItems.js' ;
1515import { FlexBoxDirection } from '../../enums/FlexBoxDirection.js' ;
1616import { 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