import { Editor, Plugin, EditorProps, RenderNodeProps } from "slate-react"; import { Value, Editor as Controller, Operation } from "slate"; import * as React from "react"; import * as Immutable from "immutable"; class MyPlugin implements Plugin { renderNode(props: RenderNodeProps, editor: Controller, next: () => void) { const { node } = props; if (node) { switch (node.object) { case "block": return
; case "inline": return Hello world; default: return undefined; } } } onChange = (change: {operations: Immutable.List, value: Value}) => { console.log(change.value); } } const myPlugin = new MyPlugin(); interface MyEditorState { value: Value; } class MyEditor extends React.Component { constructor(props: EditorProps) { super(props); this.state = { value: Value.create() }; } render() { return ; } }