all files / src/patchVNode/ replacePreviousElement.ts

42.86% Statements 3/7
100% Branches 0/0
0% Functions 0/1
42.86% Lines 3/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                                 
import { VNode, ElementVNode } from '../'
import { ModuleCallbacks } from '../modules/ModuleCallbacks'
import { createElement } from '../createElement'
import { removeVNodes } from '../removeVNodes'
 
export function replacePreviousElement(
  formerVNode: VNode,
  vNode: VNode,
  moduleCallbacks: ModuleCallbacks,
  insertedVNodeQueue: Array<ElementVNode>)
{
  const parentNode = (formerVNode.element as Element).parentNode as Node
 
  const element = createElement(vNode, moduleCallbacks, insertedVNodeQueue).element as Element
 
  parentNode.insertBefore(element, formerVNode.element as Element)
 
  removeVNodes(parentNode, [ formerVNode as ElementVNode ], 0, 0, moduleCallbacks)
}