                             (.. first-opt -classList (add "active"))
                             (swap! state assoc :selected first-opt
                                    :suggestions-container
-                                   (cmn/f-child (:root-node @state) "options")))))]
+                                   (cmn/f-child (:root-node @state) "options")))))
+        reset-input (fn [e] (on-change nil))]
+
     (r/create-class
      {
       :component-did-mount

           :on-click (fn [_] (on-change i))}
          (label-fn i)]))]))

(defn select [{:keys [on-search debounce-interval on-blur]}]
  (let [state (r/atom {:active false})
        doc-click-listener (fn [e]
                             (when (and (not (cmn/has-ancestor (.-target e) (:root-node @state)))
                                        (:active @state))
                               (on-blur e)
                               (swap! state assoc :active false)))
        search-fn (if debounce-interval

        [:div.re-select-container
         [:div.re-re-select
          {:class (when-not (empty? errors) :error)}
          [:div.flex
           {:on-click (fn [_] (do
                                (when search-fn (js/setTimeout #(.focus (:input-node @state)) 10))
                                (swap! state assoc :active true
                                       :selected nil)))}
           [:span.triangle "▾"]
           (if value
             [:span.value (label-fn value)]
             [:span.choose-value
              (or (:placeholder props) "Select...")])
           (when value
             [:span.cross {:on-click reset-input} "❌"])]]
         (when search-fn
           [:input.re-search-search
            {:tab-index 0
