'use client' import { useState } from 'react' import { Button } from '@/components/ui/button' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip' import { Save, Copy, Loader2, Check } from 'lucide-react' import { useCreateNote } from '@/lib/hooks/use-notes' import { toast } from 'sonner' interface MessageActionsProps { content: string notebookId?: string } export function MessageActions({ content, notebookId }: MessageActionsProps) { const [copySuccess, setCopySuccess] = useState(false) const createNote = useCreateNote() const handleSaveToNote = () => { if (!notebookId) { toast.error('Cannot save note: notebook ID not available') return } createNote.mutate({ content, note_type: 'ai', notebook_id: notebookId, // Title will be auto-generated by the API for AI notes }) } const handleCopyToClipboard = async () => { try { // Try modern clipboard API first if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(content) toast.success('Message copied to clipboard') setCopySuccess(true) setTimeout(() => setCopySuccess(false), 2000) } else { // Fallback for older browsers const textArea = document.createElement('textarea') textArea.value = content textArea.style.position = 'fixed' textArea.style.left = '-999999px' textArea.style.top = '-999999px' document.body.appendChild(textArea) textArea.focus() textArea.select() try { document.execCommand('copy') toast.success('Message copied to clipboard') setCopySuccess(true) setTimeout(() => setCopySuccess(false), 2000) } catch { toast.error('Failed to copy message') } document.body.removeChild(textArea) } } catch (err) { console.error('Failed to copy to clipboard:', err) toast.error('Failed to copy message') } } return (
{notebookId && (

Save to note

)}

Copy to clipboard

) }