reinit search marker after transaction

This commit is contained in:
Kevin Jahns
2021-12-06 21:00:20 +01:00
parent 0948229422
commit 4356d70ed0
3 changed files with 26 additions and 9 deletions

View File

@@ -1,4 +1,5 @@
import * as error from 'lib0/error'
import { getItem } from 'yjs'
import {
getItemCleanStart,
@@ -73,6 +74,18 @@ export class ListIterator {
return iter
}
/**
* @param {Transaction} tr
*/
reinit (tr) {
if (this.nextItem) {
const nextId = this.nextItem.id
const reinitId = createID(nextId.client, nextId.clock + this.rel)
this.nextItem = getItem(tr.doc.store, reinitId)
this.rel = reinitId.clock - this.nextItem.id.clock
}
}
/**
* @type {Item | null}
*/
@@ -333,7 +346,7 @@ export class ListIterator {
left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, c)
left.integrate(tr, 0)
})
if (right === null && left !== null) {
if (right === null) {
this.nextItem = left
this.reachedEnd = true
} else {