-
-
Save borkdude/257b6792b62a18e034a3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn load-recipes [data] | |
(go (if (not (:loaded? @data)) | |
(let [recipes-data (<! (fetch-recipes data))] | |
(om/update! data :recipes recipes-data) | |
(om/update! data :loaded? true)) | |
(println "Data already loaded")))) | |
(defn define-routes [data] | |
(defroute home-path "/" [] | |
(om/update! data :view :home)) | |
(defroute "/random" [] | |
(go (loop [loaded? (:loaded? (om/value data))] | |
(if-not loaded? (do (println "Waiting for data...") | |
(recur (:loaded? (om/value data)))) | |
(do (om/update! data :tag | |
(rand-nth | |
(vec (apply set/union (map :tags (:recipes @data)))))) | |
(om/update! data :view :random))))))) | |
(defn app-view [data owner] | |
(reify | |
om/IWillMount | |
(will-mount [_] | |
(do | |
(load-recipes data) | |
(define-routes data))) | |
om/IDidMount | |
(did-mount [_] | |
#_(fetch-recipes data)) | |
om/IRender | |
(render [_] | |
(html data)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment