Jelajahi Sumber

fix: sync icon disappear with unstable network

User's groups will be stored in local storage.
Tienson Qin 2 tahun lalu
induk
melakukan
d3300cfcab
2 mengubah file dengan 10 tambahan dan 2 penghapusan
  1. 1 1
      src/main/frontend/handler/events.cljs
  2. 9 1
      src/main/frontend/state.cljs

+ 1 - 1
src/main/frontend/handler/events.cljs

@@ -86,7 +86,7 @@
         nil
         (map? result)
         (do
-          (state/set-state! :user/info result)
+          (state/set-user-info! result)
           (let [status (if (user-handler/alpha-or-beta-user?) :welcome :unavailable)]
             (when (and (= status :welcome) (user-handler/logged-in?))
               (when-not (false? (state/enable-sync?)) ; user turns it off

+ 9 - 1
src/main/frontend/state.cljs

@@ -263,7 +263,7 @@
      :file-sync/graph-state                 {:current-graph-uuid nil
                                              ;; graph-uuid -> ...
                                              }
-
+     :user/info                             {:UserGroups (storage/get :user-groups)}
      :encryption/graph-parsing?             false
 
      :ui/loading?                           {}
@@ -2064,3 +2064,11 @@ Similar to re-frame subscriptions"
      (when (and shape-id (parse-uuid shape-id))
        (. api selectShapes shape-id)
        (. api zoomToSelection)))))
+
+(defn set-user-info!
+  [info]
+  (when info
+    (set-state! :user/info info)
+    (let [groups (:UserGroups info)]
+      (when (seq groups)
+        (storage/set :user-groups groups)))))