From e543af99f3712f32d3ba7ae1adfb051d286080ac Mon Sep 17 00:00:00 2001 From: gered Date: Fri, 17 Jun 2016 14:26:53 -0400 Subject: [PATCH] update hook-browser-navigation! to better allow re-initialization e.g. this is useful when using figwheel where you might have a call to hook-browser-navigation! in your page-load initialization. before, repeated calls to hook-browser-navigation! in this kind of scenario would result in some javascript errors after the first figwheel reload. --- src/webtools/cljs/utils.cljs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/webtools/cljs/utils.cljs b/src/webtools/cljs/utils.cljs index 6b89b2e..7160493 100644 --- a/src/webtools/cljs/utils.cljs +++ b/src/webtools/cljs/utils.cljs @@ -55,13 +55,17 @@ (-> (str (context-url) url) (string/replace #"(/+)" "/"))) +(defonce navigate-history (History.)) + +(defn- on-navigate-event + [event] + (secretary/dispatch! (.-token event))) + (defn hook-browser-navigation! [] - (doto (History.) - (events/listen - EventType/NAVIGATE - (fn [event] - (secretary/dispatch! (.-token event)))) + (doto navigate-history + (.setEnabled false) + (events/listen EventType/NAVIGATE on-navigate-event) (.setEnabled true))) (defn redirect!