fix(web): surgical DOM patch for tool rows to stop flashing
Patch deltas on existing rows now swap just the affected element via replaceWith() instead of tearing down and rebuilding the entire transcript. Stops the visible flash and preserves text selection. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
47654aa434
commit
49df4c2e9e
@@ -551,6 +551,19 @@ export function createStructuredConnection(
|
||||
rows.push(delta.row);
|
||||
} else {
|
||||
rows[i] = delta.row;
|
||||
// Surgical DOM swap: replace just this row's element instead of
|
||||
// tearing down and rebuilding the entire transcript, which causes
|
||||
// visible flashing and breaks text selection.
|
||||
const oldEl = rowEls.get(delta.row.id);
|
||||
if (oldEl) {
|
||||
const newEl = buildRowElement(delta.row);
|
||||
if (newEl) {
|
||||
oldEl.replaceWith(newEl);
|
||||
rowEls.set(delta.row.id, newEl);
|
||||
}
|
||||
syncAvailableCommands();
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const i = rowIndex.get(delta.id);
|
||||
|
||||
Reference in New Issue
Block a user