                  (when-not (nil? s)
                    (control model [:component s] dispatch)))))
 
+           [:on-toggle-signal id]
+           (do
+             (dispatch [:toggle-signal id])
+             (dispatch :replay))
+
            [:on-toggle-action id]
            (do
              (dispatch [:toggle-action id])

           (-> model
               (update :signal-events concat [signal-event])
               (update :next-signal-id inc))

           [:toggle-action id]
           (-update-action-event model id update :enabled? not)

      (for [[signal-id signal] (reverse (:signal-events model))]
        ^{:key signal-id}
        [:div {:title "Signal"}
         [:div {:style    {:cursor "pointer"}
                :on-click #(dispatch [:on-toggle-signal signal-id])
                :title    "Click to enable/disable all actions dispatched from this signal"}
          "→ "
          (if (coll? signal)
            [:span [:strong (pr-str (first signal))] " " (clojure.string/join " " (rest signal))]
            [:strong (pr-str signal)])]

         (for [{:keys [id enabled? action]} (filter #(= (:signal-id %) signal-id)
                                                    (:action-events model))]
