GroupV2: Show better strings for 'added but previously invited' cases

This commit is contained in:
Scott Nonnenberg 2020-09-28 10:22:57 -07:00 committed by Josh Perez
parent b91107efbc
commit 6b3d5c19b3
4 changed files with 171 additions and 12 deletions

View file

@ -3059,7 +3059,40 @@
"message": "An admin changed who can edit group membership to \"All members.\"",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add--invited--you": {
"message": "You added invited member $inviteeName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"inviteeName": {
"content": "$1",
"example": "Alice"
}
}
},
"GroupV2--member-add--invited--other": {
"message": "$memberName$ added invited member $inviteeName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
"content": "$1",
"example": "Alice"
},
"inviteeName": {
"content": "$2",
"example": "Bob"
}
}
},
"GroupV2--member-add--invited--unknown": {
"message": "A member added invited member $inviteeName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"inviteeName": {
"content": "$1",
"example": "Alice"
}
}
},
"GroupV2--member-add--from-invite--other": {
"message": "$inviteeName$ accepted an invitation to the group from $inviterName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
@ -3074,6 +3107,16 @@
}
}
},
"GroupV2--member-add--from-invite--other-no-from": {
"message": "$inviteeName$ accepted an invitation to the group.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"inviteeName": {
"content": "$1",
"example": "Alice"
}
}
},
"GroupV2--member-add--from-invite--you": {
"message": "You accepted an invitation to the group from $inviterName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
@ -3084,6 +3127,10 @@
}
}
},
"GroupV2--member-add--from-invite--you-no-from": {
"message": "You accepted an invitation to the group.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add--from-invite--from-you": {
"message": "$inviteeName$ accepted your invitation to the group.",
"description": "Shown in timeline or conversation preview when v2 group changes",

View file

@ -368,9 +368,60 @@ storiesOf('Components/Conversation/GroupV2Change', module)
</>
);
})
.add('Member Add - from invite', () => {
.add('Member Add - add invited', () => {
return (
<>
{/* the strings where someone added you - shown like a normal add */}
{renderChange({
from: CONTACT_A,
details: [
{
type: 'member-add-from-invite',
conversationId: OUR_ID,
inviter: CONTACT_B,
},
],
})}
{renderChange({
details: [
{
type: 'member-add-from-invite',
conversationId: OUR_ID,
inviter: CONTACT_A,
},
],
})}
{/* the rest of the 'someone added someone else' checks */}
{renderChange({
from: OUR_ID,
details: [
{
type: 'member-add-from-invite',
conversationId: CONTACT_A,
inviter: CONTACT_B,
},
],
})}
{renderChange({
from: CONTACT_A,
details: [
{
type: 'member-add-from-invite',
conversationId: CONTACT_B,
inviter: CONTACT_C,
},
],
})}
{renderChange({
details: [
{
type: 'member-add-from-invite',
conversationId: CONTACT_A,
inviter: CONTACT_B,
},
],
})}
{/* in all of these we know the user has accepted the invite */}
{renderChange({
from: OUR_ID,
details: [
@ -382,7 +433,16 @@ storiesOf('Components/Conversation/GroupV2Change', module)
],
})}
{renderChange({
from: CONTACT_B,
from: OUR_ID,
details: [
{
type: 'member-add-from-invite',
conversationId: OUR_ID,
},
],
})}
{renderChange({
from: CONTACT_A,
details: [
{
type: 'member-add-from-invite',
@ -392,6 +452,7 @@ storiesOf('Components/Conversation/GroupV2Change', module)
],
})}
{renderChange({
from: CONTACT_A,
details: [
{
type: 'member-add-from-invite',
@ -400,6 +461,15 @@ storiesOf('Components/Conversation/GroupV2Change', module)
},
],
})}
{renderChange({
from: CONTACT_A,
details: [
{
type: 'member-add-from-invite',
conversationId: CONTACT_A,
},
],
})}
</>
);
})

View file

@ -189,20 +189,62 @@ export function renderChangeDetail(
const weAreJoiner = conversationId === ourConversationId;
const weAreInviter = Boolean(inviter && inviter === ourConversationId);
if (!from || from !== conversationId) {
if (weAreJoiner) {
// They can't be the same, no fromYou check here
if (from) {
return renderString('GroupV2--member-add--you--other', i18n, [
renderContact(from),
]);
}
return renderString('GroupV2--member-add--you--unknown', i18n);
}
if (fromYou) {
return renderString('GroupV2--member-add--invited--you', i18n, {
inviteeName: renderContact(conversationId),
});
}
if (from) {
return renderString('GroupV2--member-add--invited--other', i18n, {
memberName: renderContact(from),
inviteeName: renderContact(conversationId),
});
}
return renderString('GroupV2--member-add--invited--unknown', i18n, {
inviteeName: renderContact(conversationId),
});
}
if (weAreJoiner) {
return renderString('GroupV2--member-add--from-invite--you', i18n, [
renderContact(inviter),
]);
if (inviter) {
return renderString('GroupV2--member-add--from-invite--you', i18n, [
renderContact(inviter),
]);
}
return renderString(
'GroupV2--member-add--from-invite--you-no-from',
i18n
);
}
if (weAreInviter) {
return renderString('GroupV2--member-add--from-invite--from-you', i18n, [
renderContact(conversationId),
]);
}
return renderString('GroupV2--member-add--from-invite--other', i18n, {
inviteeName: renderContact(conversationId),
inviterName: renderContact(inviter),
});
if (inviter) {
return renderString('GroupV2--member-add--from-invite--other', i18n, {
inviteeName: renderContact(conversationId),
inviterName: renderContact(inviter),
});
}
return renderString(
'GroupV2--member-add--from-invite--other-no-from',
i18n,
{
inviteeName: renderContact(conversationId),
}
);
} else if (detail.type === 'member-remove') {
const { conversationId } = detail;
const weAreLeaver = conversationId === ourConversationId;

View file

@ -78,7 +78,7 @@ export type GroupV2MemberAddChangeType = {
export type GroupV2MemberAddFromInviteChangeType = {
type: 'member-add-from-invite';
conversationId: string;
inviter: string;
inviter?: string;
};
export type GroupV2MemberPrivilegeChangeType = {
type: 'member-privilege';
@ -946,7 +946,7 @@ function extractDiffs({
if (!oldMember) {
const pendingMember = oldPendingMemberLookup[conversationId];
if (pendingMember && pendingMember.addedByUserId) {
if (pendingMember) {
details.push({
type: 'member-add-from-invite',
conversationId,