Files
integreat/src/cljs/auto_ap/views/main.cljs
2019-01-24 20:41:39 -08:00

67 lines
2.0 KiB
Clojure

(ns auto-ap.views.main
(:require
[re-frame.core :as re-frame]
[bidi.bidi :as bidi]
[auto-ap.routes :as routes]
[auto-ap.subs :as subs]
[auto-ap.events :as events]
[auto-ap.views.utils :refer [active-when active-when= login-url dispatch-event]]
[auto-ap.views.components.layouts :refer [side-bar-layout]]
[auto-ap.views.pages.unpaid-invoices :refer [unpaid-invoices-page]]
[auto-ap.views.pages.paid-invoices :refer [paid-invoices-page]]
[auto-ap.views.pages.transactions :refer [transactions-page]]
[auto-ap.views.pages.login :refer [login-page]]
[auto-ap.views.pages.checks :refer [checks-page]]
[auto-ap.views.pages.admin :refer [admin-page]]
[auto-ap.views.pages.admin.clients :refer [admin-clients-page]]
[auto-ap.views.pages.admin.vendors :refer [admin-vendors-page]]
[auto-ap.views.pages.admin.excel-import :refer [admin-excel-import-page]]
[auto-ap.views.pages.admin.users :refer [admin-users-page]]
[auto-ap.views.pages.admin.yodlee :refer [admin-yodlee-page]]
[auto-ap.entities.clients :as clients]
[auto-ap.views.pages :as pages]
[auto-ap.views.components.vendor-dialog :refer [vendor-dialog]]))
(defmulti page (fn [active-page] active-page))
(defmethod page :unpaid-invoices [_]
(unpaid-invoices-page))
(defmethod page :paid-invoices [_]
(paid-invoices-page))
(defmethod page :checks [_]
(checks-page))
(defmethod page :transactions [_]
(transactions-page))
(defmethod page :admin [_]
(admin-page))
(defmethod page :admin-clients [_]
(admin-clients-page))
(defmethod page :admin-users [_]
(admin-users-page))
(defmethod page :admin-vendors [_]
(admin-vendors-page))
(defmethod page :admin-yodlee [_]
(admin-yodlee-page))
(defmethod page :index [_]
[side-bar-layout {:side-bar [:div]
:main [:h1 "Home"]}])
(defmethod page :login [_]
[login-page])
(defmethod page :admin-excel-import [_]
[admin-excel-import-page])
(defn active-page []
(let [ap (re-frame/subscribe [::subs/active-page])]
[:div
^{:key @ap} [page @ap]]))