Skip to content

Instantly share code, notes, and snippets.

@bru
Created December 10, 2016 15:02
Show Gist options
  • Save bru/91a83ec23967a5ad3094ee298001f89a to your computer and use it in GitHub Desktop.
Save bru/91a83ec23967a5ad3094ee298001f89a to your computer and use it in GitHub Desktop.
dynamically update a dev card when changing the initial values
(defonce feedback-state (atom {}))
(defn init-state []
(reset! feedback-state
{:awesome 1
:sleep 1
:good 1}))
(defcard interactive-card
(fn [state-atom owner]
(dom/div nil "A single top-level element."
(dom/br nil)
(dom/span nil (str "Level of awesomeness: " (:awesome @state-atom)))
(dom/br nil)
(dom/span nil (str "Level of goodness: " (:good @state-atom)))
(dom/br nil)
(dom/span nil (str "Level of sleepiness: " (:sleepy @state-atom)))
(dom/br nil)
(dom/button #js {:onClick #(swap! state-atom update-in [:awesome] inc)} "Awesome")
(dom/button #js {:onClick #(swap! state-atom update-in [:good] inc)} "Good")
(dom/button #js {:onClick #(swap! state-atom update-in [:sleepy] inc)} "Sleep")))
feedback-state
{:inspect-data true}
)
(defn main []
(init-state)
;; conditionally start the app based on whether the #main-app-area
;; node is on the page
(if-let [node (.getElementById js/document "main-app-area")]
(.render js/ReactDOM (sab/html [:div "This is working"]) node)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment