         confirm   (subscribe [:credentials :password2])
         message   (subscribe [:credentials :message])
         section   (subscribe [:ui-state :section])
+        wip?      (subscribe [:ui-state :wip-login?])
         signup?   (reaction (= :signup @section))
         u-class   (reaction (if (and @signup? (empty? @username)) " has-error"))
         pw-class  (reaction (if (and @signup? (> 5 (count @password))) " has-error"))

          message   (if is-unauth "Invalid username/password" (:status-text result))
          msg-type  (if is-unauth "alert-danger" "alert-warning")]
      (-> app-state
          (assoc-in [:credentials :message] {:text message :type msg-type})
          (assoc-in [:credentials :token] nil)
          (assoc-in [:credentials :password] nil)

  (fn [app-state _]
    (dispatch [:set-token (cookies/get :token nil)])
    (merge app-state {:ui-state {:is-busy?      false
                                 :wip-login?    false
                                 :section       :login
                                 :current-query ""
                                 :results-page  0
