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 { NodeSelection } from 'prosemirror-state'
import minMax from '../utilities/minMax'
import { Command, RawCommands } from '../types' import { Command, RawCommands } from '../types'
declare module '@tiptap/core' { declare module '@tiptap/core' {
@@ -14,7 +15,9 @@ declare module '@tiptap/core' {
export const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => { export const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {
if (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) tr.setSelection(selection)
} }

View File

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