This commit is contained in:
Araq 2020-04-12 23:41:24 +02:00
commit 02038d40c1

View file

@ -154,7 +154,9 @@ proc getVNodeById*(id: cstring; kxi: KaraxInstance = kxi): VNode =
proc toDom*(n: VNode; useAttachedNode: bool; kxi: KaraxInstance = nil): Node = proc toDom*(n: VNode; useAttachedNode: bool; kxi: KaraxInstance = nil): Node =
if useAttachedNode: if useAttachedNode:
if n.dom != nil: return n.dom if n.dom != nil:
if n.id != nil: kxi.byId[n.id] = n
return n.dom
if n.kind == VNodeKind.text: if n.kind == VNodeKind.text:
result = document.createTextNode(n.text) result = document.createTextNode(n.text)
attach n attach n
@ -383,6 +385,8 @@ proc addPatchV(kxi: KaraxInstance; parent: VNode; pos: int; newChild: VNode) =
proc moveDom(dest, src: VNode) = proc moveDom(dest, src: VNode) =
dest.dom = src.dom dest.dom = src.dom
src.dom = nil src.dom = nil
if dest.id != nil:
kxi.byId[dest.id] = dest
assert dest.len == src.len assert dest.len == src.len
for i in 0..<dest.len: for i in 0..<dest.len:
moveDom(dest[i], src[i]) moveDom(dest[i], src[i])