Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix toSlatePoint() when text node ends in \n in Firefox #4547

Merged
merged 1 commit into from
Sep 26, 2021

Conversation

clauderic
Copy link
Collaborator

@clauderic clauderic commented Sep 24, 2021

Description

In Firefox, selecting the entire contents of a document via Ctrl+A causes the editor to crash when the document ends with a \n character.

Refer to the issue below for more specific replication steps.

Issue

Fixes: #4373

Example

Before

Before.-.Firefox.Ctrl+A.newline.bug.mp4

After

After.-.Firefox.Ctrl+A.newline.bug.mp4

Context

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.

Chrome:

Screen Shot 2021-09-24 at 4 44 44 PM

Firefox

Screen Shot 2021-09-24 at 4 45 38 PM

Checks

  • The new code matches the existing patterns and styles.
  • The tests pass with yarn test.
  • The linter passes with yarn lint. (Fix errors with yarn fix.)
  • The relevant examples still work. (Run examples with yarn start.)
  • You've added a changeset if changing functionality. (Add one with yarn changeset add.)

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.
@clauderic clauderic added the bug label Sep 24, 2021
@clauderic clauderic self-assigned this Sep 24, 2021
@changeset-bot
Copy link

changeset-bot bot commented Sep 24, 2021

🦋 Changeset detected

Latest commit: 7a18dc4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
slate-react Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CTRL+A crashes the editor in Firefox if the last text node ends with newline
2 participants