feat(native-participants-pane) admit/reject all buttons

This commit is contained in:
Calin Chitu 2021-05-24 14:08:58 +03:00 committed by Hristo Terezov
parent 8419dc725c
commit eb1add681f
4 changed files with 193 additions and 10 deletions

View File

@ -2,7 +2,8 @@
import React from 'react'; import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Text } from 'react-native-paper'; import { Text, View } from 'react-native';
import { Button } from 'react-native-paper';
import { LobbyParticipantItem } from './LobbyParticipantItem'; import { LobbyParticipantItem } from './LobbyParticipantItem';
import { participants } from './participants'; import { participants } from './participants';
@ -13,11 +14,24 @@ export const LobbyParticipantList = () => {
return ( return (
<> <>
{/* eslint-disable-next-line max-len */} <View style = { styles.lobbyListContainer } >
<Text style = { styles.lobbyListDescription }> <Text style = { styles.lobbyListDescription }>
{t('participantsPane.headings.lobby', {t('participantsPane.headings.lobby',
{ count: participants.length })} { count: participants.length })}
</Text> </Text>
<View style = { styles.lobbyListActions }>
<Button
labelStyle = { styles.allParticipantActionButton }
mode = 'text'>
{t('lobby.admitAll')}
</Button>
<Button
labelStyle = { styles.allParticipantActionButton }
mode = 'text'>
{t('lobby.rejectAll')}
</Button>
</View>
</View>
{ participants.map(p => ( { participants.map(p => (
<LobbyParticipantItem <LobbyParticipantItem
key = { p.id } key = { p.id }

View File

@ -3,8 +3,7 @@
import React from 'react'; import React from 'react';
import type { Node } from 'react'; import type { Node } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { View } from 'react-native'; import { Text, View } from 'react-native';
import { Text } from 'react-native-paper';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { Avatar } from '../../../base/avatar'; import { Avatar } from '../../../base/avatar';
@ -81,7 +80,7 @@ function ParticipantItem({
</Text> </Text>
{ p.local ? <Text style = { styles.isLocal }>({t('chat.you')})</Text> : null } { p.local ? <Text style = { styles.isLocal }>({t('chat.you')})</Text> : null }
</View> </View>
{ p.local && <Text style = { styles.participantActions }> {children} </Text> } { p.local ? <Text style = { styles.participantActions }> ({ children }) </Text> : null }
<View style = { styles.participantStatesContainer } > <View style = { styles.participantStatesContainer } >
{p.raisedHand && <RaisedHandIndicator />} {p.raisedHand && <RaisedHandIndicator />}
<View style = { styles.participantStateVideo }>{VideoStateIcons[videoMuteState]}</View> <View style = { styles.participantStateVideo }>{VideoStateIcons[videoMuteState]}</View>

View File

@ -100,5 +100,165 @@ export const participants = [
role: 'participant', role: 'participant',
startWithAudioMuted: true, startWithAudioMuted: true,
startWithVideoMuted: false startWithVideoMuted: false
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd082114',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd08774533',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd063636',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'dadagqrq1',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd0aad',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd0866327',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd08162234',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
},
{
audioOutputDeviceId: 'default',
avatarURL: undefined,
botType: undefined,
conference: undefined,
connectionStatus: undefined,
dominantSpeaker: false,
email: undefined,
id: 'd04141',
isFakeParticipant: undefined,
isJigasi: undefined,
loadableAvatarUrl: undefined,
local: true,
name: 'testuser2',
pinned: false,
presence: undefined,
role: 'moderator',
startWithAudioMuted: true,
startWithVideoMuted: true
} }
]; ];

View File

@ -113,7 +113,12 @@ export default {
}, },
participantActionButtonText: { participantActionButtonText: {
fontSize: 5 ...BaseTheme.typography.labelRegular
},
allParticipantActionButton: {
...BaseTheme.typography.labelRegular,
color: BaseTheme.palette.action01
}, },
participantContainer: { participantContainer: {
@ -197,6 +202,11 @@ export default {
...container ...container
}, },
lobbyListActions: {
flexDirection: 'row',
marginLeft: 'auto'
},
header: { header: {
...container ...container
}, },