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

fix: whiteboard redirectToPage should be able to redirect to whiteboard

Peng Xiao 3 лет назад
Родитель
Сommit
2c109ec4b6

+ 9 - 4
src/main/frontend/extensions/tldraw.cljs

@@ -83,10 +83,15 @@
                       (state/sidebar-add-block! (state/get-current-repo)
                                                 (:db/id (model/get-page uuid))
                                                 (keyword type)))
-   :redirectToPage (fn [page-name]
-                     (if (model/whiteboard-page? page-name)
-                       (route-handler/redirect-to-whiteboard! page-name)
-                       (route-handler/redirect-to-page! page-name)))})
+   :redirectToPage (fn [page-name-or-uuid]
+                     (prn (:block/name (model/get-block-parent (parse-uuid page-name-or-uuid))))
+                     (let [page-name (if (util/uuid-string? page-name-or-uuid)
+                                       (:block/name (model/get-block-parent (parse-uuid page-name-or-uuid)))
+                                       page-name-or-uuid)
+                           whiteboard? (model/whiteboard-page? page-name)]
+                       (if whiteboard? (route-handler/redirect-to-whiteboard!
+                                        page-name {:block-id page-name-or-uuid})
+                           (route-handler/redirect-to-page! page-name-or-uuid))))})
 
 (rum/defc tldraw-app
   [page-name block-id]

+ 1 - 0
tldraw/apps/tldraw-logseq/src/components/QuickLinks/QuickLinks.tsx

@@ -6,6 +6,7 @@ import type { Shape } from '../../lib'
 import { LogseqContext } from '../../lib/logseq-context'
 import { TablerIcon } from '../icons'
 
+// TODO: share to other components?
 const BlockLink = ({ type, id }: { type?: 'P' | 'B'; id: string }) => {
   const {
     handlers: { isWhiteboardPage, redirectToPage, sidebarAddBlock },