import React, { useEffect, useState } from "react"; import { Icon } from "../../ui/Icon"; import { highlightCode, loadLanguage } from "../../../utils/language"; interface SyntaxHighlighterProps { code: string; language: string; showLineNumbers?: boolean; } export const SyntaxHighlighter: React.FC = ({ code, language, showLineNumbers = true, }) => { const [highlighted, setHighlighted] = useState(">"); const [copied, setCopied] = useState(false); useEffect(() => { const highlight = async () => { await loadLanguage(language); setHighlighted(highlightCode(code, language)); }; void highlight(); }, [code, language]); const handleCopy = async () => { await navigator.clipboard.writeText(code); setCopied(true); setTimeout(() => setCopied(false), 2000); }; const lines = code.split("\n"); return (
{language}
{showLineNumbers && (
{lines.map((_, i) => (
{i + 1}
))}
)}
          
        
); };