Merge pull request #658 from BrianHung/RegisterPluginPriority

Change registerPlugin to add plugin after Extensions plugins
This commit is contained in:
Philipp Kühn 2020-04-12 19:14:39 +02:00 committed by GitHub
commit 9bf8be403f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 9 deletions

View File

@ -85,7 +85,7 @@ export default {
| `setContent` | `content, emitUpdate, parseOptions` | Replace the current content. You can pass an HTML string or a JSON document. `emitUpdate` defaults to `false`. `parseOptions` defaults to those provided in constructor. | | `setContent` | `content, emitUpdate, parseOptions` | Replace the current content. You can pass an HTML string or a JSON document. `emitUpdate` defaults to `false`. `parseOptions` defaults to those provided in constructor. |
| `clearContent` | `emitUpdate` | Clears the current content. `emitUpdate` defaults to `false`. | | `clearContent` | `emitUpdate` | Clears the current content. `emitUpdate` defaults to `false`. |
| `setOptions` | `options` | Overwrites the current editor properties. | | `setOptions` | `options` | Overwrites the current editor properties. |
| `registerPlugin` | `plugin` | Register a Prosemirror plugin. | | `registerPlugin` | `plugin`, `handlePlugins` | Register a Prosemirror plugin. You can pass a function `handlePlugins` with parameters `(plugin, oldPlugins)` to define an order in which `newPlugins` will be called. `handlePlugins` defaults to pushing `plugin` to front of `oldPlugins`. |
| `getJSON` | | Get the current content as JSON. | | `getJSON` | | Get the current content as JSON. |
| `getHTML` | | Get the current content as HTML. | | `getHTML` | | Get the current content as HTML. |
| `focus` | | Focus the editor. | | `focus` | | Focus the editor. |

View File

@ -498,14 +498,10 @@ export default class Editor extends Emitter {
}), {}) }), {})
} }
registerPlugin(plugin = null) { registerPlugin(plugin = null, handlePlugins) {
if (!plugin) { const plugins = typeof handlePlugins === 'function'
return ? handlePlugins(plugin, this.state.plugins) : [...plugin, this.state.plugins]
} const newState = this.state.reconfigure({ plugins })
const newState = this.state.reconfigure({
plugins: this.state.plugins.concat([plugin]),
})
this.view.updateState(newState) this.view.updateState(newState)
} }