import vdom, karax, karaxdsl, jstrutils type Filter = enum all, active, completed var entries: seq[(cstring, bool)] selectedEntry = -1 filter: Filter proc onTodoEnter(ev: Event; n: VNode) = entries.add((n.value, false)) n.value = "" proc removeHandler(ev: Event; n: VNode) = entries[n.key] = (cstring(nil), false) proc editHandler(ev: Event; n: VNode) = selectedEntry = n.key proc focusLost(ev: Event; n: VNode) = selectedEntry = -1 proc editEntry(ev: Event; n: VNode) = entries[n.key][0] = n.value selectedEntry = -1 proc toggleEntry(ev: Event; n: VNode) = let id = n.key entries[id][1] = not entries[id][1] proc onAllDone(ev: Event; n: VNode) = entries = @[] selectedEntry = -1 proc clearCompleted(ev: Event, n: VNode) = for i in 0..