Skip to content

Commit

Permalink
Group Calling: You is in this call
Browse files Browse the repository at this point in the history
  • Loading branch information
josh-signal committed Dec 8, 2020
1 parent 159e2ea commit 456c513
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 10 deletions.
4 changes: 4 additions & 0 deletions _locales/en/messages.json
Expand Up @@ -1220,6 +1220,10 @@
}
}
},
"calling__lobby-summary--self": {
"message": "One of your other devices is in this call",
"description": "Shown in the calling lobby to describe when it is just you"
},
"calling__lobby-summary--double": {
"message": "$first$ and $second$ are in this call",
"description": "Shown in the calling lobby to describe who is in the call",
Expand Down
33 changes: 24 additions & 9 deletions ts/components/CallingLobby.stories.tsx
Expand Up @@ -8,6 +8,7 @@ import { action } from '@storybook/addon-actions';
import { v4 as generateUuid } from 'uuid';

import { ColorType } from '../types/Colors';
import { ConversationType } from '../state/ducks/conversations';
import { CallingLobby, PropsType } from './CallingLobby';
import { setup as setupI18n } from '../../js/modules/i18n';
import enMessages from '../../_locales/en/messages.json';
Expand Down Expand Up @@ -53,10 +54,10 @@ const createProps = (overrideProps: Partial<PropsType> = {}): PropsType => ({
toggleSettings: action('toggle-settings'),
});

const fakePeekedParticipant = (title: string) =>
const fakePeekedParticipant = (conversationProps: Partial<ConversationType>) =>
getDefaultConversation({
title,
uuid: generateUuid(),
...conversationProps,
});

const story = storiesOf('Components/CallingLobby', module);
Expand Down Expand Up @@ -107,32 +108,46 @@ story.add('Group Call - 0 peeked participants', () => {
story.add('Group Call - 1 peeked participant', () => {
const props = createProps({
isGroupCall: true,
peekedParticipants: ['Sam'].map(fakePeekedParticipant),
peekedParticipants: [{ title: 'Sam' }].map(fakePeekedParticipant),
});
return <CallingLobby {...props} />;
});

story.add('Group Call - 1 peeked participant (self)', () => {
const uuid = generateUuid();
const props = createProps({
isGroupCall: true,
me: { uuid },
peekedParticipants: [fakePeekedParticipant({ title: 'Ash', uuid })],
});
return <CallingLobby {...props} />;
});

story.add('Group Call - 2 peeked participants', () => {
const props = createProps({
isGroupCall: true,
peekedParticipants: ['Sam', 'Cayce'].map(fakePeekedParticipant),
peekedParticipants: ['Sam', 'Cayce'].map(title =>
fakePeekedParticipant({ title })
),
});
return <CallingLobby {...props} />;
});

story.add('Group Call - 3 peeked participants', () => {
const props = createProps({
isGroupCall: true,
peekedParticipants: ['Sam', 'Cayce', 'April'].map(fakePeekedParticipant),
peekedParticipants: ['Sam', 'Cayce', 'April'].map(title =>
fakePeekedParticipant({ title })
),
});
return <CallingLobby {...props} />;
});

story.add('Group Call - 4 peeked participants', () => {
const props = createProps({
isGroupCall: true,
peekedParticipants: ['Sam', 'Cayce', 'April', 'Logan', 'Carl'].map(
fakePeekedParticipant
peekedParticipants: ['Sam', 'Cayce', 'April', 'Logan', 'Carl'].map(title =>
fakePeekedParticipant({ title })
),
});
return <CallingLobby {...props} />;
Expand All @@ -141,8 +156,8 @@ story.add('Group Call - 4 peeked participants', () => {
story.add('Group Call - 4 peeked participants (participants list)', () => {
const props = createProps({
isGroupCall: true,
peekedParticipants: ['Sam', 'Cayce', 'April', 'Logan', 'Carl'].map(
fakePeekedParticipant
peekedParticipants: ['Sam', 'Cayce', 'April', 'Logan', 'Carl'].map(title =>
fakePeekedParticipant({ title })
),
showParticipantsList: true,
});
Expand Down
8 changes: 7 additions & 1 deletion ts/components/CallingLobby.tsx
Expand Up @@ -119,12 +119,14 @@ export const CallingLobby = ({
// It should be rare to see yourself in this list, but it's possible if (1) you rejoin
// quickly, causing the server to return stale state (2) you have joined on another
// device.
// TODO: Improve the "it's you" case; see DESKTOP-926.
const participantNames = peekedParticipants.map(participant =>
participant.uuid === me.uuid
? i18n('you')
: participant.firstName || participant.title
);
const hasYou = peekedParticipants.some(
participant => participant.uuid === me.uuid
);

const canJoin = !isCallFull && !isCallConnecting;

Expand Down Expand Up @@ -188,6 +190,10 @@ export const CallingLobby = ({
{participantNames.length === 0 &&
i18n('calling__lobby-summary--zero')}
{participantNames.length === 1 &&
hasYou &&
i18n('calling__lobby-summary--self')}
{participantNames.length === 1 &&
!hasYou &&
i18n('calling__lobby-summary--single', participantNames)}
{participantNames.length === 2 &&
i18n('calling__lobby-summary--double', {
Expand Down

0 comments on commit 456c513

Please sign in to comment.