瀏覽代碼

fix: can't scroll more than a couple journals down

 without losing position. This bug happens for file graphs because
 it keeps creating the today journal page if it's empty.
Tienson Qin 4 月之前
父節點
當前提交
876db84672

+ 0 - 1
packages/tldraw/apps/tldraw-logseq/src/lib/logseq-context.ts

@@ -55,7 +55,6 @@ export interface LogseqContextValue {
     queryBlockByUUID: (uuid: string) => any
     getBlockPageName: (uuid: string) => string
     getRedirectPageName: (uuidOrPageName: string) => string
-    insertFirstPageBlock: (pageName: string) => string
     isWhiteboardPage: (pageName: string) => boolean
     isMobile: () => boolean
     saveAsset: (file: File) => Promise<string>

+ 0 - 2
src/main/frontend/extensions/tldraw.cljs

@@ -142,8 +142,6 @@
    :setCurrentPdf (fn [src] (state/set-current-pdf! (if src (pdf-assets/inflate-asset src) nil)))
    :copyToClipboard (fn [text, html] (util/copy-to-clipboard! text :html html))
    :getRedirectPageName (fn [page-name-or-uuid] (model/get-redirect-page-name page-name-or-uuid))
-   :insertFirstPageBlock (fn [page-name]
-                           (editor-handler/insert-first-page-block-if-not-exists! page-name))
    :addNewPage (fn [page-name]
                  (p/let [result (page-handler/<create! page-name {:redirect? false})]
                    (str (:block/uuid result))))

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

@@ -44,12 +44,10 @@
 
 (defn- set-global-error-notification!
   []
-  (when-not config/dev?
-    (set! js/window.onerror
-          (fn [message, _source, _lineno, _colno, error]
-            (when-not (error/ignored? message)
-              (js/console.error message)
-              (log/error :exception error))))))
+  (set! js/window.onerror
+        (fn [message, _source, _lineno, _colno, error]
+          (when-not (error/ignored? message)
+            (log/error :exception error)))))
 
 (defn- watch-for-date!
   []

+ 5 - 17
src/main/frontend/handler/editor.cljs

@@ -601,20 +601,6 @@
              (when-let [id (:block/uuid new-block)]
                (db/entity [:block/uuid id])))))))))
 
-(defn insert-first-page-block-if-not-exists!
-  [page-uuid-or-title]
-  (let [page-title (str page-uuid-or-title)]
-    (when-not (string/blank? page-title)
-      (when-let [page (db/get-page page-title)]
-        (let [class-or-property? (or (ldb/class? page) (ldb/property? page))]
-          (when (or class-or-property? (db/page-empty? (state/get-current-repo) (:db/id page)))
-            (let [new-block (cond-> {:block/title ""}
-                              (not (config/db-based-graph? (state/get-current-repo)))
-                              (assoc :block/format (get page :block/format :markdown)))]
-              (ui-outliner-tx/transact!
-               {:outliner-op :insert-blocks}
-               (outliner-op/insert-blocks! [new-block] page {:sibling? false})))))))))
-
 (defn check
   [{:block/keys [marker title repeated? uuid] :as block}]
   (let [new-content (string/replace-first title marker "DONE")
@@ -1138,9 +1124,9 @@
        (save-current-block!)
        (if (re-find url-regex page)
          (js/window.open page)
-         (let [page-name (db-model/get-redirect-page-name page)]
+         (do
            (state/clear-edit!)
-           (insert-first-page-block-if-not-exists! page-name)))))))
+           (route-handler/redirect-to-page! page)))))))
 
 (defn open-link-in-sidebar!
   []
@@ -2466,7 +2452,9 @@
               "page-ref" (when-not (string/blank? (:link thing-at-point))
                            (let [page (:link thing-at-point)
                                  page-name (db-model/get-redirect-page-name page)]
-                             (insert-first-page-block-if-not-exists! page-name)))
+                             (p/do!
+                              (save-current-block!)
+                              (route-handler/redirect-to-page! page-name))))
               "list-item" (dwim-in-list)
               "properties-drawer" (dwim-in-properties state))
 

+ 3 - 5
src/main/frontend/handler/page.cljs

@@ -324,8 +324,7 @@
                (not config/publishing?))
       (state/set-today! (date/today))
       (when (or (config/db-based-graph? repo)
-                (config/local-file-based-graph? repo)
-                (and (= config/demo-repo repo) (not (mobile-util/native-platform?))))
+                (config/local-file-based-graph? repo))
         (let [title (date/today)
               today-page (util/page-name-sanity-lc title)
               format (state/get-preferred-format repo)
@@ -338,10 +337,9 @@
                           (when-not db-based? (state/pub-event! [:journal/insert-template today-page]))
                           (ui-handler/re-render-root!)
                           (plugin-handler/hook-plugin-app :today-journal-created {:title today-page})))]
-          (when (db/page-empty? repo today-page)
+          (when-not (db/get-page today-page)
             (if db-based?
-              (when-not (model/get-journal-page title)
-                (create-f))
+              (create-f)
               (p/let [file-name (date/journal-title->default title)
                       file-rpath (str (config/get-journals-directory) "/" file-name "."
                                       (config/get-file-extension format))

+ 5 - 2
src/main/frontend/mobile/deeplink.cljs

@@ -55,8 +55,11 @@
              (fn []
                (cond
                  page-name
-                 (let [db-page-name (db-model/get-redirect-page-name page-name)]
-                   (editor-handler/insert-first-page-block-if-not-exists! db-page-name))
+                 (p/let [block (db-async/<get-block (state/get-current-repo) page-name {:children? false})]
+                   (if block
+                     (route-handler/redirect-to-page! block-uuid)
+                     (notification/show! (str "Open link failed. Page `" page-name "` doesn't exist in the graph."
+                                              :result block) :error false)))
 
                  block-uuid
                  (p/let [block (db-async/<get-block (state/get-current-repo) block-uuid {:children? false})]