You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/components/basic/SessionHTMLRenderer.tsx

24 lines
483 B
TypeScript

import React from 'react';
import DOMPurify from 'dompurify';
type ReceivedProps = {
html: string;
tag?: string;
key?: any;
className?: string;
};
export const SessionHtmlRenderer = ({ tag = 'div', key, html, className }: ReceivedProps) => {
const clean = DOMPurify.sanitize(html, {
USE_PROFILES: { html: true },
FORBID_ATTR: ['script'],
});
return React.createElement(tag, {
key,
className,
dangerouslySetInnerHTML: { __html: clean },
});
};