From d7c025d9126dd5ec0f85585515ab35f3c09fe1d3 Mon Sep 17 00:00:00 2001 From: Juho Teperi Date: Mon, 27 Aug 2018 14:22:38 +0300 Subject: [PATCH] Fix FragmentHistory -stop method --- .../reitit-frontend/src/reitit/frontend/history.cljs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/reitit-frontend/src/reitit/frontend/history.cljs b/modules/reitit-frontend/src/reitit/frontend/history.cljs index 03583cbe..2bad0bce 100644 --- a/modules/reitit-frontend/src/reitit/frontend/history.cljs +++ b/modules/reitit-frontend/src/reitit/frontend/history.cljs @@ -16,7 +16,7 @@ ;; This version listens for both pop-state and hash-change for ;; compatibility for old browsers not supporting History API. -(defrecord FragmentHistory [on-navigate router listen-key last-fragment] +(defrecord FragmentHistory [on-navigate router popstate-listener hashchange-listener last-fragment] History (-init [this] ;; Link clicks and e.g. back button trigger both events, if fragment is same as previous ignore second event. @@ -30,12 +30,11 @@ (-on-navigate this path))))] (-on-navigate this (-get-path this)) (assoc this - :listen-key (gevents/listen js/window - #js [goog.events.EventType.POPSTATE goog.events.EventType.HASHCHANGE] - handler - false)))) + :popstate-listener (gevents/listen js/window goog.events.EventType.POPSTATE handler false) + :hashchange-listener (gevents/listen js/window goog.events.EventType.HASHCHANGE handler false)))) (-stop [this] - (gevents/unlistenByKey listen-key)) + (gevents/unlistenByKey popstate-listener) + (gevents/unlistenByKey hashchange-listener)) (-on-navigate [this path] (reset! last-fragment path) (on-navigate (rf/match-by-path router path) this))