From d5a37f76ab9dd38878074d653edc799037bc1684 Mon Sep 17 00:00:00 2001 From: DS Boyce <260543580+ds-boyce@users.noreply.github.com> Date: Thu, 23 Apr 2026 13:04:55 -0700 Subject: [PATCH] Filter existing members when adding new members (#10346) --- src/components/dms/AddMembersFlow.tsx | 10 ++++++++-- src/screens/Messages/ConversationSettings.tsx | 11 ++++++++++- .../Messages/components/MessagesListInfoPanel.tsx | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/components/dms/AddMembersFlow.tsx b/src/components/dms/AddMembersFlow.tsx index 103ad0aca4..eb30ad1cc6 100644 --- a/src/components/dms/AddMembersFlow.tsx +++ b/src/components/dms/AddMembersFlow.tsx @@ -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`}) diff --git a/src/screens/Messages/ConversationSettings.tsx b/src/screens/Messages/ConversationSettings.tsx index 972a0f2543..04794611cc 100644 --- a/src/screens/Messages/ConversationSettings.tsx +++ b/src/screens/Messages/ConversationSettings.tsx @@ -186,7 +186,13 @@ function SettingsInner({convoId}: {convoId: string}) { /> ) case 'ADD_MEMBERS_LINK': - return + return ( + profile.did)} + /> + ) case 'CHAT_MEMBER': return ( { addGroupMembers({members}) diff --git a/src/screens/Messages/components/MessagesListInfoPanel.tsx b/src/screens/Messages/components/MessagesListInfoPanel.tsx index a239210f7b..ec42341012 100644 --- a/src/screens/Messages/components/MessagesListInfoPanel.tsx +++ b/src/screens/Messages/components/MessagesListInfoPanel.tsx @@ -134,6 +134,7 @@ export function MessagesListInfoPanel({convoState}: {convoState: ConvoState}) { nativeOptions={{fullHeight: true}}> profile.did)} title={l`Add people`} onAddMembers={(members: string[]) => { addGroupMembers({members})