| ... | ... | @@ -264,9 +264,14 @@ export const MessagesTimeline = memo(function MessagesTimeline({ |
| 264 | 264 | rowVirtualizer.measure(); |
| 265 | 265 | }, [rowVirtualizer, timelineWidthPx]); |
| 266 | 266 | useEffect(() => { |
| 267 | | rowVirtualizer.shouldAdjustScrollPositionOnItemSizeChange = (_item, _delta, instance) => { |
| 267 | rowVirtualizer.shouldAdjustScrollPositionOnItemSizeChange = (item, _delta, instance) => { |
| 268 | 268 | const viewportHeight = instance.scrollRect?.height ?? 0; |
| 269 | 269 | const scrollOffset = instance.scrollOffset ?? 0; |
| 270 | const itemIntersectsViewport = |
| 271 | item.end > scrollOffset && item.start < scrollOffset + viewportHeight; |
| 272 | if (itemIntersectsViewport) { |
| 273 | return false; |
| 274 | } |
| 270 | 275 | const remainingDistance = instance.getTotalSize() - (scrollOffset + viewportHeight); |
| 271 | 276 | return remainingDistance > AUTO_SCROLL_BOTTOM_THRESHOLD_PX; |
| 272 | 277 | }; |
| ... | ... | @@ -483,6 +488,7 @@ export const MessagesTimeline = memo(function MessagesTimeline({ |
| 483 | 488 | type="button" |
| 484 | 489 | size="xs" |
| 485 | 490 | variant="outline" |
| 491 | data-scroll-anchor-ignore |
| 486 | 492 | onClick={() => onToggleAllDirectories(turnSummary.turnId)} |
| 487 | 493 | > |
| 488 | 494 | {allDirectoriesExpanded ? "Collapse all" : "Expand all"} |