diff --git a/package.json b/package.json index d4e155ede929..54f452ba943e 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "dependencies": { "@docsearch/react": "^4.6.0", "@react-spring/web": "^10.0.3", + "dompurify": "^3.3.2", "path-browserify": "^1.0.1", "prop-types": "^15.8.1", "react": "^19.2.4", diff --git a/src/components/Page/Page.jsx b/src/components/Page/Page.jsx index 997b0ffae849..a2e5a7b26a16 100644 --- a/src/components/Page/Page.jsx +++ b/src/components/Page/Page.jsx @@ -1,4 +1,5 @@ // Import External Dependencies +import DOMPurify from "dompurify"; import PropTypes from "prop-types"; import { useEffect, useState } from "react"; import { useLocation } from "react-router-dom"; @@ -98,7 +99,49 @@ export default function Page(props) { contentRender = (
); diff --git a/src/components/Print/PrintScript.jsx b/src/components/Print/PrintScript.jsx index 3b7d56362d1b..eb64c8429eb9 100644 --- a/src/components/Print/PrintScript.jsx +++ b/src/components/Print/PrintScript.jsx @@ -1,12 +1,17 @@ -const printScript = ` -window.matchMedia('print').addListener(function(mql) { - if (!mql.matches) { - window.close(); - } -}); -window.print(); -`; +import { useEffect } from "react"; export default function PrintScript() { - return ; + useEffect(() => { + const mediaQuery = window.matchMedia("print"); + const listener = (mql) => { + if (!mql.matches) { + window.close(); + } + }; + mediaQuery.addListener(listener); + window.print(); + + return () => mediaQuery.removeListener(listener); + }, []); + return null; } diff --git a/src/components/SplashViz/SplashViz.jsx b/src/components/SplashViz/SplashViz.jsx index 4db6365f47e7..eb7868d3ed65 100644 --- a/src/components/SplashViz/SplashViz.jsx +++ b/src/components/SplashViz/SplashViz.jsx @@ -26,7 +26,7 @@ export default class SplashViz extends Component {