|
|
@ -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"
|