File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -253,7 +253,7 @@ export class InteractiveUI {
253253 case 'resize' :
254254 const heightChanged = stateManager . updateTerminalHeight ( action . height )
255255 if ( heightChanged ) {
256- stateManager . resetForResize ( )
256+ stateManager . resetForResize ( filteredStates . length )
257257 } else {
258258 // Even if height didn't change, width might have changed
259259 // Force a full re-render to clear any wrapping issues
Original file line number Diff line number Diff line change @@ -156,9 +156,9 @@ export class NavigationManager {
156156 if ( targetVisualIndex < this . state . scrollOffset ) {
157157 this . state . scrollOffset = targetVisualIndex
158158 }
159- // Scrolling down: scroll down by 1 item (smooth scrolling)
159+ // Scrolling down: adjust scroll to keep item visible
160160 else if ( visualIndex >= this . state . scrollOffset + this . maxVisibleItems ) {
161- this . state . scrollOffset += 1
161+ this . state . scrollOffset = visualIndex - this . maxVisibleItems + 1
162162 }
163163
164164 // Ensure scrollOffset doesn't go negative or beyond bounds
Original file line number Diff line number Diff line change @@ -272,8 +272,8 @@ export class StateManager {
272272 this . renderState . forceFullRender = isInitial
273273 }
274274
275- resetForResize ( ) : void {
276- const totalItems = this . renderState . renderableItems . length || this . displayState . maxVisibleItems
275+ resetForResize ( totalFilteredItems ?: number ) : void {
276+ const totalItems = totalFilteredItems || this . renderState . renderableItems . length || this . displayState . maxVisibleItems
277277 this . navigationManager . resetForResize ( totalItems )
278278 this . renderState . forceFullRender = true
279279 }
You can’t perform that action at this time.
0 commit comments