@lobehub/editor
Version:
A powerful and extensible rich text editor built on Meta's Lexical framework, providing a modern editing experience with React integration.
20 lines • 706 B
JavaScript
import { getDOMSelectionFromTarget } from 'lexical';
export function getDragSelection(event) {
// Return null on server side
if (typeof document === 'undefined') {
return null;
}
var range;
var domSelection = getDOMSelectionFromTarget(event.target);
if (document.caretRangeFromPoint) {
range = document.caretRangeFromPoint(event.clientX, event.clientY);
// @ts-expect-error not error
} else if (event.rangeParent && domSelection !== null) {
// @ts-expect-error not error
domSelection.collapse(event.rangeParent, event.rangeOffset || 0);
range = domSelection.getRangeAt(0);
} else {
throw new Error("Cannot get the selection when dragging");
}
return range;
}