     0 (.' util/react createElement comp jsprops)
 
     1 (.' util/react createElement comp jsprops
-          (as-element (nth argv first-child)))
+          (as-element (nth argv first-child nil)))
 
     (.apply (.' util/react :createElement) nil
             (reduce-kv (fn [a k v]

        (-> [(reagent-input) argv comp jsprops first-child]
            (with-meta (meta argv))
            as-element)
        (let [key (some-> (meta argv) get-key)
              p (if (nil? key)
                  jsprops
                  (doto (if (nil? jsprops) #js{} jsprops)
                    (.! :key key)))]
          (make-element argv comp p first-child))))))

(defn str-coll [coll]

        (coll? x) (clj->js x)
        (ifn? x) (fn [& args]
                   (apply x args))
        :else (clj->js x)))

(defn oset [o k v]
  (doto (if (nil? o) #js{} o)
    (aset k v)))

(defn oget [o k]
  (if (nil? o) nil (aget o k)))

(defn set-id-class [p id-class]
  (let [id (.' id-class :id)
        p (if (and (some? id)
                   (nil? (oget p "id")))
            (oset p "id" id)
            p)]
    (if-some [class (.' id-class :className)]
      (let [old (oget p "className")]
        (oset p "className" (if (nil? old)
                              class
                              (str class " " old))))
      p)))

(defn convert-props [props id-class]
  (-> props
      convert-prop-value
      (set-id-class id-class)))


;;; Specialization for input components
