Browse Source

feat(native-participants-pane) updated styles for button component and participant item related components

master
Calin Chitu 4 years ago
parent
commit
79edc1b358
23 changed files with 649 additions and 41 deletions
  1. 10
    5
      react/features/base/ui/Tokens.js
  2. 1
    1
      react/features/conference/components/web/Conference.js
  3. 115
    0
      react/features/participants-pane/components/native/Button.js
  4. 45
    0
      react/features/participants-pane/components/native/LobbyParticipantItem.js
  5. 12
    0
      react/features/participants-pane/components/native/LobbyParticipantList.js
  6. 19
    0
      react/features/participants-pane/components/native/MeetingParticipantItem.js
  7. 36
    0
      react/features/participants-pane/components/native/MeetingParticipantList.js
  8. 81
    0
      react/features/participants-pane/components/native/ParticipantItem.js
  9. 53
    20
      react/features/participants-pane/components/native/ParticipantsPane.js
  10. 14
    0
      react/features/participants-pane/components/native/RaisedHandIndicator.js
  11. 102
    0
      react/features/participants-pane/components/native/participants.js
  12. 156
    10
      react/features/participants-pane/components/native/styles.js
  13. 3
    3
      react/features/participants-pane/components/web/InviteButton.js
  14. 0
    0
      react/features/participants-pane/components/web/LobbyParticipantItem.js
  15. 1
    1
      react/features/participants-pane/components/web/LobbyParticipantList.js
  16. 0
    0
      react/features/participants-pane/components/web/MeetingParticipantContextMenu.js
  17. 0
    0
      react/features/participants-pane/components/web/MeetingParticipantItem.js
  18. 0
    0
      react/features/participants-pane/components/web/MeetingParticipantList.js
  19. 0
    0
      react/features/participants-pane/components/web/ParticipantItem.js
  20. 0
    0
      react/features/participants-pane/components/web/ParticipantsPane.js
  21. 1
    1
      react/features/participants-pane/components/web/RaisedHandIndicator.js
  22. 0
    0
      react/features/participants-pane/components/web/index.js
  23. 0
    0
      react/features/participants-pane/components/web/styled.js

+ 10
- 5
react/features/base/ui/Tokens.js View File

@@ -33,7 +33,8 @@ export const colors = {
33 33
     success04: '#189B55',
34 34
     success05: '#1EC26A',
35 35
 
36
-    warning05: '#F8AE1A'
36
+    warning05: '#F8AE1A',
37
+    warning06: '#ED9E1B'
37 38
 };
38 39
 
39 40
 // Mapping between the token used and the color
@@ -197,17 +198,21 @@ export const colorMap = {
197 198
     success02: 'success05',
198 199
 
199 200
     // Color for warning messages applied to icons, borders & backgrounds
200
-    warning01: 'warning05'
201
+    warning01: 'warning05',
202
+
203
+    // Color for indicating a raised hand
204
+    warning02: 'warning06'
201 205
 };
202 206
 
203 207
 
204 208
 export const font = {
205
-    weightRegular: 400,
206
-    weightSemiBold: 600
209
+    weightRegular: '400',
210
+    weightSemiBold: '600'
207 211
 };
208 212
 
209 213
 export const shape = {
210
-    borderRadius: 6
214
+    borderRadius: 6,
215
+    boxShadow: 'inset 0px -1px 0px rgba(255, 255, 255, 0.15)'
211 216
 };
212 217
 
213 218
 export const spacing = [ 0, 4, 8, 16, 24, 32, 40, 48, 56 ];

+ 1
- 1
react/features/conference/components/web/Conference.js View File

@@ -15,7 +15,7 @@ import { Filmstrip } from '../../../filmstrip';
15 15
 import { CalleeInfoContainer } from '../../../invite';
16 16
 import { LargeVideo } from '../../../large-video';
17 17
 import { KnockingParticipantList, LobbyScreen } from '../../../lobby';
18
-import { ParticipantsPane } from '../../../participants-pane/components';
18
+import { ParticipantsPane } from '../../../participants-pane/components/web';
19 19
 import { getParticipantsPaneOpen } from '../../../participants-pane/functions';
20 20
 import { Prejoin, isPrejoinPageVisible } from '../../../prejoin';
21 21
 import { fullScreenChanged, showToolbox } from '../../../toolbox/actions.web';

