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.\"",
|
"message": "An admin changed who can edit group membership to \"All members.\"",
|
||||||
"description": "Shown in timeline or conversation preview when v2 group changes"
|
"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": {
|
"GroupV2--member-add--from-invite--other": {
|
||||||
"message": "$inviteeName$ accepted an invitation to the group from $inviterName$.",
|
"message": "$inviteeName$ accepted an invitation to the group from $inviterName$.",
|
||||||
"description": "Shown in timeline or conversation preview when v2 group changes",
|
"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": {
|
"GroupV2--member-add--from-invite--you": {
|
||||||
"message": "You accepted an invitation to the group from $inviterName$.",
|
"message": "You accepted an invitation to the group from $inviterName$.",
|
||||||
"description": "Shown in timeline or conversation preview when v2 group changes",
|
"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": {
|
"GroupV2--member-add--from-invite--from-you": {
|
||||||
"message": "$inviteeName$ accepted your invitation to the group.",
|
"message": "$inviteeName$ accepted your invitation to the group.",
|
||||||
"description": "Shown in timeline or conversation preview when v2 group changes",
|
"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 (
|
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({
|
{renderChange({
|
||||||
from: OUR_ID,
|
from: OUR_ID,
|
||||||
details: [
|
details: [
|
||||||
|
@ -382,7 +433,16 @@ storiesOf('Components/Conversation/GroupV2Change', module)
|
||||||
],
|
],
|
||||||
})}
|
})}
|
||||||
{renderChange({
|
{renderChange({
|
||||||
from: CONTACT_B,
|
from: OUR_ID,
|
||||||
|
details: [
|
||||||
|
{
|
||||||
|
type: 'member-add-from-invite',
|
||||||
|
conversationId: OUR_ID,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})}
|
||||||
|
{renderChange({
|
||||||
|
from: CONTACT_A,
|
||||||
details: [
|
details: [
|
||||||
{
|
{
|
||||||
type: 'member-add-from-invite',
|
type: 'member-add-from-invite',
|
||||||
|
@ -392,6 +452,7 @@ storiesOf('Components/Conversation/GroupV2Change', module)
|
||||||
],
|
],
|
||||||
})}
|
})}
|
||||||
{renderChange({
|
{renderChange({
|
||||||
|
from: CONTACT_A,
|
||||||
details: [
|
details: [
|
||||||
{
|
{
|
||||||
type: 'member-add-from-invite',
|
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 weAreJoiner = conversationId === ourConversationId;
|
||||||
const weAreInviter = Boolean(inviter && inviter === 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) {
|
if (weAreJoiner) {
|
||||||
return renderString('GroupV2--member-add--from-invite--you', i18n, [
|
if (inviter) {
|
||||||
renderContact(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) {
|
if (weAreInviter) {
|
||||||
return renderString('GroupV2--member-add--from-invite--from-you', i18n, [
|
return renderString('GroupV2--member-add--from-invite--from-you', i18n, [
|
||||||
renderContact(conversationId),
|
renderContact(conversationId),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
return renderString('GroupV2--member-add--from-invite--other', i18n, {
|
if (inviter) {
|
||||||
inviteeName: renderContact(conversationId),
|
return renderString('GroupV2--member-add--from-invite--other', i18n, {
|
||||||
inviterName: renderContact(inviter),
|
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') {
|
} else if (detail.type === 'member-remove') {
|
||||||
const { conversationId } = detail;
|
const { conversationId } = detail;
|
||||||
const weAreLeaver = conversationId === ourConversationId;
|
const weAreLeaver = conversationId === ourConversationId;
|
||||||
|
|
|
@ -78,7 +78,7 @@ export type GroupV2MemberAddChangeType = {
|
||||||
export type GroupV2MemberAddFromInviteChangeType = {
|
export type GroupV2MemberAddFromInviteChangeType = {
|
||||||
type: 'member-add-from-invite';
|
type: 'member-add-from-invite';
|
||||||
conversationId: string;
|
conversationId: string;
|
||||||
inviter: string;
|
inviter?: string;
|
||||||
};
|
};
|
||||||
export type GroupV2MemberPrivilegeChangeType = {
|
export type GroupV2MemberPrivilegeChangeType = {
|
||||||
type: 'member-privilege';
|
type: 'member-privilege';
|
||||||
|
@ -946,7 +946,7 @@ function extractDiffs({
|
||||||
if (!oldMember) {
|
if (!oldMember) {
|
||||||
const pendingMember = oldPendingMemberLookup[conversationId];
|
const pendingMember = oldPendingMemberLookup[conversationId];
|
||||||
|
|
||||||
if (pendingMember && pendingMember.addedByUserId) {
|
if (pendingMember) {
|
||||||
details.push({
|
details.push({
|
||||||
type: 'member-add-from-invite',
|
type: 'member-add-from-invite',
|
||||||
conversationId,
|
conversationId,
|
||||||
|
|
Loading…
Reference in a new issue