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: focus loss inside Shadow DOM in Firefox. #5676

Merged

Conversation

ivan-sysoi
Copy link
Contributor

Description
This pr fixes shadow dom example in firefox browser.

Issue
Fixes: #5321

Example
fix_firfox_shadow_dom

Context
ReactEditor.findDocumentOrShadowRoot returns document instead of ShadowRoot in firefox. Because firefox doesn't support getSelection on ShadowRoot.
This breaks the following:

activeElement === el

Here, for example:

const root = ReactEditor.findDocumentOrShadowRoot(editor)
const { activeElement } = root
const el = ReactEditor.toDOMNode(editor, editor)
const domSelection = root.getSelection()
if (activeElement === el) {
state.latestElement = activeElement
IS_FOCUSED.set(editor, true)
} else {
IS_FOCUSED.delete(editor)
}

So I decided to drop root.getSelection != null check from ReactEditor.findDocumentOrShadowRoot and added a separate function getSelection with it.

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.)

Copy link

changeset-bot bot commented Jul 6, 2024

🦋 Changeset detected

Latest commit: 4dde3c6

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 Minor

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

@dylans dylans merged commit ec9e5f0 into ianstormtaylor:main Jul 8, 2024
11 checks passed
@github-actions github-actions bot mentioned this pull request Jul 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Shadow DOM example is not working correctly
2 participants