@@ -1031,14 +1031,16 @@ const UIEditorLinked: FC<IEditorLinked & IExtendableLinkedEditor & IComponentCon
10311031 } , [ ] )
10321032
10331033 const keepCheckingAndAligningOverlay = useRef ( false ) ;
1034- const checkAndAlignOverlay = useCallback ( ( initial = false ) => {
1034+ const checkAndAlignOverlay = useCallback ( ( initial = false , check ?: ( ) => boolean ) => {
10351035 if ( initial ) {
10361036 lastOverlayWidth . current = 0 ;
10371037 keepCheckingAndAligningOverlay . current = true ;
10381038 }
10391039 requestAnimationFrame ( ( ) => {
1040- alignOverlay ( ) ;
10411040 if ( keepCheckingAndAligningOverlay . current ) {
1041+ if ( ! check || check ( ) ) {
1042+ alignOverlay ( ) ;
1043+ }
10421044 checkAndAlignOverlay ( ) ;
10431045 }
10441046 } ) ;
@@ -1168,12 +1170,10 @@ const UIEditorLinked: FC<IEditorLinked & IExtendableLinkedEditor & IComponentCon
11681170 const scrollpos = index < last ? 0 : index - 2 ;
11691171 linkedRef . current ?. getVirtualScroller ( ) . scrollToIndex ( scrollpos , "auto" ) ;
11701172
1171- checkAndAlignOverlay ( true ) ;
11721173 setTimeout ( ( ) => {
11731174 const el = linkedRef . current ?. getOverlay ( ) . querySelectorAll ( '.p-autocomplete-item' ) [ index - linkedRef . current ?. getVirtualScroller ( ) . getRenderedRange ( ) . first ] ;
11741175 el ?. classList . add ( 'p-highlight' ) ;
11751176 el ?. setAttribute ( 'data-p-highlight' , 'true' ) ;
1176- keepCheckingAndAligningOverlay . current = false ;
11771177 alignOverlay ( true ) ;
11781178 } , 50 ) ;
11791179 }
@@ -1186,7 +1186,12 @@ const UIEditorLinked: FC<IEditorLinked & IExtendableLinkedEditor & IComponentCon
11861186 lazy : true ,
11871187 scrollHeight : suggestions ?. length ? `${ Math . min ( 6.66 , ( suggestions [ 0 ] . items ?. length ?? ( suggestions . length - 1 ) ) + 1 ) * 38 } px` : undefined ,
11881188 onLazyLoad : handleLazyLoad ,
1189- onScroll : ( ) => alignOverlay ( ) ,
1189+ onScroll : ( ev ) => {
1190+ const range = linkedRef . current ?. getVirtualScroller ( ) . getRenderedRange ( ) ;
1191+ if ( ( range ?. first ?? 0 ) < ( range ?. last ?? 1 ) ) {
1192+ alignOverlay ( ) ;
1193+ }
1194+ } ,
11901195 className : props . isCellEditor
11911196 ? "celleditor-dropdown-virtual-scroller"
11921197 : "dropdown-virtual-scroller"
0 commit comments