@@ -16,6 +16,7 @@ import DOMPurify from "dompurify";
1616import { useColorScheme } from "@mui/material/styles" ;
1717import { useQuery } from "@tanstack/react-query" ;
1818import { fetchReactionSchemeSvg } from "../../features/rules/api" ;
19+ import { DrawingAttribution } from "../DrawingAttribution" ;
1920
2021export function ReactionScheme ( { id, smarts } : { id : string ; smarts : string } ) {
2122 const { mode, systemMode } = useColorScheme ( ) ;
@@ -31,7 +32,7 @@ export function ReactionScheme({ id, smarts }: { id: string; smarts: string }) {
3132 // Server-rendered SVG markup gets injected raw via dangerouslySetInnerHTML, so it
3233 // must be sanitized first -- same rationale/profile as SvgViewer.
3334 const sanitizedSvg = React . useMemo (
34- ( ) => ( svgQuery . data ? DOMPurify . sanitize ( svgQuery . data , { USE_PROFILES : { svg : true , svgFilters : true } } ) : null ) ,
35+ ( ) => ( svgQuery . data ? DOMPurify . sanitize ( svgQuery . data . svg , { USE_PROFILES : { svg : true , svgFilters : true } } ) : null ) ,
3536 [ svgQuery . data ]
3637 ) ;
3738
@@ -43,7 +44,7 @@ export function ReactionScheme({ id, smarts }: { id: string; smarts: string }) {
4344 ) ;
4445 }
4546
46- if ( svgQuery . error || ! sanitizedSvg ) {
47+ if ( svgQuery . error || ! sanitizedSvg || ! svgQuery . data ) {
4748 return (
4849 < Alert severity = "warning" variant = "outlined" sx = { { py : 0 } } >
4950 Could not render this reaction ({ smarts } ).
@@ -52,9 +53,12 @@ export function ReactionScheme({ id, smarts }: { id: string; smarts: string }) {
5253 }
5354
5455 return (
55- < Box
56- sx = { { "& svg" : { display : "block" , maxWidth : "100%" , height : "auto" } } }
57- dangerouslySetInnerHTML = { { __html : sanitizedSvg } }
58- />
56+ < >
57+ < Box
58+ sx = { { "& svg" : { display : "block" , maxWidth : "100%" , height : "auto" } } }
59+ dangerouslySetInnerHTML = { { __html : sanitizedSvg } }
60+ />
61+ < DrawingAttribution library = "rdkit" version = { svgQuery . data . rdkitVersion } />
62+ </ >
5963 ) ;
6064}
0 commit comments