mirror of
https://github.com/penpot/penpot.git
synced 2025-05-18 18:06:10 +02:00
🐛 Fix profile images on workspace.
This commit is contained in:
parent
11418501a4
commit
f0b9837407
2 changed files with 16 additions and 10 deletions
|
@ -158,18 +158,18 @@
|
||||||
;; implemented in UI)
|
;; implemented in UI)
|
||||||
|
|
||||||
(def sql:team-users
|
(def sql:team-users
|
||||||
"select pf.id, pf.fullname, pf.photo
|
"select pf.id, pf.fullname, pf.photo_id
|
||||||
from profile as pf
|
from profile as pf
|
||||||
inner join team_profile_rel as tpr on (tpr.profile_id = pf.id)
|
inner join team_profile_rel as tpr on (tpr.profile_id = pf.id)
|
||||||
where tpr.team_id = ?
|
where tpr.team_id = ?
|
||||||
union
|
union
|
||||||
select pf.id, pf.fullname, pf.photo
|
select pf.id, pf.fullname, pf.photo_id
|
||||||
from profile as pf
|
from profile as pf
|
||||||
inner join project_profile_rel as ppr on (ppr.profile_id = pf.id)
|
inner join project_profile_rel as ppr on (ppr.profile_id = pf.id)
|
||||||
inner join project as p on (ppr.project_id = p.id)
|
inner join project as p on (ppr.project_id = p.id)
|
||||||
where p.team_id = ?
|
where p.team_id = ?
|
||||||
union
|
union
|
||||||
select pf.id, pf.fullname, pf.photo
|
select pf.id, pf.fullname, pf.photo_id
|
||||||
from profile as pf
|
from profile as pf
|
||||||
inner join file_profile_rel as fpr on (fpr.profile_id = pf.id)
|
inner join file_profile_rel as fpr on (fpr.profile_id = pf.id)
|
||||||
inner join file as f on (fpr.file_id = f.id)
|
inner join file as f on (fpr.file_id = f.id)
|
||||||
|
|
|
@ -58,13 +58,19 @@
|
||||||
stoper (rx/filter #(= ::finalize %) stream)
|
stoper (rx/filter #(= ::finalize %) stream)
|
||||||
interval (* 1000 60)]
|
interval (* 1000 60)]
|
||||||
(->> (rx/merge
|
(->> (rx/merge
|
||||||
|
;; Each 60 seconds send a keepalive message for maintain
|
||||||
|
;; this socket open.
|
||||||
(->> (rx/timer interval interval)
|
(->> (rx/timer interval interval)
|
||||||
(rx/map #(send-keepalive file-id)))
|
(rx/map #(send-keepalive file-id)))
|
||||||
|
|
||||||
|
;; Process all incoming messages.
|
||||||
(->> (ws/-stream wsession)
|
(->> (ws/-stream wsession)
|
||||||
(rx/filter ws/message?)
|
(rx/filter ws/message?)
|
||||||
(rx/map (comp t/decode :payload))
|
(rx/map (comp t/decode :payload))
|
||||||
(rx/filter #(s/valid? ::message %))
|
(rx/filter #(s/valid? ::message %))
|
||||||
(rx/map process-message))
|
(rx/map process-message))
|
||||||
|
|
||||||
|
;; Send back to backend all pointer messages.
|
||||||
(->> stream
|
(->> stream
|
||||||
(rx/filter ms/pointer-event?)
|
(rx/filter ms/pointer-event?)
|
||||||
(rx/sample 50)
|
(rx/sample 50)
|
||||||
|
@ -130,7 +136,7 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
(defn handle-presence
|
(defn handle-presence
|
||||||
[{:keys [sessions] :as msg}]
|
[{:keys [sessions] :as message}]
|
||||||
(letfn [(assign-color [sessions session]
|
(letfn [(assign-color [sessions session]
|
||||||
(if (string? (:color session))
|
(if (string? (:color session))
|
||||||
session
|
session
|
||||||
|
@ -152,12 +158,12 @@
|
||||||
(assoc sessions id session)))
|
(assoc sessions id session)))
|
||||||
|
|
||||||
(update-sessions [previous profiles]
|
(update-sessions [previous profiles]
|
||||||
(let [previous (select-keys previous (map first sessions)) ; Initial clearing
|
(let [previous (select-keys previous (map first sessions)) ; Initial clearing
|
||||||
pending (->> sessions
|
pending (->> sessions
|
||||||
(filter #(not (contains? previous (first %))))
|
(filter #(not (contains? previous (first %))))
|
||||||
(map (fn [[session-id profile-id]]
|
(map (fn [[session-id profile-id]]
|
||||||
{:id session-id
|
{:id session-id
|
||||||
:profile (get profiles profile-id)})))]
|
:profile (get profiles profile-id)})))]
|
||||||
(reduce assign-session previous pending)))]
|
(reduce assign-session previous pending)))]
|
||||||
|
|
||||||
(ptk/reify ::handle-presence
|
(ptk/reify ::handle-presence
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue