agora-appbuilder-core 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/package.json +3 -2
  2. package/template/_package-lock.json +22850 -0
  3. package/template/agora-rn-uikit/.git/HEAD +1 -1
  4. package/template/agora-rn-uikit/.git/index +0 -0
  5. package/template/agora-rn-uikit/.git/logs/HEAD +2 -3
  6. package/template/agora-rn-uikit/.git/logs/refs/heads/ab-dev-auto +1 -1
  7. package/template/agora-rn-uikit/.git/logs/refs/heads/master +1 -1
  8. package/template/agora-rn-uikit/.git/logs/refs/remotes/origin/HEAD +1 -1
  9. package/template/agora-rn-uikit/.git/objects/pack/pack-f379286d0537eb68377220b4929979324b8d5d1c.idx +0 -0
  10. package/template/agora-rn-uikit/.git/objects/pack/{pack-19a65e0782e617d79275088a06e668496d6e2d73.pack → pack-f379286d0537eb68377220b4929979324b8d5d1c.pack} +0 -0
  11. package/template/agora-rn-uikit/.git/packed-refs +3 -2
  12. package/template/agora-rn-uikit/.git/refs/heads/ab-dev-auto +1 -1
  13. package/template/agora-rn-uikit/package.json +1 -0
  14. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +8 -8
  15. package/template/agora-rn-uikit/src/{LocalUserContext.tsx → Contexts/LocalUserContext.tsx} +1 -1
  16. package/template/agora-rn-uikit/src/{MaxUidContext.tsx → Contexts/MaxUidContext.tsx} +0 -0
  17. package/template/agora-rn-uikit/src/{MinUidContext.tsx → Contexts/MinUidContext.tsx} +0 -0
  18. package/template/agora-rn-uikit/src/{PropsContext.tsx → Contexts/PropsContext.tsx} +34 -16
  19. package/template/agora-rn-uikit/src/{RtcContext.tsx → Contexts/RtcContext.tsx} +12 -21
  20. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +25 -15
  21. package/template/agora-rn-uikit/src/Controls/Icons.ts +53 -3
  22. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +53 -0
  23. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +4 -3
  24. package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -3
  25. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +58 -14
  26. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +60 -14
  27. package/template/agora-rn-uikit/src/Controls/Local/Recording.tsx +2 -2
  28. package/template/agora-rn-uikit/src/Controls/Local/Screenshare.tsx +2 -2
  29. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +9 -9
  30. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +20 -17
  31. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +8 -8
  32. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -3
  33. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +13 -8
  34. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +1 -2
  35. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +20 -0
  36. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +20 -0
  37. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +26 -0
  38. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +26 -0
  39. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +46 -0
  40. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +47 -0
  41. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +20 -0
  42. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +20 -0
  43. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +21 -0
  44. package/template/agora-rn-uikit/src/Reducer/index.ts +9 -0
  45. package/template/agora-rn-uikit/src/Rtc/Create.tsx +138 -0
  46. package/template/agora-rn-uikit/src/Rtc/Join.tsx +100 -0
  47. package/template/agora-rn-uikit/src/RtcConfigure.tsx +197 -0
  48. package/template/agora-rn-uikit/src/Style.ts +3 -3
  49. package/template/agora-rn-uikit/src/Utils/actionTypeGuard.tsx +9 -0
  50. package/template/agora-rn-uikit/src/{events.ts → Utils/events.ts} +0 -0
  51. package/template/agora-rn-uikit/src/{permission.ts → Utils/permission.ts} +0 -0
  52. package/template/agora-rn-uikit/src/{quality.tsx → Utils/quality.tsx} +0 -0
  53. package/template/agora-rn-uikit/src/{MaxVideoView.native.tsx → Views/MaxVideoView.native.tsx} +3 -4
  54. package/template/agora-rn-uikit/src/{MaxVideoView.tsx → Views/MaxVideoView.tsx} +3 -4
  55. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +86 -0
  56. package/template/agora-rn-uikit/src/index.ts +67 -0
  57. package/template/bridge/rtc/webNg/RtcEngine.ts +23 -6
  58. package/template/package-lock.json +22850 -0
  59. package/template/package.json +6 -5
  60. package/template/src/assets/icons.ts +35 -6
  61. package/template/src/atoms/SecondaryButton.tsx +6 -5
  62. package/template/src/atoms/TextInput.tsx +6 -1
  63. package/template/src/components/Chat.tsx +50 -21
  64. package/template/src/components/ChatContext.ts +22 -1
  65. package/template/src/components/Controls.native.tsx +2 -2
  66. package/template/src/components/Controls.tsx +2 -2
  67. package/template/src/components/DeviceConfigure.tsx +1 -1
  68. package/template/src/components/GridVideo.tsx +69 -31
  69. package/template/src/components/Navbar.tsx +136 -113
  70. package/template/src/components/NetworkQualityContext.tsx +134 -0
  71. package/template/src/components/ParticipantsView.tsx +105 -49
  72. package/template/src/components/PinnedVideo.tsx +112 -71
  73. package/template/src/components/Precall.native.tsx +20 -9
  74. package/template/src/components/Precall.tsx +35 -32
  75. package/template/src/components/RTMConfigure.tsx +331 -181
  76. package/template/src/components/RTMEvents.tsx +84 -0
  77. package/template/src/components/Settings.tsx +19 -16
  78. package/template/src/components/Share.tsx +131 -62
  79. package/template/src/hooks/useImageDelay.tsx +28 -0
  80. package/template/src/pages/Create.tsx +9 -3
  81. package/template/src/pages/VideoCall.tsx +124 -98
  82. package/template/src/subComponents/ChatContainer.tsx +40 -28
  83. package/template/src/subComponents/CopyJoinInfo.tsx +9 -12
  84. package/template/src/subComponents/LocalAudioMute.tsx +9 -9
  85. package/template/src/subComponents/LocalVideoMute.tsx +9 -9
  86. package/template/src/subComponents/NetworkQualityPill.tsx +161 -0
  87. package/template/src/subComponents/Recording.tsx +12 -16
  88. package/template/src/subComponents/RemoteAudioMute.tsx +23 -27
  89. package/template/src/subComponents/RemoteEndCall.tsx +7 -15
  90. package/template/src/subComponents/RemoteVideoMute.tsx +15 -28
  91. package/template/src/subComponents/ScreenShareNotice.tsx +61 -0
  92. package/template/src/subComponents/ScreenshareButton.tsx +74 -75
  93. package/template/src/subComponents/SwitchCamera.tsx +5 -2
  94. package/template/src/subComponents/TextWithTooltip.native.tsx +128 -0
  95. package/template/src/subComponents/TextWithTooltip.tsx +44 -0
  96. package/template/src/subComponents/toastConfig.tsx +2 -2
  97. package/template/src/utils/isSafariBrowser.tsx +22 -0
  98. package/template/agora-rn-uikit/.git/objects/pack/pack-19a65e0782e617d79275088a06e668496d6e2d73.idx +0 -0
  99. package/template/agora-rn-uikit/Components.js +0 -35
  100. package/template/agora-rn-uikit/Contexts.js +0 -7
  101. package/template/agora-rn-uikit/index.js +0 -12
  102. package/template/agora-rn-uikit/src/MinVideoView.tsx +0 -87
  103. package/template/agora-rn-uikit/src/RTCConfigure.tsx +0 -520
