+
+
+ {intl.formatMessage(messages.scanHeader)}
+
+ {
+ setShowLockedLinks(!showLockedLinks);
+ }}
+ label={intl.formatMessage(messages.lockedCheckboxLabel)}
+ />
+
+
+
+
+
+ {sections?.map((section, index) => (
+
+ {section.subsections.map((subsection) => (
+ <>
+
+ {subsection.displayName}
+
+ {subsection.units.map((unit) => (
+
+
+
+ ))}
+ >
+ ))}
+
+ ))}
+
+ );
+};
+
+export default ScanResults;
diff --git a/src/optimizer-page/scan-results/SectionCollapsible.tsx b/src/optimizer-page/scan-results/SectionCollapsible.tsx
new file mode 100644
index 0000000000..077f747cce
--- /dev/null
+++ b/src/optimizer-page/scan-results/SectionCollapsible.tsx
@@ -0,0 +1,53 @@
+import { useState, FC } from 'react';
+import {
+ Collapsible,
+ Icon,
+} from '@openedx/paragon';
+import {
+ ArrowRight,
+ ArrowDropDown,
+} from '@openedx/paragon/icons';
+
+interface Props {
+ title: string;
+ children: React.ReactNode;
+ redItalics?: string;
+ yellowItalics?: string;
+ className?: string;
+}
+
+const SectionCollapsible: FC