From a3bc97af3e3bc88ccf9ab7eadb1a56c0bc92f436 Mon Sep 17 00:00:00 2001 From: Szymon Wiszczuk <37072867+golota60@users.noreply.github.com> Date: Wed, 9 Jun 2021 17:54:41 +0200 Subject: [PATCH] Fix deletion of selected inline void nodes in Safari (#4331) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudéric Demers --- .changeset/safari-delete-inlinevoid.md | 5 +++++ packages/slate-react/src/components/editable.tsx | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/safari-delete-inlinevoid.md diff --git a/.changeset/safari-delete-inlinevoid.md b/.changeset/safari-delete-inlinevoid.md new file mode 100644 index 000000000..dafc453cc --- /dev/null +++ b/.changeset/safari-delete-inlinevoid.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +Fix deletion of selected inline void nodes in Safari when presssing `backspace` or `delete`. This is a bug that [was originally fixed only for Google Chrome](https://github.com/ianstormtaylor/slate/issues/3456), but the fix also needs to be applied in Safari. diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index c61b8eb91..623ae44d6 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -1066,8 +1066,8 @@ export const Editable = (props: EditableProps) => { return } } else { - if (IS_CHROME) { - // COMPAT: Chrome supports `beforeinput` event but does not fire + if (IS_CHROME || IS_SAFARI) { + // COMPAT: Chrome and Safari support `beforeinput` event but do not fire // an event when deleting backwards in a selected void inline node if ( selection &&