               :value     heroku-api-key-input
               :on-change  #(utils/edit-input owner (conj state/user-path :heroku-api-key-input) %)}]
             [:label {:placeholder "Add new key"}]
-            (forms/managed-button
-             [:input.btn
-              {:data-loading-text "Saving...",
-               :data-failed-text  "Failed to save Heroku key",
-               :data-success-text "Saved",
-               :type "submit"
-               :value "Save Heroku key"
-               :on-click submit-form!}])]]])))))
+            (button/managed-button
+             {:loading-text "Saving..."
+              :failed-text "Failed to save key"
+              :success-text "Saved"
+              :on-click submit-form!}
+             "Save Heroku key")]]])))))
 
 (defn api-tokens [app owner]
   (reify

  (:require [frontend.async :refer [raise!]]
            [frontend.components.common :as common]
            [frontend.components.forms :as forms]
            [frontend.components.pieces.icon :as icon]
            [frontend.components.pieces.table :as table]
            [frontend.components.project.common :as project]

                    (om/build svg {:class "badge-enrolled"
                                   :src (common/icon-path "Status-Passed")}))]
                 [:p (:description program)]
                 (button/button
                  {:on-click #(set-beta-preference! owner betas (:id program) (not participating?))}
                  (if participating?
                    (str "Leave " (:name program) " Beta")
                    (str "Join " (:name program) " Beta")))]))
            available-betas))])))))

(defn set-beta-program-preference! [owner pref]
