diff --git a/.changeset/move-word-collapse.md b/.changeset/move-word-collapse.md new file mode 100644 index 000000000..02fa14ce2 --- /dev/null +++ b/.changeset/move-word-collapse.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +Collapse expanded selection before handling `moveWordBackward` (`alt + left`) and `moveWordForward` (`alt + right`) hotkeys. diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 57b72dd72..75d129a6c 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -915,12 +915,22 @@ export const Editable = (props: EditableProps) => { if (Hotkeys.isMoveWordBackward(nativeEvent)) { event.preventDefault() + + if (selection && Range.isExpanded(selection)) { + Transforms.collapse(editor, { edge: 'focus' }) + } + Transforms.move(editor, { unit: 'word', reverse: !isRTL }) return } if (Hotkeys.isMoveWordForward(nativeEvent)) { event.preventDefault() + + if (selection && Range.isExpanded(selection)) { + Transforms.collapse(editor, { edge: 'focus' }) + } + Transforms.move(editor, { unit: 'word', reverse: isRTL }) return }