refresh on gen job done
This commit is contained in:
+5
-1
@@ -264,6 +264,7 @@ export function EditorAgentConversationPanelView({
|
||||
errorMessage,
|
||||
createConversation,
|
||||
selectConversation,
|
||||
refreshActiveConversation,
|
||||
sendMessage,
|
||||
stopCurrentTurn,
|
||||
confirmToolCall,
|
||||
@@ -608,7 +609,10 @@ export function EditorAgentConversationPanelView({
|
||||
onCancelToolCall={(messageId) => {
|
||||
void cancelToolCall(messageId);
|
||||
}}
|
||||
onJobCompleted={onCanvasRefreshRequested}
|
||||
onJobCompleted={() => {
|
||||
void refreshActiveConversation();
|
||||
onCanvasRefreshRequested?.();
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
{isWaiting ? <ThinkingBubble /> : null}
|
||||
|
||||
@@ -294,6 +294,14 @@ export function useEditorAgentConversation({
|
||||
[activeConversationId, loadConversation],
|
||||
);
|
||||
|
||||
const refreshActiveConversation = useCallback(async () => {
|
||||
const conversationId = activeConversationIdRef.current;
|
||||
if (!conversationId) {
|
||||
return null;
|
||||
}
|
||||
return loadConversation(conversationId);
|
||||
}, [loadConversation]);
|
||||
|
||||
const requestCanvasRefreshForMessages = useCallback(
|
||||
(nextMessages: EditorAgentMessage[]) => {
|
||||
if (
|
||||
@@ -315,7 +323,20 @@ export function useEditorAgentConversation({
|
||||
|
||||
const applyDeltaMessages = useCallback(
|
||||
(deltaMessages: EditorAgentMessage[]) => {
|
||||
setMessages((currentMessages) => [...currentMessages, ...deltaMessages]);
|
||||
setMessages((currentMessages) => {
|
||||
const nextMessages = [...currentMessages];
|
||||
for (const deltaMessage of deltaMessages) {
|
||||
const existingIndex = nextMessages.findIndex(
|
||||
(message) => message.id === deltaMessage.id,
|
||||
);
|
||||
if (existingIndex >= 0) {
|
||||
nextMessages[existingIndex] = deltaMessage;
|
||||
} else {
|
||||
nextMessages.push(deltaMessage);
|
||||
}
|
||||
}
|
||||
return nextMessages;
|
||||
});
|
||||
requestCanvasRefreshForMessages(deltaMessages);
|
||||
},
|
||||
[requestCanvasRefreshForMessages],
|
||||
@@ -522,6 +543,7 @@ export function useEditorAgentConversation({
|
||||
errorMessage,
|
||||
createConversation,
|
||||
selectConversation,
|
||||
refreshActiveConversation,
|
||||
sendMessage,
|
||||
stopCurrentTurn,
|
||||
confirmToolCall,
|
||||
|
||||
Reference in New Issue
Block a user