move plugins to extensions
This commit is contained in:
15
packages/core/src/extensions/editable.ts
Normal file
15
packages/core/src/extensions/editable.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { Plugin, PluginKey } from 'prosemirror-state'
|
||||
import { createExtension } from '../Extension'
|
||||
|
||||
export const Editable = createExtension({
|
||||
addProseMirrorPlugins() {
|
||||
return [
|
||||
new Plugin({
|
||||
key: new PluginKey('editable'),
|
||||
props: {
|
||||
editable: () => this.editor.options.editable,
|
||||
},
|
||||
}),
|
||||
]
|
||||
},
|
||||
})
|
||||
42
packages/core/src/extensions/focusEvents.ts
Normal file
42
packages/core/src/extensions/focusEvents.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { Plugin } from 'prosemirror-state'
|
||||
import { createExtension } from '../Extension'
|
||||
|
||||
export const FocusEvents = createExtension({
|
||||
addProseMirrorPlugins() {
|
||||
const { editor } = this
|
||||
|
||||
return [
|
||||
new Plugin({
|
||||
props: {
|
||||
attributes: {
|
||||
tabindex: '0',
|
||||
},
|
||||
handleDOMEvents: {
|
||||
focus: () => {
|
||||
editor.isFocused = true
|
||||
|
||||
const transaction = editor.state.tr.setMeta('focused', true)
|
||||
editor.view.dispatch(transaction)
|
||||
|
||||
return true
|
||||
},
|
||||
blur: () => {
|
||||
editor.isFocused = false
|
||||
|
||||
const transaction = editor.state.tr.setMeta('focused', false)
|
||||
editor.view.dispatch(transaction)
|
||||
|
||||
return true
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
]
|
||||
},
|
||||
})
|
||||
|
||||
declare module '../Editor' {
|
||||
interface AllExtensions {
|
||||
FocusEvents: typeof FocusEvents,
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,12 @@ export { Blur } from './blur'
|
||||
export { ClearContent } from './clearContent'
|
||||
export { ClearNodes } from './clearNodes'
|
||||
export { DeleteSelection } from './deleteSelection'
|
||||
export { Editable } from './editable'
|
||||
export { Focus } from './focus'
|
||||
export { FocusEvents } from './focusEvents'
|
||||
export { InsertHTML } from './insertHTML'
|
||||
export { InsertText } from './insertText'
|
||||
export { Keymap } from './keymap'
|
||||
export { LiftListItem } from './liftListItem'
|
||||
export { RemoveMark } from './removeMark'
|
||||
export { RemoveMarks } from './removeMarks'
|
||||
|
||||
19
packages/core/src/extensions/keymap.ts
Normal file
19
packages/core/src/extensions/keymap.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { keymap } from 'prosemirror-keymap'
|
||||
import { baseKeymap } from 'prosemirror-commands'
|
||||
import { undoInputRule } from 'prosemirror-inputrules'
|
||||
import { createExtension } from '../Extension'
|
||||
|
||||
export const Keymap = createExtension({
|
||||
addProseMirrorPlugins() {
|
||||
return [
|
||||
keymap({ Backspace: undoInputRule }),
|
||||
keymap(baseKeymap),
|
||||
]
|
||||
},
|
||||
})
|
||||
|
||||
declare module '../Editor' {
|
||||
interface AllExtensions {
|
||||
Keymap: typeof Keymap,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user