+ 115
- 0
react/features/participants-pane/components/native/Button.js View File

@@ -0,0 +1,115 @@
1
+// @flow
2
+
3
+import React from 'react';
4
+import { View } from 'react-native';
5
+import { Button as PaperButton } from 'react-native-paper';
6
+
7
+import { Icon } from '../../../base/icons';
8
+
9
+let buttonContent;
10
+
11
+/**
12
+ * The type of the React {@code Component} props of {@link Button}
13
+ */
14
+type Props = {
15
+
16
+    /**
17
+     * Is the button icon type?
18
+     */
19
+    iconButton: boolean,
20
+
21
+    /**
22
+     * Style for the icon
23
+     */
24
+    iconStyle: Object,
25
+
26
+    /**
27
+     * Size of the icon.
28
+     */
29
+    iconSize: number,
30
+
31
+    /**
32
+     * Icon component source.
33
+     */
34
+    iconSrc?: Object,
35
+
36
+    /**
37
+     * Button content.
38
+     */
39
+    content: string,
40
+
41
+    /**
42
+     * Button mode.
43
+     */
44
+    mode: string,
45
+
46
+    /**
47
+     * Style of button's inner content.
48
+     */
49
+    contentStyle?: Object,
50
+
51
+    /**
52
+     * The action to be performed when the button is pressed.
53
+     */
54
+    onPress: Function,
55
+
56
+    /**
57
+     * An external style object passed to the component.
58
+     */
59
+    style: Object,
60
+
61
+    /**
62
+     * Theme to be applied.
63
+     */
64
+    theme: Object
65
+};
66
+
67
+/**
68
+ * Close button component.
69
+ *
70
+ * @returns {React$Element<any>}
71
+ */
72
+function Button({
73
+    iconButton,
74
+    iconStyle,
75
+    iconSize,
76
+    iconSrc,
77
+    content,
78
+    contentStyle,
79
+    mode,
80
+    onPress,
81
+    style,
82
+    theme
83
+}: Props) {
84
+
85
+    if (iconButton) {
86
+        buttonContent
87
+            = (<View
88
+                /* eslint-disable-next-line react-native/no-inline-styles */
89
+                style = {{
90
+                    height: 0,
91
+                    width: 0
92
+                }}>
93
+                <Icon
94
+                    size = { iconSize }
95
+                    src = { iconSrc }
96
+                    style = { iconStyle } />
97
+            </View>);
98
+
99
+    } else {
100
+        buttonContent = content;
101
+    }
102
+
103
+    return (
104
+        <PaperButton
105
+            contentStyle = { contentStyle }
106
+            mode = { mode }
107
+            onPress = { onPress }
108
+            style = { style }
109
+            theme = { theme }>
110
+            { buttonContent }
111
+        </PaperButton>
112
+    );
113
+}
114
+
115
+export default Button;

+ 45
- 0
react/features/participants-pane/components/native/LobbyParticipantItem.js View File

@@ -0,0 +1,45 @@
1
+// @flow
2
+
3
+import React, { useCallback } from 'react';
4
+import { useTranslation } from 'react-i18next';
5
+import { Button } from 'react-native-paper';
6
+import { useDispatch } from 'react-redux';
7
+
8
+// import { setKnockingParticipantApproval } from '../../../lobby/actions';
9
+import { MediaState } from '../../constants';
10
+
11
+import ParticipantItem from './ParticipantItem';
12
+import styles from './styles';
13
+
14
+type Props = {
15
+
16
+    /**
17
+     * Participant reference
18
+     */
19
+    participant: Object
20
+};
21
+
22
+export const LobbyParticipantItem = ({ participant: p }: Props) => {
23
+    const dispatch = useDispatch();
24
+    const admit = useCallback(() => dispatch(setKnockingParticipantApproval(p.id, true), [ dispatch ]));
25
+    const reject = useCallback(() => dispatch(setKnockingParticipantApproval(p.id, false), [ dispatch ]));
26
+    const { t } = useTranslation();
27
+
28
+    return (
29
+        <ParticipantItem
30
+            audioMuteState = { MediaState.None }
31
+            participant = { p }
32
+            videoMuteState = { MediaState.None }>
33
+            <Button
34
+                onClick = { reject }
35
+                style = { styles.participantActionButton }>
36
+                {t('lobby.reject')}
37
+            </Button>
38
+            <Button
39
+                onClick = { admit }
40
+                style = { styles.participantActionButton }>
41
+                {t('lobby.admit')}
42
+            </Button>
43
+        </ParticipantItem>
44
+    );
45
+};

