"use client"; import * as React from "react"; import { MDXEditor, headingsPlugin, listsPlugin, quotePlugin, thematicBreakPlugin, markdownShortcutPlugin, toolbarPlugin, linkPlugin, linkDialogPlugin, type MDXEditorMethods, KitchenSinkToolbar, tablePlugin, imagePlugin, frontmatterPlugin, codeBlockPlugin, directivesPlugin, AdmonitionDirectiveDescriptor, } from "@mdxeditor/editor"; import { cn } from "@/lib/utils"; import { Card } from "@/components/ui/card"; interface EditorProps { markdown: string; onChange?: (markdown: string) => void; className?: string; } export function Editor({ markdown, onChange, className }: EditorProps) { const ref = React.useRef(null); const onChangeDebounce = (content: string) => { localStorage.setItem("blog_draft", content); }; return ( , }), listsPlugin(), quotePlugin(), headingsPlugin(), linkPlugin(), linkDialogPlugin(), // eslint-disable-next-line @typescript-eslint/require-await imagePlugin({ imageUploadHandler: async () => "/sample-image.png", }), tablePlugin(), thematicBreakPlugin(), frontmatterPlugin(), codeBlockPlugin({ defaultCodeBlockLanguage: "txt" }), directivesPlugin({ directiveDescriptors: [AdmonitionDirectiveDescriptor], }), markdownShortcutPlugin(), ]} /> ); }