Filter existing members when adding new members (#10346)
This commit is contained in:
@@ -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`})
|
||||
|
||||
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user