Browse Source

fix(ui): Page title show null #1343

charlie 4 years ago
parent
commit
12e23c932a

+ 6 - 2
src/main/frontend/components/sidebar.cljs

@@ -297,6 +297,7 @@
                    (state/set-left-sidebar-open! false))
                    (state/set-left-sidebar-open! false))
         me (state/sub :me)
         me (state/sub :me)
         current-repo (state/sub :git/current-repo)
         current-repo (state/sub :git/current-repo)
+        granted? (state/sub [:nfs/user-granted? (state/get-current-repo)])
         theme (state/sub :ui/theme)
         theme (state/sub :ui/theme)
         white? (= "white" (state/sub :ui/theme))
         white? (= "white" (state/sub :ui/theme))
         sidebar-open? (state/sub :ui/sidebar-open?)
         sidebar-open? (state/sub :ui/sidebar-open?)
@@ -310,8 +311,11 @@
         default-home (get-default-home-if-valid)]
         default-home (get-default-home-if-valid)]
     (rum/with-context [[t] i18n/*tongue-context*]
     (rum/with-context [[t] i18n/*tongue-context*]
       (theme/container
       (theme/container
-       {:theme theme
-        :on-click editor-handler/unhighlight-block!}
+       {:theme         theme
+        :route         route-match
+        :nfs-granted?  granted?
+        :db-restoring? db-restoring?
+        :on-click      editor-handler/unhighlight-block!}
 
 
        [:div.theme-inner
        [:div.theme-inner
         (sidebar-mobile-sidebar
         (sidebar-mobile-sidebar

+ 11 - 1
src/main/frontend/components/theme.cljs

@@ -1,11 +1,12 @@
 (ns frontend.components.theme
 (ns frontend.components.theme
   (:require [rum.core :as rum]
   (:require [rum.core :as rum]
             [frontend.util :as util]
             [frontend.util :as util]
+            [frontend.handler.route :as route-handler]
             [frontend.version :refer [version]]
             [frontend.version :refer [version]]
             [frontend.components.svg :as svg]))
             [frontend.components.svg :as svg]))
 
 
 (rum/defc container
 (rum/defc container
-  [{:keys [theme on-click] :as props} child]
+  [{:keys [route theme on-click nfs-granted? db-restoring?] :as props} child]
   (rum/use-effect!
   (rum/use-effect!
    #(let [doc js/document.documentElement
    #(let [doc js/document.documentElement
           cls (.-classList doc)]
           cls (.-classList doc)]
@@ -14,6 +15,15 @@
         (.add cls "dark")
         (.add cls "dark")
         (.remove cls "dark")))
         (.remove cls "dark")))
    [theme])
    [theme])
+
+  (rum/use-effect!
+   #(let [db-restored? (false? db-restoring?)]
+      (if db-restoring?
+        (util/set-title! "Loading")
+        (when (or nfs-granted? db-restored?)
+          (route-handler/update-page-title! route))))
+   [nfs-granted? db-restoring? route])
+
   [:div
   [:div
    {:class    (str theme "-theme")
    {:class    (str theme "-theme")
     :on-click on-click}
     :on-click on-click}

+ 10 - 5
src/main/frontend/handler/route.cljs

@@ -58,7 +58,8 @@
         (let [page (util/url-decode name)
         (let [page (util/url-decode name)
               page (db/pull [:page/name (string/lower-case page)])]
               page (db/pull [:page/name (string/lower-case page)])]
           (or (:page/original-name page)
           (or (:page/original-name page)
-              (:page/name page)))))
+              (:page/name page)
+              "Logseq"))))
     :tag
     :tag
     (str "#" (util/url-decode (:name path-params)))
     (str "#" (util/url-decode (:name path-params)))
     :diff
     :diff
@@ -71,14 +72,18 @@
     "Import data into Logseq"
     "Import data into Logseq"
     "Logseq"))
     "Logseq"))
 
 
+(defn update-page-title!
+  [route]
+  (let [{:keys [data path-params]} route
+        title (get-title (:name data) path-params)]
+    (util/set-title! title)))
+
 (defn set-route-match!
 (defn set-route-match!
   [route]
   [route]
   (let [route route]
   (let [route route]
     (swap! state/state assoc :route-match route)
     (swap! state/state assoc :route-match route)
-    (let [{:keys [data path-params]} route
-          title (get-title (:name data) path-params)]
-      (util/set-title! title)
-      (util/scroll-to-top))))
+    (update-page-title! route)
+    (util/scroll-to-top)))
 
 
 (defn jump-to-anchor!
 (defn jump-to-anchor!
   [anchor-text]
   [anchor-text]