1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-21 09:22:09 +03:00

Shared link mark update logic with color controls

This commit is contained in:
Dan Brown
2022-01-19 23:54:59 +00:00
parent bb12541179
commit b1f5495a7f
3 changed files with 48 additions and 17 deletions

View File

@ -45,6 +45,25 @@ export function nullifyEmptyValues(object) {
return clean;
}
/**
* @param {PmEditorState} state
* @param {PmSelection} selection
* @param {PmMarkType} markType
* @return {{from: Number, to: Number}}
*/
export function expandSelectionToMark(state, selection, markType) {
let {from, to} = selection;
const noRange = (from === to);
if (noRange) {
const markRange = markRangeAtPosition(state, markType, from);
if (markRange.from !== -1) {
from = markRange.from;
to = markRange.to;
}
}
return {from, to};
}
/**
* @param {PmEditorState} state
* @param {PmMarkType} markType
@ -54,7 +73,7 @@ export function nullifyEmptyValues(object) {
export function markRangeAtPosition(state, markType, pos) {
const $pos = state.doc.resolve(pos);
const { parent, parentOffset } = $pos;
const {parent, parentOffset} = $pos;
const start = parent.childAfter(parentOffset);
if (!start.node) return {from: -1, to: -1};
@ -73,7 +92,7 @@ export function markRangeAtPosition(state, markType, pos) {
endPos += parent.child(endIndex).nodeSize;
endIndex += 1;
}
return { from: startPos, to: endPos };
return {from: startPos, to: endPos};
}
/**