import * as Tooltip from '@radix-ui/react-tooltip' import { Check, CopyIcon } from 'lucide-react' import { useMemo, useState } from 'react' import { ChatAssistantMessage } from '../../types/chat' import { calculateLLMCost } from '../../utils/price-calculator' import LLMResponseInfoPopover from './LLMResponseInfoPopover' function CopyButton({ message }: { message: ChatAssistantMessage }) { const [copied, setCopied] = useState(false) const handleCopy = async () => { await navigator.clipboard.writeText(message.content) setCopied(true) setTimeout(() => { setCopied(false) }, 1500) } return ( Copy message ) } function LLMResponesInfoButton({ message }: { message: ChatAssistantMessage }) { const cost = useMemo(() => { if (!message.metadata?.model || !message.metadata?.usage) { return 0 } return calculateLLMCost({ model: message.metadata.model, usage: message.metadata.usage, }) }, [message]) return (
View details
) } export default function AssistantMessageActions({ message, }: { message: ChatAssistantMessage }) { return (
) }