diff --git a/ts/components/dialog/UpdateGroupMembersDialog.tsx b/ts/components/dialog/UpdateGroupMembersDialog.tsx index 3affeadcd..e71170c79 100644 --- a/ts/components/dialog/UpdateGroupMembersDialog.tsx +++ b/ts/components/dialog/UpdateGroupMembersDialog.tsx @@ -18,7 +18,7 @@ import { useIsPrivate, useIsPublic, useSortedGroupMembers, - useWeAreAdmin + useWeAreAdmin, } from '../../hooks/useParamSelector'; import { useSet } from '../../hooks/useSet'; @@ -151,11 +151,7 @@ export const UpdateGroupMembersDialog = (props: Props) => { const isProcessingUIChange = useMemberGroupChangePending(); const [alsoRemoveMessages, setAlsoRemoveMessages] = useState(false); - const { - addTo, - removeFrom, - uniqueValues: membersToKeepWithUpdate, - } = useSet(existingMembers); + const { addTo, removeFrom, uniqueValues: membersToRemove } = useSet([]); const dispatch = useDispatch(); @@ -173,7 +169,7 @@ export const UpdateGroupMembersDialog = (props: Props) => { groupPk: conversationId, addMembersWithHistory: [], addMembersWithoutHistory: [], - removeMembers: difference(existingMembers, membersToKeepWithUpdate) as Array, + removeMembers: membersToRemove as Array, alsoRemoveMessages, }); dispatch(groupv2Action as any); @@ -181,7 +177,10 @@ export const UpdateGroupMembersDialog = (props: Props) => { return; // keeping the dialog open until the async thunk is done } - await onSubmit(conversationId, membersToKeepWithUpdate); + await onSubmit( + conversationId, + difference(existingMembers, membersToRemove) as Array + ); closeDialog(); }; @@ -190,44 +189,41 @@ export const UpdateGroupMembersDialog = (props: Props) => { return event.key === 'Esc' || event.key === 'Escape'; }, closeDialog); - const onAdd = (member: string) => { + const onSelect = (member: string) => { if (!weAreAdmin) { - window?.log?.warn('Only group admin can add members!'); + window?.log?.warn('Only group admin can select!'); return; } - addTo(member); - }; - - const onRemove = (member: string) => { - if (!weAreAdmin) { - window?.log?.warn('Only group admin can remove members!'); - return; - } if (groupAdmins?.includes(member)) { if (PubKey.is03Pubkey(conversationId)) { - window?.log?.warn(`User ${member} cannot be removed as they are an admin.`); + window?.log?.warn(`User ${member} cannot be selected as they are an admin.`); return; } ToastUtils.pushCannotRemoveCreatorFromGroup(); window?.log?.warn( - `User ${member} cannot be removed as they are the creator of the closed group.` + `User ${member} cannot be selected as they are the creator of the closed group.` ); return; } + addTo(member); + }; + + const onUnselect = (member: string) => { + if (!weAreAdmin) { + window?.log?.warn('Only group admin can unselect members!'); + return; + } + removeFrom(member); }; const showNoMembersMessage = existingMembers.length === 0; - const okText = window.i18n('okay'); - const cancelText = window.i18n('cancel'); - - const titleText = window.i18n('groupMembers'); return ( - - {hasClosedGroupV2QAButtons() && weAreAdmin ? ( + + {hasClosedGroupV2QAButtons() && weAreAdmin ? ( <> Also remove messages: { {showNoMembersMessage &&

{window.i18n('groupMembersNone')}

} @@ -255,16 +251,16 @@ export const UpdateGroupMembersDialog = (props: Props) => {
{weAreAdmin && ( )} { {isDevProd() && ( <> - Invite as admin Plop?{' '} + Invite as admin?{' '} { diff --git a/ts/test/session/unit/crypto/OpenGroupAuthentication_test.ts b/ts/test/session/unit/crypto/OpenGroupAuthentication_test.ts index b48f628e1..389c8a1bd 100644 --- a/ts/test/session/unit/crypto/OpenGroupAuthentication_test.ts +++ b/ts/test/session/unit/crypto/OpenGroupAuthentication_test.ts @@ -299,7 +299,6 @@ const decryptBlindedMessage = async ( const version = data[0]; if (version !== 0) { - console.warn('decryptBlindedMessage - Dropping message due to unsupported encryption version'); return undefined; }