diff --git a/.changeset/unlucky-chairs-promise.md b/.changeset/unlucky-chairs-promise.md new file mode 100644 index 0000000000..061ec96f6b --- /dev/null +++ b/.changeset/unlucky-chairs-promise.md @@ -0,0 +1,6 @@ +--- +'slate-react': patch +'slate': patch +--- + +Fix the cursor jump to an unexpected position after deleting in android diff --git a/packages/slate-react/src/hooks/android-input-manager/android-input-manager.ts b/packages/slate-react/src/hooks/android-input-manager/android-input-manager.ts index 8dc58579f7..d50943f3a3 100644 --- a/packages/slate-react/src/hooks/android-input-manager/android-input-manager.ts +++ b/packages/slate-react/src/hooks/android-input-manager/android-input-manager.ts @@ -392,6 +392,11 @@ export function createAndroidInputManager({ if (Range.isExpanded(targetRange) && type.startsWith('delete')) { if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) { const [start, end] = Range.edges(targetRange) + + const point = { path: targetRange.anchor.path, offset: start.offset } + const range = Editor.range(editor, point, point) + handleUserSelect(range) + return storeDiff(targetRange.anchor.path, { text: '', end: end.offset,