Просмотр исходного кода

fix: page url for whiteboards in recents

Tienson Qin 1 год назад
Родитель
Сommit
86f540bb6b

+ 14 - 16
src/main/frontend/components/container.cljs

@@ -83,9 +83,9 @@
         source-page (db-model/get-alias-source-page (state/get-current-repo) name)
         ctx-icon #(shui/tabler-icon %1 {:class "scale-90 pr-1 opacity-80"})
         open-in-sidebar #(state/sidebar-add-block!
-                         (state/get-current-repo)
-                         (:db/id page)
-                         :page)
+                          (state/get-current-repo)
+                          (:db/id page)
+                          :page)
         x-menu-content (fn []
                          (let [x-menu-item shui/dropdown-menu-item
                                x-menu-shortcut shui/dropdown-menu-shortcut]
@@ -121,10 +121,9 @@
     [:a.flex.items-center.justify-between.relative.group
      {:on-click
       (fn [e]
-        (let [name (if (empty? source-page) name (:block/name source-page))]
-          (if (gobj/get e "shiftKey")
-            (open-in-sidebar)
-            (route-handler/redirect-to-page! name {:click-from-recent? recent?}))))
+        (if (gobj/get e "shiftKey")
+          (open-in-sidebar)
+          (route-handler/redirect-to-page! (:block/uuid page) {:click-from-recent? recent?})))
       :on-context-menu (fn [^js e]
                          (shui/popup-show! e (x-menu-content)
                                            {:as-dropdown? true
@@ -193,15 +192,14 @@
       :count (count pages)}
 
      [:ul.text-sm
-      (for [name pages]
-        (when-let [entity (db/entity (ldb/get-first-page-by-name (db/get-db) name))]
-          [:li.recent-item.select-none
-           {:key name
-            :title name
-            :draggable true
-            :on-drag-start (fn [event] (editor-handler/block->data-transfer! name event true))
-            :data-ref name}
-           (page-name entity (icon/get-page-icon entity {}) true)]))])))
+      (for [page pages]
+        [:li.recent-item.select-none
+         {:key (str "recent-" (:db/id page))
+          :title (:block/original-name page)
+          :draggable true
+          :on-drag-start (fn [event] (editor-handler/block->data-transfer! (:block/name page) event true))
+          :data-ref name}
+         (page-name page (icon/get-page-icon page {}) true)])])))
 
 (rum/defcs flashcards < db-mixins/query rum/reactive
   {:did-mount (fn [state]

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

@@ -38,7 +38,7 @@
   get-page-blocks-count get-page-blocks-no-cache get-page-file get-page-format
   get-page-referenced-blocks get-page-referenced-blocks-full get-page-referenced-pages
   get-all-pages get-pages-relation get-pages-that-mentioned-page get-tag-pages
-  journal-page? page-alias-set sub-block
+  journal-page? page? page-alias-set sub-block
   set-file-last-modified-at! page-empty? page-exists? get-alias-source-page
   set-file-content! has-children? whiteboard-page?]
 

+ 4 - 7
src/main/frontend/handler/db_based/recent.cljs

@@ -2,7 +2,6 @@
   "Fns related to recent pages feature"
   (:require [frontend.db :as db]
             [frontend.state :as state]
-            [clojure.string :as string]
             [logseq.db :as ldb]))
 
 (defn add-page-to-recent!
@@ -20,9 +19,7 @@
   []
   (->> (state/get-recent-pages)
        (distinct)
-       (map (fn [id]
-              (let [e (db/entity id)]
-                (:block/original-name e))))
-       (remove string/blank?)
-       (remove ldb/hidden-page?)
-       (take 20)))
+       (take 20)
+       (keep db/entity)
+       (filter db/page?)
+       (remove ldb/hidden-page?)))