diff --git a/src/frontend/src/components/chatComponent/chatMessage/index.tsx b/src/frontend/src/components/chatComponent/chatMessage/index.tsx
index ee11d69cb..5bb4e8b33 100644
--- a/src/frontend/src/components/chatComponent/chatMessage/index.tsx
+++ b/src/frontend/src/components/chatComponent/chatMessage/index.tsx
@@ -2,9 +2,9 @@ import { useState } from "react";
import { ChatMessageType } from "../../../types/chat";
import { nodeColors } from "../../../utils";
import Convert from "ansi-to-html";
-const convert = new Convert({ newline: true });
import { MessageCircle } from "lucide-react";
-
+import DOMPurify from "dompurify";
+const convert = new Convert({ newline: true });
export default function ChatMessage({ chat }: { chat: ChatMessageType }) {
const [hidden, setHidden] = useState(true);
return (
@@ -23,13 +23,14 @@ export default function ChatMessage({ chat }: { chat: ChatMessageType }) {
)}
+
{chat.thought && chat.thought !== "" && !hidden && (
setHidden((prev) => !prev)}
style={{ backgroundColor: nodeColors["thought"] }}
- className=" text-start inline-block w-full pb-3 pt-3 px-5 cursor-pointer"
+ className="text-start inline-block w-full pb-3 pt-3 px-5 cursor-pointer"
dangerouslySetInnerHTML={{
- __html: convert.toHtml(chat.thought),
+ __html: DOMPurify.sanitize(convert.toHtml(chat.thought)),
}}
>
)}
diff --git a/src/frontend/src/modals/chatModal/chatMessage/index.tsx b/src/frontend/src/modals/chatModal/chatMessage/index.tsx
index 3d4ce0b44..3b44ffe6f 100644
--- a/src/frontend/src/modals/chatModal/chatMessage/index.tsx
+++ b/src/frontend/src/modals/chatModal/chatMessage/index.tsx
@@ -11,7 +11,7 @@ import remarkMath from "remark-math";
import { CodeBlock } from "./codeBlock";
import Convert from "ansi-to-html";
import { User2, MessageCircle } from "lucide-react";
-
+import DOMPurify from "dompurify";
export default function ChatMessage({
chat,
lockChat,
@@ -78,10 +78,9 @@ export default function ChatMessage({
{chat.thought && chat.thought !== "" && !hidden && (
setHidden((prev) => !prev)}
- className=" text-start inline-block rounded-md text-gray-600 dark:text-gray-200 h-full border border-gray-300 dark:border-gray-500
- bg-muted dark:bg-gray-800 w-[95%] pb-3 pt-3 px-2 ml-3 cursor-pointer scrollbar-hide overflow-scroll"
+ className="text-start inline-block rounded-md text-gray-600 dark:text-gray-200 h-full border border-gray-300 dark:border-gray-500 bg-muted dark:bg-gray-800 w-[95%] pb-3 pt-3 px-2 ml-3 cursor-pointer scrollbar-hide overflow-scroll"
dangerouslySetInnerHTML={{
- __html: convert.toHtml(chat.thought),
+ __html: DOMPurify.sanitize(convert.toHtml(chat.thought)),
}}
>
)}
@@ -152,12 +151,12 @@ export default function ChatMessage({
) : (
- "),
- }}
- >
+ {message.split("\n").map((line, index) => (
+
+ {line}
+
+
+ ))}
)}