agora-appbuilder-core 4.0.0-beta.57 → 4.0.0-beta.58

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 (59) hide show
  1. package/package.json +1 -1
  2. package/template/src/components/HostControlView.tsx +9 -4
  3. package/template/src/components/ParticipantsView.tsx +14 -6
  4. package/template/src/components/RTMConfigure.tsx +1 -8
  5. package/template/src/components/SettingsView.tsx +6 -2
  6. package/template/src/components/chat-messages/useChatMessages.tsx +26 -17
  7. package/template/src/components/livestream/LiveStreamContext.tsx +10 -3
  8. package/template/src/components/livestream/Types.ts +24 -11
  9. package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +31 -11
  10. package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +10 -13
  11. package/template/src/components/participants/AllAudienceParticipants.tsx +4 -5
  12. package/template/src/components/participants/AllHostParticipants.tsx +5 -6
  13. package/template/src/components/participants/Participant.tsx +9 -2
  14. package/template/src/components/participants/UserActionMenuOptions.tsx +38 -24
  15. package/template/src/components/participants/WaitingRoomParticipants.tsx +10 -3
  16. package/template/src/components/popups/InvitePopup.tsx +8 -3
  17. package/template/src/components/popups/StartScreenSharePopup.native.tsx +22 -25
  18. package/template/src/components/popups/StopRecordingPopup.tsx +10 -4
  19. package/template/src/components/popups/StopScreenSharePopup.native.tsx +14 -4
  20. package/template/src/components/popups/WhiteboardClearAllPopup.tsx +12 -4
  21. package/template/src/components/useUserPreference.tsx +9 -9
  22. package/template/src/components/virtual-background/VBButton.tsx +3 -1
  23. package/template/src/components/virtual-background/VBCard.native.tsx +26 -6
  24. package/template/src/components/virtual-background/VBCard.tsx +26 -6
  25. package/template/src/components/virtual-background/VBPanel.tsx +8 -4
  26. package/template/src/components/virtual-background/VideoPreview.native.tsx +2 -1
  27. package/template/src/components/virtual-background/VideoPreview.tsx +2 -1
  28. package/template/src/components/whiteboard/StrokeWidthTool.tsx +4 -2
  29. package/template/src/components/whiteboard/WhiteboardToolBox.tsx +60 -22
  30. package/template/src/components/whiteboard/WhiteboardView.tsx +2 -1
  31. package/template/src/components/whiteboard/WhiteboardWidget.tsx +50 -15
  32. package/template/src/language/default-labels/commonLabels.ts +3 -2
  33. package/template/src/language/default-labels/precallScreenLabels.ts +3 -0
  34. package/template/src/language/default-labels/videoCallScreenLabels.ts +675 -287
  35. package/template/src/pages/video-call/DefaultLayouts.ts +6 -2
  36. package/template/src/pages/video-call/NameWithMicIcon.tsx +3 -3
  37. package/template/src/pages/video-call/SidePanelHeader.tsx +15 -7
  38. package/template/src/subComponents/ChatBubble.tsx +2 -3
  39. package/template/src/subComponents/ChatContainer.tsx +4 -8
  40. package/template/src/subComponents/ChatInput.ios.tsx +8 -2
  41. package/template/src/subComponents/ChatInput.tsx +8 -2
  42. package/template/src/subComponents/EndcallPopup.tsx +15 -14
  43. package/template/src/subComponents/LanguageSelector.tsx +2 -1
  44. package/template/src/subComponents/LayoutIconDropdown.tsx +8 -4
  45. package/template/src/subComponents/NetworkQualityPill.tsx +5 -2
  46. package/template/src/subComponents/RemoteAudioMute.tsx +3 -3
  47. package/template/src/subComponents/RemoteMutePopup.tsx +23 -9
  48. package/template/src/subComponents/RemoteVideoMute.tsx +3 -3
  49. package/template/src/subComponents/RemoveMeetingPopup.tsx +10 -6
  50. package/template/src/subComponents/RemoveScreensharePopup.tsx +10 -4
  51. package/template/src/subComponents/caption/Caption.tsx +2 -1
  52. package/template/src/subComponents/caption/CaptionContainer.tsx +7 -3
  53. package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +2 -1
  54. package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +16 -7
  55. package/template/src/subComponents/caption/Transcript.tsx +2 -1
  56. package/template/src/subComponents/chat/ChatParticipants.tsx +6 -4
  57. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +0 -9
  58. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +0 -5
  59. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +1 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agora-appbuilder-core",
