Skip to content

Commit c994beb

Browse files
committed
Avoid unnecessary array copy in virtualizedItems memo
1 parent 99a1e18 commit c994beb

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

apps/twig/src/renderer/features/sessions/components/ConversationView.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@ export function ConversationView({
9595
const prevItemCountRef = useRef(0);
9696
const prevPendingCountRef = useRef(0);
9797

98-
const virtualizedItems = useMemo<VirtualizedItem[]>(() => {
99-
const items: VirtualizedItem[] = [...conversationItems];
100-
101-
for (const msg of queuedMessages) {
102-
items.push({ type: "queued", id: msg.id, message: msg });
103-
}
98+
const queuedItems = useMemo<QueuedItem[]>(
99+
() => queuedMessages.map((msg) => ({ type: "queued" as const, id: msg.id, message: msg })),
100+
[queuedMessages],
101+
);
104102

105-
return items;
106-
}, [conversationItems, queuedMessages]);
103+
const virtualizedItems = useMemo<VirtualizedItem[]>(
104+
() => (queuedItems.length > 0 ? [...conversationItems, ...queuedItems] : conversationItems),
105+
[conversationItems, queuedItems],
106+
);
107107

108108
useEffect(() => {
109109
if (!taskId || hasRestoredScrollRef.current) return;

0 commit comments

Comments
 (0)