use minMax fo selection commands

This commit is contained in:
Philipp Kühn 2021-04-27 11:52:50 +02:00
parent eb7e92f10a
commit fb3990d333
2 changed files with 9 additions and 2 deletions

View File

@ -1,4 +1,5 @@
import { NodeSelection } from 'prosemirror-state'
import minMax from '../utilities/minMax'
import { Command, RawCommands } from '../types'
declare module '@tiptap/core' {
@ -14,7 +15,9 @@ declare module '@tiptap/core' {
export const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {
if (dispatch) {
const selection = NodeSelection.create(tr.doc, position)
const { doc } = tr
const from = minMax(position, 0, doc.content.size)
const selection = NodeSelection.create(doc, from)
tr.setSelection(selection)
}

View File

@ -1,4 +1,5 @@
import { TextSelection } from 'prosemirror-state'
import minMax from '../utilities/minMax'
import { Command, RawCommands, Range } from '../types'
declare module '@tiptap/core' {
@ -14,7 +15,10 @@ declare module '@tiptap/core' {
export const setTextSelection: RawCommands['setTextSelection'] = range => ({ tr, dispatch }) => {
if (dispatch) {
const selection = TextSelection.create(tr.doc, range.from, range.to)
const { doc } = tr
const from = minMax(range.from, 0, doc.content.size)
const to = minMax(range.to, 0, doc.content.size)
const selection = TextSelection.create(doc, from, to)
tr.setSelection(selection)
}