Parcourir la Source

support the `Option` type.

it's similar to the optional keys, but can be used to wrap any type.
Lucas Stadler 12 ans auparavant
Parent
commit
607439bfb9
1 fichiers modifiés avec 7 ajouts et 0 suppressions
  1. 7 0
      clj/clarity/cljs/clarity.cljs

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

47
(defmethod empty-value 'Value [[_ v]]
47
(defmethod empty-value 'Value [[_ v]]
48
  v)
48
  v)
49
49
50
(defmethod empty-value 'Option [[_ v]]
51
  (empty-value v))
52
50
(defmethod empty-value 'U [[_ & [[_ v]]]]
53
(defmethod empty-value 'U [[_ & [[_ v]]]]
51
  v)
54
  v)
52
55
112
                    (keyword? value) {:type "text", :pattern keyword-pattern}
115
                    (keyword? value) {:type "text", :pattern keyword-pattern}
113
                    :else {:type "text"}))))))
116
                    :else {:type "text"}))))))
114
117
118
(defmethod make-typed-input 'Option [m owner {type :type :as opts}]
119
  (let [[_ type] type]
120
    (make-typed-input m owner (assoc opts :type type))))
121
115
(defmethod make-typed-input 'U [m owner {:keys [type key val]}]
122
(defmethod make-typed-input 'U [m owner {:keys [type key val]}]
116
  (om/component
123
  (om/component
117
    (dom/select #js {:onChange (update-on-change! m key r/read-string)}
124
    (dom/select #js {:onChange (update-on-change! m key r/read-string)}