diff --git a/src/runtime/connected-callback.ts b/src/runtime/connected-callback.ts index 947a2ee5f07..e83db09d5f1 100644 --- a/src/runtime/connected-callback.ts +++ b/src/runtime/connected-callback.ts @@ -9,6 +9,7 @@ import { createTime } from './profile'; import { HYDRATE_ID, NODE_TYPE, PLATFORM_FLAGS } from './runtime-constants'; import { addStyle } from './styles'; import { attachToAncestor } from './update-component'; +import { insertBefore } from './vdom/vdom-render'; export const connectedCallback = (elm: d.HostElement) => { if ((plt.$flags$ & PLATFORM_FLAGS.isTmpDisconnected) === 0) { @@ -128,5 +129,5 @@ const setContentReference = (elm: d.HostElement) => { BUILD.isDebug ? `content-ref (host=${elm.localName})` : '', ) as any); contentRefElm['s-cn'] = true; - elm.insertBefore(contentRefElm, elm.firstChild); + insertBefore(elm, contentRefElm, elm.firstChild); }; diff --git a/src/runtime/dom-extras.ts b/src/runtime/dom-extras.ts index 6012bd65981..a2edcccd34b 100644 --- a/src/runtime/dom-extras.ts +++ b/src/runtime/dom-extras.ts @@ -353,7 +353,7 @@ export const patchTextContent = (hostElementPrototype: HTMLElement): void => { this.__textContent = value; const contentRefElm = this['s-cr']; if (contentRefElm) { - this.insertBefore(contentRefElm, this.firstChild); + insertBefore(this, contentRefElm, this.firstChild); } } }, diff --git a/src/runtime/vdom/vdom-annotations.ts b/src/runtime/vdom/vdom-annotations.ts index 09541d7ae8f..431d41f8d62 100644 --- a/src/runtime/vdom/vdom-annotations.ts +++ b/src/runtime/vdom/vdom-annotations.ts @@ -10,6 +10,7 @@ import { SLOT_NODE_ID, TEXT_NODE_ID, } from '../runtime-constants'; +import { insertBefore } from './vdom-render'; /** * Updates the DOM generated on the server with annotations such as node attributes and @@ -58,7 +59,7 @@ export const insertVdomAnnotations = (doc: Document, staticComponents: string[]) } const commentBeforeTextNode = doc.createComment(childId); commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`; - nodeRef.parentNode?.insertBefore(commentBeforeTextNode, nodeRef); + insertBefore(nodeRef.parentNode, commentBeforeTextNode, nodeRef); } } @@ -220,7 +221,7 @@ const insertChildVNodeAnnotations = ( const textNodeId = `${TEXT_NODE_ID}.${childId}`; const commentBeforeTextNode = doc.createComment(textNodeId); - parentNode?.insertBefore(commentBeforeTextNode, childElm); + insertBefore(parentNode, commentBeforeTextNode, childElm); } } else if (childElm.nodeType === NODE_TYPE.CommentNode) { if (childElm['s-sr']) { diff --git a/src/runtime/vdom/vdom-render.ts b/src/runtime/vdom/vdom-render.ts index 9143125d0f8..8217a29661e 100644 --- a/src/runtime/vdom/vdom-render.ts +++ b/src/runtime/vdom/vdom-render.ts @@ -930,7 +930,7 @@ export const insertBefore = (parent: Node, newNode: Node, reference?: Node): Nod return inserted; }; -const findParentScopeId = (element: any): any => { +const findParentScopeId = (element: d.RenderNode): string | undefined => { return element ? element['s-rsc'] || element['s-si'] || element['s-sc'] || findParentScopeId(element.parentElement) : undefined;