From dd059e96b5a3bbe5a74ac8a453a9aa3422691bd7 Mon Sep 17 00:00:00 2001 From: prxt6529 Date: Wed, 25 Mar 2026 07:21:39 +0200 Subject: [PATCH] Restore static preview-image fallback for html Signed-off-by: prxt6529 --- .../item/content/media/MediaDisplay.test.tsx | 39 +++++++++++++++++++ .../view/item/content/media/MediaDisplay.tsx | 6 +++ 2 files changed, 45 insertions(+) diff --git a/__tests__/components/drops/view/item/content/media/MediaDisplay.test.tsx b/__tests__/components/drops/view/item/content/media/MediaDisplay.test.tsx index 91d8ebaf05..3d6f8b3450 100644 --- a/__tests__/components/drops/view/item/content/media/MediaDisplay.test.tsx +++ b/__tests__/components/drops/view/item/content/media/MediaDisplay.test.tsx @@ -100,6 +100,22 @@ describe("MediaDisplay", () => { ); }); + it("renders preview image instead of iframe for html when preview is provided", () => { + render( + + ); + + expect(screen.getByTestId("image")).toHaveAttribute( + "data-src", + "preview.png" + ); + expect(screen.queryByTestId("iframe")).not.toBeInTheDocument(); + }); + it("renders gated html iframe with normalized ipfs url after activation", () => { render( { ); }); + it("keeps gated html behavior when preview is provided", () => { + render( + + ); + + expect(screen.getByTestId("image")).toHaveAttribute( + "data-src", + "preview.png" + ); + + fireEvent.click(screen.getByTestId("load-gate")); + + expect(screen.getByTestId("iframe")).toHaveAttribute( + "data-src", + "https://ipfs.io/ipfs/hash" + ); + }); + it("renders empty fragment for unknown", () => { const { container } = render( diff --git a/components/drops/view/item/content/media/MediaDisplay.tsx b/components/drops/view/item/content/media/MediaDisplay.tsx index e200b4647d..810086074e 100644 --- a/components/drops/view/item/content/media/MediaDisplay.tsx +++ b/components/drops/view/item/content/media/MediaDisplay.tsx @@ -167,6 +167,12 @@ export default function MediaDisplay({ const mediaType = getMediaType(); if (mediaType === MediaType.HTML) { + if (previewImageUrl && !requireInteractionToLoad) { + return ( + + ); + } + return (