Add CreateNodeFromContentOptions to insertContent

This commit is contained in:
castroCrea 2021-08-04 12:14:12 +02:00
parent a3381f4992
commit 55d0e67422
2 changed files with 8 additions and 6 deletions

View File

@ -1,3 +1,4 @@
import { CreateNodeFromContentOptions } from '../helpers/createNodeFromContent'
import { RawCommands, Content } from '../types'
declare module '@tiptap/core' {
@ -6,11 +7,11 @@ declare module '@tiptap/core' {
/**
* Insert a node or string of HTML at the current position.
*/
insertContent: (value: Content) => ReturnType,
insertContent: (value: Content, options?: CreateNodeFromContentOptions) => ReturnType,
}
}
}
export const insertContent: RawCommands['insertContent'] = value => ({ tr, commands }) => {
return commands.insertContentAt({ from: tr.selection.from, to: tr.selection.to }, value)
export const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {
return commands.insertContentAt({ from: tr.selection.from, to: tr.selection.to }, value, options)
}

View File

@ -1,4 +1,4 @@
import createNodeFromContent from '../helpers/createNodeFromContent'
import createNodeFromContent, { CreateNodeFromContentOptions } from '../helpers/createNodeFromContent'
import selectionToInsertionEnd from '../helpers/selectionToInsertionEnd'
import {
RawCommands,
@ -12,17 +12,18 @@ declare module '@tiptap/core' {
/**
* Insert a node or string of HTML at a specific position.
*/
insertContentAt: (position: number | Range, value: Content) => ReturnType,
insertContentAt: (position: number | Range, value: Content, options?: CreateNodeFromContentOptions) => ReturnType,
}
}
}
export const insertContentAt: RawCommands['insertContentAt'] = (position, value) => ({ tr, dispatch, editor }) => {
export const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {
if (dispatch) {
const content = createNodeFromContent(value, editor.schema, {
parseOptions: {
preserveWhitespace: 'full',
},
...(options || {})
})
// dont dispatch an empty fragment because this can lead to strange errors