improve commands

This commit is contained in:
Philipp Kühn 2020-11-02 14:46:18 +01:00
parent a97ffc41f4
commit 2bc02e50e0
3 changed files with 19 additions and 12 deletions

View File

@ -27,7 +27,7 @@ export type Command = (props: {
chain: () => ChainedCommands,
state: EditorState,
view: EditorView,
dispatch: (args?: any) => any,
dispatch: ((args?: any) => any) | undefined,
}) => boolean
export type CommandSpec = (...args: any[]) => Command

View File

@ -1,4 +1,3 @@
import { wrapInList, liftListItem } from 'prosemirror-schema-list'
import { findParentNode } from 'prosemirror-utils'
import { NodeType } from 'prosemirror-model'
import { Command } from '../Editor'
@ -28,14 +27,16 @@ export const ToggleList = createExtension({
if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {
// remove list
if (parentList.node.type === listType) {
return liftListItem(itemType)(state, dispatch)
return commands.liftListItem(itemType)
}
// change list type
if (isList(parentList.node.type.name, extensions) && listType.validContent(parentList.node.content)) {
tr.setNodeMarkup(parentList.pos, listType)
if (dispatch) {
tr.setNodeMarkup(parentList.pos, listType)
}
return false
return true
}
}

View File

@ -22,13 +22,19 @@ const HardBreak = createNode({
addCommands() {
return {
hardBreak: (): Command => ({
tr, state, dispatch, view,
}) => {
return chainCommands(exitCode, () => {
dispatch(tr.replaceSelectionWith(this.type.create()).scrollIntoView())
return true
})(state, dispatch, view)
hardBreak: (): Command => ({ state, dispatch, view }) => {
return chainCommands(
exitCode,
(_, d) => {
if (typeof d !== 'function') {
return false
}
d(state.tr.replaceSelectionWith(this.type.create()).scrollIntoView())
return true
},
)(state, dispatch, view)
},
}
},