From 5c9948a330dbd28f1d4f6ff78f1f63d8e67fb283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Tue, 4 Jun 2019 22:35:06 +0200 Subject: [PATCH] search again after replace, fix edge case --- .../tiptap-extensions/src/extensions/Search.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/tiptap-extensions/src/extensions/Search.js b/packages/tiptap-extensions/src/extensions/Search.js index cbbef298..845a92c2 100644 --- a/packages/tiptap-extensions/src/extensions/Search.js +++ b/packages/tiptap-extensions/src/extensions/Search.js @@ -91,9 +91,15 @@ export default class Search extends Extension { replace(replace) { return (state, dispatch) => { - const { from, to } = this.results[0] + const firstResult = this.results[0] + if (!firstResult) { + return + } + + const { from, to } = this.results[0] dispatch(state.tr.insertText(replace, from, to)) + this.editor.commands.find(this.searchTerm) } } @@ -119,13 +125,19 @@ export default class Search extends Extension { replaceAll(replace) { return ({ tr }, dispatch) => { let offset + + if (!this.results.length) { + return + } + this.results.forEach(({ from, to }, index) => { tr.insertText(replace, from, to) - offset = this.rebaseNextResult(replace, index, offset) }) dispatch(tr) + + this.editor.commands.find(this.searchTerm) } }