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 (