Skip to content

Commit 04e2f97

Browse files
committed
fix(embed-frame): prevent event listener recreation causing loading stuck
- Separate src change handling from event listener setup - Set up event listeners only once on mount - Reset loading state when src changes - Prevent race conditions between listener cleanup and setup
1 parent 01e8896 commit 04e2f97

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

multimodal/tarko/agent-ui/src/standalone/workspace/renderers/EmbedFrameRenderer.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ export const EmbedFrameRenderer: React.FC<EmbedFrameRendererProps> = ({
2525
panelContent
2626
});
2727

28+
// Reset loading state when src changes
29+
useEffect(() => {
30+
console.log('EmbedFrameRenderer: src changed, resetting loading state');
31+
setIsLoading(true);
32+
setError(null);
33+
}, [src]);
34+
2835
useEffect(() => {
2936
const iframe = iframeRef.current;
3037
if (!iframe) return;
@@ -43,6 +50,7 @@ export const EmbedFrameRenderer: React.FC<EmbedFrameRendererProps> = ({
4350
setError('Failed to load content');
4451
};
4552

53+
// Add event listeners to the iframe
4654
iframe.addEventListener('load', handleLoad);
4755
iframe.addEventListener('error', handleError);
4856

@@ -51,7 +59,7 @@ export const EmbedFrameRenderer: React.FC<EmbedFrameRendererProps> = ({
5159
iframe.removeEventListener('load', handleLoad);
5260
iframe.removeEventListener('error', handleError);
5361
};
54-
}, [src]);
62+
}, []); // Only run once on mount
5563

5664
if (!src) {
5765
return (

0 commit comments

Comments
 (0)