Compare commits

...

2 Commits

Author SHA1 Message Date
Kevin Jahns
5a8519d2c2 13.5.53 2023-04-18 20:09:59 +02:00
Kevin Jahns
d039d48b3f ytext: diff should never create useless delta op 2023-04-18 20:07:17 +02:00
3 changed files with 22 additions and 19 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "yjs", "name": "yjs",
"version": "13.5.52", "version": "13.5.53",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "yjs", "name": "yjs",
"version": "13.5.52", "version": "13.5.53",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"lib0": "^0.2.72" "lib0": "^0.2.72"

View File

@@ -1,6 +1,6 @@
{ {
"name": "yjs", "name": "yjs",
"version": "13.5.52", "version": "13.5.53",
"description": "Shared Editing Library", "description": "Shared Editing Library",
"main": "./dist/yjs.cjs", "main": "./dist/yjs.cjs",
"module": "./dist/yjs.mjs", "module": "./dist/yjs.mjs",

View File

@@ -631,36 +631,39 @@ export class YTextEvent extends YEvent {
/** /**
* @type {any} * @type {any}
*/ */
let op let op = null
switch (action) { switch (action) {
case 'delete': case 'delete':
op = { delete: deleteLen } if (deleteLen > 0) {
op = { delete: deleteLen }
}
deleteLen = 0 deleteLen = 0
break break
case 'insert': case 'insert':
op = { insert } if (typeof insert === 'object' || insert.length > 0) {
if (currentAttributes.size > 0) { op = { insert }
op.attributes = {} if (currentAttributes.size > 0) {
currentAttributes.forEach((value, key) => { op.attributes = {}
if (value !== null) { currentAttributes.forEach((value, key) => {
op.attributes[key] = value if (value !== null) {
} op.attributes[key] = value
}) }
})
}
} }
insert = '' insert = ''
break break
case 'retain': case 'retain':
op = { retain } if (retain > 0) {
if (Object.keys(attributes).length > 0) { op = { retain }
op.attributes = {} if (!object.isEmpty(attributes)) {
for (const key in attributes) { op.attributes = object.assign({}, attributes)
op.attributes[key] = attributes[key]
} }
} }
retain = 0 retain = 0
break break
} }
delta.push(op) if (op) delta.push(op)
action = null action = null
} }
} }