Update chat presentation (#10444)

This commit is contained in:
DS Boyce
2026-05-15 13:25:47 -07:00
committed by GitHub
parent 0eb382da03
commit 2bf6bdb6bc
13 changed files with 183 additions and 70 deletions
@@ -59,7 +59,11 @@ export function useListConvoMembersQuery({
r => r.did === data.member.did,
)
if (newMember) {
mutateList(list => list.concat(newMember))
mutateList(list =>
list.some(m => m.did === newMember.did)
? list
: list.concat(newMember),
)
}
}
} else if (ChatBskyConvoDefs.isLogRemoveMember(log)) {
@@ -1,6 +1,6 @@
import {
type ChatBskyActorDefs,
type ChatBskyConvoDefs,
ChatBskyConvoDefs,
type ChatBskyConvoListConvos,
type ChatBskyGroupRemoveMembers,
} from '@atproto/api'
@@ -56,9 +56,18 @@ export function useRemoveFromGroupChat(
CONVO_KEY(convoId),
prev => {
if (!prev) return
const nextMembers = prev.members.filter(m => !members.includes(m.did))
const removed = prev.members.length - nextMembers.length
if (!ChatBskyConvoDefs.isGroupConvo(prev.kind)) {
return {...prev, members: nextMembers}
}
return {
...prev,
members: prev.members.filter(m => !members.includes(m.did)),
members: nextMembers,
kind: {
...prev.kind,
memberCount: Math.max(0, prev.kind.memberCount - removed),
},
}
},
)
@@ -73,9 +82,20 @@ export function useRemoveFromGroupChat(
...page,
convos: page.convos.map(convo => {
if (convo.id !== convoId) return convo
const nextMembers = convo.members.filter(
m => !members.includes(m.did),
)
const removed = convo.members.length - nextMembers.length
if (!ChatBskyConvoDefs.isGroupConvo(convo.kind)) {
return {...convo, members: nextMembers}
}
return {
...convo,
members: convo.members.filter(m => !members.includes(m.did)),
members: nextMembers,
kind: {
...convo.kind,
memberCount: Math.max(0, convo.kind.memberCount - removed),
},
}
}),
})),