From 37d60c58b8d4fb844f31888b518be6c2a01fb110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claud=C3=A9ric=20Demers?= Date: Mon, 27 Sep 2021 13:14:07 -0400 Subject: [PATCH] only apply Firefox toSlatePoint offset fix if ending in `\n\n` (#4552) --- .changeset/firefox-newline-fix.md | 5 +++++ packages/slate-react/src/plugin/react-editor.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/firefox-newline-fix.md diff --git a/.changeset/firefox-newline-fix.md b/.changeset/firefox-newline-fix.md new file mode 100644 index 000000000..ee26f8d77 --- /dev/null +++ b/.changeset/firefox-newline-fix.md @@ -0,0 +1,5 @@ +--- +'slate': patch +--- + +Only apply Firefox `toSlatePoint()` offset fix when the cloned contents end in `\n\n` instead of just `\n`. diff --git a/packages/slate-react/src/plugin/react-editor.ts b/packages/slate-react/src/plugin/react-editor.ts index a41ce4bed..8fcdd6c2c 100644 --- a/packages/slate-react/src/plugin/react-editor.ts +++ b/packages/slate-react/src/plugin/react-editor.ts @@ -515,7 +515,7 @@ export const ReactEditor = { // COMPAT: In Firefox, `range.cloneContents()` returns an extra trailing '\n' // when the document ends with a new-line character. This results in the offset // length being off by one, so we need to subtract one to account for this. - (IS_FIREFOX && domNode.textContent?.endsWith('\n'))) + (IS_FIREFOX && domNode.textContent?.endsWith('\n\n'))) ) { offset-- }