Skip to content

Commit 4e1e6a0

Browse files
authored
Merge pull request #1662 from filipesilva/block-presence
block presence rework
2 parents b020676 + cf28c9f commit 4e1e6a0

File tree

4 files changed

+20
-42
lines changed

4 files changed

+20
-42
lines changed

src/cljs/athens/events.cljs

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -743,39 +743,17 @@
743743
{:fx [[:dispatch [:alert/js "Redo not supported in Lan-Party, yet."]]]}))))
744744

745745

746-
(defn prev-block-uid-without-presence-recursively
747-
"base case: prev block
748-
recursive case: keep going until no longer present"
749-
[uid]
750-
(let [prev-block-uid (db/prev-block-uid uid)
751-
has-presence? @(subscribe [:presence/has-presence prev-block-uid])]
752-
(if (and prev-block-uid
753-
has-presence?)
754-
(prev-block-uid-without-presence-recursively prev-block-uid)
755-
prev-block-uid)))
756-
757-
758746
(reg-event-fx
759747
:up
760748
(fn [_ [_ uid]]
761-
(let [prev-block-uid (prev-block-uid-without-presence-recursively uid)]
749+
(let [prev-block-uid (db/prev-block-uid uid)]
762750
{:dispatch [:editing/uid (or prev-block-uid uid)]})))
763751

764752

765-
(defn next-block-uid-without-presence-recursively
766-
[uid]
767-
(let [next-block-uid (db/next-block-uid uid)
768-
has-presence? @(subscribe [:presence/has-presence next-block-uid])]
769-
(if (and next-block-uid
770-
has-presence?)
771-
(next-block-uid-without-presence-recursively next-block-uid)
772-
next-block-uid)))
773-
774-
775753
(reg-event-fx
776754
:down
777755
(fn [_ [_ uid]]
778-
(let [next-block-uid (next-block-uid-without-presence-recursively uid)]
756+
(let [next-block-uid (db/next-block-uid uid)]
779757
{:dispatch [:editing/uid (or next-block-uid uid)]})))
780758

781759

src/cljs/athens/self_hosted/presence/subs.cljs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@
6969
:presence/has-presence
7070
:<- [:presence/users-with-page-data]
7171
(fn [users [_ uid]]
72-
(-> (filter (fn [[_username user]]
73-
(= uid (:block/uid user)))
74-
users)
75-
first
76-
second)))
72+
(keep (fn [[_username user]]
73+
(when (= uid (:block/uid user))
74+
user))
75+
users)))

src/cljs/athens/self_hosted/presence/views.cljs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,16 @@
9191

9292
(defn inline-presence-el
9393
[uid]
94-
(let [inline-present? (rf/subscribe [:presence/has-presence uid])]
95-
(when @inline-present?
96-
[:> (.-Stack Avatar)
97-
{:size "1.25rem"
98-
:maskSize "1px"
99-
:stackOrder "from-left"
100-
:limit 3
101-
:style {:transform "translateX(calc(-100% + 1rem)) translateY(0.35rem)"
102-
:padding "0.125rem"
103-
:background "var(--background-color)"}}
104-
[:> Avatar (merge {:showTooltip false} @inline-present?)]])))
94+
(let [users (rf/subscribe [:presence/has-presence uid])]
95+
(when (seq @users)
96+
(into
97+
[:> (.-Stack Avatar)
98+
{:size "1.25rem"
99+
:maskSize "1px"
100+
:stackOrder "from-left"
101+
:limit 3
102+
:style {:transform "translateX(calc(-100% + 1rem)) translateY(0.35rem)"
103+
:padding "0.125rem"
104+
:background "var(--background-color)"}}]
105+
(map (fn [x] [:> Avatar (merge {:showTooltip false :key (:username x)} x)]) @users)))))
105106

src/cljs/athens/views/blocks/core.cljs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@
328328
is-editing @(rf/subscribe [:editing/is-editing uid])
329329
is-selected @(rf/subscribe [::select-subs/selected? uid])
330330
present-user @(rf/subscribe [:presence/has-presence uid])
331-
is-presence (not (nil? present-user))]
331+
is-presence (seq present-user)]
332332

333333
;; (prn uid is-selected)
334334

@@ -369,7 +369,7 @@
369369
[context-menu/context-menu-el uid-sanitized-block state])
370370
[bullet/bullet-el block state linked-ref]
371371
[tooltip/tooltip-el uid-sanitized-block state]
372-
[content/block-content-el block state is-presence]
372+
[content/block-content-el block state]
373373

374374
[presence/inline-presence-el uid]
375375

0 commit comments

Comments
 (0)