From b1956def917e9e2d26f17487ded4344719060099 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Wed, 29 Mar 2017 06:14:15 +0100 Subject: [PATCH 1/2] #37: never set :page to nil --- src/cljs/youyesyet/handlers.cljs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cljs/youyesyet/handlers.cljs b/src/cljs/youyesyet/handlers.cljs index ee31a59..4c9b665 100644 --- a/src/cljs/youyesyet/handlers.cljs +++ b/src/cljs/youyesyet/handlers.cljs @@ -34,9 +34,10 @@ (reg-event-db - :set-active-page - (fn [db [_ page]] - (assoc db :page page))) + :set-active-page + (fn [db [_ page]] + (if page + (assoc db :page page)))) (reg-event-db From 72b4f058ed46c04275cfe76e3e7d0a589b71508e Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Wed, 29 Mar 2017 06:40:04 +0100 Subject: [PATCH 2/2] #37: Well, THAT was easy! Protective wrapper around :page rendering so that the initial, transient null value doesn't get rendered! --- src/cljs/youyesyet/core.cljs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/cljs/youyesyet/core.cljs b/src/cljs/youyesyet/core.cljs index fb5c009..69f23aa 100644 --- a/src/cljs/youyesyet/core.cljs +++ b/src/cljs/youyesyet/core.cljs @@ -71,11 +71,16 @@ :map #'map-page }) -(defn page [] +(defn page + "Render the single page of the app, taking the current panel from + the :page key in the state map." + [] [:div - [:header - [ui/navbar]] - [(pages @(rf/subscribe [:page]))]]) + [:header + [ui/navbar]] + (let [content (pages @(rf/subscribe [:page]))] + (if content [content] + [:div.error (str "No content in page " :page)]))]) ;; ------------------------- ;; Routes