fcr-ui-scene-mobile 3.4.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/lib/assets/ground_glass_bg.png +0 -0
- package/lib/base.d.ts +11 -0
- package/lib/base.js +39 -0
- package/lib/common/device-store.d.ts +86 -0
- package/lib/common/device-store.js +642 -0
- package/lib/common/device-stream-store.d.ts +26 -0
- package/lib/common/device-stream-store.js +298 -0
- package/lib/common/event-store.d.ts +124 -0
- package/lib/common/event-store.js +249 -0
- package/lib/common/global-context.d.ts +11 -0
- package/lib/common/global-context.js +9 -0
- package/lib/common/member-list-data-source.d.ts +28 -0
- package/lib/common/member-list-data-source.js +305 -0
- package/lib/common/participant-store.d.ts +195 -0
- package/lib/common/participant-store.js +1577 -0
- package/lib/common/security-store.d.ts +119 -0
- package/lib/common/security-store.js +948 -0
- package/lib/common/setting-store.d.ts +181 -0
- package/lib/common/setting-store.js +797 -0
- package/lib/common/type.d.ts +73 -0
- package/lib/common/type.js +22 -0
- package/lib/config/default-config.d.ts +32 -0
- package/lib/config/default-config.js +39 -0
- package/lib/config/setting-config.d.ts +16 -0
- package/lib/config/setting-config.js +17 -0
- package/lib/creator.d.ts +10 -0
- package/lib/creator.js +49 -0
- package/lib/global.d.ts +8 -0
- package/lib/hooks/meeting-time.d.ts +15 -0
- package/lib/hooks/meeting-time.js +92 -0
- package/lib/hooks/useIsNodePresent.d.ts +4 -0
- package/lib/hooks/useIsNodePresent.js +53 -0
- package/lib/hooks/useOnRefMount.d.ts +2 -0
- package/lib/hooks/useOnRefMount.js +27 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +50 -0
- package/lib/mobile-global.css +28 -0
- package/lib/modules/action-bar/bottom-icons.d.ts +17 -0
- package/lib/modules/action-bar/bottom-icons.js +160 -0
- package/lib/modules/action-bar/context.d.ts +2 -0
- package/lib/modules/action-bar/context.js +9 -0
- package/lib/modules/action-bar/index.css +33 -0
- package/lib/modules/action-bar/index.d.ts +27 -0
- package/lib/modules/action-bar/index.js +46 -0
- package/lib/modules/action-bar/member-list-popup/attendee/index.css +130 -0
- package/lib/modules/action-bar/member-list-popup/attendee/index.d.ts +19 -0
- package/lib/modules/action-bar/member-list-popup/attendee/index.js +252 -0
- package/lib/modules/action-bar/member-list-popup/attendee/list.d.ts +1 -0
- package/lib/modules/action-bar/member-list-popup/attendee/list.js +82 -0
- package/lib/modules/action-bar/member-list-popup/index.css +35 -0
- package/lib/modules/action-bar/member-list-popup/index.d.ts +7 -0
- package/lib/modules/action-bar/member-list-popup/index.js +40 -0
- package/lib/modules/action-bar/member-list-popup/participant-more-actions/index.css +0 -0
- package/lib/modules/action-bar/member-list-popup/participant-more-actions/index.d.ts +12 -0
- package/lib/modules/action-bar/member-list-popup/participant-more-actions/index.js +58 -0
- package/lib/modules/action-bar/more-popup/index.css +71 -0
- package/lib/modules/action-bar/more-popup/index.d.ts +2 -0
- package/lib/modules/action-bar/more-popup/index.js +126 -0
- package/lib/modules/action-bar/store.d.ts +196 -0
- package/lib/modules/action-bar/store.js +1425 -0
- package/lib/modules/action-bar/type.d.ts +6 -0
- package/lib/modules/action-bar/type.js +13 -0
- package/lib/modules/action-bar/view.d.ts +2 -0
- package/lib/modules/action-bar/view.js +75 -0
- package/lib/modules/audio-stream/ index.d.ts +19 -0
- package/lib/modules/audio-stream/ index.js +109 -0
- package/lib/modules/audio-stream/index.d.ts +25 -0
- package/lib/modules/audio-stream/index.js +135 -0
- package/lib/modules/chat/chat-bar/index.css +97 -0
- package/lib/modules/chat/chat-bar/index.d.ts +12 -0
- package/lib/modules/chat/chat-bar/index.js +129 -0
- package/lib/modules/chat/chat-notification/index.css +71 -0
- package/lib/modules/chat/chat-notification/index.d.ts +3 -0
- package/lib/modules/chat/chat-notification/index.js +75 -0
- package/lib/modules/chat/chat-select/index.css +183 -0
- package/lib/modules/chat/chat-select/index.d.ts +12 -0
- package/lib/modules/chat/chat-select/index.js +223 -0
- package/lib/modules/chat/contex.d.ts +2 -0
- package/lib/modules/chat/contex.js +9 -0
- package/lib/modules/chat/demo-wrapper.d.ts +1 -0
- package/lib/modules/chat/demo-wrapper.js +42 -0
- package/lib/modules/chat/index.css +108 -0
- package/lib/modules/chat/index.d.ts +28 -0
- package/lib/modules/chat/index.dev.d.ts +1 -0
- package/lib/modules/chat/index.dev.js +58 -0
- package/lib/modules/chat/index.js +208 -0
- package/lib/modules/chat/message-list.d.ts +22 -0
- package/lib/modules/chat/message-list.js +617 -0
- package/lib/modules/chat/mock.d.ts +2 -0
- package/lib/modules/chat/mock.js +283 -0
- package/lib/modules/chat/store.d.ts +183 -0
- package/lib/modules/chat/store.js +1101 -0
- package/lib/modules/chat/util.d.ts +6 -0
- package/lib/modules/chat/util.js +69 -0
- package/lib/modules/chat/view.d.ts +11 -0
- package/lib/modules/chat/view.js +414 -0
- package/lib/modules/layout/bottom-drawer/index.css +34 -0
- package/lib/modules/layout/bottom-drawer/index.d.ts +3 -0
- package/lib/modules/layout/bottom-drawer/index.js +129 -0
- package/lib/modules/layout/components/Layout.d.ts +1 -0
- package/lib/modules/layout/components/Layout.js +98 -0
- package/lib/modules/layout/components/equip-request-popup/index.css +30 -0
- package/lib/modules/layout/components/equip-request-popup/index.d.ts +3 -0
- package/lib/modules/layout/components/equip-request-popup/index.js +78 -0
- package/lib/modules/layout/components/index.css +78 -0
- package/lib/modules/layout/components/index.d.ts +2 -0
- package/lib/modules/layout/components/index.js +25 -0
- package/lib/modules/layout/context.d.ts +2 -0
- package/lib/modules/layout/context.js +9 -0
- package/lib/modules/layout/drawer-header/index.css +27 -0
- package/lib/modules/layout/drawer-header/index.d.ts +10 -0
- package/lib/modules/layout/drawer-header/index.js +54 -0
- package/lib/modules/layout/index.css +22 -0
- package/lib/modules/layout/index.d.ts +8 -0
- package/lib/modules/layout/index.js +47 -0
- package/lib/modules/layout/store.d.ts +59 -0
- package/lib/modules/layout/store.js +379 -0
- package/lib/modules/layout/type.d.ts +65 -0
- package/lib/modules/layout/type.js +52 -0
- package/lib/modules/layout/view.d.ts +2 -0
- package/lib/modules/layout/view.js +10 -0
- package/lib/modules/member-layout/context.d.ts +2 -0
- package/lib/modules/member-layout/context.js +9 -0
- package/lib/modules/member-layout/data.d.ts +2 -0
- package/lib/modules/member-layout/data.js +304 -0
- package/lib/modules/member-layout/grid/index.css +98 -0
- package/lib/modules/member-layout/grid/index.d.ts +21 -0
- package/lib/modules/member-layout/grid/index.js +316 -0
- package/lib/modules/member-layout/index.css +88 -0
- package/lib/modules/member-layout/index.d.ts +8 -0
- package/lib/modules/member-layout/index.js +45 -0
- package/lib/modules/member-layout/share-toast/index.css +30 -0
- package/lib/modules/member-layout/share-toast/index.d.ts +5 -0
- package/lib/modules/member-layout/share-toast/index.js +43 -0
- package/lib/modules/member-layout/speaker/index.css +30 -0
- package/lib/modules/member-layout/speaker/index.d.ts +9 -0
- package/lib/modules/member-layout/speaker/index.js +28 -0
- package/lib/modules/member-layout/store.d.ts +70 -0
- package/lib/modules/member-layout/store.js +479 -0
- package/lib/modules/member-layout/user/index.css +121 -0
- package/lib/modules/member-layout/user/index.d.ts +34 -0
- package/lib/modules/member-layout/user/index.js +355 -0
- package/lib/modules/member-layout/user/types.d.ts +16 -0
- package/lib/modules/member-layout/user/types.js +6 -0
- package/lib/modules/member-layout/view.d.ts +2 -0
- package/lib/modules/member-layout/view.js +225 -0
- package/lib/modules/state-bar/context.d.ts +2 -0
- package/lib/modules/state-bar/context.js +9 -0
- package/lib/modules/state-bar/index.css +79 -0
- package/lib/modules/state-bar/index.d.ts +17 -0
- package/lib/modules/state-bar/index.js +55 -0
- package/lib/modules/state-bar/leaving-room/index.css +14 -0
- package/lib/modules/state-bar/leaving-room/index.d.ts +7 -0
- package/lib/modules/state-bar/leaving-room/index.js +38 -0
- package/lib/modules/state-bar/meeting-detail/index.css +72 -0
- package/lib/modules/state-bar/meeting-detail/index.d.ts +2 -0
- package/lib/modules/state-bar/meeting-detail/index.js +59 -0
- package/lib/modules/state-bar/meeting-detail/meeting-info/copy.d.ts +4 -0
- package/lib/modules/state-bar/meeting-detail/meeting-info/copy.js +81 -0
- package/lib/modules/state-bar/meeting-detail/meeting-info/index.css +92 -0
- package/lib/modules/state-bar/meeting-detail/meeting-info/index.d.ts +2 -0
- package/lib/modules/state-bar/meeting-detail/meeting-info/index.js +188 -0
- package/lib/modules/state-bar/meeting-detail/net-quality/index.css +27 -0
- package/lib/modules/state-bar/meeting-detail/net-quality/index.d.ts +2 -0
- package/lib/modules/state-bar/meeting-detail/net-quality/index.js +87 -0
- package/lib/modules/state-bar/store.d.ts +76 -0
- package/lib/modules/state-bar/store.js +561 -0
- package/lib/modules/state-bar/view.d.ts +7 -0
- package/lib/modules/state-bar/view.js +215 -0
- package/lib/modules/whiteboard/app.d.ts +2 -0
- package/lib/modules/whiteboard/app.js +41 -0
- package/lib/modules/whiteboard/components/control-bar/index.css +53 -0
- package/lib/modules/whiteboard/components/control-bar/index.d.ts +2 -0
- package/lib/modules/whiteboard/components/control-bar/index.js +156 -0
- package/lib/modules/whiteboard/components/control-bar/store.d.ts +35 -0
- package/lib/modules/whiteboard/components/control-bar/store.js +288 -0
- package/lib/modules/whiteboard/components/loading/index.css +76 -0
- package/lib/modules/whiteboard/components/loading/index.d.ts +2 -0
- package/lib/modules/whiteboard/components/loading/index.js +68 -0
- package/lib/modules/whiteboard/components/loading/loading.png +0 -0
- package/lib/modules/whiteboard/components/multi-window/index.css +65 -0
- package/lib/modules/whiteboard/components/multi-window/index.d.ts +5 -0
- package/lib/modules/whiteboard/components/multi-window/index.js +39 -0
- package/lib/modules/whiteboard/components/pagination/index.css +228 -0
- package/lib/modules/whiteboard/components/pagination/index.d.ts +15 -0
- package/lib/modules/whiteboard/components/pagination/index.js +163 -0
- package/lib/modules/whiteboard/components/pagination/store.d.ts +18 -0
- package/lib/modules/whiteboard/components/pagination/store.js +17 -0
- package/lib/modules/whiteboard/components/progress/index.d.ts +5 -0
- package/lib/modules/whiteboard/components/progress/index.js +43 -0
- package/lib/modules/whiteboard/components/progress/style.css +52 -0
- package/lib/modules/whiteboard/components/scene-pagination.d.ts +1 -0
- package/lib/modules/whiteboard/components/scene-pagination.js +30 -0
- package/lib/modules/whiteboard/components/switch-theme/index.css +98 -0
- package/lib/modules/whiteboard/components/switch-theme/index.d.ts +3 -0
- package/lib/modules/whiteboard/components/switch-theme/index.js +89 -0
- package/lib/modules/whiteboard/components/switch-theme/item.d.ts +9 -0
- package/lib/modules/whiteboard/components/switch-theme/item.js +53 -0
- package/lib/modules/whiteboard/components/switch-theme/libs.d.ts +4 -0
- package/lib/modules/whiteboard/components/switch-theme/libs.js +29 -0
- package/lib/modules/whiteboard/components/toolbar/ style.css +588 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/color.d.ts +5 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/color.js +38 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.d.ts +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +107 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.d.ts +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +59 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/index.d.ts +2 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/index.js +44 -0
- package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.d.ts +4 -0
- package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +89 -0
- package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.d.ts +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +63 -0
- package/lib/modules/whiteboard/components/toolbar/components/history.d.ts +2 -0
- package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -0
- package/lib/modules/whiteboard/components/toolbar/components/icons/fold-icon.d.ts +2 -0
- package/lib/modules/whiteboard/components/toolbar/components/icons/fold-icon.js +39 -0
- package/lib/modules/whiteboard/components/toolbar/components/icons/move-icon.d.ts +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/icons/move-icon.js +66 -0
- package/lib/modules/whiteboard/components/toolbar/components/move-handle.d.ts +5 -0
- package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +134 -0
- package/lib/modules/whiteboard/components/toolbar/components/pen-picker.d.ts +4 -0
- package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +106 -0
- package/lib/modules/whiteboard/components/toolbar/components/shape-picker.d.ts +4 -0
- package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +168 -0
- package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
- package/lib/modules/whiteboard/components/toolbar/hooks/index.js +211 -0
- package/lib/modules/whiteboard/components/toolbar/index.d.ts +2 -0
- package/lib/modules/whiteboard/components/toolbar/index.js +183 -0
- package/lib/modules/whiteboard/components/toolbar/store.d.ts +51 -0
- package/lib/modules/whiteboard/components/toolbar/store.js +248 -0
- package/lib/modules/whiteboard/context.d.ts +69 -0
- package/lib/modules/whiteboard/context.js +36 -0
- package/lib/modules/whiteboard/index.d.ts +119 -0
- package/lib/modules/whiteboard/index.js +1134 -0
- package/lib/modules/whiteboard/style.css +143 -0
- package/lib/modules/whiteboard/type.d.ts +94 -0
- package/lib/modules/whiteboard/type.js +89 -0
- package/lib/modules/whiteboard/utils.d.ts +12 -0
- package/lib/modules/whiteboard/utils.js +36 -0
- package/lib/plugins/css-preset-plugin.d.ts +1 -0
- package/lib/plugins/css-preset-plugin.js +29 -0
- package/lib/plugins/module-dev-plugin.d.ts +12 -0
- package/lib/plugins/module-dev-plugin.js +183 -0
- package/lib/plugins/multi-lang-plugin.d.ts +1 -0
- package/lib/plugins/multi-lang-plugin.js +19 -0
- package/lib/plugins/rtm-plugin.d.ts +1 -0
- package/lib/plugins/rtm-plugin.js +5 -0
- package/lib/plugins/web-rtc-plugin.d.ts +1 -0
- package/lib/plugins/web-rtc-plugin.js +5 -0
- package/lib/translations/enUS.d.ts +1855 -0
- package/lib/translations/enUS.js +1895 -0
- package/lib/translations/zhCN.d.ts +1852 -0
- package/lib/translations/zhCN.js +1892 -0
- package/lib/type.d.ts +121 -0
- package/lib/type.js +46 -0
- package/lib/ui-manager.d.ts +32 -0
- package/lib/ui-manager.js +426 -0
- package/lib/ui-scene.d.ts +14 -0
- package/lib/ui-scene.js +141 -0
- package/lib/utilities/board-context.d.ts +4 -0
- package/lib/utilities/board-context.js +12 -0
- package/lib/utilities/constant.d.ts +286 -0
- package/lib/utilities/constant.js +271 -0
- package/lib/utilities/copyText.d.ts +2 -0
- package/lib/utilities/copyText.js +43 -0
- package/lib/utilities/extract.d.ts +5 -0
- package/lib/utilities/extract.js +117 -0
- package/lib/utilities/hooks.d.ts +14 -0
- package/lib/utilities/hooks.js +101 -0
- package/lib/utilities/mute-action.d.ts +4 -0
- package/lib/utilities/mute-action.js +48 -0
- package/lib/utilities/parameters.d.ts +7 -0
- package/lib/utilities/parameters.js +20 -0
- package/lib/utilities/regex.d.ts +1 -0
- package/lib/utilities/regex.js +14 -0
- package/lib/utilities/tools.d.ts +27 -0
- package/lib/utilities/tools.js +169 -0
- package/lib/utilities/useNamespace.d.ts +15 -0
- package/lib/utilities/useNamespace.js +66 -0
- package/package.json +63 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
import { AgoraRtcRenderMode, AgoraRtcVideoStreamType } from 'agora-rte-sdk/lib/core/rtc/type';
|
|
3
|
+
import { FcrUserInfoProps } from './types';
|
|
4
|
+
import { ParticipantUser } from '../../../common/type';
|
|
5
|
+
export interface IUserViewProps {
|
|
6
|
+
user: ParticipantUser;
|
|
7
|
+
isLocalUserView: boolean;
|
|
8
|
+
videoStreamType: AgoraRtcVideoStreamType;
|
|
9
|
+
videoRenderMode: AgoraRtcRenderMode;
|
|
10
|
+
layoutRenderMode: 'grid' | 'speaker';
|
|
11
|
+
redraw: number;
|
|
12
|
+
isMiniWindow?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const FcrUserView: (props: IUserViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const FcrUIVideoPlayer: (props: {
|
|
16
|
+
isLocal: boolean;
|
|
17
|
+
streamId: string;
|
|
18
|
+
hasVideoStream: boolean;
|
|
19
|
+
videoStreamType: AgoraRtcVideoStreamType;
|
|
20
|
+
renderMode: AgoraRtcRenderMode;
|
|
21
|
+
userName: string;
|
|
22
|
+
isMiniWindow: boolean;
|
|
23
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare const FcrUILocalVideoPlayer: () => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare const FcrUIRemoteVideoPlayer: ({ streamId, hasVideoStream, videoStreamType, renderMode, isMiniWindow, userName, }: {
|
|
26
|
+
streamId: string;
|
|
27
|
+
hasVideoStream: boolean;
|
|
28
|
+
videoStreamType: AgoraRtcVideoStreamType;
|
|
29
|
+
renderMode: AgoraRtcRenderMode;
|
|
30
|
+
isMiniWindow: boolean;
|
|
31
|
+
userName: string;
|
|
32
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export declare const FcrUserInfo: (props: FcrUserInfoProps) => import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export default FcrUserInfo;
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.array.filter.js");
|
|
5
|
+
require("core-js/modules/es.array.for-each.js");
|
|
6
|
+
require("core-js/modules/es.array.push.js");
|
|
7
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
8
|
+
require("core-js/modules/es.object.define-property.js");
|
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
10
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
11
|
+
require("core-js/modules/es.object.keys.js");
|
|
12
|
+
require("core-js/modules/es.object.to-string.js");
|
|
13
|
+
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
14
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
15
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
16
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
17
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
18
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
19
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
20
|
+
Object.defineProperty(exports, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
});
|
|
23
|
+
exports["default"] = exports.FcrUserView = exports.FcrUserInfo = exports.FcrUIVideoPlayer = exports.FcrUIRemoteVideoPlayer = exports.FcrUILocalVideoPlayer = void 0;
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
26
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
+
var _type = require("fcr-core/lib/type");
|
|
28
|
+
var _avatar = require("agora-ui-foundation/lib/components/avatar");
|
|
29
|
+
require("./index.css");
|
|
30
|
+
var _react = require("react");
|
|
31
|
+
var _mobxReact = require("mobx-react");
|
|
32
|
+
var _context = require("../context");
|
|
33
|
+
var _icon = require("agora-ui-foundation/lib/components/icon");
|
|
34
|
+
var _type2 = require("agora-ui-foundation/lib/components/icon/type");
|
|
35
|
+
var _i18n = require("agora-ui-foundation/lib/i18n");
|
|
36
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
37
|
+
var _tools = require("../../../utilities/tools");
|
|
38
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
39
|
+
var _excluded = ["isLocal"];
|
|
40
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
41
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
42
|
+
var FcrUserView = exports.FcrUserView = (0, _mobxReact.observer)(function (props) {
|
|
43
|
+
var user = props.user,
|
|
44
|
+
isLocalUserView = props.isLocalUserView,
|
|
45
|
+
videoStreamType = props.videoStreamType,
|
|
46
|
+
videoRenderMode = props.videoRenderMode,
|
|
47
|
+
redraw = props.redraw,
|
|
48
|
+
layoutRenderMode = props.layoutRenderMode,
|
|
49
|
+
isMiniWindow = props.isMiniWindow;
|
|
50
|
+
var container = (0, _react.useRef)(null);
|
|
51
|
+
var _useState = (0, _react.useState)(0),
|
|
52
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
53
|
+
avatarSize = _useState2[0],
|
|
54
|
+
setAvatarSize = _useState2[1];
|
|
55
|
+
// Update avatar size when window size changes
|
|
56
|
+
var updateAvatarSize = function updateAvatarSize() {
|
|
57
|
+
if (container.current) {
|
|
58
|
+
setAvatarSize(container.current.offsetWidth * 0.3);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
(0, _react.useEffect)(function () {
|
|
62
|
+
window.addEventListener('resize', updateAvatarSize);
|
|
63
|
+
return function () {
|
|
64
|
+
window.removeEventListener('resize', updateAvatarSize);
|
|
65
|
+
};
|
|
66
|
+
}, []);
|
|
67
|
+
(0, _react.useEffect)(function () {
|
|
68
|
+
updateAvatarSize();
|
|
69
|
+
}, [updateAvatarSize, redraw, videoRenderMode]);
|
|
70
|
+
var UserAvatar = (0, _react.useCallback)(function () {
|
|
71
|
+
var userType = user.userType,
|
|
72
|
+
audioDeviceType = user.audioDeviceType,
|
|
73
|
+
hasAudio = user.hasAudio,
|
|
74
|
+
userName = user.userName;
|
|
75
|
+
var isMeetingSystemUser = userType === 'meeting-system';
|
|
76
|
+
var isPhoneMicUser = audioDeviceType === 'phone-mic';
|
|
77
|
+
if (isMeetingSystemUser) {
|
|
78
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
79
|
+
className: hasAudio ? 'with-colorful-background' : 'with-gray-background',
|
|
80
|
+
style: {
|
|
81
|
+
width: avatarSize,
|
|
82
|
+
height: avatarSize
|
|
83
|
+
},
|
|
84
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
|
|
85
|
+
type: _type2.FcrIconType.FCR_SIPDEVICE,
|
|
86
|
+
size: Math.min(avatarSize, 50),
|
|
87
|
+
colors: {
|
|
88
|
+
iconPrimary: 'var(--fcr_ui_scene_white10)',
|
|
89
|
+
iconSecondary: 'var(--fcr_ui_scene_white10)'
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (isPhoneMicUser) {
|
|
95
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
96
|
+
className: hasAudio ? 'with-green-background' : 'with-gray-background',
|
|
97
|
+
style: {
|
|
98
|
+
width: avatarSize,
|
|
99
|
+
height: avatarSize
|
|
100
|
+
},
|
|
101
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
|
|
102
|
+
type: _type2.FcrIconType.FCR_PHONECALL2,
|
|
103
|
+
size: Math.min(avatarSize, 50),
|
|
104
|
+
colors: {
|
|
105
|
+
iconPrimary: 'var(--fcr_ui_scene_white10)',
|
|
106
|
+
iconSecondary: 'var(--fcr_ui_scene_white10)'
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.FcrAvatar, {
|
|
112
|
+
size: avatarSize,
|
|
113
|
+
nickName: userName,
|
|
114
|
+
textSize: avatarSize * 0.3
|
|
115
|
+
});
|
|
116
|
+
}, [user, avatarSize]);
|
|
117
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
118
|
+
ref: container,
|
|
119
|
+
className: "fcr-user-window",
|
|
120
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(UserAvatar, {}), user.streamId && /*#__PURE__*/(0, _jsxRuntime.jsx)(FcrUIVideoPlayer, {
|
|
121
|
+
isLocal: isLocalUserView,
|
|
122
|
+
streamId: user.streamId,
|
|
123
|
+
hasVideoStream: user.hasVideo,
|
|
124
|
+
videoStreamType: videoStreamType,
|
|
125
|
+
renderMode: videoRenderMode,
|
|
126
|
+
userName: user.userName,
|
|
127
|
+
isMiniWindow: !!isMiniWindow
|
|
128
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
129
|
+
className: (0, _classnames["default"])("fcr-member-window-excitation", {
|
|
130
|
+
'fcr-member-window-excitation-show': user.isSpotlight
|
|
131
|
+
})
|
|
132
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(FcrUserInfo, {
|
|
133
|
+
isLocal: isLocalUserView,
|
|
134
|
+
userName: user.userName,
|
|
135
|
+
streamId: user.streamId,
|
|
136
|
+
role: user.userRole || _type.FcrUserRole.PARTICIPANT,
|
|
137
|
+
hasAudio: user.hasAudio,
|
|
138
|
+
hasVideo: user.hasVideo,
|
|
139
|
+
volume: user.volume,
|
|
140
|
+
isMiniWindow: props.isMiniWindow,
|
|
141
|
+
hasScreenSharing: user.isScreenSharing,
|
|
142
|
+
audioDeviceType: user.audioDeviceType,
|
|
143
|
+
userType: user.userType,
|
|
144
|
+
layoutRenderMode: layoutRenderMode,
|
|
145
|
+
isBoardActive: Boolean(user.isBoardActive)
|
|
146
|
+
})]
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
var FcrUIVideoPlayer = exports.FcrUIVideoPlayer = (0, _mobxReact.observer)(function (props) {
|
|
150
|
+
var isLocal = props.isLocal,
|
|
151
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
152
|
+
return isLocal ? /*#__PURE__*/(0, _jsxRuntime.jsx)(FcrUILocalVideoPlayer, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(FcrUIRemoteVideoPlayer, _objectSpread({}, others));
|
|
153
|
+
});
|
|
154
|
+
var FcrUILocalVideoPlayer = exports.FcrUILocalVideoPlayer = (0, _mobxReact.observer)(function () {
|
|
155
|
+
var divRef = (0, _react.useRef)(null);
|
|
156
|
+
var context = (0, _react.useContext)(_context.StoreContext);
|
|
157
|
+
var cameraEnabled = context.cameraEnabled,
|
|
158
|
+
cameraId = context.cameraId,
|
|
159
|
+
startPlayLocalVideo = context.startPlayLocalVideo,
|
|
160
|
+
stopPlayLocalVideo = context.stopPlayLocalVideo;
|
|
161
|
+
(0, _react.useEffect)(function () {
|
|
162
|
+
var dom = divRef.current;
|
|
163
|
+
if (dom && cameraEnabled) {
|
|
164
|
+
startPlayLocalVideo === null || startPlayLocalVideo === void 0 || startPlayLocalVideo(dom);
|
|
165
|
+
}
|
|
166
|
+
return function () {
|
|
167
|
+
dom && (stopPlayLocalVideo === null || stopPlayLocalVideo === void 0 ? void 0 : stopPlayLocalVideo(dom));
|
|
168
|
+
};
|
|
169
|
+
}, [cameraEnabled, cameraId, startPlayLocalVideo, stopPlayLocalVideo]);
|
|
170
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
171
|
+
className: "fcr-member-window-body",
|
|
172
|
+
ref: divRef
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
var FcrUIRemoteVideoPlayer = exports.FcrUIRemoteVideoPlayer = (0, _mobxReact.observer)(function (_ref) {
|
|
176
|
+
var streamId = _ref.streamId,
|
|
177
|
+
hasVideoStream = _ref.hasVideoStream,
|
|
178
|
+
videoStreamType = _ref.videoStreamType,
|
|
179
|
+
renderMode = _ref.renderMode,
|
|
180
|
+
isMiniWindow = _ref.isMiniWindow,
|
|
181
|
+
userName = _ref.userName;
|
|
182
|
+
var divRef = (0, _react.useRef)(null);
|
|
183
|
+
var context = (0, _react.useContext)(_context.StoreContext);
|
|
184
|
+
var startRenderRemoteVideoStream = context.startRenderRemoteVideoStream,
|
|
185
|
+
stopRenderRemoteVideoStream = context.stopRenderRemoteVideoStream;
|
|
186
|
+
var _useState3 = (0, _react.useState)(false),
|
|
187
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
188
|
+
askLayerOpen = _useState4[0],
|
|
189
|
+
setAskLayerOpen = _useState4[1];
|
|
190
|
+
// 使用 useRef 存储上一次的 streamId
|
|
191
|
+
var prevStreamIdRef = (0, _react.useRef)(null);
|
|
192
|
+
var clearVideoEffect = function clearVideoEffect() {
|
|
193
|
+
var dom = divRef.current;
|
|
194
|
+
dom && setAskLayerOpen(false) && (stopRenderRemoteVideoStream === null || stopRenderRemoteVideoStream === void 0 ? void 0 : stopRenderRemoteVideoStream(streamId, dom));
|
|
195
|
+
};
|
|
196
|
+
(0, _react.useEffect)(function () {
|
|
197
|
+
var dom = divRef.current;
|
|
198
|
+
if (dom && streamId !== prevStreamIdRef.current) {
|
|
199
|
+
if (hasVideoStream) {
|
|
200
|
+
setAskLayerOpen((0, _tools.isNeedAskAutoRun)() && !isMiniWindow);
|
|
201
|
+
startRenderRemoteVideoStream(streamId, videoStreamType, {
|
|
202
|
+
renderMode: renderMode,
|
|
203
|
+
isMirror: false
|
|
204
|
+
}, dom);
|
|
205
|
+
prevStreamIdRef.current = streamId;
|
|
206
|
+
} else {
|
|
207
|
+
setAskLayerOpen(false);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return function () {
|
|
211
|
+
clearVideoEffect();
|
|
212
|
+
};
|
|
213
|
+
}, [hasVideoStream, streamId, videoStreamType, renderMode, prevStreamIdRef]);
|
|
214
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
215
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
216
|
+
className: "fcr-member-window-body",
|
|
217
|
+
ref: divRef
|
|
218
|
+
}), askLayerOpen ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
219
|
+
className: "fcr-member-window-ask-layer",
|
|
220
|
+
onClick: function onClick() {
|
|
221
|
+
setAskLayerOpen(false);
|
|
222
|
+
},
|
|
223
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
224
|
+
className: "fcr-member-window-ask-layer-text",
|
|
225
|
+
children: [(0, _i18n.transI18n)('fmt_h_tips_tap_to_play'), "\uFF08", userName, "\uFF09"]
|
|
226
|
+
})
|
|
227
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {})]
|
|
228
|
+
}, streamId);
|
|
229
|
+
});
|
|
230
|
+
var UserIcon = function UserIcon(_ref2) {
|
|
231
|
+
var type = _ref2.type,
|
|
232
|
+
color = _ref2.color;
|
|
233
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
|
|
234
|
+
type: type,
|
|
235
|
+
size: 20,
|
|
236
|
+
colors: {
|
|
237
|
+
iconPrimary: color,
|
|
238
|
+
iconSecondary: color
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
// hooks/useUserInfo.ts
|
|
244
|
+
var useUserInfo = function useUserInfo(props) {
|
|
245
|
+
var _useContext = (0, _react.useContext)(_context.StoreContext),
|
|
246
|
+
shareScreenUser = _useContext.shareScreenUser;
|
|
247
|
+
var isSpeakerLayout = (0, _react.useMemo)(function () {
|
|
248
|
+
return props.layoutRenderMode === 'speaker';
|
|
249
|
+
}, [props.layoutRenderMode]);
|
|
250
|
+
var isSharing = (0, _react.useMemo)(function () {
|
|
251
|
+
return (shareScreenUser === null || shareScreenUser === void 0 ? void 0 : shareScreenUser.shareScreenStreamId) === props.streamId;
|
|
252
|
+
}, [shareScreenUser, props.streamId]);
|
|
253
|
+
return {
|
|
254
|
+
isSpeakerLayout: isSpeakerLayout,
|
|
255
|
+
isSharing: isSharing
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
var FcrUserInfo = exports.FcrUserInfo = (0, _mobxReact.observer)(function (props) {
|
|
259
|
+
var _props$isMiniWindow = props.isMiniWindow,
|
|
260
|
+
isMiniWindow = _props$isMiniWindow === void 0 ? false : _props$isMiniWindow,
|
|
261
|
+
userName = props.userName,
|
|
262
|
+
hasAudio = props.hasAudio,
|
|
263
|
+
hasVideo = props.hasVideo,
|
|
264
|
+
audioDeviceType = props.audioDeviceType,
|
|
265
|
+
role = props.role,
|
|
266
|
+
userType = props.userType,
|
|
267
|
+
isBoardActive = props.isBoardActive;
|
|
268
|
+
var _useUserInfo = useUserInfo(props),
|
|
269
|
+
isSpeakerLayout = _useUserInfo.isSpeakerLayout,
|
|
270
|
+
isSharing = _useUserInfo.isSharing;
|
|
271
|
+
var transI18n = (0, _i18n.useI18n)();
|
|
272
|
+
var renderRoleIcon = function renderRoleIcon() {
|
|
273
|
+
if (isMiniWindow) return null;
|
|
274
|
+
var roleIcons = (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _type.FcrUserRole.HOST, {
|
|
275
|
+
type: _type2.FcrIconType.FCR_HOST,
|
|
276
|
+
className: 'fcr-host'
|
|
277
|
+
}), _type.FcrUserRole.COHOST, {
|
|
278
|
+
type: _type2.FcrIconType.FCR_COHOST1,
|
|
279
|
+
className: 'fcr-cohost'
|
|
280
|
+
});
|
|
281
|
+
var roleIcon = roleIcons[role];
|
|
282
|
+
return roleIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
283
|
+
className: roleIcon.className,
|
|
284
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(UserIcon, {
|
|
285
|
+
type: roleIcon.type,
|
|
286
|
+
color: "var(--fcr_ui_scene_ramp_green6)"
|
|
287
|
+
})
|
|
288
|
+
}) : null;
|
|
289
|
+
};
|
|
290
|
+
var shouldShowAudioIcon = function shouldShowAudioIcon() {
|
|
291
|
+
// 宫格视图下的小窗在非硬件设备和手机麦克风下不显示 音频图标
|
|
292
|
+
if (isMiniWindow && !isSpeakerLayout && audioDeviceType !== 'phone-mic' && userType !== 'meeting-system') return false;
|
|
293
|
+
if (userType === 'meeting-system') return true;
|
|
294
|
+
|
|
295
|
+
// 演讲者视图且有音频不显示
|
|
296
|
+
if (isSpeakerLayout && hasAudio) return false;
|
|
297
|
+
return true;
|
|
298
|
+
};
|
|
299
|
+
var renderAudioIcon = function renderAudioIcon() {
|
|
300
|
+
if (!shouldShowAudioIcon()) return null;
|
|
301
|
+
var audioIcons = {
|
|
302
|
+
'computer-mic': _type2.FcrIconType.FCR_NOMUTE,
|
|
303
|
+
'phone-mic': _type2.FcrIconType.FCR_PHONECALL_SILENCE,
|
|
304
|
+
'none': _type2.FcrIconType.FCR_NOMUTE,
|
|
305
|
+
'phone-mic-unmute': _type2.FcrIconType.FCR_PHONECALL3
|
|
306
|
+
};
|
|
307
|
+
var iconColor = 'var(--fcr_ui_scene_ramp_red6)';
|
|
308
|
+
var iconType = audioIcons[audioDeviceType];
|
|
309
|
+
if (userType === 'meeting-system') {
|
|
310
|
+
iconType = audioIcons['phone-mic'];
|
|
311
|
+
}
|
|
312
|
+
if (hasAudio && (audioDeviceType === 'phone-mic' || userType === 'meeting-system')) {
|
|
313
|
+
iconType = audioIcons['phone-mic-unmute'];
|
|
314
|
+
iconColor = 'var(--fcr_ui_scene_white10)';
|
|
315
|
+
}
|
|
316
|
+
return iconType && !isSharing && !hasAudio ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
317
|
+
className: (0, _classnames["default"])('frc-user-icon-group', {
|
|
318
|
+
'icon-background': hasAudio && (audioDeviceType === 'phone-mic' || userType === 'meeting-system')
|
|
319
|
+
}),
|
|
320
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(UserIcon, {
|
|
321
|
+
type: iconType,
|
|
322
|
+
color: iconColor
|
|
323
|
+
})
|
|
324
|
+
}) : null;
|
|
325
|
+
};
|
|
326
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
327
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
328
|
+
className: "fcr-user-info",
|
|
329
|
+
children: [isSpeakerLayout && isSharing && !isMiniWindow && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
330
|
+
className: "fcr-user-info-share-icon",
|
|
331
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(UserIcon, {
|
|
332
|
+
type: _type2.FcrIconType.FCR_MOBILE_SHARESCREEN,
|
|
333
|
+
color: "var(--fcr_ui_scene_white10)"
|
|
334
|
+
})
|
|
335
|
+
}), renderRoleIcon(), userType === 'meeting-system' && !isMiniWindow && hasVideo && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
336
|
+
className: "fcr-sip-device",
|
|
337
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(UserIcon, {
|
|
338
|
+
type: _type2.FcrIconType.FCR_SIPDEVICE,
|
|
339
|
+
color: "var(--fcr_ui_scene_white10)"
|
|
340
|
+
})
|
|
341
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
342
|
+
className: "fcr-user-info-group",
|
|
343
|
+
children: [renderAudioIcon(), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
344
|
+
className: "fcr-user-name",
|
|
345
|
+
children: isSharing ? transI18n('fmt_record_share_nick', {
|
|
346
|
+
reason1: userName
|
|
347
|
+
}) : isBoardActive && !isMiniWindow ? transI18n('fmt_record_share_board_nick', {
|
|
348
|
+
reason1: userName
|
|
349
|
+
}) : userName
|
|
350
|
+
})]
|
|
351
|
+
})]
|
|
352
|
+
})
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
var _default = exports["default"] = FcrUserInfo;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FcrUserRole } from "fcr-core";
|
|
2
|
+
export interface FcrUserInfoProps {
|
|
3
|
+
userName: string;
|
|
4
|
+
role: FcrUserRole;
|
|
5
|
+
hasAudio: boolean;
|
|
6
|
+
hasVideo: boolean;
|
|
7
|
+
volume?: number;
|
|
8
|
+
isLocal: boolean;
|
|
9
|
+
streamId?: string;
|
|
10
|
+
isMiniWindow?: boolean;
|
|
11
|
+
hasScreenSharing?: boolean;
|
|
12
|
+
audioDeviceType: 'none' | 'computer-mic' | 'phone-mic';
|
|
13
|
+
userType: 'normal' | 'phone' | 'meeting-system';
|
|
14
|
+
layoutRenderMode: 'grid' | 'speaker';
|
|
15
|
+
isBoardActive: boolean;
|
|
16
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.array.filter.js");
|
|
5
|
+
require("core-js/modules/es.array.for-each.js");
|
|
6
|
+
require("core-js/modules/es.array.push.js");
|
|
7
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
8
|
+
require("core-js/modules/es.object.define-property.js");
|
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
10
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
11
|
+
require("core-js/modules/es.object.keys.js");
|
|
12
|
+
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
13
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
14
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
15
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
16
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
17
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
18
|
+
Object.defineProperty(exports, "__esModule", {
|
|
19
|
+
value: true
|
|
20
|
+
});
|
|
21
|
+
exports.View = void 0;
|
|
22
|
+
require("core-js/modules/es.array.find.js");
|
|
23
|
+
require("core-js/modules/es.array.some.js");
|
|
24
|
+
require("core-js/modules/es.number.constructor.js");
|
|
25
|
+
require("core-js/modules/es.number.is-nan.js");
|
|
26
|
+
require("core-js/modules/es.object.to-string.js");
|
|
27
|
+
require("core-js/modules/esnext.async-iterator.find.js");
|
|
28
|
+
require("core-js/modules/esnext.async-iterator.some.js");
|
|
29
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
30
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
31
|
+
require("core-js/modules/esnext.iterator.some.js");
|
|
32
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
33
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
34
|
+
var _type = require("agora-rte-sdk/lib/core/rtc/type");
|
|
35
|
+
var _agoraRtcSdkNg = _interopRequireDefault(require("agora-rtc-sdk-ng"));
|
|
36
|
+
var _mobxReact = require("mobx-react");
|
|
37
|
+
var _react = require("react");
|
|
38
|
+
var _context = require("./context");
|
|
39
|
+
var _index = _interopRequireDefault(require("./grid/index"));
|
|
40
|
+
require("./index.css");
|
|
41
|
+
var _user = require("./user");
|
|
42
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
43
|
+
var _speaker = require("./speaker");
|
|
44
|
+
var _globalContext = require("../../common/global-context");
|
|
45
|
+
var _context2 = require("../layout/context");
|
|
46
|
+
var _mobile = require("agora-ui-foundation/lib/components/watermark/mobile");
|
|
47
|
+
var _shareToast = _interopRequireDefault(require("./share-toast"));
|
|
48
|
+
var _chatNotification = _interopRequireDefault(require("../chat/chat-notification"));
|
|
49
|
+
var _button = require("agora-ui-foundation/lib/components/button");
|
|
50
|
+
var _dialog = require("agora-ui-foundation/lib/components/dialog");
|
|
51
|
+
var _i18n = require("agora-ui-foundation/lib/i18n");
|
|
52
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
53
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
54
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
55
|
+
var View = exports.View = (0, _mobxReact.observer)(function () {
|
|
56
|
+
var _useContext = (0, _react.useContext)(_context.StoreContext),
|
|
57
|
+
localUserId = _useContext.localUserId,
|
|
58
|
+
highlightUserId = _useContext.highlightUserId,
|
|
59
|
+
videoCount = _useContext.videoCount,
|
|
60
|
+
speakerLayOutDefaultUser = _useContext.speakerLayOutDefaultUser,
|
|
61
|
+
shareScreenUser = _useContext.shareScreenUser;
|
|
62
|
+
var _useContext2 = (0, _react.useContext)(_context2.LayoutStoreContext),
|
|
63
|
+
getWhiteBoardComp = _useContext2.getWhiteBoardComp;
|
|
64
|
+
var _useContext3 = (0, _react.useContext)(_globalContext.FcrMobileGlobalContext),
|
|
65
|
+
participantStore = _useContext3.participantStore,
|
|
66
|
+
securityStore = _useContext3.securityStore,
|
|
67
|
+
deviceStore = _useContext3.deviceStore;
|
|
68
|
+
var participantList = participantStore.participantList,
|
|
69
|
+
participantCount = participantStore.participantCount;
|
|
70
|
+
var isWaterMarkEnabled = securityStore.isWaterMarkEnabled,
|
|
71
|
+
getWaterMarkContent = securityStore.getWaterMarkContent,
|
|
72
|
+
isMulti = securityStore.isMulti;
|
|
73
|
+
var autoPlayFailedDialogShow = deviceStore.autoPlayFailedDialogShow,
|
|
74
|
+
setAutoPlayFailedDialogShow = deviceStore.setAutoPlayFailedDialogShow;
|
|
75
|
+
var memberLayoutRef = (0, _react.useRef)(null);
|
|
76
|
+
var _useState = (0, _react.useState)(0),
|
|
77
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
78
|
+
containerHeight = _useState2[0],
|
|
79
|
+
setContainerHeight = _useState2[1];
|
|
80
|
+
var _useState3 = (0, _react.useState)(true),
|
|
81
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
82
|
+
mainVisible = _useState4[0],
|
|
83
|
+
setMainVisible = _useState4[1];
|
|
84
|
+
var computContainerHeight = function computContainerHeight() {
|
|
85
|
+
var stateBarHeight = 44;
|
|
86
|
+
var actionBarHeight = 70;
|
|
87
|
+
var paddingHeight = participantCount <= 1 ? 0 : 10;
|
|
88
|
+
var bottomEl = document.getElementsByClassName('fcr-bottom-action-main-wrap')[0];
|
|
89
|
+
var safeHeight = 0;
|
|
90
|
+
if (bottomEl) {
|
|
91
|
+
var _styles$paddingBottom;
|
|
92
|
+
var styles = window.getComputedStyle(bottomEl);
|
|
93
|
+
var val = Number((_styles$paddingBottom = styles.paddingBottom) === null || _styles$paddingBottom === void 0 ? void 0 : _styles$paddingBottom.split('px')[0]);
|
|
94
|
+
safeHeight = Number.isNaN(val) ? 0 : val;
|
|
95
|
+
}
|
|
96
|
+
var containerHeight = document.body.offsetHeight - (stateBarHeight + actionBarHeight + paddingHeight + safeHeight);
|
|
97
|
+
setContainerHeight(containerHeight);
|
|
98
|
+
};
|
|
99
|
+
var setDocumentVisible = function setDocumentVisible() {
|
|
100
|
+
setMainVisible(!document.hidden);
|
|
101
|
+
};
|
|
102
|
+
(0, _react.useEffect)(function () {
|
|
103
|
+
computContainerHeight();
|
|
104
|
+
}, [participantCount]);
|
|
105
|
+
(0, _react.useEffect)(function () {
|
|
106
|
+
if (autoPlayFailedDialogShow) {
|
|
107
|
+
_dialog.FcrDialogApi.open({
|
|
108
|
+
id: 'auto-player-fail-confirm-dialog',
|
|
109
|
+
dialogProps: {
|
|
110
|
+
content: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
111
|
+
className: "fcr-mobile-auto-play-failed-dialog",
|
|
112
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
113
|
+
className: "fcr-mobile-auto-play-failed-dialog-title",
|
|
114
|
+
children: "\u5F00\u542F\u81EA\u52A8\u63A5\u6536\u89C6\u9891\u753B\u9762"
|
|
115
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
116
|
+
className: "fcr-mobile-auto-play-failed-dialog-body",
|
|
117
|
+
children: "\u6D4F\u89C8\u5668\u6709\u9650\u5236\uFF0C\u9700\u8981\u624B\u52A8\u89E6\u53D1\u4EE5\u5F00\u542F\u81EA\u52A8\u63A5\u6536\u89C6\u9891\u753B\u9762\u5185\u5BB9"
|
|
118
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
|
|
119
|
+
onClick: function onClick() {
|
|
120
|
+
setAutoPlayFailedDialogShow(false);
|
|
121
|
+
_agoraRtcSdkNg["default"].resumeAudioContext();
|
|
122
|
+
},
|
|
123
|
+
className: "fcr-mobile-auto-play-failed-dialog-btn",
|
|
124
|
+
children: (0, _i18n.transI18n)('fmt_screenshare_whiteboard_button_gotit')
|
|
125
|
+
})]
|
|
126
|
+
}),
|
|
127
|
+
width: 322,
|
|
128
|
+
closable: false,
|
|
129
|
+
rootClassName: 'auto-player-fail-confirm-dialog-root-class'
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
} else {
|
|
133
|
+
_dialog.FcrDialogApi.close('auto-player-fail-confirm-dialog');
|
|
134
|
+
}
|
|
135
|
+
}, [autoPlayFailedDialogShow]);
|
|
136
|
+
(0, _react.useEffect)(function () {
|
|
137
|
+
window.addEventListener('resize', computContainerHeight);
|
|
138
|
+
document.addEventListener('visibilitychange', setDocumentVisible);
|
|
139
|
+
return function () {
|
|
140
|
+
window.removeEventListener('resize', computContainerHeight);
|
|
141
|
+
document.removeEventListener('visibilitychange', setDocumentVisible);
|
|
142
|
+
};
|
|
143
|
+
}, []);
|
|
144
|
+
var hasShareScreen = (0, _react.useMemo)(function () {
|
|
145
|
+
return participantList.some(function (user) {
|
|
146
|
+
return user.isScreenSharing;
|
|
147
|
+
});
|
|
148
|
+
}, [participantList]);
|
|
149
|
+
var hasShareBoard = (0, _react.useMemo)(function () {
|
|
150
|
+
return participantList.some(function (user) {
|
|
151
|
+
return user.isBoardActive;
|
|
152
|
+
});
|
|
153
|
+
}, [participantList]);
|
|
154
|
+
var maxVolumeUser = (0, _react.useMemo)(function () {
|
|
155
|
+
return participantList.find(function (participant) {
|
|
156
|
+
return participant.userId === highlightUserId;
|
|
157
|
+
});
|
|
158
|
+
}, [participantList, highlightUserId]);
|
|
159
|
+
var renderItem = function renderItem(user, isMiniWindow) {
|
|
160
|
+
var renderMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'grid';
|
|
161
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
162
|
+
className: (0, _classnames["default"])('grid-content', 'grid-radius', {
|
|
163
|
+
'fcr-normal-user': user.userId !== highlightUserId,
|
|
164
|
+
'fcr-speaker': user.userId === highlightUserId
|
|
165
|
+
}),
|
|
166
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_user.FcrUserView, {
|
|
167
|
+
user: user,
|
|
168
|
+
redraw: participantList.length,
|
|
169
|
+
isLocalUserView: user.userId === localUserId,
|
|
170
|
+
videoStreamType: videoCount > 4 ? _type.AgoraRtcVideoStreamType.LOW_STREAM : _type.AgoraRtcVideoStreamType.HIGH_STREAM,
|
|
171
|
+
videoRenderMode: _type.AgoraRtcRenderMode.FIT,
|
|
172
|
+
layoutRenderMode: renderMode,
|
|
173
|
+
isMiniWindow: isMiniWindow
|
|
174
|
+
})
|
|
175
|
+
}, user.userId);
|
|
176
|
+
};
|
|
177
|
+
var mainViewRender = function mainViewRender() {
|
|
178
|
+
if (hasShareBoard) {
|
|
179
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
180
|
+
className: "fcr-mobile-whiteboard-wrapper",
|
|
181
|
+
children: [getWhiteBoardComp(), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
182
|
+
className: "fcr-mobile-whiteboard-operate-cover"
|
|
183
|
+
})]
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (shareScreenUser) {
|
|
187
|
+
return renderItem(_objectSpread(_objectSpread({}, shareScreenUser), {}, {
|
|
188
|
+
hasVideo: shareScreenUser.isScreenSharing || false,
|
|
189
|
+
streamId: shareScreenUser.shareScreenStreamId,
|
|
190
|
+
hasAudio: shareScreenUser.hasShareScreenWithAudio
|
|
191
|
+
}), false, 'speaker');
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
var speakerViewRender = function speakerViewRender() {
|
|
195
|
+
if (maxVolumeUser) {
|
|
196
|
+
return renderItem(maxVolumeUser, true, 'speaker');
|
|
197
|
+
}
|
|
198
|
+
if (speakerLayOutDefaultUser) {
|
|
199
|
+
return renderItem(speakerLayOutDefaultUser, true, 'speaker');
|
|
200
|
+
}
|
|
201
|
+
return null;
|
|
202
|
+
};
|
|
203
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_mobile.FcrMobileWaterMark, {
|
|
204
|
+
content: isWaterMarkEnabled() ? [getWaterMarkContent()] : [],
|
|
205
|
+
width: isMulti() ? 140 : window.screen.width,
|
|
206
|
+
height: isMulti() ? 80 : containerHeight,
|
|
207
|
+
multiLine: Boolean(isMulti()),
|
|
208
|
+
children: [(shareScreenUser.userId || hasShareBoard) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_shareToast["default"], {
|
|
209
|
+
isShareBoard: hasShareBoard
|
|
210
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
211
|
+
className: (0, _classnames["default"])('fcr-member-layout', {
|
|
212
|
+
'fcr-member-layout-full': participantList.length === 1
|
|
213
|
+
}),
|
|
214
|
+
ref: memberLayoutRef,
|
|
215
|
+
children: mainVisible && (hasShareScreen || hasShareBoard ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_speaker.FcrSpeakerView, {
|
|
216
|
+
mainViewRender: mainViewRender,
|
|
217
|
+
speakerViewRender: speakerViewRender,
|
|
218
|
+
containerHeight: containerHeight
|
|
219
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_index["default"], {
|
|
220
|
+
renderItem: renderItem,
|
|
221
|
+
containerHeight: containerHeight
|
|
222
|
+
}))
|
|
223
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_chatNotification["default"], {})]
|
|
224
|
+
});
|
|
225
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.StoreContext = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
|