import { FC, useEffect, useState } from 'react'; import Editor from "@monaco-editor/react"; import { Panel, PanelGroup, PanelResizeHandle } from 'react-resizable-panels'; import Markdown from '@/components/Markdown'; import './index.scss'; interface MarkdownEditorProps { value?: string; onChange?: (v: string) => void; mode?: string; } const MarkdownEditor: FC = ({ value = '', onChange, mode = 'split' }) => { const [content, setContent] = useState(value); useEffect(() => { setContent(value); onChange && onChange(value); }, [value]) const handleEdit = (e: any) => { setContent(e); onChange && onChange(e); } const isSplit = mode === 'split'; return (
{['md', 'split'].includes(mode) && ( )} {isSplit && } {['doc', 'split'].includes(mode) && ( {content} )}
) }; export default MarkdownEditor;