From e25016354efe58bb091609935382816b4bb4a144 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 11 Mar 2024 12:08:34 +0500 Subject: [PATCH] editor: fix search decorations not cleared on search end --- .../editor/src/extensions/search-replace/search-replace.ts | 1 + packages/editor/src/toolbar/floating-menus/search-replace.tsx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/editor/src/extensions/search-replace/search-replace.ts b/packages/editor/src/extensions/search-replace/search-replace.ts index 83646c7e5..4e48982a8 100644 --- a/packages/editor/src/extensions/search-replace/search-replace.ts +++ b/packages/editor/src/extensions/search-replace/search-replace.ts @@ -384,6 +384,7 @@ export const SearchReplace = Extension.create({ tr.getMeta("selectedIndex") ?? value.selectedIndex; const shouldResearch = docChanged || + (isSearching !== value.isSearching && isSearching) || searchTerm !== value.searchTerm || matchCase !== value.matchCase || matchWholeWord !== value.matchWholeWord || diff --git a/packages/editor/src/toolbar/floating-menus/search-replace.tsx b/packages/editor/src/toolbar/floating-menus/search-replace.tsx index addfe4879..657e162bf 100644 --- a/packages/editor/src/toolbar/floating-menus/search-replace.tsx +++ b/packages/editor/src/toolbar/floating-menus/search-replace.tsx @@ -30,7 +30,8 @@ export function SearchReplaceFloatingMenu(props: FloatingMenuProps) { useLayoutEffect(() => { const { searchTerm, ...options } = useEditorSearchStore.getState(); - editor.commands.search(searchTerm, options); + if (!options.isSearching) editor.commands.endSearch(); + else editor.commands.search(searchTerm, options); }, []); return ( @@ -38,7 +39,6 @@ export function SearchReplaceFloatingMenu(props: FloatingMenuProps) { mobile="sheet" desktop="popup" isOpen={isSearching} - container={document.body} onClose={() => editor.commands.endSearch()} position={{ target: editor.isEditable ? getToolbarElement() : getEditorContainer(),