                :value       @val
                :style       {:margin 7}
                :auto-focus  true
-               :on-change   #(reset! val (-> % .-target .-value))
+               :on-change   #(do (reset! val (-> % .-target .-value))
+                                 (on-change %))
                :on-key-down #(case (.-which %)
                                13 (do
                                     (save)

  (monkey-patch-reagent)
  )

(defn search-input [{:keys [title on-save on-stop]}]
  (let [val  (r/atom title)
        save #(let [v (-> @val str str/trim)]
                (when (pos? (count v))

            filter-msg           (if (and (str/blank? @filter-input) (str/blank? @slower-than-ms))
                                   (str "Filter " (count @traces) " events: ")
                                   (str "Filtering " (count showing-traces) " of " (count @traces) " events:"))
            padding              {:padding "0px 5px 0px 5px"}
            save-query           (fn [_]
                                   (swap! filter-items conj {:id (random-uuid)
                                                             :query (str/lower-case @filter-input)
                                                             :filter-type @filter-type}))]
        [:div
         {:style {:padding "10px"}}
         [:h1 "TRACES"]
         [:span filter-msg [:button {:on-click #(do (trace/reset-tracing!) (reset! traces []))} " Clear traces"]] [:br]
         [:span "Filter events "
          [:select {:value @filter-type :on-change (fn [e]
                                                       (reset! filter-type (.. e -target -value))
                                                       (println (.. e -target -value)))}
           [:option "contains"]
           [:option "slower than"]]
          [search-input {:on-save save-query
                         :on-change #(reset! filter-input (.. % -target -value))}]
          [:button {:on-click save-query} "+"]
          ;; [:button {:style {:background "#aae0ec"
          ;;                   :padding 7
          ;;                   :margin 5}}
          ;;  "-"]]
          [:br]
          [:div.filter-items
           (map (fn [item]
                    ^{:key (:id item)}
                    [:span [:div.filter-item {:style {:paddingLeft 90}} (:filter-type item) " " (:query item)
                            [:button {:on-click (fn [event] (swap! filter-items #(remove (comp (partial = (:query item)) :query) %)))}
                             "-"]]])
                @filter-items)]]
         [:table
          {:cell-spacing "0" :width "100%"}
          [:thead>tr
