Skip to content

Instantly share code, notes, and snippets.

@victorb
Created April 17, 2020 10:32
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 victorb/3b0f2d936e7eaa5eecc78a3460c99327 to your computer and use it in GitHub Desktop.
Save victorb/3b0f2d936e7eaa5eecc78a3460c99327 to your computer and use it in GitHub Desktop.
^{:watch-dirs ["src/web_editor"]}
{;; :main web-editor.core
;; :optimizations :advanced
:optimizations :simple
:modules {:renderer
{:entries #{web-editor.renderer}
:output-to "target/public/renderer.js"}
:signup
{:entries #{web-editor.pages.signup}
:output-to "target/public/pages/signup.js"}}
:source-map "target/public/cljs-out/prod-main.js.map"
:pseudo-names false ;; emit human readable names
:pretty-print false ;; human readable output
:print-input-delimiter false ;; print source next to minified output
:output-wrapper true ;; wrap the output in self-executed function
:infer-externs true
:closure-defines {"goog.DEBUG" false
"NODE_ENV" "production"}}
(ns ^:figwheel-load web-editor.renderer
(:require
[cljs.loader :as loader]
[reagent.core :as r]))
(defn application []
(let [page (r/atom [:div "nothing"])]
(fn []
[:div
[:div "page:"]
[:pre (with-out-str (cljs.pprint/pprint @page))]
[:div @page]
[:button
{:onClick (fn []
(loader/load
:signup
(fn []
(reset! page ((resolve 'web-editor.pages.signup/render))))))}
"load signup"]])))
(defn render! []
(println "rendering")
(r/render [application]
(.getElementById js/document "app")))
(println "loaded renderer")
(defonce rendered? (render!))
(loader/set-loaded! :renderer)
(ns web-editor.pages.signup
(:require
[cljs.loader :as loader]))
(defn render []
(println "rendering signup page")
[:div "Signup page"])
(println "loaded signup")
(loader/set-loaded! :signup)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment