agora-appbuilder-core 2.2.0 → 2.3.0-beta.0
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.
- package/Readme.md +7 -1
- package/package.json +4 -3
- package/template/Gulpfile.js +306 -87
- package/template/_gitignore +4 -1
- package/template/_package-lock.json +2297 -2533
- package/template/agora-rn-uikit/.git/HEAD +1 -1
- package/template/agora-rn-uikit/.git/config +3 -3
- package/template/agora-rn-uikit/.git/index +0 -0
- package/template/agora-rn-uikit/.git/logs/HEAD +2 -2
- package/template/agora-rn-uikit/.git/logs/refs/heads/master +1 -1
- package/template/agora-rn-uikit/.git/logs/refs/heads/release/fpe-1.0.0 +1 -0
- package/template/agora-rn-uikit/.git/logs/refs/remotes/origin/HEAD +1 -1
- package/template/agora-rn-uikit/.git/objects/pack/pack-f274a85fccfc9b5112d154bb3b6d34cb4b8dedde.idx +0 -0
- package/template/agora-rn-uikit/.git/objects/pack/{pack-0061d00cd98162a329a32b537488a35d0abeb069.pack → pack-f274a85fccfc9b5112d154bb3b6d34cb4b8dedde.pack} +0 -0
- package/template/agora-rn-uikit/.git/packed-refs +5 -1
- package/template/agora-rn-uikit/.git/refs/heads/release/fpe-1.0.0 +1 -0
- package/template/agora-rn-uikit/src/AgoraUIKit.tsx +23 -20
- package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +13 -8
- package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +25 -9
- package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +10 -0
- package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +11 -5
- package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +6 -2
- package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +1 -1
- package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -2
- package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +2 -2
- package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +2 -2
- package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +6 -2
- package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +11 -6
- package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +10 -6
- package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +7 -6
- package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +6 -5
- package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +3 -3
- package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +16 -13
- package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +16 -13
- package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +13 -13
- package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +16 -13
- package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +28 -31
- package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +48 -35
- package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +11 -13
- package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +11 -13
- package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +18 -15
- package/template/agora-rn-uikit/src/Rtc/Create.tsx +14 -2
- package/template/agora-rn-uikit/src/Rtc/Join.tsx +19 -3
- package/template/agora-rn-uikit/src/RtcConfigure.tsx +161 -44
- package/template/agora-rn-uikit/src/Utils/useLocalUid.ts +8 -0
- package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +8 -6
- package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +8 -6
- package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +18 -9
- package/template/agora-rn-uikit/src/index.ts +12 -12
- package/template/babel.config.js +17 -1
- package/template/bridge/rtc/webNg/RtcEngine.ts +34 -28
- package/template/bridge/rtc/webNg/SurfaceView.tsx +3 -2
- package/template/bridge/rtc/webNg/Types.ts +14 -0
- package/template/bridge/rtc/webNg/index.ts +5 -2
- package/template/bridge/rtm/web/index.ts +13 -7
- package/template/electron-builder.js +3 -2
- package/template/esbuild.rsdk.go +226 -0
- package/template/{src/subComponents/LayoutEnum.tsx → esbuildConfigTransform.js} +1 -5
- package/template/fpe-api/components.ts +42 -0
- package/template/fpe-api/context.ts +45 -0
- package/template/fpe-api/fpeEvents.ts +9 -0
- package/template/fpe-api/index.ts +21 -0
- package/template/fpe-api/install.ts +128 -0
- package/template/fpe-api/typeDefinition.ts +143 -0
- package/template/fpe-api/useFpe.tsx +35 -0
- package/template/fpe-api/utils.ts +62 -0
- package/template/fpe-implementation/createHook.ts +33 -0
- package/template/fpe-implementation/dummyFpe.ts +17 -0
- package/template/fpe-implementation/index.ts +1 -0
- package/template/fpe-todo.txt +14 -0
- package/template/fpe.config.js +25 -0
- package/template/global.d.ts +4 -0
- package/template/index.rsdk.tsx +27 -0
- package/template/index.wsdk.tsx +27 -0
- package/template/package-lock.json +2297 -2533
- package/template/package.json +28 -12
- package/template/react-native-toast-message/src/index.js +9 -10
- package/template/react-native-toast-message/src/index.wsdk.js +419 -0
- package/template/src/App.tsx +97 -65
- package/template/src/AppWrapper.tsx +79 -0
- package/template/src/SDKAppWrapper.tsx +67 -0
- package/template/src/atoms/PrimaryButton.tsx +14 -8
- package/template/src/atoms/TextInput.tsx +13 -5
- package/template/src/components/Chat.tsx +171 -139
- package/template/src/components/ChatContext.ts +14 -22
- package/template/src/components/ColorConfigure.tsx +2 -2
- package/template/src/components/Controls.native.tsx +72 -62
- package/template/src/components/Controls.tsx +90 -69
- package/template/src/components/DeviceConfigure.tsx +1 -1
- package/template/src/components/DeviceContext.tsx +14 -7
- package/template/src/components/GraphQLProvider.tsx +9 -2
- package/template/src/components/GridVideo.tsx +20 -159
- package/template/src/components/HostControlView.tsx +54 -15
- package/template/src/components/Navbar.tsx +408 -157
- package/template/src/components/NetworkQualityContext.tsx +29 -22
- package/template/src/components/ParticipantsView.tsx +97 -119
- package/template/src/components/PinnedVideo.tsx +41 -188
- package/template/src/components/Precall.native.tsx +131 -97
- package/template/src/components/Precall.tsx +193 -158
- package/template/src/components/RTMConfigure.tsx +320 -398
- package/template/src/components/Router.sdk.ts +20 -0
- package/template/src/components/SessionContext.tsx +6 -3
- package/template/src/components/Settings.native.tsx +3 -0
- package/template/src/components/Settings.tsx +65 -31
- package/template/src/components/SettingsView.tsx +14 -8
- package/template/src/components/Share.tsx +188 -220
- package/template/src/components/StorageContext.tsx +5 -5
- package/template/src/components/StoreToken.tsx +5 -1
- package/template/src/components/chat-messages/useChatMessages.tsx +202 -0
- package/template/src/components/chat-notification/useChatNotification.tsx +78 -0
- package/template/src/components/chat-ui/useChatUIControl.tsx +66 -0
- package/template/src/components/common/Error.tsx +54 -0
- package/template/src/components/common/Logo.tsx +35 -0
- package/template/src/components/common/index.tsx +8 -0
- package/template/src/components/contexts/LiveStreamDataContext.tsx +79 -0
- package/template/src/components/contexts/ScreenShareContext.tsx +47 -0
- package/template/src/components/contexts/WhiteboardContext.tsx +59 -0
- package/template/src/components/dimension/DimensionContext.ts +27 -0
- package/template/src/components/dimension/DimensionProvider.tsx +34 -0
- package/template/src/components/livestream/LiveStreamContext.tsx +293 -272
- package/template/src/components/livestream/Types.ts +26 -7
- package/template/src/components/livestream/index.ts +13 -2
- package/template/src/components/livestream/views/LiveStreamControls.tsx +5 -1
- package/template/src/components/meeting-info/useMeetingInfo.tsx +63 -0
- package/template/src/components/meeting-info/useSetMeetingInfo.tsx +38 -0
- package/template/src/components/participants/AllAudienceParticipants.tsx +26 -21
- package/template/src/components/participants/AllHostParticipants.tsx +36 -53
- package/template/src/components/participants/MeParticipant.tsx +9 -10
- package/template/src/components/participants/ParticipantName.tsx +2 -1
- package/template/src/components/participants/RemoteParticipants.tsx +3 -3
- package/template/src/components/precall/LocalMute.native.tsx +91 -0
- package/template/src/components/precall/LocalMute.tsx +90 -0
- package/template/src/components/precall/VideoPreview.native.tsx +35 -0
- package/template/src/components/precall/VideoPreview.tsx +33 -0
- package/template/src/components/precall/index.tsx +28 -0
- package/template/src/components/precall/joinCallBtn.native.tsx +69 -0
- package/template/src/components/precall/joinCallBtn.tsx +91 -0
- package/template/src/components/precall/meetingTitle.tsx +26 -0
- package/template/src/components/precall/selectDevice.tsx +46 -0
- package/template/src/components/precall/textInput.tsx +43 -0
- package/template/src/components/precall/usePreCall.tsx +41 -0
- package/template/src/components/styles.ts +20 -3
- package/template/src/components/useShareLink.tsx +222 -0
- package/template/src/components/useWakeLock.tsx +3 -3
- package/template/src/custom-events/CustomEvents.ts +197 -0
- package/template/src/custom-events/index.tsx +4 -0
- package/template/src/custom-events/types.ts +51 -0
- package/template/src/language/default-labels/commonLabels.ts +21 -0
- package/template/src/language/default-labels/createScreenLabels.ts +22 -0
- package/template/src/language/default-labels/index.ts +38 -0
- package/template/src/language/default-labels/joinScreenLabels.ts +13 -0
- package/template/src/language/default-labels/precallScreenLabels.ts +33 -0
- package/template/src/language/default-labels/shareLinkScreenLabels.ts +44 -0
- package/template/src/language/default-labels/videoCallScreenLabels.ts +189 -0
- package/template/src/language/i18nTypes.ts +10 -0
- package/template/src/language/index.ts +18 -0
- package/template/src/language/useLanguage.tsx +92 -0
- package/template/src/pages/Authenticate.tsx +21 -15
- package/template/src/pages/Create.tsx +176 -159
- package/template/src/pages/Join.tsx +44 -32
- package/template/src/pages/VideoCall.tsx +134 -406
- package/template/src/pages/create/useCreate.tsx +37 -0
- package/template/src/pages/video-call/CustomLayout.ts +17 -0
- package/template/src/pages/video-call/CustomUserContextHolder.tsx +12 -0
- package/template/src/pages/video-call/DefaultLayouts.ts +65 -0
- package/template/src/pages/video-call/NameWithMicStatus.tsx +62 -0
- package/template/src/pages/video-call/RenderComponent.tsx +52 -0
- package/template/src/pages/video-call/VideoCallScreen.tsx +191 -0
- package/template/src/pages/video-call/VideoComponent.tsx +34 -0
- package/template/src/pages/video-call/VideoRenderer.tsx +86 -0
- package/template/src/pages/video-call/index.ts +20 -0
- package/template/src/rtm/RTMEngine.ts +58 -0
- package/template/src/rtm/utils.ts +28 -0
- package/template/src/rtm-events/EventUtils.ts +268 -0
- package/template/src/rtm-events/EventsQueue.ts +38 -0
- package/template/src/rtm-events/constants.ts +40 -0
- package/template/src/rtm-events/index.tsx +8 -0
- package/template/src/rtm-events/types.ts +7 -0
- package/template/src/subComponents/ChatBubble.tsx +18 -11
- package/template/src/subComponents/ChatContainer.tsx +78 -29
- package/template/src/subComponents/ChatInput.tsx +146 -70
- package/template/src/subComponents/CopyJoinInfo.tsx +52 -67
- package/template/src/subComponents/Error.tsx +35 -24
- package/template/src/subComponents/LanguageSelector.tsx +85 -0
- package/template/src/subComponents/LayoutIconDropdown.native.tsx +163 -0
- package/template/src/subComponents/LayoutIconDropdown.tsx +198 -0
- package/template/src/subComponents/LocalAudioMute.tsx +52 -30
- package/template/src/subComponents/LocalEndCall.tsx +52 -0
- package/template/src/subComponents/LocalSwitchCamera.tsx +61 -0
- package/template/src/subComponents/LocalVideoMute.tsx +48 -30
- package/template/src/subComponents/LogoutButton.tsx +20 -5
- package/template/src/subComponents/NetworkQualityPill.tsx +43 -13
- package/template/src/subComponents/OpenInNativeButton.tsx +3 -2
- package/template/src/subComponents/Recording.tsx +46 -138
- package/template/src/subComponents/RemoteAudioMute.tsx +30 -34
- package/template/src/subComponents/RemoteEndCall.tsx +18 -7
- package/template/src/subComponents/RemoteVideoMute.tsx +17 -9
- package/template/src/subComponents/ScreenShareNotice.tsx +40 -40
- package/template/src/subComponents/SelectDevice.tsx +88 -45
- package/template/src/subComponents/SelectOAuth.tsx +30 -6
- package/template/src/subComponents/SidePanelButtons.ts +39 -0
- package/template/src/subComponents/TextWithTooltip.native.tsx +2 -1
- package/template/src/subComponents/TextWithTooltip.tsx +15 -20
- package/template/src/subComponents/chat/ChatParticipants.tsx +31 -32
- package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +7 -3
- package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -18
- package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +22 -8
- package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +12 -7
- package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +24 -27
- package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +23 -26
- package/template/src/subComponents/livestream/index.ts +10 -2
- package/template/src/subComponents/recording/useRecording.tsx +209 -0
- package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +64 -0
- package/template/src/subComponents/screenshare/ScreenshareButton.native.tsx +18 -0
- package/template/src/subComponents/screenshare/ScreenshareButton.tsx +59 -31
- package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +57 -52
- package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +97 -138
- package/template/src/subComponents/screenshare/useScreenshare.tsx +29 -0
- package/template/src/subComponents/toastConfig.tsx +25 -20
- package/template/src/utils/IsAttendeeUser.ts +34 -0
- package/template/src/utils/SdkEvents.ts +68 -0
- package/template/src/utils/common.tsx +40 -0
- package/template/src/utils/eventEmitter.ts +29 -0
- package/template/src/utils/getMeetingInvite.ts +30 -0
- package/template/src/utils/index.tsx +11 -2
- package/template/src/utils/isAudioEnabled.ts +29 -0
- package/template/src/utils/isHostUser.ts +33 -0
- package/template/src/utils/isMobileOrTablet.native.ts +5 -0
- package/template/src/utils/{mobileWebTest.tsx → isMobileOrTablet.ts} +5 -2
- package/template/src/utils/isPSTNUser.ts +30 -0
- package/template/src/utils/isSDK.sdk.ts +5 -0
- package/template/src/utils/isSDK.ts +5 -0
- package/template/src/utils/isScreenShareUser.ts +31 -0
- package/template/src/utils/isVideoEnabled.ts +29 -0
- package/template/src/utils/useButtonTemplate.tsx +43 -0
- package/template/src/utils/useCreateMeeting.ts +74 -0
- package/template/src/utils/useGetLiveStreamingRequests.ts +24 -0
- package/template/src/utils/useGetMeetingPhrase.ts +68 -0
- package/template/src/utils/useGetName.ts +20 -0
- package/template/src/{subComponents/screenshare/ScreenshareContext.tsx → utils/useGroupMessages.ts} +10 -7
- package/template/src/utils/useJoinMeeting.ts +120 -0
- package/template/src/utils/useLayout.tsx +40 -0
- package/template/src/utils/useLiveStreamingUids.ts +26 -0
- package/template/src/utils/useMutePSTN.ts +43 -0
- package/template/src/utils/useMuteToggleLocal.ts +109 -0
- package/template/src/utils/useNavParams.ts +6 -0
- package/template/src/utils/useNavigateTo.ts +8 -0
- package/template/src/utils/usePrivateMessages.ts +33 -0
- package/template/src/utils/useRemoteEndCall.ts +27 -0
- package/template/src/utils/useRemoteMute.ts +64 -0
- package/template/src/utils/useSendControlMessage.ts +51 -0
- package/template/src/utils/useSendMessage.ts +40 -0
- package/template/src/utils/useSetName.ts +20 -0
- package/template/src/utils/useSetUnreadMessageCount.ts +43 -0
- package/template/src/utils/useSidePanel.tsx +41 -0
- package/template/src/utils/useString.ts +61 -0
- package/template/src/utils/useUnreadMessageCount.ts +50 -0
- package/template/src/utils/useUserList.ts +26 -0
- package/template/tsconfig.json +4 -4
- package/template/tsconfig_fpeApi.json +103 -0
- package/template/tsconfig_rsdk_index.json +105 -0
- package/template/tsconfig_wsdk_index.json +104 -0
- package/template/webpack.commons.js +40 -16
- package/template/webpack.main.config.js +2 -1
- package/template/webpack.renderer.config.js +1 -1
- package/template/webpack.rsdk.config.js +33 -0
- package/template/webpack.ts.config.js +89 -0
- package/template/webpack.web.config.js +8 -1
- package/template/webpack.wsdk.config.js +34 -0
- package/template/agora-rn-uikit/.git/logs/refs/heads/ab-dev-auto +0 -1
- package/template/agora-rn-uikit/.git/objects/pack/pack-0061d00cd98162a329a32b537488a35d0abeb069.idx +0 -0
- package/template/agora-rn-uikit/.git/refs/heads/ab-dev-auto +0 -1
- package/template/agora-rn-uikit/src/Contexts/MaxUidContext.tsx +0 -7
- package/template/agora-rn-uikit/src/Contexts/MinUidContext.tsx +0 -8
- package/template/src/components/participants/context/ParticipantContext.tsx +0 -97
- package/template/src/subComponents/ScreenshareButton.tsx +0 -257
- package/template/src/subComponents/SwitchCamera.tsx +0 -35
- package/template/src/utils/hasBrandLogo.tsx +0 -3
- package/template/src/utils/mobileWebTest.native.tsx +0 -5
- package/template/src/utils/shouldAuthenticate.tsx +0 -7
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/*
|
|
2
|
+
********************************************
|
|
3
|
+
Copyright © 2022 Agora Lab, Inc., all rights reserved.
|
|
4
|
+
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
+
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
+
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
+
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
+
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
+
information visit https://appbuilder.agora.io.
|
|
10
|
+
*********************************************
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
('use strict');
|
|
14
|
+
import RtmEngine from 'agora-react-native-rtm';
|
|
15
|
+
import RTMEngine from '../rtm/RTMEngine';
|
|
16
|
+
import {ToOptions, EventPayload} from './types';
|
|
17
|
+
import {EventUtils, eventMessageType} from '../rtm-events';
|
|
18
|
+
import {TEventCallback, EventSourceEnum} from './types';
|
|
19
|
+
|
|
20
|
+
class CustomEvents {
|
|
21
|
+
engine!: RtmEngine;
|
|
22
|
+
source: EventSourceEnum = EventSourceEnum.core;
|
|
23
|
+
|
|
24
|
+
constructor(source?: EventSourceEnum) {
|
|
25
|
+
this.engine = RTMEngine.getInstance().engine;
|
|
26
|
+
if (source) {
|
|
27
|
+
this.source = source;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Persists the data in the local attributes of the user
|
|
33
|
+
*
|
|
34
|
+
* @param {string} evt to be stored in rtm Attribute key
|
|
35
|
+
* @param {any} payload to be stored in rtm Attribute value
|
|
36
|
+
* @api private
|
|
37
|
+
*/
|
|
38
|
+
private _persist = async (evt: string, payload: any) => {
|
|
39
|
+
try {
|
|
40
|
+
const localUserId = RTMEngine.getInstance().localUid;
|
|
41
|
+
const rtmAttribute = {key: evt, value: JSON.stringify(payload)};
|
|
42
|
+
// Step 1: Call RTM API to update local attributes
|
|
43
|
+
await this.engine.addOrUpdateLocalUserAttributes([rtmAttribute]);
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.log(
|
|
46
|
+
'CUSTOM_EVENT_API error occured while updating the value ',
|
|
47
|
+
error,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
private _validateEvt = (evt: string): boolean => {
|
|
56
|
+
if (typeof evt !== 'string') {
|
|
57
|
+
throw Error(
|
|
58
|
+
`CUSTOM_EVENT_API Event name cannot be of type ${typeof evt}`,
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
if (evt.trim() == '') {
|
|
62
|
+
throw Error(`CUSTOM_EVENT_API Name or function cannot be empty`);
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
};
|
|
66
|
+
private _validateListener = (listener: TEventCallback): boolean => {
|
|
67
|
+
if (typeof listener !== 'function') {
|
|
68
|
+
throw Error(
|
|
69
|
+
`CUSTOM_EVENT_API Function cannot be of type ${typeof listener}`,
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Sends the data across to client using transport layer RTM API's
|
|
77
|
+
*
|
|
78
|
+
* @param {any} rtmPayload payload to be sent across
|
|
79
|
+
* @param {ToOptions} to If defined then sent to individual peer in the channle. If not defined then sent to everyone
|
|
80
|
+
* @api private
|
|
81
|
+
*/
|
|
82
|
+
private _send = async (rtmPayload: any, to?: ToOptions) => {
|
|
83
|
+
const text = JSON.stringify({
|
|
84
|
+
type: eventMessageType.CUSTOM_EVENT,
|
|
85
|
+
msg: rtmPayload,
|
|
86
|
+
});
|
|
87
|
+
// Case 1: send to channel
|
|
88
|
+
if (
|
|
89
|
+
typeof to === 'undefined' ||
|
|
90
|
+
(typeof to === 'number' && !to) ||
|
|
91
|
+
(Array.isArray(to) && to?.length === 0)
|
|
92
|
+
) {
|
|
93
|
+
console.log('CUSTOM_EVENT_API: case 1 executed');
|
|
94
|
+
try {
|
|
95
|
+
const channelId = RTMEngine.getInstance().channelUid;
|
|
96
|
+
await this.engine.sendMessageByChannelId(channelId, text);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
console.log('CUSTOM_EVENT_API: send event case 1 error : ', error);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Case 2: send to indivdual
|
|
103
|
+
if (typeof to === 'number' && !to) {
|
|
104
|
+
console.log('CUSTOM_EVENT_API: case 2 executed', to);
|
|
105
|
+
|
|
106
|
+
try {
|
|
107
|
+
await this.engine.sendMessageToPeer({
|
|
108
|
+
peerId: `${to}`,
|
|
109
|
+
offline: false,
|
|
110
|
+
text,
|
|
111
|
+
});
|
|
112
|
+
} catch (error) {
|
|
113
|
+
console.log('CUSTOM_EVENT_API: send event case 2 error : ', error);
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Case 3: send to multiple individuals
|
|
118
|
+
if (typeof to === 'object' && Array.isArray(to)) {
|
|
119
|
+
console.log('CUSTOM_EVENT_API: case 3 executed', to);
|
|
120
|
+
|
|
121
|
+
try {
|
|
122
|
+
for (const uid of to) {
|
|
123
|
+
// TODO adjust uids
|
|
124
|
+
await this.engine.sendMessageToPeer({
|
|
125
|
+
peerId: `${uid}`,
|
|
126
|
+
offline: false,
|
|
127
|
+
text,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.log('CUSTOM_EVENT_API: send event case 3 error : ', error);
|
|
132
|
+
throw error;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
on = (evt: string, listener: TEventCallback) => {
|
|
138
|
+
if (!this._validateEvt(evt) || !this._validateListener(listener)) return;
|
|
139
|
+
EventUtils.addListener(evt, listener, this.source);
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
off = (evt?: string, listener?: TEventCallback) => {
|
|
143
|
+
if (listener) {
|
|
144
|
+
if (this._validateListener(listener) && this._validateEvt(evt)) {
|
|
145
|
+
EventUtils.removeListener(evt, listener, this.source);
|
|
146
|
+
}
|
|
147
|
+
} else if (evt) {
|
|
148
|
+
if (this._validateEvt(evt)) {
|
|
149
|
+
EventUtils.removeAllListeners(evt, this.source);
|
|
150
|
+
}
|
|
151
|
+
} else {
|
|
152
|
+
EventUtils.removeAll(this.source);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
send = async (evt: string, payload: EventPayload, to?: ToOptions) => {
|
|
157
|
+
if (!this._validateEvt(evt)) return;
|
|
158
|
+
const {action = '', value = '', level = 1} = payload;
|
|
159
|
+
|
|
160
|
+
const rtmPayload = {
|
|
161
|
+
evt: evt,
|
|
162
|
+
payload: {
|
|
163
|
+
action,
|
|
164
|
+
value,
|
|
165
|
+
level,
|
|
166
|
+
source: this.source,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
if (level === 2 || level === 3) {
|
|
171
|
+
console.log('CUSTOM_EVENT_API: Event lifecycle: persist', level);
|
|
172
|
+
await this._persist(evt, {...payload, source: this.source});
|
|
173
|
+
}
|
|
174
|
+
try {
|
|
175
|
+
await this._send(rtmPayload, to);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
console.log('CUSTOM_EVENT_API: sendPersist sending failed. ', error);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
printEvents = () => {
|
|
182
|
+
console.log(
|
|
183
|
+
'CUSTOM_EVENT_API: EVENTS source',
|
|
184
|
+
EventUtils.getEvents(EventSourceEnum.core),
|
|
185
|
+
);
|
|
186
|
+
console.log(
|
|
187
|
+
'CUSTOM_EVENT_API: EVENTS fpe',
|
|
188
|
+
EventUtils.getEvents(EventSourceEnum.fpe),
|
|
189
|
+
);
|
|
190
|
+
};
|
|
191
|
+
// once = (name: string, listener: any) => {
|
|
192
|
+
// console.log('CUSTOM_EVENT_API: Event lifecycle: ONCE');
|
|
193
|
+
// const response = EventUtils.addOnceListener(name, listener);
|
|
194
|
+
// };
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export default CustomEvents;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {UidType} from '../../agora-rn-uikit';
|
|
2
|
+
type Simplify<T> = T extends infer S ? {[K in keyof S]: S[K]} : never;
|
|
3
|
+
type NoneOf<T> = Simplify<{[K in keyof T]?: never}>;
|
|
4
|
+
type AtMostOneOf<T> =
|
|
5
|
+
| NoneOf<T>
|
|
6
|
+
| {[K in keyof T]: Simplify<Pick<T, K> & NoneOf<Omit<T, K>>>}[keyof T];
|
|
7
|
+
|
|
8
|
+
// export type TEventOptions = AtMostOneOf<IMessageOptions> & IEventOptions;
|
|
9
|
+
|
|
10
|
+
export type ToOptions = UidType | UidType[];
|
|
11
|
+
|
|
12
|
+
interface IEventPayloadBase {
|
|
13
|
+
action?: any;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface IEventPayloadWithoutAttributes extends IEventPayloadBase {
|
|
17
|
+
level?: never;
|
|
18
|
+
value: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface IEventPayloadWithAttributes extends IEventPayloadBase {
|
|
22
|
+
level: 2 | 3;
|
|
23
|
+
value: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type EventPayload =
|
|
27
|
+
| IEventPayloadWithoutAttributes
|
|
28
|
+
| IEventPayloadWithAttributes
|
|
29
|
+
| Record<string, never>;
|
|
30
|
+
|
|
31
|
+
export enum EventSourceEnum {
|
|
32
|
+
core = 'core',
|
|
33
|
+
fpe = 'fpe',
|
|
34
|
+
}
|
|
35
|
+
export enum EventLevel {
|
|
36
|
+
'LEVEL1' = 1,
|
|
37
|
+
'LEVEL2',
|
|
38
|
+
'LEVEL3',
|
|
39
|
+
}
|
|
40
|
+
interface dataPayload {
|
|
41
|
+
action: string;
|
|
42
|
+
level: 1 | 2 | 3;
|
|
43
|
+
value: string;
|
|
44
|
+
}
|
|
45
|
+
interface EvtCbPayload {
|
|
46
|
+
payload: dataPayload;
|
|
47
|
+
sender: string;
|
|
48
|
+
ts: number;
|
|
49
|
+
source: EventSourceEnum;
|
|
50
|
+
}
|
|
51
|
+
export type TEventCallback = (args: EvtCbPayload) => void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {I18nBaseType} from '../i18nTypes';
|
|
2
|
+
|
|
3
|
+
export interface I18nCommonLabelsInterface {
|
|
4
|
+
//commented for v1 release
|
|
5
|
+
// goBackButton?: I18nBaseType; //
|
|
6
|
+
// logoutButton?: I18nBaseType; //
|
|
7
|
+
// googleAuthButton?: I18nBaseType; //
|
|
8
|
+
// microsoftAuthButton?: I18nBaseType; //
|
|
9
|
+
// slackAuthButton?: I18nBaseType; //
|
|
10
|
+
// appleAuthButton?: I18nBaseType; //
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const CommonLabels: I18nCommonLabelsInterface = {
|
|
14
|
+
//commented for v1 release
|
|
15
|
+
// goBackButton: 'Go back',
|
|
16
|
+
// logoutButton: 'Logout',
|
|
17
|
+
// googleAuthButton: 'Google',
|
|
18
|
+
// microsoftAuthButton: 'Microsoft',
|
|
19
|
+
// slackAuthButton: 'Slack',
|
|
20
|
+
// appleAuthButton: 'Apple',
|
|
21
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {I18nBaseType, I18nConditionalType} from '../i18nTypes';
|
|
2
|
+
|
|
3
|
+
export interface I18nCreateScreenLabelsInterface {
|
|
4
|
+
meetingNameInputPlaceholder?: I18nBaseType; //
|
|
5
|
+
//commented for v1 release
|
|
6
|
+
// createMeetingButton?: I18nBaseType; //
|
|
7
|
+
// haveMeetingID?: I18nBaseType;
|
|
8
|
+
// pstnToggle?: I18nConditionalType; //
|
|
9
|
+
// hostControlsToggle?: I18nConditionalType; //
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const CreateScreenLabels: I18nCreateScreenLabelsInterface = {
|
|
13
|
+
meetingNameInputPlaceholder: 'Name your Meeting',
|
|
14
|
+
//commented for v1 release
|
|
15
|
+
// createMeetingButton: 'Create Meeting',
|
|
16
|
+
// haveMeetingID: 'Have a Meeting ID?',
|
|
17
|
+
// pstnToggle: 'Use PSTN (Join by dialing a number)',
|
|
18
|
+
// hostControlsToggle: (toggle) =>
|
|
19
|
+
// toggle
|
|
20
|
+
// ? 'Restrict Host Controls (Separate host link)'
|
|
21
|
+
// : 'Restrict Host Controls (Everyone is a Host)',
|
|
22
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {CommonLabels, I18nCommonLabelsInterface} from './commonLabels';
|
|
2
|
+
import {
|
|
3
|
+
CreateScreenLabels,
|
|
4
|
+
I18nCreateScreenLabelsInterface,
|
|
5
|
+
} from './createScreenLabels';
|
|
6
|
+
import {
|
|
7
|
+
JoinScreenLabels,
|
|
8
|
+
I18nJoinScreenLabelsInterface,
|
|
9
|
+
} from './joinScreenLabels';
|
|
10
|
+
import {
|
|
11
|
+
ShareLinkScreenLabels,
|
|
12
|
+
I18nShareLinkScreenLabelsInterface,
|
|
13
|
+
} from './shareLinkScreenLabels';
|
|
14
|
+
import {
|
|
15
|
+
VideoCallScreenLabels,
|
|
16
|
+
I18nVideoCallScreenLabelsInterface,
|
|
17
|
+
} from './videoCallScreenLabels';
|
|
18
|
+
import {
|
|
19
|
+
PrecallScreenLabels,
|
|
20
|
+
I18nPrecallScreenLabelsInterface,
|
|
21
|
+
} from './precallScreenLabels';
|
|
22
|
+
|
|
23
|
+
export interface TextDataInterface
|
|
24
|
+
extends I18nCommonLabelsInterface,
|
|
25
|
+
I18nCreateScreenLabelsInterface,
|
|
26
|
+
I18nJoinScreenLabelsInterface,
|
|
27
|
+
I18nShareLinkScreenLabelsInterface,
|
|
28
|
+
I18nVideoCallScreenLabelsInterface,
|
|
29
|
+
I18nPrecallScreenLabelsInterface {}
|
|
30
|
+
|
|
31
|
+
export const DEFAULT_LABELS: TextDataInterface = {
|
|
32
|
+
...CommonLabels,
|
|
33
|
+
...CreateScreenLabels,
|
|
34
|
+
...JoinScreenLabels,
|
|
35
|
+
...ShareLinkScreenLabels,
|
|
36
|
+
...PrecallScreenLabels,
|
|
37
|
+
...VideoCallScreenLabels,
|
|
38
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {I18nBaseType} from '../i18nTypes';
|
|
2
|
+
|
|
3
|
+
export interface I18nJoinScreenLabelsInterface {
|
|
4
|
+
//commented for v1 release
|
|
5
|
+
// meetingIdInputPlaceholder?: I18nBaseType; //
|
|
6
|
+
// enterMeetingButton?: I18nBaseType; //
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const JoinScreenLabels: I18nJoinScreenLabelsInterface = {
|
|
10
|
+
//commented for v1 release
|
|
11
|
+
// meetingIdInputPlaceholder: 'Enter Meeting ID',
|
|
12
|
+
// enterMeetingButton: 'Enter Meeting',
|
|
13
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {ClientRole} from '../../../agora-rn-uikit';
|
|
2
|
+
import {I18nBaseType} from '../i18nTypes';
|
|
3
|
+
|
|
4
|
+
export interface JoinRoomButtonTextInterface {
|
|
5
|
+
ready: boolean;
|
|
6
|
+
role?: ClientRole;
|
|
7
|
+
}
|
|
8
|
+
export interface I18nPrecallScreenLabelsInterface {
|
|
9
|
+
//commented for v1 release
|
|
10
|
+
// precallLabel?: I18nBaseType; //
|
|
11
|
+
// selectInputDeviceLabel?: I18nBaseType; //
|
|
12
|
+
// userNamePlaceholder?: I18nBaseType; //
|
|
13
|
+
// fetchingNamePlaceholder?: I18nBaseType; //
|
|
14
|
+
// loadingWithDots?: I18nBaseType;
|
|
15
|
+
joinRoomButton?: I18nBaseType<JoinRoomButtonTextInterface>; // need to check
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const PrecallScreenLabels: I18nPrecallScreenLabelsInterface = {
|
|
19
|
+
//commented for v1 release
|
|
20
|
+
// precallLabel: 'Precall',
|
|
21
|
+
// selectInputDeviceLabel: 'Select Input Device',
|
|
22
|
+
// userNamePlaceholder: 'Display name*',
|
|
23
|
+
// fetchingNamePlaceholder: 'Getting name...',
|
|
24
|
+
// loadingWithDots: 'Loading...',
|
|
25
|
+
joinRoomButton: ({ready, role}) =>
|
|
26
|
+
ready
|
|
27
|
+
? !role
|
|
28
|
+
? 'Join Room'
|
|
29
|
+
: `Join Room as ${
|
|
30
|
+
role === ClientRole.Broadcaster ? 'Host' : 'Audience'
|
|
31
|
+
}`
|
|
32
|
+
: `Loading...`,
|
|
33
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {I18nBaseType} from '../i18nTypes';
|
|
2
|
+
|
|
3
|
+
export interface I18nShareLinkScreenLabelsInterface {
|
|
4
|
+
//commented for v1 release
|
|
5
|
+
// attendeeUrlLabel?: I18nBaseType; //
|
|
6
|
+
// hostUrlLabel?: I18nBaseType; //
|
|
7
|
+
// enterMeetingAfterCreateButton?: I18nBaseType; //
|
|
8
|
+
// copyInviteButton?: I18nBaseType; //
|
|
9
|
+
// pstnLabel?: I18nBaseType; //
|
|
10
|
+
// pstnNumberLabel?: I18nBaseType; //
|
|
11
|
+
// meetingUrlLabel?: I18nBaseType; //
|
|
12
|
+
// hostIdLabel?: I18nBaseType; //
|
|
13
|
+
// meetingIdLabel?: I18nBaseType; //
|
|
14
|
+
// attendeeIdLabel?: I18nBaseType; //
|
|
15
|
+
// copiedToClipboardNotificationLabel?: I18nBaseType; //
|
|
16
|
+
// PSTNNumber?: I18nBaseType;
|
|
17
|
+
// PSTNPin?: I18nBaseType;
|
|
18
|
+
// meeting?: I18nBaseType;
|
|
19
|
+
// URLForAttendee?: I18nBaseType;
|
|
20
|
+
// URLForHost?: I18nBaseType;
|
|
21
|
+
// attendeeMeetingID?: I18nBaseType;
|
|
22
|
+
// hostMeetingID?: I18nBaseType;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const ShareLinkScreenLabels: I18nShareLinkScreenLabelsInterface = {
|
|
26
|
+
//commented for v1 release
|
|
27
|
+
// attendeeUrlLabel: 'Attendee URL',
|
|
28
|
+
// hostUrlLabel: 'Host URL',
|
|
29
|
+
// enterMeetingAfterCreateButton: 'Start Meeting (as host)',
|
|
30
|
+
// copyInviteButton: 'Copy invite to clipboard',
|
|
31
|
+
// pstnLabel: 'PSTN',
|
|
32
|
+
// pstnNumberLabel: 'Number',
|
|
33
|
+
// meetingUrlLabel: 'Meeting URL',
|
|
34
|
+
// hostIdLabel: 'Host ID',
|
|
35
|
+
// meetingIdLabel: 'Meeting ID',
|
|
36
|
+
// attendeeIdLabel: 'Attendee ID',
|
|
37
|
+
// copiedToClipboardNotificationLabel: 'Copied to Clipboard',
|
|
38
|
+
// PSTNNumber: 'PSTN Number',
|
|
39
|
+
// PSTNPin: 'PSTN Pin',
|
|
40
|
+
// URLForAttendee: 'URL for Attendee',
|
|
41
|
+
// URLForHost: 'URL for Host',
|
|
42
|
+
// attendeeMeetingID: 'Attendee Meeting ID',
|
|
43
|
+
// hostMeetingID: 'Host Meeting ID',
|
|
44
|
+
};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import {I18nBaseType, I18nConditionalType, I18nDynamicType} from '../i18nTypes';
|
|
2
|
+
interface NetworkQualityStatusInterface {
|
|
3
|
+
unknown?: 'Unknown';
|
|
4
|
+
excellent?: 'Excellent';
|
|
5
|
+
good?: 'Good';
|
|
6
|
+
bad?: 'Bad';
|
|
7
|
+
veryBad?: 'Very Bad';
|
|
8
|
+
unpublished?: 'Unpublished';
|
|
9
|
+
loading?: 'Loading';
|
|
10
|
+
}
|
|
11
|
+
export type NetworkQualities = keyof NetworkQualityStatusInterface;
|
|
12
|
+
export interface MeetingInviteInterface {
|
|
13
|
+
meetingName?: string;
|
|
14
|
+
pstn?: {
|
|
15
|
+
number: string;
|
|
16
|
+
pin: string;
|
|
17
|
+
};
|
|
18
|
+
url?: {
|
|
19
|
+
host?: string;
|
|
20
|
+
attendee: string;
|
|
21
|
+
};
|
|
22
|
+
id?: {
|
|
23
|
+
host?: string;
|
|
24
|
+
attendee: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface I18nVideoCallScreenLabelsInterface {
|
|
28
|
+
//commented for v1 release
|
|
29
|
+
// toggleVideoButton?: I18nBaseType; //
|
|
30
|
+
// toggleAudioButton?: I18nBaseType; //
|
|
31
|
+
// screenShareButton?: I18nBaseType; //
|
|
32
|
+
// recordingNotificationLabel?: I18nConditionalType;
|
|
33
|
+
// endCallButton?: I18nBaseType; //
|
|
34
|
+
// participantsLabel?: I18nBaseType; //
|
|
35
|
+
// groupChatLabel?: I18nBaseType; //
|
|
36
|
+
// privateChatLabel?: I18nBaseType; //
|
|
37
|
+
// chatMessageInputPlaceholder?: I18nBaseType; //
|
|
38
|
+
// hostControlsLabel?: I18nBaseType; //
|
|
39
|
+
// muteAllVideoButton?: I18nBaseType; //
|
|
40
|
+
// muteAllAudioButton?: I18nBaseType; //
|
|
41
|
+
// switchCameraButton?: I18nBaseType; //
|
|
42
|
+
// localScreenshareDefaultLabel?: I18nBaseType; //
|
|
43
|
+
// localUserDefaultLabel?: I18nBaseType; //
|
|
44
|
+
// remoteUserDefaultLabel?: I18nBaseType; //
|
|
45
|
+
pstnUserLabel?: I18nBaseType; //
|
|
46
|
+
// commented for v1 release
|
|
47
|
+
// authenticationSuccessLabel?: I18nBaseType; //
|
|
48
|
+
// meetingCreatedNotificationLabel?: I18nBaseType; //
|
|
49
|
+
// joiningLoaderLabel?: I18nBaseType; //
|
|
50
|
+
// oauthLoginLabel?: I18nBaseType; //
|
|
51
|
+
// oauthProviderLabel?: I18nBaseType; //
|
|
52
|
+
// copyMeetingInviteButton?: I18nBaseType; //
|
|
53
|
+
// pin?: I18nBaseType;
|
|
54
|
+
// language?: I18nBaseType;
|
|
55
|
+
// screensharingActiveOverlayLabel?: I18nBaseType; //
|
|
56
|
+
// recordingButton?: I18nConditionalType; //
|
|
57
|
+
// screenshareUserName?: I18nDynamicType; //
|
|
58
|
+
// messageSenderNotificationLabel?: I18nDynamicType; //
|
|
59
|
+
// networkQualityLabel?: I18nBaseType<NetworkQualities>; //
|
|
60
|
+
// meetingInviteText?: I18nBaseType<MeetingInviteInterface>; //
|
|
61
|
+
// participantListPlaceholder?: I18nBaseType; //
|
|
62
|
+
// raisedHandsListPlaceholder?: I18nBaseType; //
|
|
63
|
+
// raisedHandsListTitleLabel?: I18nBaseType; //
|
|
64
|
+
// hostLabel?: I18nBaseType; //
|
|
65
|
+
// audienceLabel?: I18nBaseType; //
|
|
66
|
+
// raiseHandButton?: I18nConditionalType; //
|
|
67
|
+
// noUserFoundLabel?: I18nBaseType;
|
|
68
|
+
// userOfflineLabel?: I18nBaseType;
|
|
69
|
+
// raiseHandLocalNotification?: I18nBaseType; //
|
|
70
|
+
// raiseHandRemoteHostNotification?: I18nConditionalType; //
|
|
71
|
+
// raiseHandApprovedLocalNotification?: I18nBaseType; //
|
|
72
|
+
// raiseHandRejectedLocalNotification?: I18nBaseType; //
|
|
73
|
+
// lowerHandRemoteHostNotification?: I18nConditionalType; //
|
|
74
|
+
// lowerHandsLocalNotification?: I18nBaseType; //
|
|
75
|
+
// raiseHandRevokedLocalNotification?: I18nBaseType; //
|
|
76
|
+
// recordingLabel?: I18nBaseType;
|
|
77
|
+
// settingScreenInfoMessage?: I18nBaseType;
|
|
78
|
+
// chatLabel?: I18nBaseType;
|
|
79
|
+
// settingsLabel?: I18nBaseType;
|
|
80
|
+
// layoutLabel?: I18nBaseType;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const VideoCallScreenLabels: I18nVideoCallScreenLabelsInterface = {
|
|
84
|
+
//need to check
|
|
85
|
+
//remoteScreenshareDefaultLabel - User's screenshare
|
|
86
|
+
//commented for v1 release
|
|
87
|
+
// toggleVideoButton: 'Video',
|
|
88
|
+
// toggleAudioButton: 'Audio',
|
|
89
|
+
// screenShareButton: 'Share',
|
|
90
|
+
// switchCameraButton: 'Switch',
|
|
91
|
+
// recordingLabel: 'Recording',
|
|
92
|
+
// recordingNotificationLabel: (active) =>
|
|
93
|
+
// active ? 'Recording Started' : 'Recording Stopped',
|
|
94
|
+
// endCallButton: 'Hang Up',
|
|
95
|
+
// participantsLabel: 'Participants',
|
|
96
|
+
// groupChatLabel: 'Group',
|
|
97
|
+
// privateChatLabel: 'Private',
|
|
98
|
+
// chatMessageInputPlaceholder: 'Type your message..',
|
|
99
|
+
// localScreenshareDefaultLabel: 'Your screenshare',
|
|
100
|
+
// localUserDefaultLabel: 'You',
|
|
101
|
+
// remoteUserDefaultLabel: 'User',
|
|
102
|
+
pstnUserLabel: 'PSTN User',
|
|
103
|
+
//commented for v1 release
|
|
104
|
+
// authenticationSuccessLabel: 'Authenticated Successfully!',
|
|
105
|
+
// meetingCreatedNotificationLabel: 'Created',
|
|
106
|
+
// joiningLoaderLabel: 'Starting Call. Just a second.',
|
|
107
|
+
// oauthLoginLabel: 'Login using OAuth',
|
|
108
|
+
// oauthProviderLabel: 'Please select an OAuth provider to login.',
|
|
109
|
+
// copyMeetingInviteButton: 'Copy Meeting Invite',
|
|
110
|
+
// pin: 'Pin',
|
|
111
|
+
// language: 'Language',
|
|
112
|
+
// hostControlsLabel: 'Host Controls',
|
|
113
|
+
// muteAllAudioButton: 'Mute all audios',
|
|
114
|
+
// muteAllVideoButton: 'Mute all videos',
|
|
115
|
+
// screensharingActiveOverlayLabel: 'Your screen share is active.',
|
|
116
|
+
// participantListPlaceholder: 'No one has joined yet',
|
|
117
|
+
// raisedHandsListPlaceholder: 'No streaming request(s)',
|
|
118
|
+
// raisedHandsListTitleLabel: 'Streaming Request',
|
|
119
|
+
// hostLabel: 'Host',
|
|
120
|
+
// audienceLabel: 'Audience',
|
|
121
|
+
// noUserFoundLabel: 'User not found',
|
|
122
|
+
// userOfflineLabel: 'User is offline',
|
|
123
|
+
// chatLabel: 'Chat',
|
|
124
|
+
// settingsLabel: 'Settings',
|
|
125
|
+
// layoutLabel: 'Layouts',
|
|
126
|
+
// raiseHandLocalNotification:
|
|
127
|
+
// 'You have raised your hand. Request sent to host for approval',
|
|
128
|
+
// raiseHandRemoteHostNotification: (name) => `${name} has raised their hand`,
|
|
129
|
+
// raiseHandApprovedLocalNotification:
|
|
130
|
+
// 'Your request was approved, unmute to start talking',
|
|
131
|
+
// raiseHandRejectedLocalNotification: 'Your request was rejected by the host',
|
|
132
|
+
// lowerHandRemoteHostNotification: (name) => `${name} has lowered their hand`,
|
|
133
|
+
// lowerHandsLocalNotification: 'You have lowered your hand',
|
|
134
|
+
// raiseHandRevokedLocalNotification:
|
|
135
|
+
// 'The host has revoked streaming permissions',
|
|
136
|
+
// settingScreenInfoMessage:
|
|
137
|
+
// 'Video and Audio sharing is disabled for attendees. Raise hand to request permission to share.',
|
|
138
|
+
// screenshareUserName: (name) => `${name}'s screenshare`, //
|
|
139
|
+
// recordingButton: (recording) => (recording ? 'Recording' : 'Record'),
|
|
140
|
+
// raiseHandButton: (toggle) => (toggle ? 'Lower hand' : 'Raise Hand'),
|
|
141
|
+
// messageSenderNotificationLabel: (name) => `From : ${name}`,
|
|
142
|
+
// networkQualityLabel: (quality) => {
|
|
143
|
+
// switch (quality) {
|
|
144
|
+
// case 'unknown':
|
|
145
|
+
// return 'Unknown';
|
|
146
|
+
// case 'excellent':
|
|
147
|
+
// return 'Excellent';
|
|
148
|
+
// case 'good':
|
|
149
|
+
// return 'Good';
|
|
150
|
+
// case 'bad':
|
|
151
|
+
// return 'Bad';
|
|
152
|
+
// case 'veryBad':
|
|
153
|
+
// return 'Very Bad';
|
|
154
|
+
// case 'unpublished':
|
|
155
|
+
// return 'Unpublished';
|
|
156
|
+
// case 'loading':
|
|
157
|
+
// return 'Loading';
|
|
158
|
+
// default:
|
|
159
|
+
// return 'Loading';
|
|
160
|
+
// }
|
|
161
|
+
// },
|
|
162
|
+
// meetingInviteText: ({meetingName, id, url, pstn}) => {
|
|
163
|
+
// let inviteContent = '';
|
|
164
|
+
// if (url) {
|
|
165
|
+
// // if host data is present generate links for both host and attendee
|
|
166
|
+
// if (url?.host) {
|
|
167
|
+
// inviteContent += `Meeting - ${meetingName}\nURL for Attendee: ${url?.attendee}\nURL for Host: ${url?.host}`;
|
|
168
|
+
// }
|
|
169
|
+
// // if host data is not present then generate link for attendee alone
|
|
170
|
+
// else {
|
|
171
|
+
// inviteContent += `Meeting - ${meetingName}\nMeeting URL: ${url?.attendee}`;
|
|
172
|
+
// }
|
|
173
|
+
// } else {
|
|
174
|
+
// // if host data is present generate meeting ID for both host and attendee
|
|
175
|
+
// if (id?.host) {
|
|
176
|
+
// inviteContent += `Meeting - ${meetingName}\nAttendee Meeting ID: ${id?.attendee}\nHost Meeting ID: ${id?.host}`;
|
|
177
|
+
// }
|
|
178
|
+
// // if host data is not present then generate meeting ID for attendee alone
|
|
179
|
+
// else {
|
|
180
|
+
// inviteContent += `Meeting - ${meetingName}\nMeeting ID: ${id?.attendee}`;
|
|
181
|
+
// }
|
|
182
|
+
// }
|
|
183
|
+
// // Adding pstn data into meeting data if present
|
|
184
|
+
// if (pstn?.number && pstn?.pin) {
|
|
185
|
+
// inviteContent += `\nPSTN Number: ${pstn.number}\nPSTN Pin: ${pstn.pin}`;
|
|
186
|
+
// }
|
|
187
|
+
// return inviteContent;
|
|
188
|
+
// },
|
|
189
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {TextDataInterface} from './default-labels/index';
|
|
2
|
+
|
|
3
|
+
export type I18nBaseType<T = any> = string | ((template: T) => string);
|
|
4
|
+
export type I18nDynamicType = I18nBaseType<string>;
|
|
5
|
+
export type I18nConditionalType = I18nBaseType<boolean>;
|
|
6
|
+
export interface i18nInterface {
|
|
7
|
+
locale: string;
|
|
8
|
+
label?: string;
|
|
9
|
+
data: TextDataInterface;
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
********************************************
|
|
3
|
+
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
+
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
+
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
+
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
+
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
+
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
+
information visit https://appbuilder.agora.io.
|
|
10
|
+
*********************************************
|
|
11
|
+
*/
|
|
12
|
+
import {i18nInterface} from './i18nTypes';
|
|
13
|
+
import {DEFAULT_LABELS} from './default-labels/index';
|
|
14
|
+
export const DEFAULT_I18_DATA: i18nInterface = {
|
|
15
|
+
label: 'English US',
|
|
16
|
+
locale: 'en-us',
|
|
17
|
+
data: DEFAULT_LABELS,
|
|
18
|
+
};
|