diff --git a/client/src/components/Artifacts/Artifacts.tsx b/client/src/components/Artifacts/Artifacts.tsx index 4fa0f8268c..64022da672 100644 --- a/client/src/components/Artifacts/Artifacts.tsx +++ b/client/src/components/Artifacts/Artifacts.tsx @@ -85,28 +85,27 @@ export default function Artifacts() { if (orderedArtifactIds.length > 0) { const latestArtifactId = orderedArtifactIds[orderedArtifactIds.length - 1]; setCurrentArtifactId(latestArtifactId); - setActiveTab('code'); } }, [orderedArtifactIds]); useEffect(() => { - if (latestMessage?.messageId !== lastRunMessageIdRef.current) { - const currentArtifact = currentArtifactId != null ? artifacts[currentArtifactId] : null; - const currentContent = currentArtifact?.content ?? null; + if (isSubmitting && orderedArtifactIds.length > 0) { + const latestArtifactId = orderedArtifactIds[orderedArtifactIds.length - 1]; + const latestArtifact = artifacts[latestArtifactId]; - if ( - isSubmitting && - currentArtifactId != null && - activeTab !== 'code' && - currentContent !== lastContentRef.current - ) { + if (latestArtifact.content !== lastContentRef.current) { + setCurrentArtifactId(latestArtifactId); setActiveTab('code'); - lastContentRef.current = currentContent; + lastContentRef.current = latestArtifact.content ?? null; } + } + }, [isSubmitting, orderedArtifactIds, artifacts]); + useEffect(() => { + if (latestMessage?.messageId !== lastRunMessageIdRef.current) { lastRunMessageIdRef.current = latestMessage?.messageId ?? null; } - }, [activeTab, currentArtifactId, isSubmitting, latestMessage, artifacts]); + }, [latestMessage]); const currentArtifact = currentArtifactId != null ? artifacts[currentArtifactId] : null;