Spaces:
Sleeping
Sleeping
| 'use client' | |
| import dynamic from 'next/dynamic' | |
| import { forwardRef } from 'react' | |
| const MDEditor = dynamic( | |
| () => import('@uiw/react-md-editor').then((mod) => mod.default), | |
| { ssr: false } | |
| ) | |
| export interface MarkdownEditorProps { | |
| value?: string | |
| onChange?: (value?: string) => void | |
| placeholder?: string | |
| height?: number | |
| preview?: 'live' | 'edit' | 'preview' | |
| hideToolbar?: boolean | |
| className?: string | |
| } | |
| export const MarkdownEditor = forwardRef<HTMLDivElement, MarkdownEditorProps>( | |
| ({ value = '', onChange, placeholder, height = 300, preview = 'live', hideToolbar = false, className }, ref) => { | |
| return ( | |
| <div className={className} ref={ref}> | |
| <MDEditor | |
| value={value} | |
| onChange={onChange} | |
| preview={preview} | |
| height={height} | |
| hideToolbar={hideToolbar} | |
| textareaProps={{ | |
| placeholder: placeholder || 'Enter markdown...', | |
| }} | |
| data-color-mode="light" | |
| /> | |
| </div> | |
| ) | |
| } | |
| ) | |
| MarkdownEditor.displayName = 'MarkdownEditor' |