1
0
Bläddra i källkod

fix(frontend): Move route navigation logic to effect

Miguel Ángel Moreno 2 år sedan
förälder
incheckning
65941b3d42
2 ändrade filer med 11 tillägg och 11 borttagningar
  1. 8 4
      src/frontend/tau/events.cljs
  2. 3 7
      src/frontend/tau/routes.cljs

+ 8 - 4
src/frontend/tau/events.cljs

@@ -3,6 +3,7 @@
    [day8.re-frame.http-fx]
    [re-frame.core :as rf]
    [reitit.frontend.easy :as rfe]
+   [reitit.frontend.controllers :as rfc]
    [tau.api :as api]))
 
 (rf/reg-event-db
@@ -51,10 +52,13 @@
 (rf/reg-event-fx
  ::navigated
  (fn [{:keys [db]} [_ new-match]]
-   {:db (-> db
-            (assoc :current-match new-match)
-            (assoc :show-pagination-loading false))
-    ::scroll-to-top nil}))
+   (let [old-match (:current-match db)
+         controllers (rfc/apply-controllers (:controllers old-match) new-match)
+         match (assoc new-match :controllers controllers)]
+     {:db (-> db
+              (assoc :current-match match)
+              (assoc :show-pagination-loading false))
+      ::scroll-to-top nil})))
 
 (rf/reg-event-fx
  ::navigate

+ 3 - 7
src/frontend/tau/routes.cljs

@@ -2,7 +2,6 @@
   (:require
    [reitit.frontend :as ref]
    [reitit.frontend.easy :as rfe]
-   [reitit.frontend.controllers :as rfc]
    [re-frame.core :as rf]
    [tau.events :as events]
    [tau.views.channel :as channel]
@@ -50,12 +49,9 @@
 
 (defn on-navigate
   [new-match]
-  (let [old-match (rf/subscribe [:current-match])]
-    (rf/dispatch [::events/reset-page-scroll])
-    (when new-match
-      (let [controllers (rfc/apply-controllers (:controllers @old-match) new-match)
-            match (assoc new-match :controllers controllers)]
-        (rf/dispatch [::events/navigated match])))))
+  (rf/dispatch [::events/reset-page-scroll])
+  (when new-match
+    (rf/dispatch [::events/navigated new-match])))
 
 (defn start-routes!
   []