+ 12
- 0
react/features/participants-pane/components/native/LobbyParticipantList.js View File

@@ -0,0 +1,12 @@
1
+// @flow
2
+
3
+import React from 'react';
4
+import { View } from 'react-native';
5
+import { useSelector } from 'react-redux';
6
+
7
+// import { getLobbyState } from '../../../lobby/functions';
8
+
9
+import { LobbyParticipantItem } from './LobbyParticipantItem';
10
+import { participants } from './participants';
11
+
12
+export const LobbyParticipantList = () => null;

+ 19
- 0
react/features/participants-pane/components/native/MeetingParticipantItem.js View File

@@ -0,0 +1,19 @@
1
+// @flow
2
+
3
+import React from 'react';
4
+
5
+import ParticipantItem from './ParticipantItem';
6
+
7
+
8
+type Props = {
9
+
10
+    /**
11
+     * Participant reference
12
+     */
13
+    participant: Object
14
+};
15
+
16
+export const MeetingParticipantItem = ({ participant: p }: Props) => (
17
+    <ParticipantItem
18
+        participant = { p } />
19
+);

+ 36
- 0
react/features/participants-pane/components/native/MeetingParticipantList.js View File

@@ -0,0 +1,36 @@
1
+// @flow
2
+
3
+import React from 'react';
4
+import { useTranslation } from 'react-i18next';
5
+import { View } from 'react-native';
6
+import { Text } from 'react-native-paper';
7
+import { useSelector } from 'react-redux';
8
+
9
+import { getParticipants } from '../../../base/participants';
10
+
11
+import { MeetingParticipantItem } from './MeetingParticipantItem';
12
+import styles from './styles';
13
+
14
+
15
+export const MeetingParticipantList = () => {
16
+    const participants = useSelector(getParticipants);
17
+    const { t } = useTranslation();
18
+
19
+    return (
20
+        <View style = { styles.lobbyListContainer }>
21
+            <Text>
22
+                {
23
+                    t('participantsPane.headings.participantsList',
24
+                    { count: participants.length }
25
+                    )
26
+                }
27
+            </Text>
28
+            {
29
+                participants.map(p => (
30
+                    <MeetingParticipantItem
31
+                        key = { p.id }
32
+                        participant = { p } />)
33
+                )}
34
+        </View>
35
+    );
36
+};

+ 81
- 0
react/features/participants-pane/components/native/ParticipantItem.js View File

@@ -0,0 +1,81 @@
1
+// @flow
2
+
3
+import React from 'react';
4
+import { useTranslation } from 'react-i18next';
5
+import { View } from 'react-native';
6
+import { Text } from 'react-native-paper';
7
+import { useSelector } from 'react-redux';
8
+
9
+import { Avatar } from '../../../base/avatar';
10
+import { getParticipantDisplayNameWithId } from '../../../base/participants';
11
+import { ActionTrigger, MediaState } from '../../constants';
12
+// import { AudioStateIcons, VideoStateIcons } from '../web/ParticipantItem';
13
+
14
+import { RaisedHandIndicator } from './RaisedHandIndicator';
15
+import styles from './styles';
16
+
17
+type Props = {
18
+
19
+    /**
20
+     * Type of trigger for the participant actions
21
+     */
22
+    actionsTrigger: ActionTrigger,
23
+
24
+    /**
25
+     * Media state for audio
26
+     */
27
+    audioMuteState: MediaState,
28
+
29
+    /**
30
+     * Callback for when the mouse leaves this component
31
+     */
32
+    onLeave?: Function,
33
+
34
+    /**
35
+     * Participant reference
36
+     */
37
+    participant: Object,
38
+
39
+    /**
40
+     * Media state for video
41
+     */
42
+    videoMuteState: MediaState
43
+}
44
+
45
+/**
46
+ * Participant item.
47
+ *
48
+ * @returns {React$Element<any>}
49
+ */
50
+function ParticipantItem({
51
+    audioMuteState = MediaState.None,
52
+    videoMuteState = MediaState.None,
53
+    participant: p
54
+}: Props) {
55
+    const { t } = useTranslation();
56
+    const name = useSelector(getParticipantDisplayNameWithId(p.id));
57
+
58
+    return (
59
+        <View style = { styles.participantContainer } >
60
+            <Avatar
61
+                className = 'participant-avatar'
62
+                participant = { p.id }
63
+                size = { 32 } />
64
+            <View style = { styles.participantContent }>
65
+                <View style = { styles.participantNameContainer }>
66
+                    <Text style = { styles.participantName }>
67
+                        { name }
68
+                    </Text>
69
+                    { p.local ? <Text>({t('chat.you')})</Text> : null }
70
+                </View>
71
+                <View style = { styles.participantStates } >
72
+                    {p.raisedHand && <RaisedHandIndicator />}
73
+                    {VideoStateIcons[videoMuteState]}
74
+                    {AudioStateIcons[audioMuteState]}
75
+                </View>
76
+            </View>
77
+        </View>
78
+    );
79
+}
80
+
81
+export default ParticipantItem;

