                                      :re-frame.router/fsm-trigger "#fd701e"
                                      nil)}}
                [:td {:style (merge row-style {:cursor "pointer"})
-                     :on-click (fn [e]
-                                 (when show?
-                                   (swap! trace-detail-expansions assoc-in [:overrides id] true))
-                                 (swap! trace-detail-expansions update-in [:overrides id] not))}
-                (if show? "▼" "▶")]
+                     :on-click #(swap! trace-detail-expansions update-in [:overrides id]
+                                       (fn [bool] (if show-row? false (not bool))))}
+                (if show-row? "▼" "▶")]
                [:td {:style row-style} (str op-type)]
                [:td {:style row-style} (if (= PersistentVector (type (js->clj operation)))
                                          (second operation)

        filter-items               (r/atom [])
        filter-type                (r/atom :contains)
        input-error                (r/atom false)
        trace-detail-expansions    (r/atom {:showing false :overrides {}})]
    (fn []
      (let [showing-traces       (if (= @filter-items [])
                                   @traces

             [:th [:button.text-button
                   {:style {:cursor "pointer"}
                    :on-click (fn [e]
                                (swap! trace-detail-expansions assoc :overrides {})
                                (swap! trace-detail-expansions update :show-all? not))}
                   (if (:show-all? @trace-detail-expansions) "-" "+")]]
             [:th "operations"]
             [:th
               (when (pos? (count @filter-items))
