use insertContent in some extensions

This commit is contained in:
Philipp Kühn 2021-05-05 14:50:43 +02:00
parent 12b6f0e4f7
commit fda4c780d3
2 changed files with 25 additions and 26 deletions

View File

@ -42,28 +42,31 @@ export const HorizontalRule = Node.create<HorizontalRuleOptions>({
addCommands() {
return {
setHorizontalRule: () => ({ tr, dispatch }) => {
if (dispatch) {
tr.replaceSelectionWith(this.type.create())
setHorizontalRule: () => ({ chain }) => {
return chain()
.insertContent({ type: this.name })
.command(({ tr, dispatch }) => {
if (dispatch) {
const { parent, pos } = tr.selection.$from
const posAfter = pos + 1
const nodeAfter = tr.doc.nodeAt(posAfter)
const { parent, pos } = tr.selection.$from
const posAfter = pos + 1
const nodeAfter = tr.doc.nodeAt(posAfter)
// end of document
if (!nodeAfter) {
const node = parent.type.contentMatch.defaultType?.create()
// end of document
if (!nodeAfter) {
const node = parent.type.contentMatch.defaultType?.create()
if (node) {
tr.insert(posAfter, node)
tr.setSelection(TextSelection.create(tr.doc, posAfter))
}
}
if (node) {
tr.insert(posAfter, node)
tr.setSelection(TextSelection.create(tr.doc, posAfter))
tr.scrollIntoView()
}
}
tr.scrollIntoView()
}
return true
return true
})
.run()
},
}
},

View File

@ -69,15 +69,11 @@ export const Image = Node.create<ImageOptions>({
addCommands() {
return {
setImage: options => ({ tr, dispatch }) => {
const { selection } = tr
const node = this.type.create(options)
if (dispatch) {
tr.replaceRangeWith(selection.from, selection.to, node)
}
return true
setImage: options => ({ commands }) => {
return commands.insertContent({
type: this.name,
attrs: options,
})
},
}
},