+ 53
- 20
react/features/participants-pane/components/native/ParticipantsPane.js View File

@@ -1,17 +1,21 @@
1 1
 // @flow
2 2
 
3 3
 import React, { useCallback } from 'react';
4
-import { Button, withTheme } from 'react-native-paper';
5
-import { useDispatch } from 'react-redux';
4
+import { useTranslation } from 'react-i18next';
5
+import { View } from 'react-native';
6
+import { withTheme } from 'react-native-paper';
7
+import { useDispatch, useSelector } from 'react-redux';
6 8
 
7
-
8
-import { translate } from '../../../base/i18n';
9
-import { Icon, IconClose } from '../../../base/icons';
9
+import { IconClose, IconHorizontalPoints } from '../../../base/icons';
10 10
 import { JitsiModal } from '../../../base/modal';
11
+import { isLocalParticipantModerator } from '../../../base/participants';
11 12
 import { close } from '../../actions';
12 13
 
14
+import Button from './Button';
15
+import { LobbyParticipantList } from './LobbyParticipantList';
13 16
 import styles from './styles';
14 17
 
18
+
15 19
 /**
16 20
  * {@code ParticipantsPane}'s React {@code Component} prop types.
17 21
  */
@@ -33,29 +37,58 @@ function ParticipantsPane({ theme }: Props) {
33 37
     const closePane = useCallback(
34 38
         () => dispatch(close()),
35 39
         [ dispatch ]);
36
-
40
+    const isLocalModerator = useSelector(isLocalParticipantModerator);
41
+    const { t } = useTranslation();
37 42
     const { palette } = theme;
38 43
 
39 44
     return (
40 45
         <JitsiModal
41 46
             showHeaderWithNavigation = { false }
42 47
             style = { styles.participantsPane }>
43
-            <Button
44
-                mode = 'contained'
45
-                onPress = { closePane }
46
-                style = { styles.closeButton }
47
-                theme = {{
48
-                    colors: {
49
-                        primary: palette.action02
50
-                    }
51
-                }}>
52
-                <Icon
53
-                    src = { IconClose }
54
-                    style = { styles.closeIcon } />
55
-            </Button>
48
+            <View style = { styles.header }>
49
+                <Button
50
+                    contentStyle = { styles.muteAllContent }
51
+                    iconButton = { true }
52
+                    iconSize = { 16 }
53
+                    iconSrc = { IconClose }
54
+                    iconStyle = { styles.closeIcon }
55
+                    mode = 'contained'
56
+                    onPress = { closePane }
57
+                    style = { styles.closeButton }
58
+                    theme = {{
59
+                        colors: {
60
+                            primary: palette.action02
61
+                        }
62
+                    }} />
63
+            </View>
64
+            <LobbyParticipantList />
65
+            {
66
+                isLocalModerator
67
+                && <View style = { styles.footer }>
68
+                    <Button
69
+                        content = { t('participantsPane.actions.muteAll') }
70
+                        contentStyle = { styles.muteAllContent }
71
+                        onPress = { closePane }
72
+                        style = { styles.muteAllButton } />
73
+                    <Button
74
+                        contentStyle = { styles.muteAllContent }
75
+                        iconButton = { true }
76
+                        iconSize = { 16 }
77
+                        iconSrc = { IconHorizontalPoints }
78
+                        iconStyle = { styles.moreIcon }
79
+                        mode = 'contained'
80
+                        onPress = { closePane }
81
+                        style = { styles.moreButton }
82
+                        theme = {{
83
+                            colors: {
84
+                                primary: palette.action02
85
+                            }
86
+                        }} />
87
+                </View>
88
+            }
56 89
         </JitsiModal>
57 90
     );
58 91
 }
