From 02b610eb070ef3a924d1e5e6929ee1e7352d1ba9 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Thu, 29 Sep 2022 23:34:52 +0800 Subject: [PATCH] step 5 :graphs-txid --- src/main/frontend/components/file_sync.cljs | 6 +-- src/main/frontend/fs/sync.cljs | 53 ++++++++++++--------- src/main/frontend/handler/file_sync.cljs | 2 +- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/main/frontend/components/file_sync.cljs b/src/main/frontend/components/file_sync.cljs index 1a4986d2fa..322f91b4c1 100644 --- a/src/main/frontend/components/file_sync.cljs +++ b/src/main/frontend/components/file_sync.cljs @@ -360,7 +360,7 @@ (fn [] (when-not (file-sync-handler/current-graph-sync-on?) (async/go - (let [graphs-txid fs-sync/graphs-txid] + (let [graphs-txid (fs-sync/get-graphs-txid)] (async/c (persist-var/-load graphs-txid))) (cond @*beta-unavailable? @@ -376,9 +376,7 @@ (second @graphs-txid) (fs-sync/graph-sync-off? (second @graphs-txid)) (async/ false diff --git a/src/main/frontend/fs/sync.cljs b/src/main/frontend/fs/sync.cljs index 7980e20221..9cb9a65a02 100644 --- a/src/main/frontend/fs/sync.cljs +++ b/src/main/frontend/fs/sync.cljs @@ -181,28 +181,35 @@ (def ws-addr config/WS-URL) -;; Warning: make sure to `persist-var/-load` graphs-txid before using it. -(def graphs-txid (persist-var/persist-var nil "graphs-txid")) - (defn get-graphs-txid - [graph-uuid] - ;; (when graph-uuid - ;; (get @state/state [:file-sync/graph-state graph-uuid ])) - ) + ([] + (let [result (persist-var/persist-var nil "graphs-txid")] + (p/let [_ (persist-var/-load result)] + (when-let [graph-uuid (second @result)] + (state/set-state! [:file-sync/graph-state graph-uuid :graphs-txid] result))) + result)) + ([graph-uuid] + (when graph-uuid + (let [result (get-in @state/state [:file-sync/graph-state graph-uuid :graphs-txid] + (get-graphs-txid))] + (persist-var/-load result) + result)))) (declare assert-local-txid<=remote-txid) (defn = latest-txid 0)]} - (-> (p/let [_ (persist-var/-reset-value! graphs-txid [user-uuid graph-uuid latest-txid] repo) - _ (persist-var/persist-save graphs-txid)] - (state/pub-event! [:graph/refresh]) - (when (state/developer-mode?) (assert-local-txid<=remote-txid))) - p->c)) + (let [graphs-txid (get-graphs-txid graph-uuid)] + (-> (p/let [_ (persist-var/-reset-value! graphs-txid [user-uuid graph-uuid latest-txid] repo) + _ (persist-var/persist-save graphs-txid)] + (state/pub-event! [:graph/refresh]) + (when (state/developer-mode?) (assert-local-txid<=remote-txid))) + p->c))) -(defn clear-graphs-txid! [repo] - (persist-var/-reset-value! graphs-txid nil repo) - (persist-var/persist-save graphs-txid)) +(defn clear-graphs-txid! [graph-uuid] + (when-let [graphs-txid (get-graphs-txid graph-uuid)] + (persist-var/-reset-value! graphs-txid nil (state/get-current-repo)) + (persist-var/persist-save graphs-txid))) (defn- ws-ping-loop [ws] (go-loop [] @@ -1366,10 +1373,11 @@ (defn- assert-local-txid<=remote-txid [] - (when-let [local-txid (last @graphs-txid)] - (go (let [remote-txid (:TXId (