Files
integreat/src/cljs/auto_ap/subs.cljs
2018-05-23 11:27:31 -07:00

75 lines
1.2 KiB
Clojure

(ns auto-ap.subs
(:require [re-frame.core :as re-frame]
[clojure.string :as str]
[goog.crypt.base64 :as base64]))
(re-frame/reg-sub
::company
(fn [db]
(get (:companies db) (:company db))))
(re-frame/reg-sub
::companies
(fn [db]
(when (:user db)
(vals (:companies db)))))
(re-frame/reg-sub
::companies-by-id
(fn [db]
(when (:user db)
(:companies db))))
(re-frame/reg-sub
::menu
(fn [db]
(:menu db)))
(re-frame/reg-sub
::modal-state
(fn [db [_ id]]
(get (:modal-state db) id)))
(re-frame/reg-sub
::token
(fn [db]
(:user db)))
(re-frame/reg-sub
::vendors
(fn [db]
(vals (:vendors db))))
(re-frame/reg-sub
::admin
(fn [db]
(:admin db)))
(re-frame/reg-sub
::user
(fn [db]
(when (:user db)
(let [{:strs [name] :as x} (js->clj (.parse js/JSON (base64/decodeString (second (str/split (:user db) #"\.")))))]
{:name name}))))
(re-frame/reg-sub
::active-page
(fn [db]
(:active-page db)))
(re-frame/reg-sub
::pending-invoices
(fn [db]
(:pending (:invoices db))))
(re-frame/reg-sub
::status
(fn [db]
(:status db)))
(re-frame/reg-sub
::new-invoice-form
(fn [db]
(:new-invoice db)))