import type { Data } from "@/pages/docs/+data"; import { snippetsService } from "@/services/SnippetsService"; import { Highlight, Prism } from "prism-react-renderer"; import { clientOnly } from "vike-react/clientOnly"; import { prismThemes } from "@/data/themes/prism"; import { useData } from "vike-react/useData"; import { useTheme } from "@/hooks/useTheme"; import { Fragment, useMemo } from "react"; const CSRSnippet = clientOnly(() => import("./CSRSnippet")); function SSRSnippet({ language, children, label, showLineNumbers = false, }: { language: string; children: string; label?: string; showLineNumbers?: boolean; }) { const { theme } = useTheme(); const prismTheme = useMemo(() => { return prismThemes[theme]; }, [theme]); return ( <> {label &&
{tokens.map((line, lineIndex) => (
{line
.filter((token) => !token.empty)
.map((token, tokenIndex) => (
))}
{"\n"}
))}
)}