[next] DOM Purification (#2115)

* feat: added purify + linkify + better link detection

* fix: linting + tests

* chore: refactor RequireProperty Type
This commit is contained in:
Wyatt Johnson
2018-12-13 00:14:29 +01:00
committed by Kiwi
parent e134b4de04
commit 6f538d3235
18 changed files with 406 additions and 153 deletions
@@ -1,9 +1,15 @@
import cn from "classnames";
import dompurify from "dompurify";
import React, { StatelessComponent } from "react";
import { createPurify } from "talk-common/utils/purify";
import styles from "./HTMLContent.css";
/**
* Create a purify instance that will be used to handle HTML content.
*/
const purify = createPurify(window, false);
interface HTMLContentProps {
children: string;
className?: string;
@@ -15,7 +21,7 @@ const HTMLContent: StatelessComponent<HTMLContentProps> = ({
}) => (
<div
className={cn(styles.root, className)}
dangerouslySetInnerHTML={{ __html: dompurify.sanitize(children) }}
dangerouslySetInnerHTML={{ __html: purify.sanitize(children) }}
/>
);