From bc99c457b9d46b59ae87f94dcd61775ea5c6d954 Mon Sep 17 00:00:00 2001 From: Waleed Date: Tue, 26 May 2026 12:32:49 -0700 Subject: [PATCH] fix(files): zoom file viewer content, not the browser page (#4741) * fix(files): zoom file viewer content, not the browser page * fix(files): use effect lifecycle for SVG blob URL to survive strict mode --- .../components/file-viewer/preview-panel.tsx | 18 ++++-- .../file-viewer/preview-wheel-zoom.ts | 28 ++++++++- .../file-viewer/zoomable-preview.tsx | 62 +++++++++++-------- 3 files changed, 72 insertions(+), 36 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/preview-panel.tsx b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/preview-panel.tsx index 7af1ea24fd..654fae2feb 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/preview-panel.tsx +++ b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/preview-panel.tsx @@ -1071,15 +1071,21 @@ const HtmlPreview = memo(function HtmlPreview({ content }: { content: string }) }) function SvgPreview({ content }: { content: string }) { - const wrappedContent = `${content}` + const [blobUrl, setBlobUrl] = useState('') + + useEffect(() => { + const url = URL.createObjectURL(new Blob([content], { type: 'image/svg+xml' })) + setBlobUrl(url) + return () => URL.revokeObjectURL(url) + }, [content]) return ( -