import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter'; import { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism'; import { useSettingsStore } from '../../store/settingsStore'; import { Button } from '../ui'; import { Copy, Check } from 'lucide-react'; import { useState } from 'react'; import { copyToClipboard } from '../../utils'; interface CodeRendererProps { code: string; language?: string; showLineNumbers?: boolean; className?: string; } export function CodeRenderer({ code, language = 'text', showLineNumbers = false, className = '' }: CodeRendererProps) { const { theme } = useSettingsStore(); const [copied, setCopied] = useState(false); const handleCopy = async () => { try { await copyToClipboard(code); setCopied(true); setTimeout(() => setCopied(false), 2000); } catch (error) { console.error('Failed to copy code:', error); } }; return (
{language}
{code}
); }