GroupV2: Show better strings for 'added but previously invited' cases
This commit is contained in:
parent
b91107efbc
commit
6b3d5c19b3
4 changed files with 171 additions and 12 deletions
|
@ -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",
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
],
|
||||
})}
|
||||
</>
|
||||
);
|
||||
})
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue