+
+
+
+ {URLLowerHost(report.blockedUrl ?? "") || report.blockedUrl || "(no blocked URL)"}
+
+
+
+ {report.site}
+ {formatRelativeTime(Date.parse(report.timestamp))}
+
+
+)
+
+const CspReportDetail = ({ report }: { report: CspReport }) => (
+
+
+
+ {report.disposition && (
+
+ {report.disposition}
+
+ )}
+ {report.reportType && (
+
+ {report.reportType}
+
+ )}
+ {dateTime(report.timestamp)}
+
+
+
+
Violation
+
+
+
+
+ {report.violatedDirective && report.violatedDirective !== report.effectiveDirective && (
+
+ )}
+ {report.statusCode ? : null}
+
+
+
+ {report.sample && (
+
+
Script sample
+
+ {report.sample}
+
+
+ )}
+
+ {report.originalPolicy && (
+
+
Policy
+
+ {report.originalPolicy}
+
+
+ )}
+
+
+
+)
+
+export function CspReportsVisualizer() {
+ const [window, setWindow] = useState