Filter existing members when adding new members (#10346)

This commit is contained in:
DS Boyce
2026-04-23 13:04:55 -07:00
committed by Eric Bailey
parent 5039d80a7e
commit d5a37f76ab
3 changed files with 19 additions and 3 deletions
+8 -2
View File
@@ -98,9 +98,11 @@ function reducer(state: State, action: Action): State {
}
export function AddMembersFlow({
members,
title,
onAddMembers,
}: {
members: string[]
title: string
onAddMembers: (dids: string[]) => void
}) {
@@ -154,7 +156,11 @@ export function AddMembersFlow({
} else if (searchText.length) {
if (results?.length) {
for (const profile of results) {
if (profile.did === currentAccount?.did) continue
if (
profile.did === currentAccount?.did ||
members.includes(profile.did)
)
continue
_items.push({
type: 'profile',
key: profile.did,
@@ -202,7 +208,7 @@ export function AddMembersFlow({
}
return _items
}, [isError, searchText, l, results, currentAccount?.did, follows])
}, [isError, searchText, l, results, currentAccount?.did, members, follows])
if (searchText && !isFetching && !items.length && !isError) {
items.push({type: 'empty', key: 'empty', message: l`No results`})
+10 -1
View File
@@ -186,7 +186,13 @@ function SettingsInner({convoId}: {convoId: string}) {
/>
)
case 'ADD_MEMBERS_LINK':
return <AddMembersLink convo={convo} isOwner={isOwner} />
return (
<AddMembersLink
convo={convo}
isOwner={isOwner}
members={data.map(profile => profile.did)}
/>
)
case 'CHAT_MEMBER':
return (
<Member
@@ -292,9 +298,11 @@ function MembersAndRequests({
function AddMembersLink({
convo,
isOwner,
members,
}: {
convo: ConvoWithDetails | null
isOwner: boolean
members: string[]
}) {
const t = useTheme()
const {t: l} = useLingui()
@@ -381,6 +389,7 @@ function AddMembersLink({
nativeOptions={{fullHeight: true}}>
<Dialog.Handle />
<AddMembersFlow
members={members}
title={l`Add members`}
onAddMembers={members => {
addGroupMembers({members})
@@ -134,6 +134,7 @@ export function MessagesListInfoPanel({convoState}: {convoState: ConvoState}) {
nativeOptions={{fullHeight: true}}>
<Dialog.Handle />
<AddMembersFlow
members={members.map(profile => profile.did)}
title={l`Add people`}
onAddMembers={(members: string[]) => {
addGroupMembers({members})