Skip to content

Instantly share code, notes, and snippets.

@daGrevis
Last active August 29, 2015 14:02
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 daGrevis/c55395a3e85a07ea6973 to your computer and use it in GitHub Desktop.
Save daGrevis/c55395a3e85a07ea6973 to your computer and use it in GitHub Desktop.
Counter w/ ClojureScript and Om
(ns counter.core
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]))
(enable-console-print!)
(def app-state (atom {:count 42}))
(defn dec-button [counter owner]
(reify
om/IRender
(render [this]
(dom/button #js {:onClick (fn [e] (om/transact! counter :count dec))}
"dec"))))
(defn inc-button [counter owner]
(reify
om/IRender
(render [this]
(dom/button #js {:onClick (fn [e] (om/transact! counter :count inc))}
"inc"))))
(defn counter [app owner]
(reify
om/IRender
(render [this]
(let [count (:count app)]
(dom/div nil
(dom/h1 nil count)
(om/build dec-button app)
(om/build inc-button app))))))
(om/root
counter
app-state
{:target (. js/document (getElementById "app"))})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment