@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
17 lines (16 loc) • 665 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { useLayoutEffect, useRef } from 'react';
import dompurify from 'dompurify';
export default function DOMPurifySanitizedHTML({ value, className, }) {
const spanRef = useRef(null);
useLayoutEffect(() => {
const el = spanRef.current;
if (el) {
for (const a of el.querySelectorAll('a')) {
a.setAttribute('rel', 'noopener noreferrer');
a.setAttribute('target', '_blank');
}
}
}, [value]);
return (_jsx("span", { ref: spanRef, className: className, dangerouslySetInnerHTML: { __html: dompurify.sanitize(value) } }));
}