     (while true
       (let [[type ev arg] (<! channel)]
         (case type
+          :screen (om/update! app [:screen] arg)
+          :import (if (= 13 (:key-code ev)) 
+            (om/transact! app #(merge % {:screen :summary, :txs (into (:txs app) (import-transactions ev))})))
           :create (om/transact! app [:txs] #(conj % (create-transaction (get-inputs-state))))
           :change (om/transact! app [:entry-parts] #(change-part-field ev arg %))
           :blur (om/transact! app [:entry-parts] #(blur-amount ev arg %)))))))

          (dom/tr nil
            (dom/td nil date)
            (dom/td nil description)
            (dom/td nil to-account)
            (dom/td nil (if to-account "←"))
            (dom/td nil amount)
            (dom/td nil (if from-account "←"))
            (dom/td nil from-account)
            (dom/td nil note)))))))

(defn dom-el [id]
  (.getElementById js/document id))

  (:require-macros [cljs.core.async.macros :refer [go]])
  (:require [om.core :as om :include-macros true]
            [om.dom :as dom :include-macros true]
            [clojure.string :as str]
            [cljs.reader]
            [cljs.core.async :refer [put! chan <!]]))

(enable-console-print!)
