import { ArvadosTheme } from "common/custom-theme";
import servicesProvider from "common/service-provider";
import { Dispatch } from "redux";
+import { sanitizeHTML } from "common/html-sanitize";
type CssRules = "dialogContent" | "dialogContentIframe";
useEffect(() => {
if (!!bannerUUID && bannerUUID !== "") {
+ try {
servicesProvider
.getServices()
.collectionService.files(bannerUUID)
localStorage.setItem(BANNER_LOCAL_STORAGE_KEY, JSON.stringify(bannerFileData));
});
}
- });
+ })
+ } catch (e) {
+ console.error("Failed to load banner", e);
+ }
}
}, [bannerUUID, keepWebInlineServiceUrl, openBanner, isOpen]);
>
<div data-cy="confirmation-dialog">
<DialogContent className={props.classes.dialogContent}>
- <div dangerouslySetInnerHTML={{ __html: bannerContents }}></div>
+ <div dangerouslySetInnerHTML={{ __html: sanitizeHTML(bannerContents) }}></div>
</DialogContent>
<DialogActions style={{ margin: "0px 24px 24px" }}>
<Button