From b42955dd5f693bdfacc60a095f6e9b18e38f3351 Mon Sep 17 00:00:00 2001 From: Rudy Celekli Date: Mon, 12 Oct 2026 21:13:25 -0400 Subject: [PATCH] fix(app): Clamp the initial activity height before rendering the iframe container --- .../__tests__/open-generative-ui-renderer.test.tsx | 7 +++++++ .../generative-ui/open-generative-ui/renderer.tsx | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/app/src/components/generative-ui/open-generative-ui/__tests__/open-generative-ui-renderer.test.tsx b/apps/app/src/components/generative-ui/open-generative-ui/__tests__/open-generative-ui-renderer.test.tsx index 65cdb2a..4b3cd60 100644 --- a/apps/app/src/components/generative-ui/open-generative-ui/__tests__/open-generative-ui-renderer.test.tsx +++ b/apps/app/src/components/generative-ui/open-generative-ui/__tests__/open-generative-ui-renderer.test.tsx @@ -647,4 +647,11 @@ describe("OpenGenUIActivityRenderer", () => { }); expect(parsed.success).toBe(true); }); + + it.each([[-100, "50px"], [0, "50px"], [50000, "4000px"], [300.2, "301px"], [NaN, "200px"], [Infinity, "200px"]])("bounds invalid initial activity height %s", async (initialHeight, expected) => { + const { container } = renderRenderer({ initialHeight, generating: true }); + await flushImport(); + expect(container.querySelector("div[style]")!.style.height).toBe(expected); + }); + }); diff --git a/apps/app/src/components/generative-ui/open-generative-ui/renderer.tsx b/apps/app/src/components/generative-ui/open-generative-ui/renderer.tsx index 4fb3a40..7ac28fd 100644 --- a/apps/app/src/components/generative-ui/open-generative-ui/renderer.tsx +++ b/apps/app/src/components/generative-ui/open-generative-ui/renderer.tsx @@ -145,7 +145,7 @@ function styleIframe(iframe: HTMLIFrameElement) { const OpenGenUIActivityRendererInner = React.memo( function OpenGenUIActivityRendererInner({ content }: InnerProps) { - const initialHeight = content.initialHeight ?? 200; + const initialHeight = clampReportedHeight(content.initialHeight) ?? 200; const [autoHeight, setAutoHeight] = useState(null); const sandboxFunctions = useSandboxFunctions();