From 307f7bd7551cf597545c661a41153110d563cbc6 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Tue, 7 Jun 2022 12:17:36 +0800 Subject: [PATCH] fix: re-create the page when the file appears again related to #5549 --- src/main/frontend/fs/node.cljs | 2 +- src/main/frontend/fs/watcher_handler.cljs | 2 +- src/main/frontend/handler/page.cljs | 20 +++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/frontend/fs/node.cljs b/src/main/frontend/fs/node.cljs index 8a986fda7..a0d22fe06 100644 --- a/src/main/frontend/fs/node.cljs +++ b/src/main/frontend/fs/node.cljs @@ -70,7 +70,7 @@ (p/let [result (ipc/ipc "writeFile" repo path content) mtime (gobj/get result "mtime")] (when-not contents-matched? - (ipc/ipc "backupDbFile" (config/get-local-dir repo) path db-content content)) + (ipc/ipc "backupDbFile" (config/get-local-dir repo) path disk-content content)) (db/set-file-last-modified-at! repo path mtime) (p/let [content (if (encrypt/encrypted-db? (state/get-current-repo)) (encrypt/decrypt content) diff --git a/src/main/frontend/fs/watcher_handler.cljs b/src/main/frontend/fs/watcher_handler.cljs index 29c5aa9b9..801ab91a7 100644 --- a/src/main/frontend/fs/watcher_handler.cljs +++ b/src/main/frontend/fs/watcher_handler.cljs @@ -92,7 +92,7 @@ (db/file-exists? repo path)) (when-let [page-name (db/get-file-page path)] (println "Delete page: " page-name ", file path: " path ".") - (page-handler/delete! page-name #() :delete-file? false)) + (page-handler/delete! page-name #() :unlink-file? true)) (and (contains? #{"add" "change" "unlink"} type) (string/ends-with? path "logseq/custom.css")) diff --git a/src/main/frontend/handler/page.cljs b/src/main/frontend/handler/page.cljs index af9283607..b7fbe9d16 100644 --- a/src/main/frontend/handler/page.cljs +++ b/src/main/frontend/handler/page.cljs @@ -160,19 +160,21 @@ page-name))) (defn delete-file! - [repo page-name] + [repo page-name unlink-file?] (let [file (db/get-page-file page-name) file-path (:file/path file)] ;; delete file (when-not (string/blank? file-path) (db/transact! [[:db.fn/retractEntity [:file/path file-path]]]) - (-> - (p/let [_ (and (config/local-db? repo) - (mobile-util/native-platform?) - (fs/delete-file! repo file-path file-path {})) - _ (fs/unlink! repo (config/get-repo-path repo file-path) nil)]) - (p/catch (fn [err] - (js/console.error "error: " err))))))) + (when unlink-file? + (-> + (p/let [_ (and (config/local-db? repo) + (mobile-util/native-platform?) + ;; TODO: @leizhe remove fs/delete-file! and use fs/unlink! + (fs/delete-file! repo file-path file-path {})) + _ (fs/unlink! repo (config/get-repo-path repo file-path) nil)]) + (p/catch (fn [err] + (js/console.error "error: " err)))))))) (defn- compute-new-file-path [old-path new-name] @@ -316,7 +318,7 @@ page (db/entity [:block/name page-name])] (db/transact! tx-data) - (when delete-file? (delete-file! repo page-name)) + (delete-file! repo page-name delete-file?) ;; if other page alias this pagename, ;; then just remove some attrs of this entity instead of retractEntity