import React, { useEffect } from "react"; import { createPortal } from "react-dom"; import { getAssetHost } from "../utils"; import type { MediaItem } from "../types"; export function TweetMedia({ media }: { media: MediaItem[] }) { const assetHost = getAssetHost(); return (
{media.map((m) => /\.(mp4|mov)$/i.test(m.s3Key) ? (
); } export function MediaLightbox({ item, onClose }: { item: MediaItem; onClose: () => void }) { const assetHost = getAssetHost(); useEffect(() => { const handler = (e: KeyboardEvent) => { if (e.key === "Escape") onClose(); }; document.addEventListener("keydown", handler); return () => document.removeEventListener("keydown", handler); }, [onClose]); return createPortal(
e.stopPropagation()}> {/\.(mp4|mov)$/i.test(item.s3Key) ? (
, document.body ); }