Skip to content

Commit cd6e205

Browse files
committed
upsert users into presence list
1 parent 5d55fdd commit cd6e205

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

apps/sim/app/workspace/providers/socket-provider.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,21 @@ export function SocketProvider({ children, user }: SocketProviderProps) {
266266
})
267267

268268
socketInstance.on('presence-update', (users: PresenceUser[]) => {
269-
setPresenceUsers(users)
269+
setPresenceUsers((prev) => {
270+
const prevMap = new Map(prev.map((u) => [u.socketId, u]))
271+
272+
return users.map((user) => {
273+
const existing = prevMap.get(user.socketId)
274+
if (existing) {
275+
return {
276+
...user,
277+
cursor: user.cursor ?? existing.cursor,
278+
selection: user.selection ?? existing.selection,
279+
}
280+
}
281+
return user
282+
})
283+
})
270284
})
271285

272286
socketInstance.on('workflow-operation', (data) => {

0 commit comments

Comments
 (0)