import clsx from "clsx"; import { useTranslation } from "next-i18next"; import React, { useState } from "react"; import { FaCheck } from "react-icons/fa"; import { FiClipboard } from "react-icons/fi"; import MarkdownRenderer from "./MarkdownRenderer"; import SourceCard from "./SourceCard"; import type { Message } from "../../types/message"; import { MESSAGE_TYPE_GOAL, MESSAGE_TYPE_SYSTEM } from "../../types/message"; import { getTaskStatus, isAction, TASK_STATUS_COMPLETED, TASK_STATUS_FINAL, TASK_STATUS_STARTED, } from "../../types/task"; import Button from "../../ui/button"; import { getMessageContainerStyle, getTaskStatusIcon } from "../utils/helpers"; const ChatMessage = ({ message }: { message: Message }) => { const [t] = useTranslation(); const [isCopied, setIsCopied] = useState(false); const handleCopy = () => { try { const textToCopy = isAction(message) ? message.info || "" : message.value; void navigator.clipboard.writeText(textToCopy); setIsCopied(true); } catch (error) { console.error(error); } }; if (message.type === MESSAGE_TYPE_GOAL && !isAction(message)) { return
If you are facing issues, please head over to our{" "}
FAQ