+
)}
{def.d3fend_url && (
diff --git a/frontend/src/pages/CampaignsPage.tsx b/frontend/src/pages/CampaignsPage.tsx
index 71719bd..05d5e25 100644
--- a/frontend/src/pages/CampaignsPage.tsx
+++ b/frontend/src/pages/CampaignsPage.tsx
@@ -14,6 +14,7 @@ import {
import { listCampaigns, createCampaign, generateCampaignFromThreatActor, type CampaignSummary } from "../api/campaigns";
import { getThreatActors, type ThreatActorSummary } from "../api/threat-actors";
import { useAuth } from "../context/AuthContext";
+import MarkdownText from "../components/MarkdownText";
const statusColors: Record = {
draft: "bg-gray-800/50 text-gray-400 border-gray-600/30",
@@ -378,9 +379,10 @@ export default function CampaignsPage() {
{campaign.name}
{campaign.description && (
-
- {campaign.description}
-
+
)}
{/* Threat Actor */}
diff --git a/frontend/src/pages/CompliancePage.tsx b/frontend/src/pages/CompliancePage.tsx
index e875d81..22ee801 100644
--- a/frontend/src/pages/CompliancePage.tsx
+++ b/frontend/src/pages/CompliancePage.tsx
@@ -15,6 +15,7 @@ import {
import { useAuth } from "../context/AuthContext";
import ComplianceGauge from "../components/compliance/ComplianceGauge";
import ControlsTable from "../components/compliance/ControlsTable";
+import MarkdownText from "../components/MarkdownText";
export default function CompliancePage() {
const [selectedFrameworkId, setSelectedFrameworkId] = useState(null);
@@ -238,7 +239,10 @@ export default function CompliancePage() {
)}
-
{activeFramework.description}
+
)}
diff --git a/frontend/src/pages/ImportRTPage.tsx b/frontend/src/pages/ImportRTPage.tsx
index 43799d9..aa93e3c 100644
--- a/frontend/src/pages/ImportRTPage.tsx
+++ b/frontend/src/pages/ImportRTPage.tsx
@@ -17,6 +17,7 @@ import {
Braces,
} from "lucide-react";
import { importRT, type RTImportPayload, type RTTechniqueEntry, type RTEvidenceEntry } from "../api/tests";
+import MarkdownText from "../components/MarkdownText";
/* ── Template JSON ─────────────────────────────────────────────────── */
@@ -324,7 +325,7 @@ export default function ImportRTPage() {
{preview.techniques.length} techniques
{preview.description && (
-
{preview.description}
+
)}
- This technique has been updated in MITRE ATT&CK
+ This technique needs review
- The MITRE ATT&CK sync detected changes to this technique.
+ New intel, detection rules, or a MITRE ATT&CK update were found for this technique.
{technique.mitre_last_modified && (
<> Last modified in ATT&CK: {technique.mitre_last_modified.slice(0, 10)}.>
)}
@@ -694,7 +694,10 @@ export default function TechniqueDetailPage() {