Fix: Switch to real dom before rebuilding fullsnapshot (#1139)

This commit is contained in:
Yun Feng
2023-03-08 18:19:00 +11:00
committed by GitHub
parent d82c5edfff
commit f27e545e18
6 changed files with 61 additions and 1 deletions

View File

@@ -713,6 +713,8 @@ export type CSSStyleDeclaration = Record<string, string> & {
};
function appendChild(parent: IRRNode, newChild: IRRNode) {
if (newChild.parentNode) newChild.parentNode.removeChild(newChild);
if (parent.lastChild) {
parent.lastChild.nextSibling = newChild;
newChild.previousSibling = parent.lastChild;
@@ -740,6 +742,9 @@ function insertBefore(
"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.",
);
if (newChild === refChild) return newChild;
if (newChild.parentNode) newChild.parentNode.removeChild(newChild);
newChild.previousSibling = refChild.previousSibling;
refChild.previousSibling = newChild;
newChild.nextSibling = refChild;