Browse Source

fix: page graph crash

Tienson Qin 1 year ago
parent
commit
e30872a8f5

+ 7 - 6
src/main/frontend/components/page.cljs

@@ -1041,15 +1041,16 @@
 (rum/defc page-graph < db-mixins/query rum/reactive
   []
   (let [page (or
-               (and (= :page (state/sub [:route-match :data :name]))
-                 (state/sub [:route-match :path-params :name]))
-               (date/today))
+              (and (= :page (state/sub [:route-match :data :name]))
+                   (state/sub [:route-match :path-params :name]))
+              (date/today))
         theme (:ui/theme @state/state)
         dark? (= theme "dark")
         show-journals-in-page-graph (rum/react *show-journals-in-page-graph?)
-        graph (if (util/uuid-string? page)
-                (graph-handler/build-block-graph (uuid page) theme)
-                (graph-handler/build-page-graph page theme show-journals-in-page-graph))]
+        page-entity (db/get-page page)
+        graph (if (ldb/page? page-entity)
+                (graph-handler/build-page-graph page theme show-journals-in-page-graph)
+                (graph-handler/build-block-graph (uuid page) theme))]
     (when (seq (:nodes graph))
       (page-graph-inner page graph dark?))))
 

+ 1 - 1
src/main/frontend/db.cljs

@@ -33,7 +33,7 @@
   get-custom-css
   get-file-last-modified-at get-file get-file-page get-file-page-id file-exists?
   get-files-blocks get-files-full get-journals-length
-  get-latest-journals get-page get-case-page get-page-alias get-page-alias-names
+  get-latest-journals get-page get-case-page get-page-alias-names
   get-page-blocks-count get-page-blocks-no-cache get-page-file get-page-format
   get-referenced-blocks get-page-referenced-blocks-full get-page-referenced-pages
   get-all-pages get-pages-relation get-pages-that-mentioned-page

+ 8 - 7
src/main/frontend/db/model.cljs

@@ -48,15 +48,14 @@
        (map :block/title)))
 
 (defn get-page-alias
-  [repo page-name]
+  [repo page-id]
   (when-let [db (and repo (conn/get-db repo))]
     (some->> (d/q '[:find ?alias
-                    :in $ ?page-name
+                    :in $ ?page-id
                     :where
-                    [?page :block/name ?page-name]
-                    [?page :block/alias ?alias]]
+                    [?page-id :block/alias ?alias]]
                   db
-                  (util/page-name-sanity-lc page-name))
+                  page-id)
              db-utils/seq-flatten
              distinct)))
 
@@ -540,7 +539,7 @@ independent of format as format specific heading characters are stripped"
   (when-let [db (conn/get-db repo)]
     (let [pages (page-alias-set repo page-id)
           ref-pages (d/q
-                     '[:find [?ref-page ?ref-page-name]
+                     '[:find ?ref-page ?ref-page-name
                        :in $ ?pages
                        :where
                        [(untuple ?pages) [?page ...]]
@@ -549,7 +548,9 @@ independent of format as format specific heading characters are stripped"
                        [?ref-page :block/name ?ref-page-name]]
                      db
                      pages)]
-      (mapv (fn [[ref-page ref-page-name]] [ref-page-name (get-page-alias repo ref-page)]) ref-pages))))
+      (mapv (fn [[ref-page ref-page-name]]
+              [ref-page-name (get-page-alias repo ref-page)])
+            ref-pages))))
 
 ;; get pages who mentioned this page
 (defn get-pages-that-mentioned-page

+ 1 - 1
src/main/frontend/handler/graph.cljs

@@ -142,7 +142,7 @@
   [page theme show-journal]
   (let [dark? (= "dark" theme)]
     (when-let [repo (state/get-current-repo)]
-      (let [page-entity (db/entity page)
+      (let [page-entity (db/get-page page)
             page-id (:db/id page-entity)
             tags (if (config/db-based-graph? repo)
                    (set (map #(:block/name (db/entity repo (:db/id %)))