From 1c32b97d23138d301e9ecb567263e3001cc4dbfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claud=C3=A9ric=20Demers?= Date: Mon, 3 May 2021 15:29:27 -0400 Subject: [PATCH] Collapse expanded selection before move word (#4211) --- .changeset/move-word-collapse.md | 5 +++++ packages/slate-react/src/components/editable.tsx | 10 ++++++++++ 2 files changed, 15 insertions(+) create mode 100644 .changeset/move-word-collapse.md diff --git a/.changeset/move-word-collapse.md b/.changeset/move-word-collapse.md new file mode 100644 index 0000000000..02fa14ce27 --- /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 57b72dd724..75d129a6cc 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 }