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({
|
export function AddMembersFlow({
|
||||||
|
members,
|
||||||
title,
|
title,
|
||||||
onAddMembers,
|
onAddMembers,
|
||||||
}: {
|
}: {
|
||||||
|
members: string[]
|
||||||
title: string
|
title: string
|
||||||
onAddMembers: (dids: string[]) => void
|
onAddMembers: (dids: string[]) => void
|
||||||
}) {
|
}) {
|
||||||
@@ -154,7 +156,11 @@ export function AddMembersFlow({
|
|||||||
} else if (searchText.length) {
|
} else if (searchText.length) {
|
||||||
if (results?.length) {
|
if (results?.length) {
|
||||||
for (const profile of results) {
|
for (const profile of results) {
|
||||||
if (profile.did === currentAccount?.did) continue
|
if (
|
||||||
|
profile.did === currentAccount?.did ||
|
||||||
|
members.includes(profile.did)
|
||||||
|
)
|
||||||
|
continue
|
||||||
_items.push({
|
_items.push({
|
||||||
type: 'profile',
|
type: 'profile',
|
||||||
key: profile.did,
|
key: profile.did,
|
||||||
@@ -202,7 +208,7 @@ export function AddMembersFlow({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return _items
|
return _items
|
||||||
}, [isError, searchText, l, results, currentAccount?.did, follows])
|
}, [isError, searchText, l, results, currentAccount?.did, members, follows])
|
||||||
|
|
||||||
if (searchText && !isFetching && !items.length && !isError) {
|
if (searchText && !isFetching && !items.length && !isError) {
|
||||||
items.push({type: 'empty', key: 'empty', message: l`No results`})
|
items.push({type: 'empty', key: 'empty', message: l`No results`})
|
||||||
|
|||||||
@@ -186,7 +186,13 @@ function SettingsInner({convoId}: {convoId: string}) {
|
|||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
case 'ADD_MEMBERS_LINK':
|
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':
|
case 'CHAT_MEMBER':
|
||||||
return (
|
return (
|
||||||
<Member
|
<Member
|
||||||
@@ -292,9 +298,11 @@ function MembersAndRequests({
|
|||||||
function AddMembersLink({
|
function AddMembersLink({
|
||||||
convo,
|
convo,
|
||||||
isOwner,
|
isOwner,
|
||||||
|
members,
|
||||||
}: {
|
}: {
|
||||||
convo: ConvoWithDetails | null
|
convo: ConvoWithDetails | null
|
||||||
isOwner: boolean
|
isOwner: boolean
|
||||||
|
members: string[]
|
||||||
}) {
|
}) {
|
||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
const {t: l} = useLingui()
|
const {t: l} = useLingui()
|
||||||
@@ -381,6 +389,7 @@ function AddMembersLink({
|
|||||||
nativeOptions={{fullHeight: true}}>
|
nativeOptions={{fullHeight: true}}>
|
||||||
<Dialog.Handle />
|
<Dialog.Handle />
|
||||||
<AddMembersFlow
|
<AddMembersFlow
|
||||||
|
members={members}
|
||||||
title={l`Add members`}
|
title={l`Add members`}
|
||||||
onAddMembers={members => {
|
onAddMembers={members => {
|
||||||
addGroupMembers({members})
|
addGroupMembers({members})
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ export function MessagesListInfoPanel({convoState}: {convoState: ConvoState}) {
|
|||||||
nativeOptions={{fullHeight: true}}>
|
nativeOptions={{fullHeight: true}}>
|
||||||
<Dialog.Handle />
|
<Dialog.Handle />
|
||||||
<AddMembersFlow
|
<AddMembersFlow
|
||||||
|
members={members.map(profile => profile.did)}
|
||||||
title={l`Add people`}
|
title={l`Add people`}
|
||||||
onAddMembers={(members: string[]) => {
|
onAddMembers={(members: string[]) => {
|
||||||
addGroupMembers({members})
|
addGroupMembers({members})
|
||||||
|
|||||||
Reference in New Issue
Block a user