diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index dc5cd16b..9f30f39b 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -32,8 +32,9 @@ interface EditorOptions { element: Element, content: EditorContent, extensions: (Extension | Node | Mark)[], - injectCSS: Boolean, + injectCSS: boolean, autoFocus: 'start' | 'end' | number | boolean | null, + editable: boolean, } @magicMethods @@ -54,6 +55,7 @@ export class Editor extends EventEmitter { injectCSS: true, extensions: [], autoFocus: false, + editable: true, } public isFocused = false public isEditable = true @@ -88,11 +90,19 @@ export class Editor extends EventEmitter { return (...args: any) => command(...args) } + public setOptions(options: Partial = {}) { + this.options = { ...this.options, ...options } + + if (this.view && this.state) { + this.view.updateState(this.state) + } + } + public get state() { return this.view.state } - public registerCommands(commands: CommandSpec): void { + public registerCommands(commands: CommandSpec) { Object .entries(commands) .forEach(([name, command]) => this.registerCommand(name, command)) diff --git a/packages/core/src/plugins/editable.ts b/packages/core/src/plugins/editable.ts index ee2f3798..28212bea 100644 --- a/packages/core/src/plugins/editable.ts +++ b/packages/core/src/plugins/editable.ts @@ -4,6 +4,6 @@ import Editor from '../..' export default (editor: Editor) => new Plugin({ key: new PluginKey('editable'), props: { - editable: () => editor.isEditable, + editable: () => editor.options.editable, }, }) \ No newline at end of file