10 lines · 508 B
/** Rendered through `<img>` with a data URL, where browsers never run SVG scripts or load external resources. */
export function SvgPreview({ contents, name }: { contents: string; name: string }) {
  const src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(contents)}`;
  return (
    <div className="flex justify-center bg-[repeating-conic-gradient(#1f2937_0_25%,#111827_0_50%)] bg-[length:16px_16px] p-6">
      <img src={src} alt={name} className="max-h-[70vh] max-w-full" />
    </div>
  );
}