              :on-change #(search-fn (.. % -target -value))}])
          (when (:active @state)
            [:div.options {:class (when-not search-fn :no-input)}
-            [options-list options label-fn (comp #(swap! state assoc :active false)
-                                                 on-change)]])])})))
+            (when search-by-enter [:div.no-results "Press enter for lookup"])
+            (if (= :loading options)
+              [:div.no-results "Loading..."]
+              [options-list options label-fn (comp #(swap! state assoc :active false)
+                                                   on-change)])])])})))

                                                     "cross")))
                               (on-blur e)
                               (swap! state assoc :active false)))
        search-fn (if debounce-interval
                    (debounce on-search debounce-interval)
                    on-search)
        arrow-handler (fn [e]
                        (if-let [s (:selected @state)]
                          (let [upd (fn [x direction]

        label-fn (or label-fn identity)]

    (r/create-class
     {:component-did-mount
      (fn [this]
        (let [root (r/dom-node this)]
          (swap! state assoc :root-node root)
