Skip to content
Snippets Groups Projects
Unverified Commit 43e29d6f authored by Sean Hatfield's avatar Sean Hatfield Committed by GitHub
Browse files

Markdown support in custom messages (#3267)


* add md support to appearance custom messages

* break out dompurify to util

---------

Co-authored-by: default avatarTimothy Carambat <rambat1010@gmail.com>
parent e53ec147
No related branches found
No related tags found
No related merge requests found
import React from "react";
import UserIcon from "../UserIcon";
import { userFromStorage } from "@/utils/request";
import renderMarkdown from "@/utils/chat/markdown";
import DOMPurify from "@/utils/chat/purify";
export default function ChatBubble({ message, type, popMsg }) {
const isUser = type === "user";
......@@ -16,11 +18,12 @@ export default function ChatBubble({ message, type, popMsg }) {
role={type}
/>
<span
className={`whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
>
{message}
</span>
<div
className={`markdown whitespace-pre-line text-white font-normal text-sm md:text-sm flex flex-col gap-y-1 mt-2`}
dangerouslySetInnerHTML={{
__html: DOMPurify.sanitize(renderMarkdown(message)),
}}
/>
</div>
</div>
</div>
......
import React, { useState } from "react";
import { X } from "@phosphor-icons/react";
import { useTranslation } from "react-i18next";
import renderMarkdown from "@/utils/chat/markdown";
import DOMPurify from "@/utils/chat/purify";
export default function EditingChatBubble({
message,
......@@ -57,9 +59,12 @@ export default function EditingChatBubble({
/>
) : (
tempMessage && (
<p className=" font-[500] md:font-semibold text-sm md:text-base break-words light:invert">
{tempMessage}
</p>
<div
className="markdown font-[500] md:font-semibold text-sm md:text-base break-words light:invert"
dangerouslySetInnerHTML={{
__html: DOMPurify.sanitize(renderMarkdown(tempMessage)),
}}
/>
)
)}
</div>
......
......@@ -6,7 +6,7 @@ import renderMarkdown from "@/utils/chat/markdown";
import { userFromStorage } from "@/utils/request";
import Citations from "../Citation";
import { v4 } from "uuid";
import createDOMPurify from "dompurify";
import DOMPurify from "@/utils/chat/purify";
import { EditMessageForm, useEditMessage } from "./Actions/EditMessage";
import { useWatchDeleteMessage } from "./Actions/DeleteMessage";
import TTSMessage from "./Actions/TTSButton";
......@@ -17,11 +17,6 @@ import {
ThoughtChainComponent,
} from "../ThoughtContainer";
const DOMPurify = createDOMPurify(window);
DOMPurify.setConfig({
ADD_ATTR: ["target", "rel"],
});
const HistoricalMessage = ({
uuid = v4(),
message,
......
import createDOMPurify from "dompurify";
const DOMPurify = createDOMPurify(window);
DOMPurify.setConfig({
ADD_ATTR: ["target", "rel"],
});
export default DOMPurify;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment