"use client"; import "@assistant-ui/react-markdown/styles/dot.css"; import { MarkdownTextPrimitive, unstable_memoizeMarkdownComponents as memoizeMarkdownComponents, useIsMarkdownCodeBlock, } from "@assistant-ui/react-markdown"; import { useSetAtom } from "jotai"; import { ExternalLinkIcon } from "lucide-react"; import dynamic from "next/dynamic"; import { useParams } from "next/navigation"; import { useTheme } from "next-themes"; import { memo, type ReactNode } from "react"; import rehypeKatex from "rehype-katex"; import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import { openEditorPanelAtom } from "@/atoms/editor/editor-panel.atom"; import { ImagePreview, ImageRoot, ImageZoom } from "@/components/assistant-ui/image"; import "katex/dist/katex.min.css"; import { InlineCitation, UrlCitation } from "@/components/assistant-ui/inline-citation"; import { useElectronAPI } from "@/hooks/use-platform"; import { Skeleton } from "@/components/ui/skeleton"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { cn } from "@/lib/utils"; function MarkdownCodeBlockSkeleton() { return (
{alt}
)} {domain &&{domain}
}{processChildrenWithCitations(children)}
), a: ({ className, children, ...props }) => ( {processChildrenWithCitations(children)} ), blockquote: ({ className, children, ...props }) => ({processChildrenWithCitations(children)}), ul: ({ className, ...props }) => (
{children}
);
}
if (isWebLocalFileCodeBlock) {
return (
{codeString.trim()}
);
}
return (