import * as Tooltip from '@radix-ui/react-tooltip'
import { Check, CopyIcon } from 'lucide-react'
import { useEffect, 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, setCost] = useState(0);
useEffect(() => {
async function calculateCost() {
if (!message.metadata?.model || !message.metadata?.usage) {
setCost(0);
return;
}
const calculatedCost = await calculateLLMCost({
model: message.metadata.model,
usage: message.metadata.usage,
});
setCost(calculatedCost);
}
calculateCost();
}, [message]);
return (
View details
)
}
export default function AssistantMessageActions({
message,
}: {
message: ChatAssistantMessage
}) {
return (
)
}