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: Calling ReactEditor.focus doesn't update useFocused when running in @testing-library/react #5593

Merged
merged 1 commit into from
Jan 24, 2024

Conversation

12joan
Copy link
Contributor

@12joan 12joan commented Jan 22, 2024

Description
Sometimes, when calling ReactEditor.focus in @testing-library/react, the value of useFocused doesn't get updated. This PR addresses this issue by setting IS_FOCUSED to true prior to dispatching a DOM focus event.

Context
The isFocused state variable controlling useFocused (via FocusedContext) is updated in slate.tsx in response to focus and blur events, but the value of isFocused is always pulled from IS_FOCUSED, regardless of which event triggered the update. This stopped working in #5527 when the ReactEditor.focus line setting IS_FOCUSED was moved to after el.focus({ preventScroll: true }).

When running in a real browser, IS_FOCUSED is already set to true when domSelection?.addRange(domRange) is called higher up in ReactEditor.focus, via onDOMSelectionChange.

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 Jan 22, 2024

🦋 Changeset detected

Latest commit: 6076d44

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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants