Skip to content

Commit f8d9575

Browse files
committed
imp(dom-adapters): save formatting on block split
1 parent 8899cd1 commit f8d9575

File tree

1 file changed

+11
-1
lines changed
  • packages/dom-adapters/src/BlockToolAdapter

1 file changed

+11
-1
lines changed

packages/dom-adapters/src/BlockToolAdapter/index.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,16 @@ export class BlockToolAdapter implements BlockToolAdapterInterface {
349349
const currentValue = this.#model.getText(this.#blockIndex, key);
350350
const newValueAfter = currentValue.slice(end);
351351

352+
const relatedFragments = this.#model.getFragments(this.#blockIndex, key, start, currentValue.length);
353+
354+
/**
355+
* Adjust fragments ranges respectfully to the removed text
356+
*/
357+
relatedFragments.forEach(fragment => {
358+
fragment.range[0] = Math.max(0, fragment.range[0] - end);
359+
fragment.range[1] -= end;
360+
});
361+
352362
this.#model.removeText(this.#config.userId, this.#blockIndex, key, start, currentValue.length);
353363
this.#model.addBlock(
354364
this.#config.userId,
@@ -358,7 +368,7 @@ export class BlockToolAdapter implements BlockToolAdapterInterface {
358368
[key]: {
359369
$t: 't',
360370
value: newValueAfter,
361-
fragments: [],
371+
fragments: relatedFragments,
362372
},
363373
},
364374
},

0 commit comments

Comments
 (0)