Skip to content

Instantly share code, notes, and snippets.

@maxweber
Created April 16, 2015 19:37
Show Gist options
  • Save maxweber/b6ec852ad4759586770f to your computer and use it in GitHub Desktop.
Save maxweber/b6ec852ad4759586770f to your computer and use it in GitHub Desktop.
(def app-state
(atom {:form {:email {:label "Email"
:error "invalid email"
:value "max@example.com"}}}))
(defn form-element [key]
(reagent/cursor app-state [:form key]))
(def cur (form-element :email))
(defn input-field [model]
[:div
[:label (:label @model)]
[:br]
[:input
{:value (:value @model)}]
[:br]
[:span.help (:error @model)]])
(defn home-page []
[:div [:h2 "Welcome"]
[:b (:name @app-state)]
[input-field (reagent/cursor app-state [:form :email])]
[:a {:onClick (fn [e]
(swap! cur assoc-in [:label] (str "blah" (.random js/Math))))}
"Click me"]
[:div [:a {:href "#/about"} "go to about page"]]])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment