diff --git a/packages/apps/client/src/ScriptEditor/Editor.tsx b/packages/apps/client/src/ScriptEditor/Editor.tsx index b141c62..efda6b1 100644 --- a/packages/apps/client/src/ScriptEditor/Editor.tsx +++ b/packages/apps/client/src/ScriptEditor/Editor.tsx @@ -1,14 +1,18 @@ import React, { useEffect, useRef } from 'react' -import { schema } from 'prosemirror-schema-basic' import { undo, redo, history } from 'prosemirror-history' import { keymap } from 'prosemirror-keymap' import { EditorState } from 'prosemirror-state' import { EditorView } from 'prosemirror-view' import { baseKeymap } from 'prosemirror-commands' +import { schema } from './scriptSchema' +import 'prosemirror-view/style/prosemirror.css' +import { updateModel } from './plugins/updateModel' export function Editor({ initialValue, + className, }: { + className?: string initialValue?: string onChange?: (e: OnChangeEvent) => void }): React.JSX.Element { @@ -21,17 +25,23 @@ export function Editor({ useEffect(() => { if (!containerEl.current) return - const state = EditorState.create({ schema }) + const state = EditorState.create({ + schema, + plugins: [history(), keymap({ 'Mod-z': undo, 'Mod-y': redo }), keymap(baseKeymap), updateModel()], + }) const view = new EditorView(containerEl.current, { state, - plugins: [history(), keymap({ 'Mod-z': undo, 'Mod-y': redo }), keymap(baseKeymap)], }) editorView.current = view editorState.current = state + + return () => { + view.destroy() + } }, []) - return
+ return } type OnChangeEvent = { diff --git a/packages/apps/client/src/ScriptEditor/ScriptEditor.tsx b/packages/apps/client/src/ScriptEditor/ScriptEditor.tsx index 360b1a3..4e4bf06 100644 --- a/packages/apps/client/src/ScriptEditor/ScriptEditor.tsx +++ b/packages/apps/client/src/ScriptEditor/ScriptEditor.tsx @@ -4,7 +4,7 @@ import { Editor } from './Editor' export function ScriptEditor(): React.JSX.Element { return ( <> -