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.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | 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 }, | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }; |