@@ -18,17 +18,21 @@ import {
18
18
  TouchableOpacity,
19
19
  ScrollView,
20
20
  Dimensions,
21
+ useWindowDimensions
21
22
  } from 'react-native';
23
+ import {RFValue} from 'react-native-responsive-fontsize';
22
24
  import ChatContainer from '../subComponents/ChatContainer';
23
25
  import ChatInput from '../subComponents/ChatInput';
24
- import {MinUidConsumer} from '../../agora-rn-uikit/src/MinUidContext';
25
- import {MaxUidConsumer} from '../../agora-rn-uikit/src/MaxUidContext';
26
+ import {MinUidConsumer} from '../../agora-rn-uikit';
27
+ import {MaxUidConsumer} from '../../agora-rn-uikit';
26
28
  import icons from '../assets/icons';
27
29
  import ColorContext from './ColorContext';
28
30
  import chatContext from './ChatContext';
29
31
  import {UserType} from './RTMConfigure';
32
+ import TextWithTooltip from '../subComponents/TextWithTooltip';
30
33
 
31
34
  const Chat = (props: any) => {
35
+ const {height, width} = useWindowDimensions();
32
36
  const [dim, setDim] = useState([
33
37
  Dimensions.get('window').width,
34
38
  Dimensions.get('window').height,
@@ -44,11 +48,16 @@ const Chat = (props: any) => {
44
48
  lastCheckedPrivateState,
45
49
  privateMessageCountMap,
46
50
  setPrivateMessageLastSeen,
51
+ setPrivateChatDisplayed
47
52
  } = props;
48
53
  const {primaryColor} = useContext(ColorContext);
49
54
  const [groupActive, setGroupActive] = useState(true);
50
55
  const [privateActive, setPrivateActive] = useState(false);
51
56
  const [selectedUser, setSelectedUser] = useState({uid: null});
57
+ //initally private state should be false
58
+ useEffect(()=>{
59
+ setPrivateChatDisplayed(false)
60
+ },[])
52
61
  useEffect(() => {
53
62
  if (privateActive) {
54
63
  setPrivateMessageLastSeen({
@@ -61,9 +70,11 @@ const Chat = (props: any) => {
61
70
  const selectGroup = () => {
62
71
  setPrivateActive(false);
63
72
  setGroupActive(true);
73
+ setPrivateChatDisplayed(false)
64
74
  };
65
75
  const selectPrivate = () => {
66
76
  setGroupActive(false);
77
+ setPrivateChatDisplayed(true)
67
78
  };
68
79
  const selectUser = (user: any) => {
69
80
  setSelectedUser(user);
@@ -122,7 +133,9 @@ const Chat = (props: any) => {
122
133
  }>
123
134
  {pendingPrivateNotification !== 0 ? (
124
135
  <View style={style.chatNotification}>
125
- {pendingPrivateNotification}
136
+ <Text>
137
+ {pendingPrivateNotification}
138
+ </Text>
126
139
  </View>
127
140
  ) : null}
128
141
  <Text style={!groupActive ? style.groupTextActive : style.groupText}>
@@ -205,17 +218,22 @@ const Chat = (props: any) => {
205
218
  {(privateMessageCountMap[user.uid] || 0) -
206
219
  (lastCheckedPrivateState[user.uid] || 0) !==
207
220
  0 ? (
208
- <View style={style.chatNotification}>
209
- {(privateMessageCountMap[user.uid] || 0) -
210
- (lastCheckedPrivateState[user.uid] || 0)}
221
+ <View style={style.chatNotificationPrivate}>
222
+ <Text>{(privateMessageCountMap[user.uid] || 0) -
223
+ (lastCheckedPrivateState[user.uid] || 0)}</Text>
211
224
  </View>
212
225
  ) : null}
213
- <Text style={style.participantText}>
214
- {userList[user.uid]
215
- ? userList[user.uid].name + ' '
216
- : 'User '}
217
- </Text>
218
- <Text style={{color: $config.PRIMARY_FONT_COLOR}}>{`>`}</Text>
226
+ <View style={{flex:1}}>
227
+ <TextWithTooltip touchable={false} style={[style.participantText,{
228
+ fontSize: RFValue(16, height > width ? height : width)
229
+ }]} value={userList[user.uid]
230
+ ? userList[user.uid].name + ' '
231
+ : 'User '}
232
+ />
233
+ </View>
234
+ <View>
235
+ <Text style={{color: $config.PRIMARY_FONT_COLOR, fontSize: 18}}>{`>`}</Text>
236
+ </View>
219
237
  </TouchableOpacity>
220
238
  );
221
239
  }
@@ -357,25 +375,22 @@ const style = StyleSheet.create({
357
375
  },
358
376
  participantContainer: {
359
377
  flexDirection: 'row',
360
- // flex: 1,
378
+ flex: 1,
361
379
  height: 20,
362
380
  marginTop: 10,
363
381
  backgroundColor: $config.SECONDARY_FONT_COLOR,
364
- // height: '15%',
365
- width: '90%',
366
- alignSelf: 'center',
367
- justifyContent: 'center',
368
- alignItems: 'center',
382
+ overflow: 'hidden',
383
+ marginHorizontal: 10,
369
384
  },
370
385
  participantText: {
371
386
  flex: 1,
372
- fontSize: 18,
373
387
  fontWeight: Platform.OS === 'web' ? '500' : '700',
374
388
  flexDirection: 'row',
375
389
  color: $config.PRIMARY_FONT_COLOR,
376
390
  lineHeight: 20,
377
- paddingLeft: 10,
378
- alignSelf: 'center',
391
+ textAlign:'left',
392
+ flexShrink: 1 ,
393
+ marginRight: 30
379
394
  },
380
395
  backButton: {
381
396
  // marginLeft: 5,
@@ -404,6 +419,20 @@ const style = StyleSheet.create({
404
419
  left: 25,
405
420
  top: -5,
406
421
  },
422
+ chatNotificationPrivate:{
423
+ width: 20,
424
+ height: 20,
425
+ display: 'flex',
426
+ alignItems: 'center',
427
+ justifyContent: 'center',
428
+ backgroundColor: $config.PRIMARY_COLOR,
429
+ color: $config.SECONDARY_FONT_COLOR,
430
+ fontFamily: Platform.OS === 'ios' ? 'Helvetica' : 'sans-serif',
431
+ borderRadius: 10,
432
+ position: 'absolute',
433
+ right: 20,
434
+ top: 0,
435
+ }
407
436
  });
408
437
 
409
438
  export default Chat;
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import RtmEngine from 'agora-react-native-rtm';
13
13
  import {createContext} from 'react';
14
+ import {rtmEventsInterface} from './RTMEvents';
14
15
 
15
16
  export interface channelMessage {
16
17
  isLocal: boolean;
@@ -25,6 +26,25 @@ export interface messageStoreInterface {
25
26
  msg: string;
26
27
  }
27
28
 
29
+ export interface messageEventInterface extends messageStoreInterface {
30
+ type: messageActionType;
31
+ source: messageSourceType;
32
+ }
33
+
34
+ export enum messageSourceType {
35
+ Core = 'core',
36
+ }
37
+
38
+ export enum messageChannelType {
39
+ Private = 'private',
40
+ Public = 'public',
41
+ }
42
+
43
+ export enum messageActionType {
44
+ Control = '0',
45
+ Normal = '1',
46
+ }
47
+
28
48
  interface chatContext {
29
49
  messageStore: messageStoreInterface | any;
30
50
  privateMessageStore: any;
@@ -35,6 +55,7 @@ interface chatContext {
35
55
  engine: RtmEngine;
36
56
  localUid: string;
37
57
  userList: any;
58
+ events: rtmEventsInterface;
38
59
  // peersRTM: Array<string>;
39
60
  }
40
61
 
@@ -48,6 +69,6 @@ export enum controlMessageEnum {
48
69
  cloudRecordingUnactive = '7',
49
70
  }
50
71
 
51
- const ChatContext = createContext((null as unknown) as chatContext);
72
+ const ChatContext = createContext(null as unknown as chatContext);
52
73
 
53
74
  export default ChatContext;
@@ -18,13 +18,13 @@ import {
18
18
  StyleSheet,
19
19
  Text,
20
20
  } from 'react-native';
21
- import LocalUserContext from '../../agora-rn-uikit/src/LocalUserContext';
21
+ import {LocalUserContext} from '../../agora-rn-uikit';
22
22
  import {
23
23
  LocalAudioMute,
24
24
  LocalVideoMute,
25
25
  SwitchCamera,
26
26
  Endcall,
27
- } from '../../agora-rn-uikit/Components';
27
+ } from '../../agora-rn-uikit';
28
28
  import Recording from '../subComponents/Recording';
29
29
  import icons from '../assets/icons';
30
30
  import ColorContext from './ColorContext';
@@ -17,12 +17,12 @@ import {
17
17
  StyleSheet,
18
18
  Text,
19
19
  } from 'react-native';
20
- import LocalUserContext from '../../agora-rn-uikit/src/LocalUserContext';
20
+ import {LocalUserContext} from '../../agora-rn-uikit';
21
21
  import {
22
22
  LocalAudioMute,
23
23
  LocalVideoMute,
24
24
  Endcall,
25
- } from '../../agora-rn-uikit/Components';
25
+ } from '../../agora-rn-uikit';
26
26
  import Recording from '../subComponents/Recording';
27
27
  import SwitchCamera from '../subComponents/SwitchCamera';
28
28
  // import icons from '../assets/icons';
@@ -10,7 +10,7 @@
10
10
  *********************************************
11
11
  */
12
12
  import React, {useState, useContext, useEffect} from 'react';
13
- import RtcContext from '../../agora-rn-uikit/src/RtcContext';
13
+ import {RtcContext} from '../../agora-rn-uikit';
14
14
  import DeviceContext from './DeviceContext';
15
15
 
16
16
  const DeviceConfigure: React.FC = (props: any) => {
@@ -18,17 +18,23 @@ import {
18
18
  Dimensions,
19
19
  Image,
20
20
  Pressable,
21
+ useWindowDimensions,
21
22
  } from 'react-native';
22
- import MinUidContext from '../../agora-rn-uikit/src/MinUidContext';
23
- import MaxUidContext from '../../agora-rn-uikit/src/MaxUidContext';
24
- import {MaxVideoView} from '../../agora-rn-uikit/Components';
23
+ import {MinUidContext} from '../../agora-rn-uikit';
24
+ import {MaxUidContext} from '../../agora-rn-uikit';
25
+ import {MaxVideoView} from '../../agora-rn-uikit';
26
+ import {RtcContext} from '../../agora-rn-uikit';
25
27
  import chatContext from './ChatContext';
26
28
  import icons from '../assets/icons';
27
- import styles from './styles';
28
29
  import ColorContext from './ColorContext';
29
30
  import FallbackLogo from '../subComponents/FallbackLogo';
30
31
  import Layout from '../subComponents/LayoutEnum';
31
- import RtcContext, {DispatchType} from '../../agora-rn-uikit/src/RtcContext';
32
+ import ScreenShareNotice from '../subComponents/ScreenShareNotice';
33
+ import {RFValue} from 'react-native-responsive-fontsize';
34
+ import networkQualityContext from './NetworkQualityContext';
35
+ import {NetworkQualityPill} from '../subComponents/NetworkQualityPill';
36
+ import {ImageIcon} from '../../agora-rn-uikit';
37
+ import TextWithTooltip from '../subComponents/TextWithTooltip';
32
38
 
33
39
  const layout = (len: number, isDesktop: boolean = true) => {
34
40
  const rows = Math.round(Math.sqrt(len));
@@ -55,10 +61,12 @@ interface GridVideoProps {
55
61
  }
56
62
 
57
63
  const GridVideo = (props: GridVideoProps) => {
64
+ const {height, width} = useWindowDimensions();
58
65
  const {dispatch} = useContext(RtcContext);
59
66
  const max = useContext(MaxUidContext);
60
67
  const min = useContext(MinUidContext);
61
68
  const {primaryColor} = useContext(ColorContext);
69
+ const networkQualityStat = useContext(networkQualityContext);
62
70
  const {userList, localUid} = useContext(chatContext);
63
71
  const users = [...max, ...min];
64
72
  let onLayout = (e: any) => {
@@ -70,6 +78,7 @@ const GridVideo = (props: GridVideoProps) => {
70
78
  Dimensions.get('window').width > Dimensions.get('window').height,
71
79
  ]);
72
80
  const isDesktop = dim[0] > dim[1] + 100;
81
+
73
82
  let {matrix, dims} = useMemo(
74
83
  () => layout(users.length, isDesktop),
75
84
  [users.length, isDesktop],
@@ -97,11 +106,28 @@ const GridVideo = (props: GridVideoProps) => {
97
106
  }}
98
107
  key={cidx}>
99
108
  <View style={style.gridVideoContainerInner}>
109
+ <NetworkQualityPill
110
+ networkStat={
111
+ // When no network quality reported and if user has no stream
112
+ // published show "unsupported" else show "loading"
113
+ networkQualityStat[users[ridx * dims.c + cidx].uid]
114
+ ? networkQualityStat[users[ridx * dims.c + cidx].uid]
115
+ : users[ridx * dims.c + cidx].audio ||
116
+ users[ridx * dims.c + cidx].video
117
+ ? 8
118
+ : 7
119
+ }
120
+ primaryColor={primaryColor}
121
+ rootStyle={{top: 5, left: 5}}
122
+ />
123
+ <ScreenShareNotice uid={users[ridx * dims.c + cidx].uid} />
100
124
  <MaxVideoView
101
125
  fallback={() => {
102
126
  if (users[ridx * dims.c + cidx].uid === 'local') {
103
127
  return FallbackLogo(userList[localUid]?.name);
104
- } else if (String(users[ridx * dims.c + cidx].uid)[0] === '1') {
128
+ } else if (
129
+ String(users[ridx * dims.c + cidx].uid)[0] === '1'
130
+ ) {
105
131
  return FallbackLogo('PSTN User');
106
132
  } else {
107
133
  return FallbackLogo(
@@ -114,6 +140,7 @@ const GridVideo = (props: GridVideoProps) => {
114
140
  />
115
141
  <View
116
142
  style={{
143
+ zIndex: 5,
117
144
  marginTop: -30,
118
145
  backgroundColor: $config.SECONDARY_FONT_COLOR + 'bb',
119
146
  alignSelf: 'flex-end',
@@ -130,7 +157,16 @@ const GridVideo = (props: GridVideoProps) => {
130
157
  }}>
131
158
  {/* <View style={{alignSelf: 'flex-end', flexDirection: 'row'}}> */}
132
159
  <View style={[style.MicBackdrop]}>
133
- <Image
160
+ <ImageIcon
161
+ name={
162
+ users[ridx * dims.c + cidx].audio ? 'mic' : 'micOff'
163
+ }
164
+ color={
165
+ users[ridx * dims.c + cidx].audio ? primaryColor : 'red'
166
+ }
167
+ style={style.MicIcon}
168
+ />
169
+ {/* <Image
134
170
  source={{
135
171
  uri: users[ridx * dims.c + cidx].audio
136
172
  ? icons.mic
@@ -145,33 +181,35 @@ const GridVideo = (props: GridVideoProps) => {
145
181
  },
146
182
  ]}
147
183
  resizeMode={'contain'}
148
- />
184
+ /> */}
149
185
  </View>
150
- <Text
151
- textBreakStrategy={'simple'}
152
- style={{
153
- color: $config.PRIMARY_FONT_COLOR,
154
- lineHeight: 30,
155
- fontSize: 18,
156
- fontWeight: '600',
157
- // width: '100%',
158
- // alignSelf: 'stretch',
159
- // textAlign: 'center',
160
- }}>
161
- {users[ridx * dims.c + cidx].uid === 'local'
186
+ <View style={{flex:1}}>
187
+ <TextWithTooltip
188
+ value={users[ridx * dims.c + cidx].uid === 'local'
162
189
  ? userList[localUid]
163
- ? userList[localUid].name.slice(0, 20) + ' '
190
+ ? userList[localUid].name + ' '
164
191
  : 'You '
165
192
  : userList[users[ridx * dims.c + cidx].uid]
166
- ? userList[users[ridx * dims.c + cidx].uid].name.slice(
167
- 0,
168
- 20,
169
- ) + ' '
170
- : users[ridx * dims.c + cidx].uid === 1
171
- ? (userList[localUid]?.name + "'s screen ").slice(0, 20)
172
- : String(users[ridx * dims.c + cidx].uid)[0] === '1' ?
173
- 'PSTN User ' : 'User '}
174
- </Text>
193
+ ? userList[users[ridx * dims.c + cidx].uid].name + ' '
194
+ : users[ridx * dims.c + cidx].uid === 1
195
+ ? (userList[localUid]?.name + "'s screen ")
196
+ : String(users[ridx * dims.c + cidx].uid)[0] === '1'
197
+ ? 'PSTN User '
198
+ : 'User '}
199
+ style={
200
+ {
201
+ color: $config.PRIMARY_FONT_COLOR,
202
+ lineHeight: 30,
203
+ fontSize: RFValue(14, height > width ? height : width),
204
+ fontWeight: '700',
205
+ flexShrink: 1,
206
+ // width: '100%',
207
+ // alignSelf: 'stretch',
208
+ // textAlign: 'center',
209
+ }
210
+ }
211
+ />
212
+ </View>
175
213
  {/* </View> */}
176
214
  {/* {console.log(
177
215
  '!nax',
@@ -209,7 +247,7 @@ const style = StyleSheet.create({
209
247
  flex: 1,
210
248
  overflow: 'hidden',
211
249
  // margin: 1,
212
- paddingHorizontal: 10,
250
+ marginHorizontal: 10,
213
251
  },
214
252
  MicBackdrop: {
215
253
  width: 20,