splitting an item must always happen inside a transaction, because we always need to check if we can merge it back

This commit is contained in:
Kevin Jahns
2019-04-11 00:23:08 +02:00
parent 9fe47e98d5
commit 2ef11a5344
18 changed files with 72 additions and 63 deletions

View File

@@ -39,7 +39,7 @@ const findNextPosition = (transaction, store, currentAttributes, left, right, co
if (!right.deleted) {
if (count < right.length) {
// split right
getItemCleanStart(store, createID(right.id.client, right.id.clock + count))
getItemCleanStart(transaction, store, createID(right.id.client, right.id.clock + count))
}
count -= right.length
}
@@ -251,7 +251,7 @@ const formatText = (transaction, parent, left, right, currentAttributes, length,
case ItemEmbed:
case ItemString:
if (length < right.length) {
getItemCleanStart(transaction.y.store, createID(right.id.client, right.id.clock + length))
getItemCleanStart(transaction, transaction.y.store, createID(right.id.client, right.id.clock + length))
}
length -= right.length
break
@@ -284,7 +284,7 @@ const deleteText = (transaction, parent, left, right, currentAttributes, length)
case ItemEmbed:
case ItemString:
if (length < right.length) {
getItemCleanStart(transaction.y.store, createID(right.id.client, right.id.clock + length))
getItemCleanStart(transaction, transaction.y.store, createID(right.id.client, right.id.clock + length))
}
length -= right.length
right.delete(transaction)