diff --git a/src/frontend/src/modals/chatModal/chatMessage/index.tsx b/src/frontend/src/modals/chatModal/chatMessage/index.tsx new file mode 100644 index 000000000..c29c1c12c --- /dev/null +++ b/src/frontend/src/modals/chatModal/chatMessage/index.tsx @@ -0,0 +1,69 @@ +import { + ChatBubbleLeftEllipsisIcon, + ChatBubbleOvalLeftEllipsisIcon, + PlusSmallIcon, +} from "@heroicons/react/24/outline"; +import { useState } from "react"; +import { ChatMessageType } from "../../../types/chat"; +import { classNames } from "../../../utils"; +import { UserIcon } from "@heroicons/react/24/solid"; +var Convert = require("ansi-to-html"); +var convert = new Convert({ newline: true }); + +export default function ChatMessage({ chat }: { chat: ChatMessageType }) { + const [hidden, setHidden] = useState(true); + return ( +
+
+ {!chat.isSend && 🦜} + {chat.isSend && } +
+ {!chat.isSend ? ( +
+
+ {hidden && chat.thought && chat.thought !== "" && ( +
setHidden((prev) => !prev)} + className="absolute -top-1 -left-2 cursor-pointer" + > + +
+ )} + {chat.thought && chat.thought !== "" && !hidden && ( +
setHidden((prev) => !prev)} + className=" text-start inline-block w-full pb-3 pt-3 px-5 cursor-pointer" + dangerouslySetInnerHTML={{ + __html: convert.toHtml(chat.thought), + }} + >
+ )} + {chat.thought && chat.thought !== "" && !hidden &&

} +
+ {chat.message} +
+
+
+ ) : ( +
+
+ {chat.message} +
+
+ )} +
+ ); +} diff --git a/src/frontend/src/modals/chatModal/index.tsx b/src/frontend/src/modals/chatModal/index.tsx index 99f1b4ee0..b66acf612 100644 --- a/src/frontend/src/modals/chatModal/index.tsx +++ b/src/frontend/src/modals/chatModal/index.tsx @@ -13,7 +13,7 @@ import { alertContext } from "../../contexts/alertContext"; import { classNames, snakeToNormalCase } from "../../utils"; import { sendAll } from "../../controllers/API"; import { typesContext } from "../../contexts/typesContext"; -import ChatMessage from "../../components/chatComponent/chatMessage"; +import ChatMessage from "./chatMessage"; const _ = require("lodash"); export default function ChatModal({ flow }) { @@ -212,8 +212,8 @@ export default function ChatModal({ flow }) { leaveFrom="opacity-100 translate-y-0 sm:scale-100" leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" > - -
+ +
{chatHistory.map((c, i) => ( ))}