Makes multiple client selection somewhat possible via graphql.

This commit is contained in:
2023-08-31 13:05:06 -07:00
parent 9c472dfc8e
commit 1d82ec29e0
29 changed files with 274 additions and 139 deletions

View File

@@ -10,7 +10,8 @@
[goog.crypt.base64 :as b64]
[re-frame.core :as re-frame]
[auto-ap.ssr-routes :as ssr-routes]
[cemerick.url :as url]))
[cemerick.url :as url]
[auto-ap.subs :as subs]))
(defn jwt->data [token]
(js->clj (.parse js/JSON (b64/decodeString (second (str/split token #"\." ))))))
@@ -127,15 +128,36 @@
::swap-client
[with-user]
(fn [{:keys [db user]} [_ client]]
(.setItem js/localStorage "last-client-id" (:id client))
{:db (assoc db :client (:id client))
:http {:token user
:method :put
:uri (str (bidi/path-for ssr-routes/only-routes
:active-client
:request-method :put)
"?"
(url/map->query {:search-client (:id client)}))}}))
(let [client-identifier (or (:id client) client)]
(when (:id client)
(.setItem js/localStorage "last-client-id" (:id client)))
(.setItem js/localStorage "last-selected-clients"
(condp = client-identifier
:all
:all
:mine
:mine
(pr-str [(js/parseInt (:id client))])))
{:db (assoc db :client (:id client)
:selected-clients
(condp = client-identifier
:all
:all
:mine
:mine
[(js/parseInt (:id client))]))
:http {:token user
:method :put
:uri (str (bidi/path-for ssr-routes/only-routes
:active-client
:request-method :put)
"?"
(url/map->query {:search-client client-identifier}))}})))
(re-frame/reg-event-fx
::set-active-route