import { InsertCode, ReplaceCode } from 'icons' import { Check, Copy } from 'lucide-react' import { useEffect, useState } from 'react' import { format } from 'sql-formatter' import { Button, CodeBlock, TooltipContent_Shadcn_, TooltipTrigger_Shadcn_, Tooltip_Shadcn_, cn, } from 'ui' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { DiffType } from 'components/interfaces/SQLEditor/SQLEditor.types' interface MessagePreProps { onDiff: (type: DiffType, s: string) => void children: string[] className?: string } export const MessagePre = ({ onDiff, children, className }: MessagePreProps) => { const [copied, setCopied] = useState(false) const { mutate: sendEvent } = useSendEventMutation() useEffect(() => { if (!copied) return const timer = setTimeout(() => setCopied(false), 2000) return () => clearTimeout(timer) }, [copied]) let formatted = (children || [''])[0] try { formatted = format(formatted, { language: 'postgresql', keywordCase: 'upper' }) } catch {} if (formatted.length === 0) { return null } function handleCopy(formatted: string) { navigator.clipboard.writeText(formatted).then() setCopied(true) } return (
code]:m-0 [&>code>span]:flex [&>code>span]:flex-wrap [&>code]:block'
)}
hideCopy
hideLineNumbers
/>
Insert code
Copy code
)
}