Przeglądaj źródła

show required fields before optional ones.

Lucas Stadler 12 lat temu
rodzic
commit
79f9f2de1c
1 zmienionych plików z 9 dodań i 7 usunięć
  1. 9 7
      clj/clarity/cljs/clarity.cljs

+ 9 - 7
clj/clarity/cljs/clarity.cljs

@ -128,6 +128,13 @@
128 128
               (dom/option nil (str v)))
129 129
             (rest type))))))
130 130
131
(defn make-typed-field [m optional?]
132
  (fn [[k t]]
133
    (dom/div #js {:className "field"}
134
      (dom/label nil (str k (when optional? " (optional)")))
135
      (om/build make-typed-input m {:opts {:type t, :key k, :val (k m)
136
                                           :optional? optional?}}))))
137
131 138
(defmethod make-typed-input 'HMap [m owner {type :type}]
132 139
  (let [hmap (apply hash-map (rest type))
133 140
        required (:mandatory hmap)
@ -135,13 +142,8 @@
135 142
    (om/component
136 143
      (dom/div nil
137 144
        (dom/span nil "{")
138
        (into-array
139
          (map (fn [[k t]]
140
                 (dom/div #js {:className "field"}
141
                   (dom/label nil (str k))
142
                   (om/build make-typed-input m {:opts {:type t, :key k, :val (k m)
143
                                                        :optional? (contains? optional k)}})))
144
               (merge required optional)))
145
        (into-array (map (make-typed-field m false) required))
146
        (into-array (map (make-typed-field m true) optional))
145 147
        (dom/span nil "}")))))
146 148
147 149
(def app-state