59 92
 
60 93
 
61
-export default translate(withTheme(ParticipantsPane));
94
+export default withTheme(ParticipantsPane);

+ 14
- 0
react/features/participants-pane/components/native/RaisedHandIndicator.js View File

@@ -0,0 +1,14 @@
1
+import React from 'react';
2
+import { View } from 'react-native';
3
+
4
+import { Icon, IconRaisedHandHollow } from '../../../base/icons';
5
+
6
+import styles from './styles';
7
+
8
+export const RaisedHandIndicator = () => (
9
+    <View style = { styles.raisedHandIndicator }>
10
+        <Icon
11
+            size = { 15 }
12
+            src = { IconRaisedHandHollow } />
13
+    </View>
14
+);

+ 102
- 0
react/features/participants-pane/components/native/participants.js View File

@@ -0,0 +1,102 @@
1
+export const participants = [
2
+    {
3
+        audioOutputDeviceId: 'default',
4
+        avatarURL: undefined,
5
+        botType: undefined,
6
+        conference: undefined,
7
+        connectionStatus: undefined,
8
+        dominantSpeaker: false,
9
+        email: undefined,
10
+        id: 'd0816677',
11
+        isFakeParticipant: undefined,
12
+        isJigasi: undefined,
13
+        loadableAvatarUrl: undefined,
14
+        local: true,
15
+        name: 'testuser2',
16
+        pinned: false,
17
+        presence: undefined,
18
+        role: 'moderator',
19
+        startWithAudioMuted: true,
20
+        startWithVideoMuted: true
21
+    },
22
+    {
23
+        audioOutputDeviceId: 'default',
24
+        avatarURL: undefined,
25
+        botType: undefined,
26
+        conference: undefined,
27
+        connectionStatus: undefined,
28
+        dominantSpeaker: false,
29
+        email: undefined,
30
+        id: 'a0496597',
31
+        isFakeParticipant: undefined,
32
+        isJigasi: undefined,
33
+        loadableAvatarUrl: undefined,
34
+        local: true,
35
+        name: 'me',
36
+        pinned: false,
37
+        presence: undefined,
38
+        role: 'participant',
39
+        startWithAudioMuted: true,
40
+        startWithVideoMuted: false
41
+    },
42
+    {
43
+        audioOutputDeviceId: 'default',
44
+        avatarURL: undefined,
45
+        botType: undefined,
46
+        conference: undefined,
47
+        connectionStatus: undefined,
48
+        dominantSpeaker: false,
49
+        email: undefined,
50
+        id: 'b01081018',
51
+        isFakeParticipant: undefined,
52
+        isJigasi: undefined,
53
+        loadableAvatarUrl: undefined,
54
+        local: true,
55
+        name: 'Tom',
56
+        pinned: false,
57
+        presence: undefined,
58
+        role: 'participant',
59
+        startWithAudioMuted: true,
60
+        startWithVideoMuted: false
61
+    },
62
+    {
63
+        audioOutputDeviceId: 'default',
64
+        avatarURL: undefined,
65
+        botType: undefined,
66
+        conference: undefined,
67
+        connectionStatus: undefined,
68
+        dominantSpeaker: false,
69
+        email: undefined,
70
+        id: 'b0aad221e1',
71
+        isFakeParticipant: undefined,
72
+        isJigasi: undefined,
73
+        loadableAvatarUrl: undefined,
74
+        local: true,
75
+        name: 'George',
76
+        pinned: false,
77
+        presence: undefined,
78
+        role: 'participant',
79
+        startWithAudioMuted: true,
80
+        startWithVideoMuted: false
81
+    },
82
+    {
83
+        audioOutputDeviceId: 'default',
84
+        avatarURL: undefined,
85
+        botType: undefined,
86
+        conference: undefined,
87
+        connectionStatus: undefined,
88
+        dominantSpeaker: false,
89
+        email: undefined,
90
+        id: 'c0108301',
91
+        isFakeParticipant: undefined,
92
+        isJigasi: undefined,
93
+        loadableAvatarUrl: undefined,
94
+        local: true,
95
+        name: 'Carlin',
96
+        pinned: false,
97
+        presence: undefined,
98
+        role: 'participant',
99
+        startWithAudioMuted: true,
100
+        startWithVideoMuted: false
101
+    }
102
+];

+ 156
- 10
react/features/participants-pane/components/native/styles.js View File

@@ -1,26 +1,172 @@
1 1
 import BaseTheme from '../../../base/ui/components/BaseTheme.native';
2 2
 
3
+/**
4
+ * The style for content.
5
+ */
6
+const flexContent = {
7
+    alignItems: 'center',
8
+    color: BaseTheme.palette.icon01,
9
+    display: 'flex',
10
+    flex: 1
11
+};
12
+
13
+/**
14
+ * The style of the participants pane buttons.
15
+ */
16
+const container = {
17
+    alignItems: 'center',
18
+    display: 'flex',
19
+    flexDirection: 'row',
20
+    height: 64,
21
+    justifyContent: 'center',
22
+    paddingRight: 8,
23
+    width: '100%'
24
+};
25
+
26
+/**
27
+ * The style of the participants pane buttons.
28
+ */
29
+const button = {
30
+    alignItems: 'center',
31
+    backgroundColor: BaseTheme.palette.action02,
32
+    borderRadius: BaseTheme.shape.borderRadius,
33
+    display: 'flex',
34
+    height: 48,
35
+    marginLeft: 'auto'
36
+};
37
+
38
+/**
39
+ * Small buttons.
40
+ */
41
+const smallButton = {
42
+    ...button,
43
+    width: 48
44
+};
45
+
46
+/**
47
+ * The style of the participants pane buttons description.
48
+ */
49
+const buttonContent = {
50
+    ...BaseTheme.typography.labelButtonLarge,
51
+    ...flexContent,
52
+    justifyContent: 'center'
53
+};
54
+
3 55
 /**
4 56
  * The styles of the native components of the feature {@code participants}.
5 57
  */
6 58
 export default {
7
-    participantsPane: {
8
-        backgroundColor: BaseTheme.palette.ui01,
9
-        padding: 16
59
+
60
+    participantActionButton: {
61
+        backgroundColor: BaseTheme.palette.action01,
62
+        borderRadius: BaseTheme.shape.borderRadius,
63
+        height: 40,
64
+        paddingTop: 8,
65
+        paddingBottom: 8,
66
+        paddingLeft: 16,
67
+        paddingRight: 16,
68
+        width: 73
10 69
     },
11 70
 
12
-    closeButton: {
71
+    participantContainer: {
13 72
         alignItems: 'center',
73
+        color: BaseTheme.palette.text01,
14 74
         display: 'flex',
15
-        height: 48,
16
-        justifyContent: 'center',
17
-        marginLeft: 'auto'
75
+        fontSize: 13,
76
+        height: 64,
77
+        margin: BaseTheme.spacing[4],
78
+        position: 'relative',
79
+        width: 375
18 80
     },
19 81
 
20
-    closeIcon: {
82
+    participantContent: {
83
+        ...flexContent,
84
+        boxShadow: BaseTheme.shape.boxShadow,
85
+        height: '100%',
86
+        overflow: 'hidden',
87
+        paddingRight: BaseTheme.spacing[4]
88
+    },
89
+
90
+    participantNameContainer: {
21 91
         display: 'flex',
22 92
         flex: 1,
23
-        fontSize: 24,
24
-        justifyContent: 'center'
93
+        marginRight: BaseTheme.spacing[3],
94
+        overflow: 'hidden'
95
+    },
96
+
97
+    participantName: {
98
+        overflow: 'hidden',
99
+        textOverflow: 'ellipsis',
100
+        whiteSpace: 'nowrap'
101
+    },
102
+
103
+    participantsPane: {
104
+        backgroundColor: BaseTheme.palette.ui01
105
+    },
106
+
107
+    participantStates: {
108
+        display: 'flex',
109
+        justifyContent: 'flex-end'
110
+    },
111
+
112
+    raisedHandIndicator: {
113
+        backgroundColor: BaseTheme.palette.warning02,
114
+        borderRadius: BaseTheme.shape.borderRadius / 2,
115
+        height: 24,
116
+        width: 24
117
+    },
118
+
119
+    lobbyListContainer: {
120
+        ...container
121
+    },
122
+
123
+    header: {
124
+        ...container,
125
+        backgroundColor: 'red'
126
+    },
127
+
128
+    footer: {
129
+        ...container,
130
+        backgroundColor: 'green',
131
+        marginTop: 'auto'
132
+    },
133
+
134
+    closeButton: {
135
+        ...smallButton
136
+    },
137
+
138
+    closeIcon: {
139
+        ...buttonContent
140
+    },
141
+
142
+    moreButton: {
143
+        ...smallButton
144
+    },
145
+
146
+    moreIcon: {
147
+        ...buttonContent
148
+    },
149
+
150
+    moreButtonPaper: {
151
+        ...smallButton,
152
+        height: 48
153
+    },
154
+
155
+    moreIconPaper: {
156
+        alignItems: 'center',
157
+        flexDirection: 'row-reverse'
158
+    },
159
+
160
+    muteAllButton: {
161
+        ...button,
162
+        paddingBottom: 12,
163
+        paddingLeft: 16,
164
+        paddingRight: 16,
165
+        paddingTop: 12,
166
+        width: 94
167
+    },
168
+
169
+    muteAllContent: {
170
+        ...buttonContent
25 171
     }
26 172
 };

react/features/participants-pane/components/InviteButton.js → react/features/participants-pane/components/web/InviteButton.js View File

@@ -4,9 +4,9 @@ import React, { useCallback } from 'react';
4 4
 import { useTranslation } from 'react-i18next';
5 5
 import { useDispatch } from 'react-redux';
6 6
 
7
-import { createToolbarEvent, sendAnalytics } from '../../analytics';
8
-import { Icon, IconInviteMore } from '../../base/icons';
9
-import { beginAddPeople } from '../../invite';
7
+import { createToolbarEvent, sendAnalytics } from '../../../analytics';
8
+import { Icon, IconInviteMore } from '../../../base/icons';
9
+import { beginAddPeople } from '../../../invite';
10 10
 
11 11
 import { ParticipantInviteButton } from './styled';
12 12
 

react/features/participants-pane/components/LobbyParticipantItem.js → react/features/participants-pane/components/web/LobbyParticipantItem.js View File


react/features/participants-pane/components/LobbyParticipantList.js → react/features/participants-pane/components/web/LobbyParticipantList.js View File

@@ -5,9 +5,9 @@ import React, { useCallback } from 'react';
5 5
 import { useTranslation } from 'react-i18next';
6 6
 import { useSelector, useDispatch } from 'react-redux';
7 7
 
8
+import { getLobbyState } from '../../../lobby/functions';
8 9
 import { withPixelLineHeight } from '../../base/styles/functions.web';
9 10
 import { admitMultiple } from '../../lobby/actions.web';
10
-import { getLobbyState } from '../../lobby/functions';
11 11
 
12 12
 import { LobbyParticipantItem } from './LobbyParticipantItem';
13 13
 

react/features/participants-pane/components/MeetingParticipantContextMenu.js → react/features/participants-pane/components/web/MeetingParticipantContextMenu.js View File


react/features/participants-pane/components/MeetingParticipantItem.js → react/features/participants-pane/components/web/MeetingParticipantItem.js View File


react/features/participants-pane/components/MeetingParticipantList.js → react/features/participants-pane/components/web/MeetingParticipantList.js View File


react/features/participants-pane/components/ParticipantItem.js → react/features/participants-pane/components/web/ParticipantItem.js View File


react/features/participants-pane/components/ParticipantsPane.js → react/features/participants-pane/components/web/ParticipantsPane.js View File


react/features/participants-pane/components/RaisedHandIndicator.js → react/features/participants-pane/components/web/RaisedHandIndicator.js View File

@@ -2,7 +2,7 @@
2 2
 
3 3
 import React from 'react';
4 4
 
5
-import { Icon, IconRaisedHandHollow } from '../../base/icons';
5
+import { Icon, IconRaisedHandHollow } from '../../../base/icons';
6 6
 
7 7
 import { RaisedHandIndicatorBackground } from './styled';
8 8
 

react/features/participants-pane/components/index.js → react/features/participants-pane/components/web/index.js View File


react/features/participants-pane/components/styled.js → react/features/participants-pane/components/web/styled.js View File


Loading…
Cancel
Save