Browse Source

fix: don't update editing presence when there's only one online user

Tienson Qin 1 month ago
parent
commit
1790643904
2 changed files with 8 additions and 4 deletions
  1. 1 1
      src/main/frontend/components/block.css
  2. 7 3
      src/main/frontend/state.cljs

+ 1 - 1
src/main/frontend/components/block.css

@@ -231,7 +231,7 @@
 
 .block-editing-avatar-wrap {
   @apply absolute top-1/2 -translate-y-1/2 pointer-events-none;
-  left: 2px;
+  left: 6px;
   z-index: 2;
 }
 

+ 7 - 3
src/main/frontend/state.cljs

@@ -1251,7 +1251,9 @@ Similar to re-frame subscriptions"
     (set-state! :editor/editing? nil)
     (set-state! :editor/block nil))
   (when clear-editing-block?
-    (pub-event! [:rtc/presence-update {:editing-block-uuid nil}]))
+    (let [online-users (some-> @state :rtc/state deref :online-users)]
+      (when (and (coll? online-users) (> (count online-users) 1))
+        (pub-event! [:rtc/presence-update {:editing-block-uuid nil}]))))
   (set-state! :editor/start-pos nil)
   (clear-editor-last-pos!)
   (clear-cursor-range!)
@@ -1808,8 +1810,10 @@ Similar to re-frame subscriptions"
         (set-state! :editor/last-key-code nil)
         (set-state! :editor/set-timestamp-block nil)
         (set-state! :editor/cursor-range cursor-range)
-        (when-let [block-uuid (:block/uuid block)]
-          (pub-event! [:rtc/presence-update {:editing-block-uuid (str block-uuid)}]))
+        (let [online-users (some-> @state :rtc/state deref :online-users)]
+          (when (and (coll? online-users) (> (count online-users) 1))
+            (when-let [block-uuid (:block/uuid block)]
+              (pub-event! [:rtc/presence-update {:editing-block-uuid (str block-uuid)}]))))
         (when (= :code (:logseq.property.node/display-type (d/entity db (:db/id block))))
           (pub-event! [:editor/focus-code-editor block block-element]))
         (when-let [input (gdom/getElement edit-input-id)]