Makes multiple client selection somewhat possible via graphql.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user