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-- }