ldc-ovoteam/resources/ts/components/safe-html.tsx

39 lines
707 B
TypeScript

/* eslint-disable react/no-danger */
import { toSanitizedHtml } from "@/lib/sanitize-html";
type SafeHtmlProps = {
html: string;
className?: string;
as?: "div" | "p" | "span";
};
export default function SafeHtml({
html,
className,
as = "div",
}: Readonly<SafeHtmlProps>) {
if (as === "p") {
return (
<p
className={className}
dangerouslySetInnerHTML={toSanitizedHtml(html)}
/>
);
}
if (as === "span") {
return (
<span
className={className}
dangerouslySetInnerHTML={toSanitizedHtml(html)}
/>
);
}
return (
<div
className={className}
dangerouslySetInnerHTML={toSanitizedHtml(html)}
/>
);
}