From 54594d0f81627166d72c97256203c4b5642a82ff Mon Sep 17 00:00:00 2001 From: Joe Anderson Date: Wed, 24 Jan 2024 14:05:16 +0000 Subject: [PATCH] Fix `useFocused` not updated when calling `ReactEditor.focus` (#5593) --- .changeset/shiny-numbers-matter.md | 5 +++++ packages/slate-react/src/plugin/react-editor.ts | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/shiny-numbers-matter.md diff --git a/.changeset/shiny-numbers-matter.md b/.changeset/shiny-numbers-matter.md new file mode 100644 index 000000000..858cadb43 --- /dev/null +++ b/.changeset/shiny-numbers-matter.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +Fix: Calling `ReactEditor.focus` doesn't update `useFocused` when running in @testing-library/react diff --git a/packages/slate-react/src/plugin/react-editor.ts b/packages/slate-react/src/plugin/react-editor.ts index 422b1e816..9485e9df2 100644 --- a/packages/slate-react/src/plugin/react-editor.ts +++ b/packages/slate-react/src/plugin/react-editor.ts @@ -447,8 +447,10 @@ export const ReactEditor: ReactEditorInterface = { Transforms.select(editor, Editor.start(editor, [])) editor.onChange() } - el.focus({ preventScroll: true }) + // IS_FOCUSED should be set before calling el.focus() to ensure that + // FocusedContext is updated to the correct value IS_FOCUSED.set(editor, true) + el.focus({ preventScroll: true }) } },