From cd78f5085f0619b0cbbeb6c1f7f67a40d855eb85 Mon Sep 17 00:00:00 2001 From: Roman Vishnevskii Date: Tue, 2 May 2017 19:50:35 +0700 Subject: [PATCH] Simplify updateElement --- src/karax.nim | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/karax.nim b/src/karax.nim index 1ef0a9b..23dc324 100644 --- a/src/karax.nim +++ b/src/karax.nim @@ -222,17 +222,16 @@ proc updateElement(parent, current: Node, newNode, oldNode: VNode) = updateElement(current, oldNode[rightOld].dom, newNode[rightNew], oldNode[rightOld]) dec rightNew dec rightOld - - var nextChildPos = rightOld + 1 + + var posNextElem = rightOld + 1 + var isPushBack = posNextElem == oldLength while left <= rightNew: - if nextChildPos == oldLength: + if isPushBack: current.appendChild(vnodeToDom(newNode[left])) else: - current.insertBefore(vnodeToDom(newNode[left]), oldNode[rightOld + 1].dom) + current.insertBefore(vnodeToDom(newNode[left]), oldNode[posNextElem].dom) # added new Node, so old state of VDOM have one more Node - inc oldLength inc left - inc nextChildPos for i in left..rightOld: current.removeChild(oldNode[i].dom)