Feat: sync progress for electron (#6662)

* fix: state shouldn't be returned in ipc

* feat: download && upload processing

* enhance(ui):  interaction of show password checkbox

* feat: time left

* feat: download progress

* Set download batch size to 100

* improve(ui): progress pane of file sync indicator

* improve(ui): progress pie of each file state

* improve(ui): progress pie of each file state

* improve(ui): progress pie of each downloading file

* fix: add last changed time

* enhance: time left

* fix: total needs to be larger than finished

* fix: wait for update-graphs-txid!

* enhance: show in-progress files first

* chore: ui polish

* improve(ui): persist stauts of sync files list toggle switch

* fix(ui): visibility of sync now button on mobile

* chore: remove ios static out after sync

* fix: debounce clicking on sync icon

* fix: repos not refreshed after unlink or delete

* enhance: automatically save page-metadata.edn to avoid sync when restart

* improve(ui): sync now shortcut for file sync progress pane

* enhance: data transfer icons

* fix: stop sync if switched to another graph

* fix: can't switch

* enhance: sort files first before uploading or downloading

* fix: clear current graph uuid when sync stops

* fix: separate progress by graphs

* fix: check files only in the current progress

* fix: prevent multiple sync managers for the same graph

* fix: remove redundant files watchers

* enhance(sync): re-exec remote->local-full-sync when exception

re-exec remote->local-full-sync when <update-local-files return exceptions

* enhance(sync): re-exec remote->local-full-sync when exception

re-exec remote->local-full-sync when <update-local-files return exceptions

* fix(sync): set-progress-callback, update rsapi

* fix(sync): uploading progress bar

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
Co-authored-by: charlie <xyhp915@qq.com>
Co-authored-by: rcmerci <rcmerci@gmail.com>
This commit is contained in:
Andelf
2022-09-23 02:00:24 +08:00
committed by GitHub
parent 4c3503ff1e
commit ae114afbd8
21 changed files with 962 additions and 438 deletions

View File

@@ -155,14 +155,13 @@
(repo-handler/persist-db! current-repo persist-db-noti-m)
(repo-handler/broadcast-persist-db! graph))))
(repo-handler/restore-and-setup-repo! graph)
(graph-switch graph))))
(graph-switch graph)
state/set-state! :sync-graph/init? false)))
(defmethod handle :graph/switch [[_ graph opts]]
(if (or @outliner-file/*writes-finished?
(:graph/remote-binding? @state/state))
(do
(state/set-state! :graph/remote-binding? false)
(graph-switch-on-persisted graph opts))
(if (or (not (false? (get @outliner-file/*writes-finished? graph)))
(:sync-graph/init? @state/state))
(graph-switch-on-persisted graph opts)
(notification/show!
"Please wait seconds until all changes are saved for the current graph."
:warning)))
@@ -663,9 +662,9 @@
{:content (str "The directory " dir " has been back, you can edit your graph now.")
:status :success
:clear? true}])
(state/update-state! :file/unlinked-dirs (fn [dirs] (disj dirs dir))))
(when (= dir (config/get-repo-dir repo))
(fs/watch-dir! dir)))
(state/update-state! :file/unlinked-dirs (fn [dirs] (disj dirs dir)))
(when (= dir (config/get-repo-dir repo))
(fs/watch-dir! dir))))
(defmethod handle :file/alter [[_ repo path content]]
(p/let [_ (file-handler/alter-file repo path content {:from-disk? true})]