feat: allow editing queued messages with up arrow key (#10392)

Co-authored-by: Akhil Appana <akhilapp@google.com>
This commit is contained in:
Akhil Appana
2025-10-16 17:04:13 -07:00
committed by GitHub
parent 9049f8f8ae
commit 22f725eb08
9 changed files with 399 additions and 8 deletions

View File

@@ -18,6 +18,7 @@ export interface UseMessageQueueReturn {
addMessage: (message: string) => void;
clearQueue: () => void;
getQueuedMessagesText: () => string;
popAllMessages: (onPop: (messages: string | undefined) => void) => void;
}
/**
@@ -51,6 +52,23 @@ export function useMessageQueue({
return messageQueue.join('\n\n');
}, [messageQueue]);
// Pop all messages from the queue and return them as a single string
const popAllMessages = useCallback(
(onPop: (messages: string | undefined) => void) => {
setMessageQueue((prev) => {
if (prev.length === 0) {
onPop(undefined);
return prev;
}
// Join all messages with double newlines, same as when they're sent
const allMessages = prev.join('\n\n');
onPop(allMessages);
return []; // Clear the entire queue
});
},
[],
);
// Process queued messages when streaming becomes idle
useEffect(() => {
if (
@@ -71,5 +89,6 @@ export function useMessageQueue({
addMessage,
clearQueue,
getQueuedMessagesText,
popAllMessages,
};
}