diff --git a/examples/todomvc/checkouts/re-frame-trace b/examples/todomvc/checkouts/re-frame-trace new file mode 120000 index 0000000..61efa53 --- /dev/null +++ b/examples/todomvc/checkouts/re-frame-trace @@ -0,0 +1 @@ +../../../../re-frame-trace/ \ No newline at end of file diff --git a/examples/todomvc/project.clj b/examples/todomvc/project.clj index 102e44f..9916438 100644 --- a/examples/todomvc/project.clj +++ b/examples/todomvc/project.clj @@ -1,23 +1,27 @@ (defproject todomvc-re-frame "0.10.1" - :dependencies [[org.clojure/clojure "1.8.0"] + :dependencies [[org.clojure/clojure "1.9.0"] [org.clojure/clojurescript "1.9.908"] - [reagent "0.7.0"] - [re-frame "0.10.1"] + [reagent "0.8.0-alpha2" :exclusions [[cljsjs/react] [cljsjs/react-dom]]] + [cljsjs/react-dom "16.2.0-3"] + [re-frame "0.10.3" :exclusions [reagent]] [binaryage/devtools "0.9.4"] [secretary "1.2.3"]] :plugins [[lein-cljsbuild "1.1.5"] - [lein-figwheel "0.5.13"]] + [lein-figwheel "0.5.15-SNAPSHOT"]] :hooks [leiningen.cljsbuild] - :profiles {:dev {:cljsbuild + :profiles {:dev {:dependencies [[day8.re-frame/trace "0.1.19-SNAPSHOT"]] + :cljsbuild {:builds {:client {:compiler {:asset-path "js" :optimizations :none :source-map true :source-map-timestamp true - :main "todomvc.core"} + :main "todomvc.core" + :closure-defines {"re_frame.trace.trace_enabled_QMARK_" true} + :preloads [day8.re-frame.trace.preload]} :figwheel {:on-jsload "todomvc.core/main"}}}}} :prod {:cljsbuild @@ -26,11 +30,15 @@ :pretty-print false}}}}}} :figwheel {:server-port 3450 - :repl true} + :repl false} :clean-targets ^{:protect false} ["resources/public/js" "target"] - :cljsbuild {:builds {:client {:source-paths ["src" "../../src"] + :cljsbuild {:builds {:client {:source-paths ["src" #_ "../../src" "checkouts/re-frame-trace/src"] + :compile-paths ["src"] :compiler {:output-dir "resources/public/js" - :output-to "resources/public/js/client.js"}}}}) + :output-to "resources/public/js/client.js"}} + :dev {:source-paths ["src" #_"../../src" "checkouts/re-frame-trace/src"] + :compiler {:output-dir "resources/public/js1" + :output-to "resources/public/js1/client.js"}}}}) diff --git a/examples/todomvc/src/todomvc/events.cljs b/examples/todomvc/src/todomvc/events.cljs index c5f119b..921285b 100644 --- a/examples/todomvc/src/todomvc/events.cljs +++ b/examples/todomvc/src/todomvc/events.cljs @@ -189,3 +189,8 @@ (reduce #(assoc-in %1 [%2 :done] new-done) todos (keys todos))))) + +(reg-event-db + :other-panel? + (fn [db _] + (update db :other-panel? not))) diff --git a/examples/todomvc/src/todomvc/subs.cljs b/examples/todomvc/src/todomvc/subs.cljs index 9205ff3..41e76e5 100644 --- a/examples/todomvc/src/todomvc/subs.cljs +++ b/examples/todomvc/src/todomvc/subs.cljs @@ -162,3 +162,8 @@ :<- [:completed-count] (fn [[todos completed] _] [(- (count todos) completed) completed])) + +(reg-sub + :other-panel? + (fn [db _] + (:other-panel? db))) diff --git a/examples/todomvc/src/todomvc/views.cljs b/examples/todomvc/src/todomvc/views.cljs index 9b85841..e29dba6 100644 --- a/examples/todomvc/src/todomvc/views.cljs +++ b/examples/todomvc/src/todomvc/views.cljs @@ -96,11 +96,17 @@ (defn todo-app [] - [:div - [:section#todoapp - [task-entry] - (when (seq @(subscribe [:todos])) - [task-list]) - [footer-controls]] - [:footer#info - [:p "Double-click to edit a todo"]]]) + (let [other-panel? @(subscribe [:other-panel?])] + (if other-panel? + [:div + [:h2 "Other panel"] + [:button {:on-click #(dispatch [:other-panel?])} "Switch Panel"]] + [:div + [:button {:on-click #(dispatch [:other-panel?])} "Switch Panel"] + [:section#todoapp + [task-entry] + (when (seq @(subscribe [:todos])) + [task-list]) + [footer-controls]] + [:footer#info + [:p "Double-click to edit a todo"]]])))