agora-appbuilder-core 4.0.0 → 4.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.
- package/package.json +3 -3
- package/template/.bundle/config +2 -0
- package/template/Gemfile +4 -0
- package/template/Gulpfile.js +29 -29
- package/template/_eslintrc.js +3 -3
- package/template/_gitignore +12 -11
- package/template/_package-lock.json +28491 -23647
- package/template/_prettierrc.js +2 -2
- package/template/agora-rn-uikit/.eslintrc.js +5 -0
- package/template/agora-rn-uikit/package.json +14 -14
- package/template/agora-rn-uikit/src/AgoraUIKit.tsx +6 -6
- package/template/agora-rn-uikit/src/Contexts/ContentContext.tsx +10 -0
- package/template/agora-rn-uikit/src/Contexts/DispatchContext.tsx +22 -0
- package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +6 -6
- package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +79 -38
- package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +26 -17
- package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +1 -0
- package/template/agora-rn-uikit/src/Controls/Icons.ts +45 -0
- package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -4
- package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -1
- package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +5 -2
- package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +5 -2
- package/template/agora-rn-uikit/src/Controls/Local/Recording.tsx +0 -2
- package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +7 -6
- package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +5 -5
- package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +5 -4
- package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -1
- package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +5 -4
- package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +2 -2
- package/template/agora-rn-uikit/src/Reducer/ActiveSpeaker.ts +30 -0
- package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +8 -7
- package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +8 -7
- package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +6 -7
- package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +7 -8
- package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +9 -9
- package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +7 -8
- package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +14 -13
- package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +6 -7
- package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +6 -7
- package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +5 -6
- package/template/agora-rn-uikit/src/Reducer/UserPin.ts +20 -3
- package/template/agora-rn-uikit/src/Reducer/UserSecondaryPin.ts +23 -0
- package/template/agora-rn-uikit/src/Reducer/index.ts +2 -1
- package/template/agora-rn-uikit/src/Rtc/Create.tsx +138 -100
- package/template/agora-rn-uikit/src/Rtc/Join.tsx +55 -28
- package/template/agora-rn-uikit/src/RtcConfigure.tsx +177 -77
- package/template/agora-rn-uikit/src/Utils/isBotUser.ts +15 -0
- package/template/agora-rn-uikit/src/Utils/quality.tsx +8 -0
- package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +56 -12
- package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +47 -17
- package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +19 -11
- package/template/agora-rn-uikit/src/index.ts +15 -9
- package/template/android/app/build.gradle +59 -156
- package/template/android/app/src/debug/AndroidManifest.xml +6 -1
- package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +7 -4
- package/template/android/app/src/main/AndroidManifest.xml +6 -19
- package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
- package/template/android/app/src/main/java/com/helloworld/MainActivity.java +17 -0
- package/template/android/app/src/main/java/com/helloworld/MainApplication.java +22 -36
- package/template/android/app/src/main/java/com/helloworld/SSLPinningFactory.java +30 -0
- package/template/android/app/src/main/res/values/strings.xml +3 -0
- package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +20 -0
- package/template/android/build.gradle +19 -33
- package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -2
- package/template/android/gradle.properties +18 -4
- package/template/android/gradlew +165 -104
- package/template/android/gradlew.bat +12 -23
- package/template/android/settings.gradle +1 -0
- package/template/bridge/rtc/webNg/RtcEngine.ts +200 -70
- package/template/bridge/rtc/webNg/{SurfaceView.tsx → RtcSurfaceView.tsx} +20 -26
- package/template/bridge/rtc/webNg/Types.ts +20 -5
- package/template/bridge/rtc/webNg/index.ts +81 -14
- package/template/bridge/rtm/web/index.ts +5 -3
- package/template/configTransform.js +16 -1
- package/template/customization-api/action-library.ts +4 -16
- package/template/customization-api/app-state.ts +15 -8
- package/template/customization-api/customEvents.ts +7 -2
- package/template/customization-api/customize.ts +1 -1
- package/template/customization-api/index.ts +4 -0
- package/template/customization-api/sub-components.ts +17 -16
- package/template/customization-api/temp.ts +52 -0
- package/template/customization-api/typeDefinition.ts +34 -46
- package/template/customization-api/types.ts +26 -0
- package/template/customization-api/utils.ts +4 -0
- package/template/customization-implementation/createHook.ts +24 -6
- package/template/customization-implementation/index.ts +1 -2
- package/template/customization-implementation/useCustomization.tsx +5 -7
- package/template/defaultConfig.js +72 -0
- package/template/global.d.ts +14 -1
- package/template/index.js +1 -4
- package/template/index.web.js +0 -5
- package/template/index.wsdk.tsx +1 -12
- package/template/ios/.xcode.env +11 -0
- package/template/ios/HelloWorld/AppDelegate.h +2 -4
- package/template/ios/HelloWorld/AppDelegate.mm +64 -0
- package/template/ios/HelloWorld/HelloWorldDebug.entitlements +10 -0
- package/template/ios/HelloWorld/Info.plist +8 -2
- package/template/ios/HelloWorld/main.m +2 -1
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +533 -17
- package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/template/ios/HelloWorld.xcworkspace/contents.xcworkspacedata +10 -0
- package/template/ios/HelloWorld.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/template/ios/HelloWorldTests/HelloWorldTests.m +14 -13
- package/template/ios/HelloWorldTests/Info.plist +2 -2
- package/template/ios/Podfile +54 -20
- package/template/ios/Podfile.lock +809 -0
- package/template/ios/ScreenSharing/Info.plist +15 -0
- package/template/ios/ScreenSharing/SampleHandler.h +9 -0
- package/template/ios/ScreenSharing/SampleHandler.m +70 -0
- package/template/jest.config.js +4 -0
- package/template/metro.config.js +7 -32
- package/template/package.json +53 -39
- package/template/react-native-toast-message/index.d.ts +3 -1
- package/template/react-native-toast-message/index.js +1 -0
- package/template/react-native-toast-message/src/components/base/index.js +20 -32
- package/template/react-native-toast-message/src/components/base/styles.js +18 -21
- package/template/react-native-toast-message/src/components/checkbox.js +24 -19
- package/template/react-native-toast-message/src/index.js +3 -1
- package/template/react-native-toast-message/src/index.sdk.tsx +4 -1
- package/template/src/App.tsx +53 -69
- package/template/src/AppRoutes.tsx +90 -0
- package/template/src/AppWrapper.tsx +42 -25
- package/template/src/SDKAppWrapper.tsx +89 -57
- package/template/src/app-state/useLocalUserInfo.ts +3 -3
- package/template/src/app-state/useNoiseSupression.native.tsx +67 -0
- package/template/src/app-state/useNoiseSupression.tsx +107 -0
- package/template/src/app-state/useVideoQuality.tsx +39 -0
- package/template/src/assets/font-styles.css +175 -3
- package/template/src/assets/fonts/icomoon.ttf +0 -0
- package/template/src/assets/selection.json +1 -1
- package/template/src/atoms/ActionMenu.tsx +50 -11
- package/template/src/atoms/Avatar.tsx +51 -0
- package/template/src/atoms/Card.tsx +21 -8
- package/template/src/atoms/Carousel.native.tsx +105 -0
- package/template/src/atoms/Carousel.tsx +103 -0
- package/template/src/atoms/Checkbox.tsx +98 -0
- package/template/src/atoms/CircularProgress.tsx +0 -1
- package/template/src/atoms/ClipboardIconButton.tsx +91 -0
- package/template/src/atoms/CustomIcon.tsx +46 -0
- package/template/src/atoms/DropDownMulti.tsx +349 -0
- package/template/src/atoms/Dropdown.tsx +3 -3
- package/template/src/atoms/IconButton.tsx +52 -9
- package/template/src/atoms/ImageIcon.tsx +18 -5
- package/template/src/atoms/InlineNotification.tsx +81 -0
- package/template/src/atoms/InviteInfo.tsx +4 -4
- package/template/src/atoms/MeetingLink.tsx +160 -0
- package/template/src/atoms/ParticipantsCount.tsx +20 -8
- package/template/src/atoms/Popup.tsx +49 -27
- package/template/src/atoms/PrimaryButton.tsx +19 -5
- package/template/src/atoms/RecordingInfo.tsx +8 -5
- package/template/src/atoms/SecondaryButton.tsx +2 -0
- package/template/src/atoms/Spacer.tsx +1 -0
- package/template/src/atoms/TertiaryButton.tsx +35 -5
- package/template/src/atoms/TextInput.tsx +2 -1
- package/template/src/atoms/Toolbar.tsx +102 -0
- package/template/src/atoms/ToolbarItem.tsx +85 -0
- package/template/src/atoms/ToolbarMenu.tsx +40 -0
- package/template/src/atoms/ToolbarMenuItem.tsx +104 -0
- package/template/src/atoms/ToolbarPreset.tsx +71 -0
- package/template/src/atoms/Tooltip.tsx +30 -13
- package/template/src/atoms/pagination/Pagination.tsx +127 -0
- package/template/src/atoms/pagination/usePagination.tsx +88 -0
- package/template/src/auth/AuthProvider.tsx +500 -0
- package/template/src/auth/AuthRoute.tsx +94 -0
- package/template/src/auth/IDPAuth.electron.tsx +31 -0
- package/template/src/auth/IDPAuth.tsx +67 -0
- package/template/src/auth/IDPLogoutComponent.tsx +158 -0
- package/template/src/auth/UserCancelPopup.tsx +115 -0
- package/template/src/auth/config.ts +52 -0
- package/template/src/auth/openIDPURL.electron.tsx +39 -0
- package/template/src/auth/openIDPURL.native.tsx +51 -0
- package/template/src/auth/openIDPURL.tsx +20 -0
- package/template/src/auth/useIDPAuth.electron.tsx +65 -0
- package/template/src/auth/useIDPAuth.native.tsx +70 -0
- package/template/src/auth/useIDPAuth.tsx +63 -0
- package/template/src/auth/useTokenAuth.tsx +194 -0
- package/template/src/components/Chat.tsx +92 -72
- package/template/src/components/ChatContext.ts +2 -0
- package/template/src/components/ColorConfigure.tsx +0 -1
- package/template/src/components/CommonStyles.ts +9 -2
- package/template/src/components/Controls.tsx +914 -182
- package/template/src/components/Controls1.native.tsx +9 -5
- package/template/src/components/DeviceConfigure.native.tsx +2 -2
- package/template/src/components/DeviceConfigure.tsx +400 -149
- package/template/src/components/DeviceContext.tsx +2 -0
- package/template/src/components/EventsConfigure.tsx +722 -82
- package/template/src/components/GraphQLProvider.tsx +82 -39
- package/template/src/components/GridVideo.tsx +30 -16
- package/template/src/components/HostControlView.tsx +11 -14
- package/template/src/components/JoinPhrase.tsx +0 -1
- package/template/src/components/Leftbar.tsx +110 -0
- package/template/src/components/Navbar.tsx +305 -147
- package/template/src/components/NavbarMobile.tsx +119 -0
- package/template/src/components/Navigation.native.tsx +1 -15
- package/template/src/components/{Settings.native.tsx → Navigation.sdk.tsx} +17 -6
- package/template/src/components/NetworkQualityContext.tsx +12 -6
- package/template/src/components/ParticipantsView.tsx +63 -56
- package/template/src/components/PinnedVideo.tsx +191 -119
- package/template/src/components/Precall.native.tsx +177 -72
- package/template/src/components/Precall.tsx +247 -78
- package/template/src/components/RTMConfigure.tsx +205 -67
- package/template/src/components/Rightbar.tsx +112 -0
- package/template/src/components/Router.electron.ts +1 -0
- package/template/src/components/Router.native.ts +1 -0
- package/template/src/components/Router.sdk.ts +1 -0
- package/template/src/components/Router.ts +1 -0
- package/template/src/components/SdkApiContext.tsx +313 -0
- package/template/src/components/SdkMuteToggleListener.tsx +88 -0
- package/template/src/components/SessionContext.tsx +0 -1
- package/template/src/components/Settings.tsx +33 -4
- package/template/src/components/SettingsView.tsx +44 -9
- package/template/src/components/Share.tsx +152 -74
- package/template/src/components/StorageContext.tsx +23 -6
- package/template/src/components/ToastComponent.tsx +10 -1
- package/template/src/components/WhiteboardLayout.tsx +291 -0
- package/template/src/components/chat-messages/useChatMessages.tsx +454 -239
- package/template/src/components/chat-ui/{useChatUIControl.tsx → useChatUIControls.tsx} +29 -29
- package/template/src/components/common/Error.tsx +2 -0
- package/template/src/components/common/Logo.tsx +2 -2
- package/template/src/components/contexts/LiveStreamDataContext.tsx +13 -12
- package/template/src/components/contexts/ScreenShareContext.tsx +15 -1
- package/template/src/components/contexts/VideoMeetingDataContext.tsx +6 -6
- package/template/src/components/contexts/WaitingRoomContext.tsx +50 -0
- package/template/src/components/contexts/WhiteboardContext.tsx +54 -54
- package/template/src/components/disable-chat/useDisableChat.tsx +32 -0
- package/template/src/components/livestream/LiveStreamContext.tsx +314 -220
- package/template/src/components/livestream/Types.ts +36 -20
- package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +295 -0
- package/template/src/components/livestream/views/LiveStreamControls.tsx +5 -10
- package/template/src/components/meeting-info-invite/MeetingInfo.tsx +82 -0
- package/template/src/components/meeting-info-invite/MeetingInfoCardHeader.tsx +86 -0
- package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +218 -0
- package/template/src/components/meeting-info-invite/MeetingInfoLinks.tsx +122 -0
- package/template/src/components/participants/AllAudienceParticipants.tsx +19 -20
- package/template/src/components/participants/AllHostParticipants.tsx +20 -19
- package/template/src/components/participants/Participant.tsx +45 -16
- package/template/src/components/participants/ParticipantSectionTitle.tsx +5 -2
- package/template/src/components/participants/ScreenshareParticipants.tsx +17 -19
- package/template/src/components/participants/UserActionMenuOptions.tsx +173 -62
- package/template/src/components/participants/WaitingRoomParticipants.tsx +74 -0
- package/template/src/components/popups/InvitePopup.tsx +110 -45
- package/template/src/components/popups/StartScreenSharePopup.native.tsx +182 -0
- package/template/src/components/popups/StartScreenSharePopup.tsx +6 -0
- package/template/src/components/popups/StopRecordingPopup.tsx +11 -5
- package/template/src/components/popups/StopScreenSharePopup.native.tsx +135 -0
- package/template/src/components/popups/StopScreenSharePopup.tsx +6 -0
- package/template/src/components/popups/WhiteboardClearAllPopup.tsx +123 -0
- package/template/src/components/precall/LocalMute.tsx +69 -45
- package/template/src/components/precall/PermissionHelper.tsx +56 -28
- package/template/src/components/precall/PreCallSettings.tsx +1 -0
- package/template/src/components/precall/VideoFallback.tsx +173 -0
- package/template/src/components/precall/VideoPreview.native.tsx +19 -53
- package/template/src/components/precall/VideoPreview.tsx +29 -164
- package/template/src/components/precall/index.tsx +2 -0
- package/template/src/components/precall/joinCallBtn.native.tsx +12 -5
- package/template/src/components/precall/joinCallBtn.tsx +13 -4
- package/template/src/components/precall/joinWaitingRoomBtn.native.tsx +210 -0
- package/template/src/components/precall/joinWaitingRoomBtn.tsx +250 -0
- package/template/src/components/precall/meetingTitle.tsx +37 -11
- package/template/src/components/precall/selectDevice.tsx +5 -5
- package/template/src/components/precall/textInput.tsx +17 -19
- package/template/src/components/precall/usePreCall.tsx +33 -1
- package/template/src/components/recording-bot/RecordingBotRoute.tsx +42 -0
- package/template/src/components/recordings/RecordingsDateTable.tsx +62 -0
- package/template/src/components/recordings/RecordingsModal.tsx +135 -0
- package/template/src/components/recordings/ViewRecordingsModal.tsx +51 -0
- package/template/src/components/recordings/recording-table.tsx +154 -0
- package/template/src/components/recordings/style.ts +183 -0
- package/template/src/components/recordings/utils.ts +80 -0
- package/template/src/components/room-info/useRoomInfo.tsx +128 -0
- package/template/src/components/{meeting-info/useSetMeetingInfo.tsx → room-info/useSetRoomInfo.tsx} +12 -12
- package/template/src/components/useShareLink.tsx +28 -63
- package/template/src/components/useUserPreference.tsx +82 -16
- package/template/src/components/useVideoCall.tsx +93 -1
- package/template/src/components/virtual-background/VBButton.tsx +64 -0
- package/template/src/components/virtual-background/VBCard.native.tsx +282 -0
- package/template/src/components/virtual-background/VBCard.tsx +272 -0
- package/template/src/components/virtual-background/VBPanel.tsx +279 -0
- package/template/src/components/virtual-background/VButils.native.ts +37 -0
- package/template/src/components/virtual-background/VButils.ts +104 -0
- package/template/src/components/virtual-background/VideoPreview.native.tsx +43 -0
- package/template/src/components/virtual-background/VideoPreview.tsx +106 -0
- package/template/src/components/virtual-background/imagePaths.ts +87 -0
- package/template/src/components/virtual-background/images/beachImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/bedroomImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/bookImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/earthImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/index.ts +37 -0
- package/template/src/components/virtual-background/images/lampImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/mountainsImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/office1ImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/officeImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/plantsImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/skyImageBase64.ts +1 -0
- package/template/src/components/virtual-background/images/wallImageBase64.ts +1 -0
- package/template/src/components/virtual-background/useVB.native.tsx +185 -0
- package/template/src/components/virtual-background/useVB.tsx +267 -0
- package/template/src/components/whiteboard/StrokeWidthTool.tsx +137 -0
- package/template/src/components/whiteboard/WhiteboardButton.tsx +93 -0
- package/template/src/components/whiteboard/WhiteboardCanvas.tsx +99 -0
- package/template/src/components/whiteboard/WhiteboardConfigure.native.tsx +148 -0
- package/template/src/components/whiteboard/WhiteboardConfigure.tsx +446 -0
- package/template/src/components/whiteboard/WhiteboardCursor.tsx +152 -0
- package/template/src/components/whiteboard/WhiteboardToolBox.tsx +1246 -0
- package/template/src/components/whiteboard/WhiteboardView.native.tsx +188 -0
- package/template/src/components/whiteboard/WhiteboardView.tsx +81 -0
- package/template/src/components/whiteboard/WhiteboardWidget.tsx +685 -0
- package/template/src/components/whiteboard/WhiteboardWrapper.tsx +38 -0
- package/template/src/language/default-labels/commonLabels.ts +51 -14
- package/template/src/language/default-labels/createScreenLabels.ts +97 -17
- package/template/src/language/default-labels/joinScreenLabels.ts +45 -6
- package/template/src/language/default-labels/precallScreenLabels.ts +149 -25
- package/template/src/language/default-labels/shareLinkScreenLabels.ts +85 -37
- package/template/src/language/default-labels/videoCallScreenLabels.ts +1195 -158
- package/template/src/pages/Create.tsx +136 -106
- package/template/src/pages/Endcall.tsx +2 -2
- package/template/src/pages/Join.tsx +82 -40
- package/template/src/pages/Login.tsx +26 -0
- package/template/src/pages/VideoCall.tsx +329 -127
- package/template/src/pages/video-call/ActionSheet.native.tsx +54 -6
- package/template/src/pages/video-call/ActionSheet.tsx +55 -15
- package/template/src/pages/video-call/ActionSheetContent.tsx +498 -308
- package/template/src/pages/video-call/ActionSheetHandle.tsx +7 -1
- package/template/src/pages/video-call/DefaultLayouts.ts +20 -8
- package/template/src/pages/video-call/NameWithMicIcon.tsx +41 -64
- package/template/src/pages/video-call/PinchableView.tsx +119 -0
- package/template/src/pages/video-call/RenderComponent.tsx +14 -30
- package/template/src/pages/video-call/SidePanelHeader.tsx +227 -29
- package/template/src/pages/video-call/VideoCallMobileView.tsx +231 -89
- package/template/src/pages/video-call/VideoCallScreen.native.tsx +3 -2
- package/template/src/pages/video-call/VideoCallScreen.tsx +233 -84
- package/template/src/pages/video-call/VideoCallScreenWrapper.tsx +41 -0
- package/template/src/pages/video-call/VideoComponent.tsx +60 -8
- package/template/src/pages/video-call/VideoRenderer.tsx +343 -57
- package/template/src/pages/video-call/VisibilitySensor.tsx +104 -0
- package/template/src/pages/video-call/ZoomableWrapper.native.tsx +34 -0
- package/template/src/pages/video-call/ZoomableWrapper.tsx +5 -0
- package/template/src/pages/video-call/index.ts +42 -8
- package/template/src/rtm/RTMEngine.ts +17 -4
- package/template/src/rtm-events/constants.ts +21 -3
- package/template/src/rtm-events-api/Events.ts +7 -4
- package/template/src/rtm-events-api/LocalEvents.ts +14 -0
- package/template/src/rtm-events-api/types.ts +5 -5
- package/template/src/selection.json +1 -0
- package/template/src/subComponents/ChatBubble.tsx +87 -67
- package/template/src/subComponents/ChatContainer.tsx +70 -49
- package/template/src/subComponents/ChatInput.ios.tsx +32 -85
- package/template/src/subComponents/ChatInput.tsx +31 -80
- package/template/src/subComponents/Checkbox.native.tsx +46 -46
- package/template/src/subComponents/Checkbox.tsx +7 -6
- package/template/src/subComponents/CopyJoinInfo.tsx +31 -11
- package/template/src/subComponents/EndcallPopup.tsx +83 -12
- package/template/src/subComponents/FallbackLogo.tsx +2 -2
- package/template/src/subComponents/LanguageSelector.tsx +34 -30
- package/template/src/subComponents/LayoutIconButton.tsx +34 -17
- package/template/src/subComponents/LayoutIconDropdown.tsx +21 -8
- package/template/src/subComponents/Loading.tsx +60 -0
- package/template/src/subComponents/LocalAudioMute.tsx +87 -34
- package/template/src/subComponents/LocalEndCall.tsx +61 -24
- package/template/src/subComponents/LocalSwitchCamera.tsx +57 -13
- package/template/src/subComponents/LocalVideoMute.tsx +105 -36
- package/template/src/subComponents/LogoutButton.tsx +1 -1
- package/template/src/subComponents/NetworkQualityPill.tsx +22 -38
- package/template/src/subComponents/Recording.tsx +29 -9
- package/template/src/subComponents/RemoteAudioMute.tsx +5 -5
- package/template/src/subComponents/RemoteMutePopup.tsx +55 -14
- package/template/src/subComponents/RemoteVideoMute.tsx +5 -5
- package/template/src/subComponents/RemoveMeetingPopup.tsx +19 -6
- package/template/src/subComponents/RemoveScreensharePopup.tsx +20 -5
- package/template/src/subComponents/ScreenShareNotice.tsx +11 -6
- package/template/src/subComponents/SelectDevice.tsx +103 -34
- package/template/src/subComponents/SelectDeviceSettings.backup.tsx +9 -6
- package/template/src/subComponents/SidePanelButtons.ts +0 -3
- package/template/src/subComponents/SidePanelEnum.tsx +2 -0
- package/template/src/subComponents/SidePanelHeader.tsx +97 -63
- package/template/src/subComponents/ToastConfig.tsx +70 -61
- package/template/src/subComponents/caption/Caption.tsx +132 -0
- package/template/src/subComponents/caption/CaptionContainer.tsx +302 -0
- package/template/src/subComponents/caption/CaptionIcon.tsx +111 -0
- package/template/src/subComponents/caption/CaptionText.tsx +182 -0
- package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +65 -0
- package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +192 -0
- package/template/src/subComponents/caption/Transcript.tsx +452 -0
- package/template/src/subComponents/caption/TranscriptIcon.tsx +123 -0
- package/template/src/subComponents/caption/TranscriptText.tsx +98 -0
- package/template/src/subComponents/caption/index.ts +3 -0
- package/template/src/subComponents/caption/proto/ptoto.js +91 -0
- package/template/src/subComponents/caption/proto/test.proto +23 -0
- package/template/src/subComponents/caption/useCaption.tsx +123 -0
- package/template/src/subComponents/caption/useCaptionWidth.ts +27 -0
- package/template/src/subComponents/caption/useSTTAPI.tsx +179 -0
- package/template/src/subComponents/caption/useStreamMessageUtils.native.ts +211 -0
- package/template/src/subComponents/caption/useStreamMessageUtils.ts +235 -0
- package/template/src/subComponents/caption/useTranscriptDownload.native.ts +63 -0
- package/template/src/subComponents/caption/useTranscriptDownload.ts +52 -0
- package/template/src/subComponents/caption/utils.ts +126 -0
- package/template/src/subComponents/chat/ChatParticipants.tsx +60 -24
- package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +2 -2
- package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +19 -20
- package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +66 -35
- package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +3 -2
- package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +10 -6
- package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +28 -19
- package/template/src/subComponents/recording/useIsRecordingBot.tsx +38 -0
- package/template/src/subComponents/recording/useRecording.tsx +251 -138
- package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +0 -1
- package/template/src/subComponents/screenshare/ScreenshareButton.tsx +39 -15
- package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +275 -69
- package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +193 -124
- package/template/src/subComponents/screenshare/useScreenshare.tsx +2 -0
- package/template/src/subComponents/waiting-rooms/WaitingRoomControls.tsx +85 -0
- package/template/src/subComponents/waiting-rooms/useWaitingRoomAPI.ts +75 -0
- package/template/src/theme/index.ts +13 -0
- package/template/src/utils/SdkEvents.ts +37 -14
- package/template/src/utils/SdkMethodEvents.ts +101 -0
- package/template/src/utils/axiomLogger.ts +117 -0
- package/template/src/utils/book.jpg +0 -0
- package/template/src/utils/common.tsx +118 -6
- package/template/src/utils/constants.ts +4 -0
- package/template/src/utils/getCustomRoute.ts +7 -0
- package/template/src/utils/index.tsx +34 -0
- package/template/src/utils/useActionSheet.tsx +50 -0
- package/template/src/utils/useActiveSpeaker.ts +38 -0
- package/template/src/utils/useAppState.ts +17 -0
- package/template/src/utils/useAsyncEffect.ts +138 -0
- package/template/src/utils/{useCreateMeeting.ts → useCreateRoom.ts} +27 -26
- package/template/src/utils/useEndCall.ts +65 -0
- package/template/src/utils/useFindActiveSpeaker.native.ts +4 -0
- package/template/src/utils/useFindActiveSpeaker.ts +335 -0
- package/template/src/utils/useGetMeetingPhrase.ts +10 -10
- package/template/src/utils/useIsAudioEnabled.ts +3 -3
- package/template/src/utils/useIsLocalUserSpeaking.native.ts +4 -0
- package/template/src/utils/useIsLocalUserSpeaking.ts +103 -0
- package/template/src/utils/useIsPSTN.ts +3 -3
- package/template/src/utils/useIsVideoEnabled.ts +3 -3
- package/template/src/utils/useJoinRoom.ts +199 -0
- package/template/src/utils/{useIsActiveSpeaker.ts → useLocalAudio.ts} +23 -12
- package/template/src/{components/OAuth.tsx → utils/useMenu.tsx} +16 -15
- package/template/src/utils/useModal.tsx +8 -0
- package/template/src/utils/useMutePSTN.ts +2 -2
- package/template/src/utils/useMuteToggleLocal.ts +121 -96
- package/template/src/utils/useRemoteEndCall.ts +4 -4
- package/template/src/utils/useRemoteEndScreenshare.ts +4 -4
- package/template/src/utils/useRemoteMute.ts +7 -7
- package/template/src/utils/useRemoteRequest.ts +7 -7
- package/template/src/utils/useSearchParams.tsx +18 -0
- package/template/src/utils/useString.ts +13 -3
- package/template/src/utils/useSwitchCamera.native.tsx +25 -0
- package/template/src/{subComponents/screenshare/ScreenshareButton.native.tsx → utils/useSwitchCamera.tsx} +12 -11
- package/template/src/utils/useToolbar.tsx +59 -0
- package/template/src/wasms/agora-virtual-background.wasm +0 -0
- package/template/static.d.ts +42 -0
- package/template/tsconfig_rsdk_index.json +3 -3
- package/template/tsconfig_wsdk_index.json +1 -1
- package/template/web/index.html +20 -0
- package/template/webpack.commons.js +21 -10
- package/template/webpack.rsdk.config.js +1 -2
- package/template/webpack.web.config.js +7 -3
- package/template/_buckconfig +0 -6
- package/template/_gitattributes +0 -1
- package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +0 -10
- package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
- package/template/android/app/_BUCK +0 -55
- package/template/android/app/build_defs.bzl +0 -19
- package/template/bridge/rtc/webNg/LocalView.tsx +0 -20
- package/template/ios/HelloWorld/AppDelegate.m +0 -74
- package/template/src/components/OAuth.electron.tsx +0 -41
- package/template/src/components/OAuth.native.tsx +0 -55
- package/template/src/components/OAuthConfig.ts +0 -77
- package/template/src/components/StoreToken.tsx +0 -39
- package/template/src/components/meeting-info/useMeetingInfo.tsx +0 -70
- package/template/src/pages/video-call/CustomUserContextHolder.tsx +0 -20
- package/template/src/utils/useButtonTemplate.tsx +0 -44
- package/template/src/utils/useJoinMeeting.ts +0 -132
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// "files":["./customization-api/index.ts","./global.d.ts","./bridge/rtm/web/index.ts","./bridge/rtc/webNg/index.ts"],
|
|
5
5
|
// --------------------------------------------------------
|
|
6
6
|
// Use with typescript tsc command
|
|
7
|
-
"files": ["./
|
|
7
|
+
"files": ["./index.rsdk.tsx", "./global.d.ts"],
|
|
8
8
|
// --------------------------------------------------------
|
|
9
9
|
"compilerOptions": {
|
|
10
10
|
/* Basic Options */
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
|
|
48
48
|
|
|
49
49
|
/* Module Resolution Options */
|
|
50
|
-
|
|
51
|
-
"noResolve":
|
|
50
|
+
"moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
|
|
51
|
+
"noResolve": false /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
|
|
52
52
|
"baseUrl": "./" /* Base directory to resolve non-absolute module names. */,
|
|
53
53
|
"resolveJsonModule": true,
|
|
54
54
|
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// "files":["./customization-api/index.ts","./global.d.ts","./bridge/rtm/web/index.ts","./bridge/rtc/webNg/index.ts"],
|
|
5
5
|
// --------------------------------------------------------
|
|
6
6
|
// Use with typescript tsc command
|
|
7
|
-
"files": ["./
|
|
7
|
+
"files": ["./index.wsdk.tsx", "./global.d.ts"],
|
|
8
8
|
// --------------------------------------------------------
|
|
9
9
|
"compilerOptions": {
|
|
10
10
|
/* Basic Options */
|
package/template/web/index.html
CHANGED
|
@@ -27,6 +27,26 @@
|
|
|
27
27
|
/* *:active {
|
|
28
28
|
outline: none;
|
|
29
29
|
} */
|
|
30
|
+
/* Webkit (Chrome, Safari) */
|
|
31
|
+
::-webkit-scrollbar {
|
|
32
|
+
width: 4px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
::-webkit-scrollbar-track {
|
|
36
|
+
background-color: transparent;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
::-webkit-scrollbar-thumb {
|
|
40
|
+
background-color: #777;
|
|
41
|
+
border-radius: 2px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Firefox */
|
|
45
|
+
html {
|
|
46
|
+
scrollbar-width: thin;
|
|
47
|
+
scrollbar-color: transparent #777;
|
|
48
|
+
}
|
|
49
|
+
|
|
30
50
|
</style>
|
|
31
51
|
<div id="react-app" style="
|
|
32
52
|
height: 100vh;
|
|
@@ -34,15 +34,15 @@ module.exports = {
|
|
|
34
34
|
plugins: [
|
|
35
35
|
// Using html webpack plugin to utilize our index.html
|
|
36
36
|
!isSdk &&
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
new HtmlWebpackPlugin({
|
|
38
|
+
title: configVars['$config.APP_NAME'],
|
|
39
|
+
template: isElectron ? 'electron/index.html' : 'web/index.html',
|
|
40
|
+
}),
|
|
41
41
|
isDevelopment &&
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
!isSdk &&
|
|
43
|
+
new ReactRefreshWebpackPlugin({
|
|
44
|
+
overlay: false,
|
|
45
|
+
}),
|
|
46
46
|
].filter(Boolean),
|
|
47
47
|
resolve: {
|
|
48
48
|
alias: {
|
|
@@ -141,9 +141,20 @@ module.exports = {
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
test: /\.css$/i,
|
|
144
|
-
use: [
|
|
144
|
+
use: ['style-loader', 'css-loader'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
test: /\.(wasm)$/i,
|
|
148
|
+
use: [
|
|
149
|
+
{
|
|
150
|
+
loader: 'file-loader',
|
|
151
|
+
options: {
|
|
152
|
+
outputPath: 'wasm',
|
|
153
|
+
name: '[name].[ext]',
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
],
|
|
145
157
|
},
|
|
146
|
-
|
|
147
158
|
],
|
|
148
159
|
},
|
|
149
160
|
};
|
|
@@ -17,13 +17,12 @@ module.exports = merge(commons, {
|
|
|
17
17
|
'react-router': 'react-router',
|
|
18
18
|
'react-router-dom': 'react-router-dom',
|
|
19
19
|
'@apollo/client': '@apollo/client',
|
|
20
|
-
nanoid: 'nanoid',
|
|
21
20
|
},
|
|
22
21
|
// Main entry point for the web application
|
|
23
22
|
entry: {
|
|
24
23
|
main: './index.rsdk.tsx',
|
|
25
24
|
},
|
|
26
|
-
target: '
|
|
25
|
+
target: 'web',
|
|
27
26
|
output: {
|
|
28
27
|
path: path.resolve(__dirname, `../Builds/react-sdk`),
|
|
29
28
|
filename: 'index.js',
|
|
@@ -31,8 +31,12 @@ module.exports = merge(commons, {
|
|
|
31
31
|
// https: true,
|
|
32
32
|
historyApiFallback: true, // Support for react-router
|
|
33
33
|
static: './', // same as contentBase from webpack v4 config
|
|
34
|
-
client:{
|
|
35
|
-
overlay: false
|
|
36
|
-
}
|
|
34
|
+
client: {
|
|
35
|
+
overlay: false,
|
|
36
|
+
},
|
|
37
|
+
headers: {
|
|
38
|
+
'Access-Control-Allow-Origin': '*',
|
|
39
|
+
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
|
|
40
|
+
},
|
|
37
41
|
},
|
|
38
42
|
});
|
package/template/_buckconfig
DELETED
package/template/_gitattributes
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*.pbxproj -text
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {RenderStateInterface} from './RtcContext';
|
|
3
|
-
|
|
4
|
-
const RenderContext = React.createContext<RenderStateInterface>(
|
|
5
|
-
{} as RenderStateInterface,
|
|
6
|
-
);
|
|
7
|
-
|
|
8
|
-
export const RenderProvider = RenderContext.Provider;
|
|
9
|
-
export const RenderConsumer = RenderContext.Consumer;
|
|
10
|
-
export default RenderContext;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import {ActionType, RenderStateInterface} from '../Contexts/RtcContext';
|
|
2
|
-
|
|
3
|
-
export default function ActiveSpeakerDetected(
|
|
4
|
-
state: RenderStateInterface,
|
|
5
|
-
action: ActionType<'ActiveSpeakerDetected'>,
|
|
6
|
-
) {
|
|
7
|
-
return {
|
|
8
|
-
...state,
|
|
9
|
-
activeSpeaker: action?.value && action.value?.length ? action.value[0] : '',
|
|
10
|
-
};
|
|
11
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# To learn about Buck see [Docs](https://buckbuild.com/).
|
|
2
|
-
# To run your application with Buck:
|
|
3
|
-
# - install Buck
|
|
4
|
-
# - `npm start` - to start the packager
|
|
5
|
-
# - `cd android`
|
|
6
|
-
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
|
|
7
|
-
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
|
|
8
|
-
# - `buck install -r android/app` - compile, install and run application
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
|
|
12
|
-
|
|
13
|
-
lib_deps = []
|
|
14
|
-
|
|
15
|
-
create_aar_targets(glob(["libs/*.aar"]))
|
|
16
|
-
|
|
17
|
-
create_jar_targets(glob(["libs/*.jar"]))
|
|
18
|
-
|
|
19
|
-
android_library(
|
|
20
|
-
name = "all-libs",
|
|
21
|
-
exported_deps = lib_deps,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
android_library(
|
|
25
|
-
name = "app-code",
|
|
26
|
-
srcs = glob([
|
|
27
|
-
"src/main/java/**/*.java",
|
|
28
|
-
]),
|
|
29
|
-
deps = [
|
|
30
|
-
":all-libs",
|
|
31
|
-
":build_config",
|
|
32
|
-
":res",
|
|
33
|
-
],
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
android_build_config(
|
|
37
|
-
name = "build_config",
|
|
38
|
-
package = "com.helloworld",
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
android_resource(
|
|
42
|
-
name = "res",
|
|
43
|
-
package = "com.helloworld",
|
|
44
|
-
res = "src/main/res",
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
android_binary(
|
|
48
|
-
name = "app",
|
|
49
|
-
keystore = "//android/keystores:debug",
|
|
50
|
-
manifest = "src/main/AndroidManifest.xml",
|
|
51
|
-
package_type = "debug",
|
|
52
|
-
deps = [
|
|
53
|
-
":app-code",
|
|
54
|
-
],
|
|
55
|
-
)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"""Helper definitions to glob .aar and .jar targets"""
|
|
2
|
-
|
|
3
|
-
def create_aar_targets(aarfiles):
|
|
4
|
-
for aarfile in aarfiles:
|
|
5
|
-
name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
|
|
6
|
-
lib_deps.append(":" + name)
|
|
7
|
-
android_prebuilt_aar(
|
|
8
|
-
name = name,
|
|
9
|
-
aar = aarfile,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
def create_jar_targets(jarfiles):
|
|
13
|
-
for jarfile in jarfiles:
|
|
14
|
-
name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
|
|
15
|
-
lib_deps.append(":" + name)
|
|
16
|
-
prebuilt_jar(
|
|
17
|
-
name = name,
|
|
18
|
-
binary_jar = jarfile,
|
|
19
|
-
)
|
|
@@ -1,20 +0,0 @@
|
|
|
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 React from 'react';
|
|
13
|
-
import SurfaceView, {RtcSurfaceViewProps, StyleProps} from './SurfaceView';
|
|
14
|
-
|
|
15
|
-
interface LocalViewInterface extends RtcSurfaceViewProps, StyleProps {}
|
|
16
|
-
|
|
17
|
-
export default function LocalView(props: LocalViewInterface) {
|
|
18
|
-
// console.log('LocalView props: ', props);
|
|
19
|
-
return <SurfaceView uid={0} {...props} />;
|
|
20
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
#import "AppDelegate.h"
|
|
2
|
-
|
|
3
|
-
#import <React/RCTBridge.h>
|
|
4
|
-
#import <React/RCTBundleURLProvider.h>
|
|
5
|
-
#import <React/RCTRootView.h>
|
|
6
|
-
#import <React/RCTLinkingManager.h>
|
|
7
|
-
|
|
8
|
-
#ifdef FB_SONARKIT_ENABLED
|
|
9
|
-
#import <FlipperKit/FlipperClient.h>
|
|
10
|
-
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
|
|
11
|
-
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
|
|
12
|
-
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
|
|
13
|
-
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
|
|
14
|
-
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
|
|
15
|
-
|
|
16
|
-
static void InitializeFlipper(UIApplication *application) {
|
|
17
|
-
FlipperClient *client = [FlipperClient sharedClient];
|
|
18
|
-
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
|
|
19
|
-
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
|
|
20
|
-
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
|
|
21
|
-
[client addPlugin:[FlipperKitReactPlugin new]];
|
|
22
|
-
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
|
|
23
|
-
[client start];
|
|
24
|
-
}
|
|
25
|
-
#endif
|
|
26
|
-
|
|
27
|
-
@implementation AppDelegate
|
|
28
|
-
|
|
29
|
-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
|
30
|
-
{
|
|
31
|
-
#ifdef FB_SONARKIT_ENABLED
|
|
32
|
-
InitializeFlipper(application);
|
|
33
|
-
#endif
|
|
34
|
-
|
|
35
|
-
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
|
|
36
|
-
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
|
|
37
|
-
moduleName:@"HelloWorld"
|
|
38
|
-
initialProperties:nil];
|
|
39
|
-
|
|
40
|
-
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
|
|
41
|
-
|
|
42
|
-
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
|
43
|
-
UIViewController *rootViewController = [UIViewController new];
|
|
44
|
-
rootViewController.view = rootView;
|
|
45
|
-
self.window.rootViewController = rootViewController;
|
|
46
|
-
[self.window makeKeyAndVisible];
|
|
47
|
-
return YES;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
|
|
51
|
-
{
|
|
52
|
-
#if DEBUG
|
|
53
|
-
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
|
|
54
|
-
#else
|
|
55
|
-
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
|
|
56
|
-
#endif
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
- (BOOL)application:(UIApplication *)application
|
|
60
|
-
openURL:(NSURL *)url
|
|
61
|
-
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
|
|
62
|
-
{
|
|
63
|
-
return [RCTLinkingManager application:application openURL:url options:options];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity
|
|
67
|
-
restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
|
|
68
|
-
{
|
|
69
|
-
return [RCTLinkingManager application:application
|
|
70
|
-
continueUserActivity:userActivity
|
|
71
|
-
restorationHandler:restorationHandler];
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@end
|
|
@@ -1,41 +0,0 @@
|
|
|
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 React from 'react';
|
|
13
|
-
import {useHistory} from './Router';
|
|
14
|
-
import SelectOAuth from '../subComponents/SelectOAuth';
|
|
15
|
-
import {url, oAuthSystemType} from './OAuthConfig';
|
|
16
|
-
|
|
17
|
-
const Oauth = () => {
|
|
18
|
-
const history = useHistory();
|
|
19
|
-
const onSelectOAuthSystem = ({
|
|
20
|
-
oAuthSystem,
|
|
21
|
-
}: {
|
|
22
|
-
oAuthSystem: oAuthSystemType;
|
|
23
|
-
}) => {
|
|
24
|
-
console.log('electron OAuth');
|
|
25
|
-
const oAuthUrl = url({platform: 'desktop'})[`${oAuthSystem}Url`];
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
window.addEventListener(
|
|
28
|
-
'message',
|
|
29
|
-
({data, origin}: {data: {token: string}; origin: string}) => {
|
|
30
|
-
if (data.token) {
|
|
31
|
-
console.log(data, origin);
|
|
32
|
-
history.push(`/auth-token/${data.token}`);
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
false,
|
|
36
|
-
);
|
|
37
|
-
window.open(oAuthUrl, 'modal');
|
|
38
|
-
};
|
|
39
|
-
return <SelectOAuth onSelectOAuth={onSelectOAuthSystem} />;
|
|
40
|
-
};
|
|
41
|
-
export default Oauth;
|
|
@@ -1,55 +0,0 @@
|
|
|
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 React from 'react';
|
|
13
|
-
import {Linking} from 'react-native';
|
|
14
|
-
import InAppBrowser from 'react-native-inappbrowser-reborn';
|
|
15
|
-
import {useHistory} from './Router';
|
|
16
|
-
import SelectOAuth from '../subComponents/SelectOAuth';
|
|
17
|
-
|
|
18
|
-
import {url, oAuthSystemType} from './OAuthConfig';
|
|
19
|
-
|
|
20
|
-
const processUrl = (url: string): string => {
|
|
21
|
-
return url
|
|
22
|
-
.replace(`${$config.PRODUCT_ID.toLowerCase()}://my-host`, '')
|
|
23
|
-
.replace($config.FRONTEND_ENDPOINT, '');
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const Oauth = () => {
|
|
27
|
-
let history = useHistory();
|
|
28
|
-
|
|
29
|
-
const onSelectOAuthSystem = async ({
|
|
30
|
-
oAuthSystem,
|
|
31
|
-
}: {
|
|
32
|
-
oAuthSystem: oAuthSystemType;
|
|
33
|
-
}) => {
|
|
34
|
-
try {
|
|
35
|
-
// const url = `https://deep-link-tester.netlify.app`;
|
|
36
|
-
const oAuthUrl = url({platform: 'mobile'})[`${oAuthSystem}Url`];
|
|
37
|
-
if (await InAppBrowser.isAvailable()) {
|
|
38
|
-
const result = await InAppBrowser.openAuth(oAuthUrl, oAuthUrl);
|
|
39
|
-
console.log(JSON.stringify(result));
|
|
40
|
-
if (result.type === 'success') {
|
|
41
|
-
console.log('success', Linking.canOpenURL(result.url));
|
|
42
|
-
history.push(processUrl(result.url));
|
|
43
|
-
}
|
|
44
|
-
} else {
|
|
45
|
-
Linking.openURL(oAuthUrl);
|
|
46
|
-
}
|
|
47
|
-
} catch (error) {
|
|
48
|
-
console.log(error.message);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
return <SelectOAuth onSelectOAuth={onSelectOAuthSystem} />;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
export default Oauth;
|
|
@@ -1,77 +0,0 @@
|
|
|
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
|
-
export type oAuthSystemType = 'google' | 'microsoft' | 'slack' | 'apple';
|
|
13
|
-
type platformType = 'web' | 'mobile' | 'desktop';
|
|
14
|
-
type oAuthUrlType = {
|
|
15
|
-
googleUrl: string;
|
|
16
|
-
microsoftUrl: string;
|
|
17
|
-
slackUrl: string;
|
|
18
|
-
appleUrl: string;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const getRedirectFrontEndUrl = ({ platform}: {platform: platformType}) => platform === 'web' ? `${window.location.origin}`: `${$config.BACKEND_ENDPOINT}`
|
|
22
|
-
|
|
23
|
-
export const oAuthGoogle = ({platform}: {platform: platformType}) => ({
|
|
24
|
-
client_id: $config.GOOGLE_CLIENT_ID,
|
|
25
|
-
auth_uri: 'https://accounts.google.com/o/oauth2/auth',
|
|
26
|
-
redirect_uri: `${$config.BACKEND_ENDPOINT}/oauth`,
|
|
27
|
-
scope: encodeURIComponent(
|
|
28
|
-
'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
|
|
29
|
-
),
|
|
30
|
-
state: encodeURIComponent(
|
|
31
|
-
`site=google&platform=${platform}&backend=${$config.BACKEND_ENDPOINT}&redirect=${getRedirectFrontEndUrl({platform})}/auth-token/`,
|
|
32
|
-
),
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export const oAuthMicrosoft = ({platform}: {platform: platformType}) => ({
|
|
36
|
-
client_id: $config.MICROSOFT_CLIENT_ID,
|
|
37
|
-
auth_uri: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
|
|
38
|
-
redirect_uri: `${$config.BACKEND_ENDPOINT}/oauth`,
|
|
39
|
-
scope: 'openid',
|
|
40
|
-
state: encodeURIComponent(
|
|
41
|
-
`site=microsoft&platform=${platform}&redirect=${getRedirectFrontEndUrl({platform})}/auth-token/&backend=${$config.BACKEND_ENDPOINT}`,
|
|
42
|
-
),
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
export const oAuthSlack = ({platform}: {platform: platformType}) => ({
|
|
46
|
-
client_id: $config.SLACK_CLIENT_ID,
|
|
47
|
-
auth_uri: 'https://slack.com/oauth/authorize',
|
|
48
|
-
redirect_uri: `${$config.BACKEND_ENDPOINT}/oauth`,
|
|
49
|
-
scope: 'users.profile:read',
|
|
50
|
-
state: encodeURIComponent(
|
|
51
|
-
`site=slack&platform=${platform}&redirect=${getRedirectFrontEndUrl({platform})}/auth-token/&backend=${$config.BACKEND_ENDPOINT}`,
|
|
52
|
-
),
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
export const oAuthApple = ({platform}: {platform: platformType}) => ({
|
|
56
|
-
client_id: $config.APPLE_CLIENT_ID,
|
|
57
|
-
auth_uri: 'https://appleid.apple.com/auth/authorize',
|
|
58
|
-
redirect_uri: `${$config.BACKEND_ENDPOINT}/oauth`,
|
|
59
|
-
scope: 'name email',
|
|
60
|
-
state: encodeURIComponent(
|
|
61
|
-
`site=apple&platform=${platform}&redirect=${getRedirectFrontEndUrl({platform})}/auth-token/&backend=${$config.BACKEND_ENDPOINT}`,
|
|
62
|
-
),
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
export const url = ({platform}: {platform: platformType}): oAuthUrlType => {
|
|
67
|
-
const configGoogle = oAuthGoogle({platform});
|
|
68
|
-
const configMicrosoft = oAuthMicrosoft({platform});
|
|
69
|
-
const configSlack = oAuthSlack({platform});
|
|
70
|
-
const configApple = oAuthApple({platform});
|
|
71
|
-
return {
|
|
72
|
-
googleUrl: `${configGoogle.auth_uri}?response_type=code&scope=${configGoogle.scope}&include_granted_scopes=true&state=${configGoogle.state}&client_id=${configGoogle.client_id}&redirect_uri=${configGoogle.redirect_uri}`,
|
|
73
|
-
microsoftUrl: `${configMicrosoft.auth_uri}?response_type=code&scope=${configMicrosoft.scope}&include_granted_scopes=true&state=${configMicrosoft.state}&client_id=${configMicrosoft.client_id}&redirect_uri=${configMicrosoft.redirect_uri}`,
|
|
74
|
-
slackUrl: `${configSlack.auth_uri}?response_type=code&scope=${configSlack.scope}&include_granted_scopes=true&state=${configSlack.state}&client_id=${configSlack.client_id}&redirect_uri=${configSlack.redirect_uri}`,
|
|
75
|
-
appleUrl: `${configApple.auth_uri}?response_type=code&scope=${configApple.scope}&include_granted_scopes=true&state=${configApple.state}&response_mode=form_post&client_id=${configApple.client_id}&redirect_uri=${configApple.redirect_uri}`,
|
|
76
|
-
};
|
|
77
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
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 React, {useContext, useState} from 'react';
|
|
13
|
-
import {Redirect, useParams} from './Router';
|
|
14
|
-
import StorageContext from './StorageContext';
|
|
15
|
-
import {Text} from 'react-native';
|
|
16
|
-
import useMount from './useMount';
|
|
17
|
-
import {useString} from '../utils/useString';
|
|
18
|
-
|
|
19
|
-
const Authenticated = () => {
|
|
20
|
-
//commented for v1 release
|
|
21
|
-
//const authenticationSuccessLabel = useString('authenticationSuccessLabel')();
|
|
22
|
-
const authenticationSuccessLabel = 'Authenticated Successfully!';
|
|
23
|
-
return <Text> {authenticationSuccessLabel} </Text>;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const StoreToken = () => {
|
|
27
|
-
const [ready, setReady] = useState(false);
|
|
28
|
-
const {token}: {token: string} = useParams();
|
|
29
|
-
const {setStore} = useContext(StorageContext);
|
|
30
|
-
console.log('store token api', token);
|
|
31
|
-
|
|
32
|
-
useMount(() => {
|
|
33
|
-
setStore && setStore((store) => ({...store, token}));
|
|
34
|
-
setReady(true);
|
|
35
|
-
});
|
|
36
|
-
return ready ? <Redirect to={'/'} /> : <Authenticated />;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export default StoreToken;
|
|
@@ -1,70 +0,0 @@
|
|
|
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 React, {createContext} from 'react';
|
|
13
|
-
import {createHook} from 'customization-implementation';
|
|
14
|
-
import {UidType} from '../../../agora-rn-uikit';
|
|
15
|
-
export interface MeetingInfoContextInterface {
|
|
16
|
-
isJoinDataFetched?: boolean;
|
|
17
|
-
data?: {
|
|
18
|
-
isHost: boolean;
|
|
19
|
-
meetingTitle: string;
|
|
20
|
-
roomId: {
|
|
21
|
-
attendee: string;
|
|
22
|
-
host?: string;
|
|
23
|
-
};
|
|
24
|
-
pstn?: {
|
|
25
|
-
number: string;
|
|
26
|
-
pin: string;
|
|
27
|
-
};
|
|
28
|
-
isSeparateHostLink: boolean;
|
|
29
|
-
channel?: string;
|
|
30
|
-
uid?: UidType;
|
|
31
|
-
token?: string;
|
|
32
|
-
rtmToken?: string;
|
|
33
|
-
encryptionSecret?: string;
|
|
34
|
-
screenShareUid?: string;
|
|
35
|
-
screenShareToken?: string;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const MeetingInfoDefaultValue: MeetingInfoContextInterface = {
|
|
40
|
-
isJoinDataFetched: false,
|
|
41
|
-
data: {
|
|
42
|
-
isHost: false,
|
|
43
|
-
meetingTitle: '',
|
|
44
|
-
roomId: {
|
|
45
|
-
attendee: '',
|
|
46
|
-
},
|
|
47
|
-
isSeparateHostLink: true,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const MeetingInfoContext = createContext(MeetingInfoDefaultValue);
|
|
52
|
-
|
|
53
|
-
interface MeetingInfoProviderProps {
|
|
54
|
-
children: React.ReactNode;
|
|
55
|
-
value: MeetingInfoContextInterface;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const MeetingInfoProvider = (props: MeetingInfoProviderProps) => {
|
|
59
|
-
return (
|
|
60
|
-
<MeetingInfoContext.Provider value={{...props.value}}>
|
|
61
|
-
{props.children}
|
|
62
|
-
</MeetingInfoContext.Provider>
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* The MeetingInfo app state contains information about the active meeting.
|
|
67
|
-
*/
|
|
68
|
-
const useMeetingInfo = createHook(MeetingInfoContext);
|
|
69
|
-
|
|
70
|
-
export {MeetingInfoProvider, useMeetingInfo};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {useCustomization} from 'customization-implementation';
|
|
3
|
-
|
|
4
|
-
const CustomUserContextHolder: React.FC<{children: any}> = (props) => {
|
|
5
|
-
const useUserContext = useCustomization((config) => {
|
|
6
|
-
if (
|
|
7
|
-
config?.components?.videoCall &&
|
|
8
|
-
typeof config?.components?.videoCall === 'object' &&
|
|
9
|
-
config?.components?.videoCall?.useUserContext &&
|
|
10
|
-
typeof config?.components?.videoCall?.useUserContext === 'function'
|
|
11
|
-
) {
|
|
12
|
-
return config?.components?.videoCall?.useUserContext;
|
|
13
|
-
} else {
|
|
14
|
-
return () => {};
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
useUserContext();
|
|
18
|
-
return props.children;
|
|
19
|
-
};
|
|
20
|
-
export default CustomUserContextHolder;
|