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.
		
		
		
		
		
			
		
			
				
	
	
		
			26 lines
		
	
	
		
			602 B
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			26 lines
		
	
	
		
			602 B
		
	
	
	
		
			TypeScript
		
	
| import React from 'react';
 | |
| import DOMPurify from 'dompurify';
 | |
| 
 | |
| interface ReceivedProps {
 | |
|   html: string;
 | |
|   tag?: string;
 | |
|   key?: any;
 | |
|   className?: string;
 | |
| }
 | |
| 
 | |
| // Needed because of https://github.com/microsoft/tslint-microsoft-contrib/issues/339
 | |
| type Props = ReceivedProps;
 | |
| 
 | |
| export const SessionHtmlRenderer: React.SFC<Props> = ({ tag = 'div', key, html, className }) => {
 | |
|   const clean = DOMPurify.sanitize(html, {
 | |
|     USE_PROFILES: { html: true },
 | |
|     FORBID_ATTR: ['script'],
 | |
|   });
 | |
| 
 | |
|   return React.createElement(tag, {
 | |
|     key,
 | |
|     className,
 | |
|     dangerouslySetInnerHTML: { __html: clean },
 | |
|   });
 | |
| };
 |