소스 검색

Merge branch 'fix/page-persistent-scroll-position'

Tienson Qin 3 년 전
부모
커밋
f48f7e23a5
2개의 변경된 파일5개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 0
      src/main/frontend/handler/common.cljs
  2. 4 4
      src/main/frontend/handler/route.cljs

+ 1 - 0
src/main/frontend/handler/common.cljs

@@ -148,6 +148,7 @@
                          (when @*scroll-timer
                            (js/clearTimeout @*scroll-timer))
                          (state/set-state! :ui/scrolling? true)
+                         (state/save-scroll-position! (util/scroll-top))
                          (reset! *scroll-timer (js/setTimeout
                                                 (fn [] (state/set-state! :ui/scrolling? false)) 500)))
                        false)))

+ 4 - 4
src/main/frontend/handler/route.cljs

@@ -16,7 +16,6 @@
   [{:keys [to path-params query-params push]
     :or {push true}}]
   (let [route-fn (if push rfe/push-state rfe/replace-state)]
-    (state/save-scroll-position! (util/scroll-top))
     (route-fn to path-params query-params))
   ;; force return nil for usage in render phase of React
   nil)
@@ -126,9 +125,10 @@
     (update-page-label! route)
     (if-let [anchor (get-in route [:query-params :anchor])]
       (jump-to-anchor! anchor)
-      (util/scroll-to (util/app-scroll-container-node)
-                      (state/get-saved-scroll-position)
-                      false))))
+      (js/setTimeout #(util/scroll-to (util/app-scroll-container-node)
+                                      (state/get-saved-scroll-position)
+                                      true)
+                     100))))
 
 (defn go-to-search!
   [search-mode]