import React, { forwardRef, ReactNode, Ref } from 'react'; import { ICodeMirror, UnControlled as CodeMirror } from 'react-codemirror2'; import AbstractEditor, { AbstractEditorProps } from '~/components/PageEditor/AbstractEditor'; window.CodeMirror = require('codemirror'); require('codemirror/addon/display/placeholder'); require('~/client/util/codemirror/gfm-growi.mode'); export interface UncontrolledCodeMirrorProps extends AbstractEditorProps { value: string; options?: ICodeMirror['options']; isGfmMode?: boolean; lineNumbers?: boolean; } interface UncontrolledCodeMirrorCoreProps extends UncontrolledCodeMirrorProps { forwardedRef: Ref; } class UncontrolledCodeMirrorCore extends AbstractEditor { render(): ReactNode { const { value, isGfmMode, lineNumbers, options, forwardedRef, ...rest } = this.props; return ( ); } } export const UncontrolledCodeMirror = forwardRef((props, ref) => { return ( ); });