3
- "version": "4.0.0-beta.57",
3
+ "version": "4.0.0-beta.58",
4
4
  "description": "React Native template for RTE app builder",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -17,6 +17,11 @@ import TertiaryButton from '../atoms/TertiaryButton';
17
17
  import Spacer from '../atoms/Spacer';
18
18
  import RemoteMutePopup from '../subComponents/RemoteMutePopup';
19
19
  import {calculatePosition} from '../utils/common';
20
+ import {
21
+ I18nMuteType,
22
+ peoplePanelMuteAllMicBtnText,
23
+ peoplePanelTurnoffAllCameraBtnText,
24
+ } from '../language/default-labels/videoCallScreenLabels';
20
25
 
21
26
  export interface MuteAllAudioButtonProps {
22
27
  render?: (onPress: () => void) => JSX.Element;
@@ -27,7 +32,7 @@ export const MuteAllAudioButton = (props: MuteAllAudioButtonProps) => {
27
32
  const audioBtnRef = useRef(null);
28
33
  const [modalPosition, setModalPosition] = useState({});
29
34
  const muteRemoteAudio = useRemoteMute();
30
- const muteAllAudioButton = useString('muteAllMicrophone')();
35
+ const muteAllAudioButton = useString(peoplePanelMuteAllMicBtnText)();
31
36
  const onPressAction = () => muteRemoteAudio(MUTE_REMOTE_TYPE.audio);
32
37
  const {width: globalWidth, height: globalHeight} = useWindowDimensions();
33
38
  const showAudioModal = () => {
@@ -60,7 +65,7 @@ export const MuteAllAudioButton = (props: MuteAllAudioButtonProps) => {
60
65
  ) : (
61
66
  <>
62
67
  <RemoteMutePopup
63
- type="audio"
68
+ type={I18nMuteType.audio}
64
69
  actionMenuVisible={showAudioMuteModal}
65
70
  setActionMenuVisible={setShowAudioMuteModal}
66
71
  name={null}
@@ -88,7 +93,7 @@ export const MuteAllVideoButton = (props: MuteAllVideoButtonProps) => {
88
93
  const [modalPosition, setModalPosition] = useState({});
89
94
  const muteRemoteVideo = useRemoteMute();
90
95
  const {width: globalWidth, height: globalHeight} = useWindowDimensions();
91
- const muteAllVideoButton = useString('turnoffAllCameras')();
96
+ const muteAllVideoButton = useString(peoplePanelTurnoffAllCameraBtnText)();
92
97
  const onPressAction = () => muteRemoteVideo(MUTE_REMOTE_TYPE.video);
93
98
  const showVideoModal = () => {
94
99
  videoBtnRef?.current?.measure(
@@ -120,7 +125,7 @@ export const MuteAllVideoButton = (props: MuteAllVideoButtonProps) => {
120
125
  ) : (
121
126
  <>
122
127
  <RemoteMutePopup
123
- type="video"
128
+ type={I18nMuteType.video}
124
129
  actionMenuVisible={showVideoMuteModal}
125
130
  setActionMenuVisible={setShowVideoMuteModal}
126
131
  name={null}
@@ -41,6 +41,14 @@ import {getGridLayoutName} from '../pages/video-call/DefaultLayouts';
41
41
  import {PeopleHeader} from '../pages/video-call/SidePanelHeader';
42
42
  import useCaptionWidth from '../../src/subComponents/caption/useCaptionWidth';
43
43
  import WaitingRoomParticipants from './participants/WaitingRoomParticipants';
44
+ import {
45
+ peoplePanelAudienceSectionHeaderText,
46
+ peoplePanelHostSectionHeaderText,
47
+ peoplePanelInThisMeetingLabel,
48
+ peoplePanelNoAudienceJoinedContent,
49
+ peoplePanelNoHostJoinedContent,
50
+ peoplePanelNoUsersJoinedContent,
51
+ } from '../../src/language/default-labels/videoCallScreenLabels';
44
52
 
45
53
  const ParticipantView = props => {
46
54
  const {activeUids, customContent, defaultContent} = useContent();
@@ -53,12 +61,12 @@ const ParticipantView = props => {
53
61
  const {sidePanel, setSidePanel} = useSidePanel();
54
62
  const {rtcProps} = useContext(PropsContext);
55
63
  const {showHeader = true} = props;
56
- const hostLabel = useString('host')();
57
- const audienceLabel = useString('audience')();
58
- const meetingParticpantsLabel = useString('inThisMeeting')();
59
- const noHostJoinedYet = useString('noHostJoinedYet')();
60
- const noAudienceJoinedYet = useString('noAudienceJoinedYet')();
61
- const noUsersJoinedYet = useString('noUsersJoinedYet')();
64
+ const hostLabel = useString(peoplePanelHostSectionHeaderText)();
65
+ const audienceLabel = useString(peoplePanelAudienceSectionHeaderText)();
66
+ const meetingParticpantsLabel = useString(peoplePanelInThisMeetingLabel)();
67
+ const noHostJoinedYet = useString(peoplePanelNoHostJoinedContent)();
68
+ const noAudienceJoinedYet = useString(peoplePanelNoAudienceJoinedContent)();
69
+ const noUsersJoinedYet = useString(peoplePanelNoUsersJoinedContent)();
62
70
  const {
63
71
  data: {isHost},
64
72
  } = useRoomInfo();
@@ -42,6 +42,7 @@ import {useRoomInfo} from '../components/room-info/useRoomInfo';
42
42
  import LocalEventEmitter, {
43
43
  LocalEventsEnum,
44
44
  } from '../rtm-events-api/LocalEvents';
45
+ import {PSTNUserLabel} from '../language/default-labels/videoCallScreenLabels';
45
46
  export enum UserType {
46
47
  ScreenShare = 'screenshare',
47
48
  }
@@ -75,14 +76,6 @@ const RtmConfigure = (props: any) => {
75
76
  const [hasUserJoinedRTM, setHasUserJoinedRTM] = useState<boolean>(false);
76
77
  const [onlineUsersCount, setTotalOnlineUsers] = useState<number>(0);
77
78
 
78
- //commented for v1 release
79
- // const userText = useString('remoteUserDefaultLabel')();
80
- const userText = 'User';
81
- const pstnUserLabel = useString('pstnUserLabel')();
82
- //commented for v1 release
83
- //const getScreenShareName = useString('screenshareUserName');
84
- const getScreenShareName = (name: string) => `${name}'s screenshare`;
85
-
86
79
  let engine = useRef<RtmEngine>(null!);
87
80
  const timerValueRef: any = useRef(5);
88
81
 
@@ -49,11 +49,15 @@ import {whiteboardContext} from './whiteboard/WhiteboardConfigure';
49
49
  import InlineNotification from '../../src/atoms/InlineNotification';
50
50
  import {useRoomInfo} from './room-info/useRoomInfo';
51
51
  import {useString} from '../../src/utils/useString';
52
+ import {
53
+ settingPanelNameCantbeChangedInfo,
54
+ settingPanelNameInputLabel,
55
+ } from '../../src/language/default-labels/videoCallScreenLabels';
52
56
 
53
57
  interface EditNameProps {}
54
58
  const EditName: React.FC = (props?: EditNameProps) => {
55
- const yournameLabel = useString('yourName')();
56
- const nameCantbeChangedInfo = useString('nameCantbeChangedInfo')();
59
+ const yournameLabel = useString(settingPanelNameInputLabel)();
60
+ const nameCantbeChangedInfo = useString(settingPanelNameCantbeChangedInfo)();
57
61
  const {
58
62
  data: {isHost},
59
63
  } = useRoomInfo();
@@ -29,6 +29,15 @@ import {useSidePanel} from '../../utils/useSidePanel';
29
29
  import getUniqueID from '../../utils/getUniqueID';
30
30
  import {trimText} from '../../utils/common';
31
31
  import {useString} from '../../utils/useString';
32
+ import {
33
+ publicChatToastHeading,
34
+ multiplePublicChatToastHeading,
35
+ multiplePrivateChatToastHeading,
36
+ privateChatToastHeading,
37
+ multiplePublicAndPrivateChatToastHeading,
38
+ multiplePublicAndPrivateChatToastSubHeading,
39
+ multiplePublicChatToastSubHeading,
40
+ } from '../../language/default-labels/videoCallScreenLabels';
32
41
 
33
42
  enum ChatMessageActionEnum {
34
43
  Create = 'Create_Chat_Message',
@@ -99,34 +108,34 @@ const ChatMessagesProvider = (props: ChatMessagesProviderProps) => {
99
108
  const individualActiveRef = useRef<string | number>();
100
109
 
101
110
  //public single
102
- const fromText = useString('publicChatToastHeading');
111
+ const fromText = useString(publicChatToastHeading);
103
112
 
104
113
  //public multple
105
- const multiplePublicChatToastHeading = useString(
106
- 'multiplePublicChatToastHeading',
114
+ const multiplePublicChatToastHeadingTT = useString(
115
+ multiplePublicChatToastHeading,
107
116
  )();
108
- const multiplePublicChatToastSubHeading = useString<{
117
+ const multiplePublicChatToastSubHeadingTT = useString<{
109
118
  count: number;
110
119
  from: string;
111
- }>('multiplePublicChatToastSubHeading');
120
+ }>(multiplePublicChatToastSubHeading);
112
121
 
113
122
  //private single
114
- const privateMessageLabel = useString('privateChatToastHeading')();
123
+ const privateMessageLabel = useString(privateChatToastHeading)();
115
124
 
116
125
  //private multiple
117
- const multiplePrivateChatToastHeading = useString<{count: number}>(
118
- 'multiplePrivateChatToastHeading',
126
+ const multiplePrivateChatToastHeadingTT = useString<{count: number}>(
127
+ multiplePrivateChatToastHeading,
119
128
  );
120
129
 
121
130
  //multiple private and public toast
122
- const multiplePublicAndPrivateChatToastHeading = useString(
123
- 'multiplePublicAndPrivateChatToastHeading',
131
+ const multiplePublicAndPrivateChatToastHeadingTT = useString(
132
+ multiplePublicAndPrivateChatToastHeading,
124
133
  )();
125
- const multiplePublicAndPrivateChatToastSubHeading = useString<{
134
+ const multiplePublicAndPrivateChatToastSubHeadingTT = useString<{
126
135
  publicChatCount: number;
127
136
  privateChatCount: number;
128
137
  from: string;
129
- }>('multiplePublicAndPrivateChatToastSubHeading');
138
+ }>(multiplePublicAndPrivateChatToastSubHeading);
130
139
 
131
140
  useEffect(() => {
132
141
  callActiveRef.current.callActive = callActive;
@@ -252,16 +261,16 @@ const ChatMessagesProvider = (props: ChatMessagesProviderProps) => {
252
261
  leadingIconName: 'chat-nav',
253
262
  text1:
254
263
  privateMessages && privateMessages.length
255
- ? multiplePublicAndPrivateChatToastHeading
256
- : multiplePublicChatToastHeading,
264
+ ? multiplePublicAndPrivateChatToastHeadingTT
265
+ : multiplePublicChatToastHeadingTT,
257
266
  text2:
258
267
  privateMessages && privateMessages.length
259
- ? multiplePublicAndPrivateChatToastSubHeading({
268
+ ? multiplePublicAndPrivateChatToastSubHeadingTT({
260
269
  publicChatCount: publicMessages.length,
261
270
  privateChatCount: privateMessages.length,
262
271
  from: fromNames,
263
272
  })
264
- : multiplePublicChatToastSubHeading({
273
+ : multiplePublicChatToastSubHeadingTT({
265
274
  count: publicMessages.length,
266
275
  from: fromNames,
267
276
  }),
@@ -288,7 +297,7 @@ const ChatMessagesProvider = (props: ChatMessagesProviderProps) => {
288
297
  secondaryBtn: null,
289
298
  type: 'info',
290
299
  leadingIconName: 'chat-nav',
291
- text1: multiplePrivateChatToastHeading({
300
+ text1: multiplePrivateChatToastHeadingTT({
292
301
  count: privateMessages.length,
293
302
  }),
294
303
  text2: ``,
@@ -22,6 +22,11 @@ import TertiaryButton from '../../atoms/TertiaryButton';
22
22
  import PrimaryButton from '../../atoms/PrimaryButton';
23
23
  import {trimText} from '../../utils/common';
24
24
  import {useString} from '../../utils/useString';
25
+ import {
26
+ livestreamRequestAlreadyProcessed,
27
+ livestreamToastApprovalBtnText,
28
+ livestreamToastDenyBtnText,
29
+ } from '../../language/default-labels/videoCallScreenLabels';
25
30
 
26
31
  const LiveStreamContext = createContext(null as unknown as liveStreamContext);
27
32
 
@@ -30,7 +35,9 @@ export const LiveStreamContextConsumer = LiveStreamContext.Consumer;
30
35
  export const LiveStreamContextProvider: React.FC<
31
36
  liveStreamPropsInterface
32
37
  > = props => {
33
- const requestAlreadyProcessed = useString('requestAlreadyProcessed')();
38
+ const requestAlreadyProcessed = useString(
39
+ livestreamRequestAlreadyProcessed,
40
+ )();
34
41
 
35
42
  const raiseHandRequestReceivedToastHeading = useString(
36
43
  LSNotificationObject.RAISE_HAND_RECEIVED.text1TranslationKey,
@@ -157,8 +164,8 @@ export const LiveStreamContextProvider: React.FC<
157
164
 
158
165
  const [isPendingRequestToReview, setPendingRequestToReview] = useState(false);
159
166
 
160
- const allowToBePresenter = useString('allowToBePresenter')();
161
- const deny = useString('deny')();
167
+ const allowToBePresenter = useString(livestreamToastApprovalBtnText)();
168
+ const deny = useString(livestreamToastDenyBtnText)();
162
169
  const showToast = (
163
170
  text: string,
164
171
  text2: string,
@@ -21,6 +21,19 @@ export interface raiseHandItemInterface {
21
21
  }
22
22
 
23
23
  import {UidType} from '../../../agora-rn-uikit';
24
+ import {
25
+ livestreamPromoteAsCoHostToastHeading,
26
+ livestreamRaiseHandApprovedRequestRecallToastHeading,
27
+ livestreamRaiseHandRequestAcceptedToastHeading,
28
+ livestreamRaiseHandRequestAcceptedToastSubHeading,
29
+ livestreamRaiseHandRequestRecallLocalToastHeading,
30
+ livestreamRaiseHandRequestRecallToastHeading,
31
+ livestreamRaiseHandRequestReceivedToastHeading,
32
+ livestreamRaiseHandRequestReceivedToastSubHeading,
33
+ livestreamRaiseHandRequestRejectedToastHeading,
34
+ livestreamRaiseHandRequestToastHeading,
35
+ livestreamRaiseHandRequestToastSubHeading,
36
+ } from '../../language/default-labels/videoCallScreenLabels';
24
37
 
25
38
  export enum requestStatus {
26
39
  AwaitingAction = 'AWAITING_ACTION',
@@ -59,31 +72,31 @@ interface LSNotificationObjectInterface {
59
72
  }
60
73
  export const LSNotificationObject: LSNotificationObjectInterface = {
61
74
  [LiveStreamControlMessageEnum.raiseHandRequest]: {
62
- text1TranslationKey: 'raiseHandRequestToastHeading',
63
- text2TranslationKey: 'raiseHandRequestToastSubHeading',
75
+ text1TranslationKey: livestreamRaiseHandRequestToastHeading,
76
+ text2TranslationKey: livestreamRaiseHandRequestToastSubHeading,
64
77
  },
65
78
  [LiveStreamControlMessageEnum.raiseHandRequestReceived]: {
66
- text1TranslationKey: 'raiseHandRequestReceivedToastHeading',
67
- text2TranslationKey: 'raiseHandRequestReceivedToastSubHeading',
79
+ text1TranslationKey: livestreamRaiseHandRequestReceivedToastHeading,
80
+ text2TranslationKey: livestreamRaiseHandRequestReceivedToastSubHeading,
68
81
  },
69
82
  [LiveStreamControlMessageEnum.raiseHandRequestAccepted]: {
70
- text1TranslationKey: 'raiseHandRequestAcceptedToastHeading',
71
- text2TranslationKey: 'raiseHandRequestAcceptedToastSubHeading',
83
+ text1TranslationKey: livestreamRaiseHandRequestAcceptedToastHeading,
84
+ text2TranslationKey: livestreamRaiseHandRequestAcceptedToastSubHeading,
72
85
  },
73
86
  [LiveStreamControlMessageEnum.raiseHandRequestRejected]: {
74
- text1TranslationKey: 'raiseHandRequestRejectedToastHeading',
87
+ text1TranslationKey: livestreamRaiseHandRequestRejectedToastHeading,
75
88
  },
76
89
  [LiveStreamControlMessageEnum.raiseHandRequestRecall]: {
77
- text1TranslationKey: 'raiseHandRequestRecallToastHeading',
90
+ text1TranslationKey: livestreamRaiseHandRequestRecallToastHeading,
78
91
  },
79
92
  [LiveStreamControlMessageEnum.raiseHandRequestRecallLocal]: {
80
- text1TranslationKey: 'raiseHandRequestRecallLocalToastHeading',
93
+ text1TranslationKey: livestreamRaiseHandRequestRecallLocalToastHeading,
81
94
  },
82
95
  [LiveStreamControlMessageEnum.raiseHandApprovedRequestRecall]: {
83
- text1TranslationKey: 'raiseHandApprovedRequestRecallToastHeading',
96
+ text1TranslationKey: livestreamRaiseHandApprovedRequestRecallToastHeading,
84
97
  },
85
98
  [LiveStreamControlMessageEnum.promoteAsCoHost]: {
86
- text1TranslationKey: 'promoteAsCoHostToastHeading',
99
+ text1TranslationKey: livestreamPromoteAsCoHostToastHeading,
87
100
  },
88
101
  };
89
102
 
@@ -13,6 +13,19 @@ import TertiaryButton from '../../../atoms/TertiaryButton';
13
13
  import ThemeConfig from '../../../theme';
14
14
  import {useString} from '../../../utils/useString';
15
15
  import {TextDataInterface} from '../../../language/default-labels';
16
+ import {
17
+ livestreamingAttendeeChatWithOthersInfoHeading,
18
+ livestreamingAttendeeChatWithOthersInfoSubHeading,
19
+ livestreamingAttendeeInviteOthersText,
20
+ livestreamingAttendeeJoinWithActivitiesInfoHeading,
21
+ livestreamingAttendeeJoinWithActivitiesInfoSubHeading,
22
+ livestreamingAttendeePresentYourScreenInfoHeading,
23
+ livestreamingAttendeePresentYourScreenInfoSubHeading,
24
+ livestreamingAttendeeRaiseHandInfoHeading,
25
+ livestreamingAttendeeRaiseHandInfoSubHeading,
26
+ livestreamingAttendeeWaitingForHostToJoinText,
27
+ livestreamingAttendeeWhatYouCanDoText,
28
+ } from '../../../language/default-labels/videoCallScreenLabels';
16
29
 
17
30
  interface Feature {
18
31
  id: number;
@@ -26,29 +39,32 @@ const features: Feature[] = [
26
39
  id: 1,
27
40
  icon: 'raise-hand',
28
41
  tint: $config.SEMANTIC_WARNING,
29
- titleTranslationKey: 'raiseYourHand',
30
- descriptionTranslationKey: 'raiseYourHandInfo',
42
+ titleTranslationKey: livestreamingAttendeeRaiseHandInfoHeading,
43
+ descriptionTranslationKey: livestreamingAttendeeRaiseHandInfoSubHeading,
31
44
  },
32
45
  {
33
46
  id: 2,
34
47
  icon: 'chat-filled',
35
- titleTranslationKey: 'chatWithOthers',
48
+ titleTranslationKey: livestreamingAttendeeChatWithOthersInfoHeading,
36
49
  tint: $config.SEMANTIC_SUCCESS,
37
- descriptionTranslationKey: 'chatWithOthersInfo',
50
+ descriptionTranslationKey:
51
+ livestreamingAttendeeChatWithOthersInfoSubHeading,
38
52
  },
39
53
  {
40
54
  id: 3,
41
55
  icon: 'screen-share',
42
- titleTranslationKey: 'presentYourScreen',
56
+ titleTranslationKey: livestreamingAttendeePresentYourScreenInfoHeading,
43
57
  tint: $config.PRIMARY_ACTION_BRAND_COLOR,
44
- descriptionTranslationKey: 'presentYourScreenInfo',
58
+ descriptionTranslationKey:
59
+ livestreamingAttendeePresentYourScreenInfoSubHeading,
45
60
  },
46
61
  {
47
62
  id: 4,
48
63
  icon: 'celebration',
49
- titleTranslationKey: 'joinWithActivites',
64
+ titleTranslationKey: livestreamingAttendeeJoinWithActivitiesInfoHeading,
50
65
  tint: $config.SEMANTIC_ERROR,
51
- descriptionTranslationKey: 'joinWithActivitesInfo',
66
+ descriptionTranslationKey:
67
+ livestreamingAttendeeJoinWithActivitiesInfoSubHeading,
52
68
  },
53
69
  ];
54
70
  function FeatureTile({feature}: {feature: Feature}) {
@@ -89,9 +105,13 @@ function FeatureTile({feature}: {feature: Feature}) {
89
105
  export default function LiveStreamAttendeeLandingTile() {
90
106
  const isMobile = isMobileUA();
91
107
  const {copyShareLinkToClipboard, getShareLink} = useShareLink();
92
- const inviteOtherAttendee = useString('inviteOtherAttendee')();
93
- const whatYouCanDoHere = useString('whatYouCanDoHere')();
94
- const waitingForHostToJoin = useString('waitingForHostToJoin')();
108
+ const inviteOtherAttendee = useString(
109
+ livestreamingAttendeeInviteOthersText,
110
+ )();
111
+ const whatYouCanDoHere = useString(livestreamingAttendeeWhatYouCanDoText)();
112
+ const waitingForHostToJoin = useString(
113
+ livestreamingAttendeeWaitingForHostToJoinText,
114
+ )();
95
115
  return (
96
116
  <View style={style.tileBackdrop}>
97
117
  <ScrollView contentContainerStyle={{flexGrow: 1}}>
@@ -13,23 +13,22 @@ import {isMobileUA, isValidReactComponent} from '../../utils/common';
13
13
  import Avatar from '../../atoms/Avatar';
14
14
  import {useCustomization} from 'customization-implementation';
15
15
  import {useString} from '../../utils/useString';
16
+ import {
17
+ inviteTileCopyInviteBtnText,
18
+ inviteTileNoElseJoinedYetText,
19
+ inviteTileWelcomeText,
20
+ } from '../../language/default-labels/videoCallScreenLabels';
16
21
 
17
22
  const waveHandEmoji = '👋';
18
23
 
19
24
  export default function MeetingInfoGridTile() {
20
25
  const isMobile = isMobileUA();
21
- const welcomeLabel = useString('welcome')();
22
- const inviteOthersButtonLabel = useString('inviteOthersButton')();
23
- const copyInviteButtonLabel = useString('copyInvitationButton')();
24
- const copyInviteButton = isMobile
25
- ? inviteOthersButtonLabel
26
- : copyInviteButtonLabel;
26
+ const welcomeLabel = useString(inviteTileWelcomeText)();
27
+ const copyInviteButtonLabel = useString(inviteTileCopyInviteBtnText)();
28
+ const copyInviteButton = copyInviteButtonLabel;
27
29
  const {copyShareLinkToClipboard} = useShareLink();
28
30
  const username = useGetName();
29
- const noOneElseJoinedYet = useString('noOneElseJoinedYet')();
30
- const noOneElseJoinedYetInviteOthers = useString(
31
- 'noOneElseJoinedYetInviteOthers',
32
- )();
31
+ const noOneElseJoinedYet = useString(inviteTileNoElseJoinedYetText)();
33
32
  const {InvitePopupContent, InvitePopupTitle} = useCustomization(data => {
34
33
  let components: {
35
34
  InvitePopupContent?: React.ComponentType;
@@ -101,9 +100,7 @@ export default function MeetingInfoGridTile() {
101
100
  {isMobile && <Spacer size={10} />}
102
101
  <View style={{flexDirection: 'row'}}>
103
102
  <Text style={[style.subheading, {flexShrink: 1}]}>
104
- {isMobile
105
- ? noOneElseJoinedYetInviteOthers
106
- : noOneElseJoinedYet}
103
+ {noOneElseJoinedYet}
107
104
  </Text>
108
105
  </View>
109
106
  </>
@@ -13,6 +13,7 @@ import {useLiveStreamDataContext} from '../contexts/LiveStreamDataContext';
13
13
  import {useScreenContext} from '../contexts/ScreenShareContext';
14
14
  import ScreenshareParticipants from './ScreenshareParticipants';
15
15
  import hexadecimalTransparency from '../../utils/hexadecimalTransparency';
16
+ import {videoRoomUserFallbackText} from '../../language/default-labels/videoCallScreenLabels';
16
17
 
17
18
  const AllAudienceParticipants = (props: any) => {
18
19
  const {screenShareData} = useScreenContext();
@@ -25,9 +26,7 @@ const AllAudienceParticipants = (props: any) => {
25
26
  } = props;
26
27
  const {defaultContent} = useContent();
27
28
  const {localUid} = useContext(chatContext);
28
- //commented for v1 release
29
- //const participantListPlaceholder = useString('participantListPlaceholder')();
30
- const remoteUserDefaultLabel = 'User';
29
+ const remoteUserDefaultLabel = useString(videoRoomUserFallbackText)();
31
30
  const getParticipantName = (uid: UidType) => {
32
31
  return defaultContent[uid]?.name || remoteUserDefaultLabel;
33
32
  };
@@ -70,7 +69,7 @@ const AllAudienceParticipants = (props: any) => {
70
69
  ) : (
71
70
  <>
72
71
  {/**Audience should see his name first */}
73
- {uids.filter((i) => i === localUid).length ? (
72
+ {uids.filter(i => i === localUid).length ? (
74
73
  <>
75
74
  <Participant
76
75
  isLocal={true}
@@ -102,7 +101,7 @@ const AllAudienceParticipants = (props: any) => {
102
101
  )}
103
102
  {/* Others Audience in the call */}
104
103
  {uids
105
- .filter((i) => i !== localUid)
104
+ .filter(i => i !== localUid)
106
105
  .map((uid: any, index: number) => (
107
106
  <>
108
107
  <Participant
@@ -9,13 +9,12 @@ import Spacer from '../../atoms/Spacer';
9
9
  import {useVideoMeetingData} from '../contexts/VideoMeetingDataContext';
10
10
  import {useScreenContext} from '../contexts/ScreenShareContext';
11
11
  import hexadecimalTransparency from '../../utils/hexadecimalTransparency';
12
+ import {videoRoomUserFallbackText} from '../../language/default-labels/videoCallScreenLabels';
12
13
 
13
14
  export default function AllHostParticipants(props: any) {
14
15
  const localUid = useLocalUid();
15
16
  const {screenShareData} = useScreenContext();
16
- //commented for v1 release
17
- //const remoteUserDefaultLabel = useString('remoteUserDefaultLabel')();
18
- const remoteUserDefaultLabel = 'User';
17
+ const remoteUserDefaultLabel = useString(videoRoomUserFallbackText)();
19
18
  const {defaultContent} = useContent();
20
19
  const getParticipantName = (uid: UidType) => {
21
20
  return defaultContent[uid]?.name || remoteUserDefaultLabel;
@@ -67,7 +66,7 @@ export default function AllHostParticipants(props: any) {
67
66
  <>
68
67
  <Spacer size={4} />
69
68
  {/* User should see his name first */}
70
- {uids.filter((uid) => uid === localUid).length > 0 ? (
69
+ {uids.filter(uid => uid === localUid).length > 0 ? (
71
70
  <>
72
71
  <Participant
73
72
  isLocal={true}
@@ -89,10 +88,10 @@ export default function AllHostParticipants(props: any) {
89
88
  {/* Others Users in the call */}
90
89
  {uids
91
90
  .filter(
92
- (uid) => uid !== localUid && defaultContent[uid].type === 'rtc',
91
+ uid => uid !== localUid && defaultContent[uid].type === 'rtc',
93
92
  )
94
93
  .map(
95
- (uid) => (
94
+ uid => (
96
95
  // defaultContent[uid]?.type === 'screenshare' ? (
97
96
  // <ScreenshareParticipants
98
97
  // name={getParticipantName(uid)}
@@ -48,6 +48,11 @@ import {getPinnedLayoutName} from '../../pages/video-call/DefaultLayouts';
48
48
  import UserActionMenuOptionsOptions from './UserActionMenuOptions';
49
49
 
50
50
  import WaitingRoomButton from '../../subComponents/waiting-rooms/WaitingRoomControls';
51
+ import {useString} from '../../utils/useString';
52
+ import {
53
+ peoplePanelMeText,
54
+ peoplePanelPresenterText,
55
+ } from '../../language/default-labels/videoCallScreenLabels';
51
56
  interface ParticipantInterface {
52
57
  isLocal: boolean;
53
58
  name: string;
@@ -64,6 +69,8 @@ interface ParticipantInterface {
64
69
  }
65
70
 
66
71
  const Participant = (props: ParticipantInterface) => {
72
+ const metext = useString(peoplePanelMeText)();
73
+ const presentertext = useString(peoplePanelPresenterText)();
67
74
  const {coHostUids} = useContext(LiveStreamContext);
68
75
  const [isHovered, setIsHovered] = React.useState(false);
69
76
  const [actionMenuVisible, setActionMenuVisible] = React.useState(false);
@@ -113,11 +120,11 @@ const Participant = (props: ParticipantInterface) => {
113
120
  <Text style={styles.participantNameText} numberOfLines={1}>
114
121
  {name}
115
122
  </Text>
116
- {isLocal && <Text style={styles.subText}>{'Me'}</Text>}
123
+ {isLocal && <Text style={styles.subText}>{metext}</Text>}
117
124
  {!isLocal &&
118
125
  $config.EVENT_MODE &&
119
126
  coHostUids.indexOf(user.uid) !== -1 ? (
120
- <Text style={styles.subText}>{'Presenter'}</Text>
127
+ <Text style={styles.subText}>{presentertext}</Text>
121
128
  ) : (
122
129
  <></>
123
130
  )}