Skip to content

Instantly share code, notes, and snippets.

@claudiuapetrei
Created May 1, 2017 19:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save claudiuapetrei/4ef7e663722a033bfc4c45027da0cd12 to your computer and use it in GitHub Desktop.
Save claudiuapetrei/4ef7e663722a033bfc4c45027da0cd12 to your computer and use it in GitHub Desktop.
(defui ^:once Router
static om/IQuery
(query [this]
[:app/route {:route/data (zipmap (keys route->component)
(map om/get-query (vals route->component)))}])
Object
(render [this]
.................
(defui ^:once Root
static om/IQuery
(query [this]
[:remote-fetched {:router-data (om/get-query Router)}])
Object
(render [this]
........
(defmethod app-read :router-data [{:keys [state query parser ast] :as env} k p]
{:value (parser env query)})
(defmethod app-read :route/data [{:keys [state query parser] :as env} k p]
(let [st @state
route (get st :app/route)
route (cond-> route (= (second route) '_) pop)
value (parser env [(select-keys query route)])]
{:value value}))
(defmethod app-read :app/about [{:keys [state query]} k _]
(let [st @state]
{:value (get st k) :remote true}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment