|
|
@@ -8,13 +8,15 @@
|
|
|
[frontend.handler.page :as page-handler]
|
|
|
[frontend.handler.repo :as repo-handler]
|
|
|
[frontend.handler.ui :as ui-handler]
|
|
|
+ [frontend.handler.notification :as notification]
|
|
|
[logseq.graph-parser.util :as gp-util]
|
|
|
[frontend.util.text :as text-util]
|
|
|
[lambdaisland.glogi :as log]
|
|
|
[electron.ipc :as ipc]
|
|
|
[promesa.core :as p]
|
|
|
[frontend.state :as state]
|
|
|
- [frontend.encrypt :as encrypt]))
|
|
|
+ [frontend.encrypt :as encrypt]
|
|
|
+ [frontend.fs :as fs]))
|
|
|
|
|
|
;; all IPC paths must be normalized! (via gp-util/path-normalize)
|
|
|
|
|
|
@@ -61,7 +63,14 @@
|
|
|
(state/update-state! :file/unlinked-dirs (fn [dirs] (conj dirs dir))))
|
|
|
|
|
|
(= "addDir" type)
|
|
|
- (state/update-state! :file/unlinked-dirs (fn [dirs] (disj dirs dir)))
|
|
|
+ (when (contains? (:file/unlinked-dirs @state/state) dir)
|
|
|
+ (notification/clear-all!)
|
|
|
+ (state/pub-event! [:notification/show
|
|
|
+ {:content (str "The directory " dir " has been back, you can edit your graph now.")
|
|
|
+ :status :success
|
|
|
+ :clear? true}])
|
|
|
+ (fs/watch-dir! dir)
|
|
|
+ (state/update-state! :file/unlinked-dirs (fn [dirs] (disj dirs dir))))
|
|
|
|
|
|
(contains? (:file/unlinked-dirs @state/state) dir)
|
|
|
nil
|
|
|
@@ -90,9 +99,11 @@
|
|
|
|
|
|
(and (= "unlink" type)
|
|
|
(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 #() :unlink-file? true))
|
|
|
+ (p/let [dir-exists? (fs/file-exists? dir "")]
|
|
|
+ (when dir-exists?
|
|
|
+ (when-let [page-name (db/get-file-page path)]
|
|
|
+ (println "Delete page: " page-name ", file path: " path ".")
|
|
|
+ (page-handler/delete! page-name #() :unlink-file? true))))
|
|
|
|
|
|
(and (contains? #{"add" "change" "unlink"} type)
|
|
|
(string/ends-with? path "logseq/custom.css"))
|