mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 20:31:37 -05:00
Improve row expansion logic for better experience
This commit is contained in:
@@ -382,7 +382,9 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie
|
|||||||
const toggleRowExpansion = useCallback(
|
const toggleRowExpansion = useCallback(
|
||||||
(ts: number) => {
|
(ts: number) => {
|
||||||
const isCollapsing = expandedRows[ts] ?? false
|
const isCollapsing = expandedRows[ts] ?? false
|
||||||
const isLastMessage = visibleMessages.at(-1)?.ts === ts
|
const isLast = visibleMessages.at(-1)?.ts === ts
|
||||||
|
const isSecondToLast = visibleMessages.at(-2)?.ts === ts
|
||||||
|
const isLastCollapsed = !expandedRows[visibleMessages.at(-1)?.ts ?? 0]
|
||||||
setExpandedRows((prev) => ({
|
setExpandedRows((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
[ts]: !prev[ts],
|
[ts]: !prev[ts],
|
||||||
@@ -396,8 +398,11 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie
|
|||||||
})
|
})
|
||||||
}, 0)
|
}, 0)
|
||||||
return () => clearTimeout(timer)
|
return () => clearTimeout(timer)
|
||||||
} else if (isLastMessage) {
|
} else if (isLast || isSecondToLast) {
|
||||||
if (isCollapsing) {
|
if (isCollapsing) {
|
||||||
|
if (isSecondToLast && !isLastCollapsed) {
|
||||||
|
return
|
||||||
|
}
|
||||||
const timer = setTimeout(() => {
|
const timer = setTimeout(() => {
|
||||||
virtuosoRef.current?.scrollToIndex({
|
virtuosoRef.current?.scrollToIndex({
|
||||||
index: visibleMessages.length - 1,
|
index: visibleMessages.length - 1,
|
||||||
@@ -408,7 +413,7 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie
|
|||||||
} else {
|
} else {
|
||||||
const timer = setTimeout(() => {
|
const timer = setTimeout(() => {
|
||||||
virtuosoRef.current?.scrollToIndex({
|
virtuosoRef.current?.scrollToIndex({
|
||||||
index: visibleMessages.length - 1,
|
index: visibleMessages.length - (isLast ? 1 : 2),
|
||||||
align: "start",
|
align: "start",
|
||||||
})
|
})
|
||||||
}, 0)
|
}, 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user