Skip to content

Instantly share code, notes, and snippets.

@selfsame
Created July 15, 2014 05:45
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 selfsame/f39f7e6d066ccdb64d5a to your computer and use it in GitHub Desktop.
Save selfsame/f39f7e6d066ccdb64d5a to your computer and use it in GitHub Desktop.
filtering om cursors test
(def app-state (atom {:vect
[{:uid 0 :i 0}
{:uid 1 :i 0}
{:uid 2 :i 0}
{:uid 3 :i 0}
{:uid 4 :i 0}
{:uid 5 :i 0}
{:uid 3 :i 0}]}))
(plomb/defcomp item [data owner]
{:render-state
(fn [_ state]
(dom/button #js {:onClick (fn [_] (om/transact! data [:i] inc))} (str "uid:"(:uid data) " i:" (:i data))))})
(plomb/defcomp testapp1 [data owner]
{:render-state
(fn [_ state]
(dom/div nil
(apply dom/div nil
(om/build-all item (:vect (update-in data [:vect] (fn [i] (filter #(odd? (:uid %)) (reverse i))))) {}))
(apply dom/div nil
(om/build-all item (filter #(odd? (:uid %)) (reverse (:vect data))) {}))
))})
(plomb/defcomp testapp0 [data owner]
{:render-state
(fn [_ state]
(dom/div nil
(dom/p nil (prn-str data))
(om/build testapp1 data {})))})
(om/root
testapp0
app-state
{:target (. js/document (getElementById "main"))})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment