浏览代码

move update-on-change! before first use.

clojurescript being compiled to javascript allows this (hoisted
variables), but it emits a warning and might be confusing/non-idiomatic.
Lucas Stadler 12 年之前
父节点
当前提交
4249386d49
共有 1 个文件被更改,包括 10 次插入10 次删除
  1. 10 10
      clj/clarity/cljs/clarity.cljs

+ 10 - 10
clj/clarity/cljs/clarity.cljs

@ -60,6 +60,16 @@
60 60
                 [k (empty-value v)])
61 61
               entries))))
62 62
63
(defn update-on-change!
64
  ([m k] (update-on-change! m k identity))
65
  ([m k transform-fn] (update-on-change! m k transform-fn false))
66
  ([m k transform-fn optional?]
67
   (fn [ev]
68
     (let [new-val (transform-fn (.. ev -target -value))]
69
       (if (and optional? (empty? new-val))
70
         (om/update! m dissoc k)
71
         (om/transact! m k (fn [_ n] n) new-val))))))
72
63 73
(defmulti make-typed-input
64 74
  (fn [_ _ {type :type} & _]
65 75
    (cond
@ -88,16 +98,6 @@
88 98
                    :pattern keyword-pattern
89 99
                    :onChange (update-on-change! m key #(or (read-keyword %) (empty-value type)))})))
90 100
91
(defn update-on-change!
92
  ([m k] (update-on-change! m k identity))
93
  ([m k transform-fn] (update-on-change! m k transform-fn false))
94
  ([m k transform-fn optional?]
95
   (fn [ev]
96
     (let [new-val (transform-fn (.. ev -target -value))]
97
       (if (and optional? (empty? new-val))
98
         (om/update! m dissoc k)
99
         (om/transact! m k (fn [_ n] n) new-val))))))
100
101 101
(defmethod make-typed-input 'String [m owner {:keys [type key val optional?]}]
102 102
  (om/component
103 103
    (dom/input #js {:type "text"