diff --git a/packages/editor-ext/src/lib/search-and-replace/search-and-replace.ts b/packages/editor-ext/src/lib/search-and-replace/search-and-replace.ts index 1ed7632d..2326a50a 100644 --- a/packages/editor-ext/src/lib/search-and-replace/search-and-replace.ts +++ b/packages/editor-ext/src/lib/search-and-replace/search-and-replace.ts @@ -197,11 +197,15 @@ const replace = ( }); const marks = Array.from(marksSet); - - // Delete the old text and insert new text with preserved marks + + // Delete the old text tr.delete(from, to); - tr.insert(from, state.schema.text(replaceTerm, marks)); + // Only insert new text if replaceTerm is not empty (allows for deletion when replaceTerm is empty) + if (replaceTerm) { + tr.insert(from, state.schema.text(replaceTerm, marks)); + } + dispatch(tr); } }; @@ -228,10 +232,14 @@ const replaceAll = ( }); const marks = Array.from(marksSet); - - // Delete and insert with preserved marks + + // Delete the old text tr.delete(from, to); - tr.insert(from, tr.doc.type.schema.text(replaceTerm, marks)); + + // Only insert new text if replaceTerm is not empty (allows for deletion when replaceTerm is empty) + if (replaceTerm) { + tr.insert(from, tr.doc.type.schema.text(replaceTerm, marks)); + } } dispatch(tr);