import { Highlight, Prism } from "prism-react-renderer"; import { prismThemes } from "@/data/themes/prism"; import React, { Fragment, useMemo } from "react"; import { useTheme } from "@/hooks/useTheme"; import clsx from "clsx"; export function SSRSnippet({ children, language, label, showLineNumbers = false, }: { children: string; language: string; label?: string; showLineNumbers?: boolean; }) { const { theme } = useTheme(); const prismTheme = useMemo(() => { return prismThemes[theme]; }, [theme]); return ( {({ className, style, tokens, getTokenProps }) => (
{label && (
{label}
)}
            
              {tokens.map((line, lineIndex) => (
                
                  {showLineNumbers && (
                    
                      {lineIndex + 1}
                    
                  )}
                  {line
                    .filter((token) => !token.empty)
                    .map((token, tokenIndex) => (
                      
                    ))}
                  {"\n"}
                
              ))}
            
          
)}
); }