From 76ada48dd3bd39dd772b2e0f768a8c8efdc9174c Mon Sep 17 00:00:00 2001 From: Andrew Suzuki Date: Mon, 6 Jun 2016 13:40:06 -0400 Subject: [PATCH] modal :action-brand, optional action --- src/cljs/ulysses/components/layout.cljs | 19 ++++++--------- src/cljs/ulysses/components/misc.cljs | 31 +++++++++++++++++-------- src/cljs/ulysses/pages/builder.cljs | 1 + 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/cljs/ulysses/components/layout.cljs b/src/cljs/ulysses/components/layout.cljs index e1ff24b..2599ef7 100644 --- a/src/cljs/ulysses/components/layout.cljs +++ b/src/cljs/ulysses/components/layout.cljs @@ -17,18 +17,13 @@ on-close (partial dispatch [:modal-close])] (fn [] (when-let [ms @mss] - (let [{:keys [title action-label on-action children]} ms] - [modal-panel - :wrap-nicely? false - :backdrop-on-click on-close - :class (classes :modal-alpha) - :child - [modal-dialog - title - action-label - (fn [] (on-action) (on-close)) - on-close - children]]))))) + [modal-panel + :wrap-nicely? false + :backdrop-on-click on-close + :class (classes :modal-alpha) + :child + [modal-dialog + (assoc ms :on-close on-close)]])))) (defn shell [page-name page] [:div.shell diff --git a/src/cljs/ulysses/components/misc.cljs b/src/cljs/ulysses/components/misc.cljs index 5505220..20a0ef9 100644 --- a/src/cljs/ulysses/components/misc.cljs +++ b/src/cljs/ulysses/components/misc.cljs @@ -28,13 +28,24 @@ ;; ---------------------------------------------------------------------------- (defn modal-dialog - [title action-label on-action on-close & body] - [:div.modal-content - [:div.modal-header - [:button {:type :button :class :close :on-click on-close} - [:span "×"]] - [:h4.modal-title title]] - (into [:div.modal-body] body) - [:div.modal-footer - [:button {:type :button :class (classes :btn :btn-secondary) :on-click on-close} "Close"] - [:button {:type :button :class (classes :btn :btn-primary) :on-click on-action} action-label]]]) + [{:keys [title action-label action-brand on-action on-close children] + :or {action-brand :primary}}] + (let [on-action-close (fn [] (on-action) (on-close))] + [:div.modal-content + [:div.modal-header + [:button {:type :button :class :close :on-click on-close} + [:span "×"]] + [:h4.modal-title title]] + (into [:div.modal-body] children) + [:div.modal-footer + [:button + {:type :button + :class (classes :btn :btn-secondary) + :on-click on-close} + "Close"] + (when action-label + [:button + {:type :button + :class (classes :btn (str "btn-" (name action-brand))) + :on-click on-action-close} + action-label])]])) diff --git a/src/cljs/ulysses/pages/builder.cljs b/src/cljs/ulysses/pages/builder.cljs index 104739e..743da3c 100644 --- a/src/cljs/ulysses/pages/builder.cljs +++ b/src/cljs/ulysses/pages/builder.cljs @@ -166,6 +166,7 @@ [:modal {:title [:span "Delete Workspace " [:i (:name workspace-current)]] :action-label "Delete" + :action-brand :danger :on-action #(dispatch [:workspace-delete]) :children "Are you sure you want to delete this workspace?"}])) (classes-attr :btn :btn-sm :btn-danger)