nice logout sitch.

This commit is contained in:
Bryce Covert
2017-12-19 15:08:30 -08:00
parent 5e842a697b
commit 043e558a51
3 changed files with 27 additions and 21 deletions

View File

@@ -13,5 +13,6 @@
:unpaid #{}}
:status {:loading false}
:new-invoice {}
:menu {:active? false}
:menu {:company {:active? false}
:account {:active? false}}
})

View File

@@ -12,15 +12,14 @@
:active-page (:handler (bidi/match-route routes/routes (.. js/window -location -pathname))))))
(re-frame/reg-event-db
::toggle-company-menu
(fn [db [_ active-page]]
(update-in db [:menu :active?] #(not %))))
::toggle-menu
(fn [db [_ which]]
(update-in db [:menu which :active?] #(not %))))
(re-frame/reg-event-db
::logged-in
(fn [db [_ token user]]
(doto (assoc db :user (assoc user :token token))
println)))
(assoc db :user (assoc user :token token))))
(re-frame/reg-event-db
::swap-company
@@ -85,10 +84,15 @@
(fn [db [_ invoice]]
(assoc db :new-invoice {})))
(re-frame/reg-event-db
::logout
(fn [db [_]]
(assoc db :user nil :menu {:company {:active? false}
:account {:active? false}})))
(re-frame/reg-event-fx
::submit-new-invoice
(fn [{:keys [db]} [_ invoice]]
{:http {:method :post
:token (-> db :user)
:uri "/api/invoices"

View File

@@ -223,8 +223,18 @@
(str "https://accounts.google.com/o/oauth2/auth?access_type=online&client_id=" client-id "&redirect_uri=" redirect-uri "&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile")))
(defn login []
(let [user (re-frame/subscribe [::subs/user])]
[:a {:class "navbar-link login" :href (login-url)} (or (:name @user) "Login")]))
(let [user (re-frame/subscribe [::subs/user])
menu (re-frame/subscribe [::subs/menu])]
[:div {:id "navMenu", :class "navbar-menu"}
[:div {:class "navbar-end"}
[:div {:class (str "navbar-item has-dropdown " (when (get-in @menu [:account :active?]) "is-active"))}
(if @user
[:a {:class "navbar-link login" :on-click (fn [e] (re-frame/dispatch [::events/toggle-menu :account]))} (:name @user)]
[:a {:class "navbar-link login" :href (login-url)} "Login"])
[:div {:class "navbar-dropdown"}
[:a {:class "navbar-item"} "My profile"]
[:hr {:class "navbar-divider"}]
[:a.navbar-item {:on-click (fn [e] (.preventDefault e) (re-frame/dispatch [::events/logout]))} "Logout"]]]]]))
(defn main-panel []
(let [company (re-frame/subscribe [::subs/company])
@@ -238,9 +248,9 @@
[:a {:class "navbar-item", :href "../"}
[:h1 (str "Auto-ap")]]]
[:div {:id "navMenu", :class "navbar-menu "
:on-click (fn [] (re-frame/dispatch [::events/toggle-company-menu]))}
:on-click (fn [] (re-frame/dispatch [::events/toggle-menu :company]))}
[:div.navbar-start
[:div { :class (str "navbar-item has-dropdown " (when (:active? @menu) "is-active"))}
[:div { :class (str "navbar-item has-dropdown " (when (get-in @menu [:company :active?]) "is-active"))}
[:a {:class "navbar-link login"} "Company: " (if @company (:name @company)
"All")]
[:div {:class "navbar-dropdown"}
@@ -257,16 +267,7 @@
[:span]
[:span]
[:span]]
[:div {:id "navMenu", :class "navbar-menu"}
[:div {:class "navbar-end"}
[:div {:class "navbar-item has-dropdown is-active"}
[login]
[:div {:class "navbar-dropdown", :style {:display "none"}}
[:a {:class "navbar-item"} ]
[:a {:class "navbar-item"} ]
[:a {:class "navbar-item"} ]
[:hr {:class "navbar-divider"}]
[:div {:class "navbar-item"} ]]]]]]]
[login]]]
[:div {:class "columns", :id "mail-app"}
[:aside {:class "column is-narrow aside menu hero is-fullheight"}
[:div.main