From ec4a413a7bcbcc28c22f8faa26cbce9cb0200e07 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Mon, 10 Jul 2017 18:00:35 +0200 Subject: [PATCH] bugfix: better diff'ing for complex components --- src/karax.nim | 5 ++--- tests/blur.nim | 6 ++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/karax.nim b/src/karax.nim index c35e72a..13c52a2 100644 --- a/src/karax.nim +++ b/src/karax.nim @@ -411,9 +411,8 @@ proc diff(newNode, oldNode: VNode; parent, current: Node; kxi: KaraxInstance): E else: let res = diff(x.expanded, oldExpanded, parent, current, kxi) if res == usenewNode: - #oldNode[i] = newNode[i] - #kxi.addPatchV(oldNode, i, newNode[i]) - kxi.addPatch(pkReplace, parent, current, x.expanded) + #kxi.addPatch(pkReplace, parent, current, x.expanded) + discard "diff created a patchset for us, so this is fine" elif res != different: x.expanded = oldExpanded assert oldExpanded.dom != nil, "old expanded.dom is nil" diff --git a/tests/blur.nim b/tests/blur.nim index 25c0b24..fbb0a46 100644 --- a/tests/blur.nim +++ b/tests/blur.nim @@ -59,7 +59,7 @@ proc update(current, next: VComponent) = let next = TextInput(next) current.value = next.value current.guid = next.guid - next.isActive = current.isActive + #next.isActive = current.isActive proc newTextInput*(style: VStyle = VStyle(); guid: cstring; value: cstring = cstring"", onchange: proc(v: cstring) = nil): TextInput = @@ -107,10 +107,12 @@ var proc renderPerson(text: cstring, index: int): VNode = proc select(ev: Event, n: VNode) = selected = index + errmsg = "" result = buildHtml(): - tdiv(onClick=select): + tdiv: text text + button(onClick = select) proc createDom(): VNode = result = buildHtml(tdiv):