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.
Files changed (281) hide show
  1. package/lib/assets/ground_glass_bg.png +0 -0
  2. package/lib/base.d.ts +11 -0
  3. package/lib/base.js +39 -0
  4. package/lib/common/device-store.d.ts +86 -0
  5. package/lib/common/device-store.js +642 -0
  6. package/lib/common/device-stream-store.d.ts +26 -0
  7. package/lib/common/device-stream-store.js +298 -0
  8. package/lib/common/event-store.d.ts +124 -0
  9. package/lib/common/event-store.js +249 -0
  10. package/lib/common/global-context.d.ts +11 -0
  11. package/lib/common/global-context.js +9 -0
  12. package/lib/common/member-list-data-source.d.ts +28 -0
  13. package/lib/common/member-list-data-source.js +305 -0
  14. package/lib/common/participant-store.d.ts +195 -0
  15. package/lib/common/participant-store.js +1577 -0
  16. package/lib/common/security-store.d.ts +119 -0
  17. package/lib/common/security-store.js +948 -0
  18. package/lib/common/setting-store.d.ts +181 -0
  19. package/lib/common/setting-store.js +797 -0
  20. package/lib/common/type.d.ts +73 -0
  21. package/lib/common/type.js +22 -0
  22. package/lib/config/default-config.d.ts +32 -0
  23. package/lib/config/default-config.js +39 -0
  24. package/lib/config/setting-config.d.ts +16 -0
  25. package/lib/config/setting-config.js +17 -0
  26. package/lib/creator.d.ts +10 -0
  27. package/lib/creator.js +49 -0
  28. package/lib/global.d.ts +8 -0
  29. package/lib/hooks/meeting-time.d.ts +15 -0
  30. package/lib/hooks/meeting-time.js +92 -0
  31. package/lib/hooks/useIsNodePresent.d.ts +4 -0
  32. package/lib/hooks/useIsNodePresent.js +53 -0
  33. package/lib/hooks/useOnRefMount.d.ts +2 -0
  34. package/lib/hooks/useOnRefMount.js +27 -0
  35. package/lib/index.d.ts +6 -0
  36. package/lib/index.js +50 -0
  37. package/lib/mobile-global.css +28 -0
  38. package/lib/modules/action-bar/bottom-icons.d.ts +17 -0
  39. package/lib/modules/action-bar/bottom-icons.js +160 -0
  40. package/lib/modules/action-bar/context.d.ts +2 -0
  41. package/lib/modules/action-bar/context.js +9 -0
  42. package/lib/modules/action-bar/index.css +33 -0
  43. package/lib/modules/action-bar/index.d.ts +27 -0
  44. package/lib/modules/action-bar/index.js +46 -0
  45. package/lib/modules/action-bar/member-list-popup/attendee/index.css +130 -0
  46. package/lib/modules/action-bar/member-list-popup/attendee/index.d.ts +19 -0
  47. package/lib/modules/action-bar/member-list-popup/attendee/index.js +252 -0
  48. package/lib/modules/action-bar/member-list-popup/attendee/list.d.ts +1 -0
  49. package/lib/modules/action-bar/member-list-popup/attendee/list.js +82 -0
  50. package/lib/modules/action-bar/member-list-popup/index.css +35 -0
  51. package/lib/modules/action-bar/member-list-popup/index.d.ts +7 -0
  52. package/lib/modules/action-bar/member-list-popup/index.js +40 -0
  53. package/lib/modules/action-bar/member-list-popup/participant-more-actions/index.css +0 -0
  54. package/lib/modules/action-bar/member-list-popup/participant-more-actions/index.d.ts +12 -0
  55. package/lib/modules/action-bar/member-list-popup/participant-more-actions/index.js +58 -0
  56. package/lib/modules/action-bar/more-popup/index.css +71 -0
  57. package/lib/modules/action-bar/more-popup/index.d.ts +2 -0
  58. package/lib/modules/action-bar/more-popup/index.js +126 -0
  59. package/lib/modules/action-bar/store.d.ts +196 -0
  60. package/lib/modules/action-bar/store.js +1425 -0
  61. package/lib/modules/action-bar/type.d.ts +6 -0
  62. package/lib/modules/action-bar/type.js +13 -0
  63. package/lib/modules/action-bar/view.d.ts +2 -0
  64. package/lib/modules/action-bar/view.js +75 -0
  65. package/lib/modules/audio-stream/ index.d.ts +19 -0
  66. package/lib/modules/audio-stream/ index.js +109 -0
  67. package/lib/modules/audio-stream/index.d.ts +25 -0
  68. package/lib/modules/audio-stream/index.js +135 -0
  69. package/lib/modules/chat/chat-bar/index.css +97 -0
  70. package/lib/modules/chat/chat-bar/index.d.ts +12 -0
  71. package/lib/modules/chat/chat-bar/index.js +129 -0
  72. package/lib/modules/chat/chat-notification/index.css +71 -0
  73. package/lib/modules/chat/chat-notification/index.d.ts +3 -0
  74. package/lib/modules/chat/chat-notification/index.js +75 -0
  75. package/lib/modules/chat/chat-select/index.css +183 -0
  76. package/lib/modules/chat/chat-select/index.d.ts +12 -0
  77. package/lib/modules/chat/chat-select/index.js +223 -0
  78. package/lib/modules/chat/contex.d.ts +2 -0
  79. package/lib/modules/chat/contex.js +9 -0
  80. package/lib/modules/chat/demo-wrapper.d.ts +1 -0
  81. package/lib/modules/chat/demo-wrapper.js +42 -0
  82. package/lib/modules/chat/index.css +108 -0
  83. package/lib/modules/chat/index.d.ts +28 -0
  84. package/lib/modules/chat/index.dev.d.ts +1 -0
  85. package/lib/modules/chat/index.dev.js +58 -0
  86. package/lib/modules/chat/index.js +208 -0
  87. package/lib/modules/chat/message-list.d.ts +22 -0
  88. package/lib/modules/chat/message-list.js +617 -0
  89. package/lib/modules/chat/mock.d.ts +2 -0
  90. package/lib/modules/chat/mock.js +283 -0
  91. package/lib/modules/chat/store.d.ts +183 -0
  92. package/lib/modules/chat/store.js +1101 -0
  93. package/lib/modules/chat/util.d.ts +6 -0
  94. package/lib/modules/chat/util.js +69 -0
  95. package/lib/modules/chat/view.d.ts +11 -0
  96. package/lib/modules/chat/view.js +414 -0
  97. package/lib/modules/layout/bottom-drawer/index.css +34 -0
  98. package/lib/modules/layout/bottom-drawer/index.d.ts +3 -0
  99. package/lib/modules/layout/bottom-drawer/index.js +129 -0
  100. package/lib/modules/layout/components/Layout.d.ts +1 -0
  101. package/lib/modules/layout/components/Layout.js +98 -0
  102. package/lib/modules/layout/components/equip-request-popup/index.css +30 -0
  103. package/lib/modules/layout/components/equip-request-popup/index.d.ts +3 -0
  104. package/lib/modules/layout/components/equip-request-popup/index.js +78 -0
  105. package/lib/modules/layout/components/index.css +78 -0
  106. package/lib/modules/layout/components/index.d.ts +2 -0
  107. package/lib/modules/layout/components/index.js +25 -0
  108. package/lib/modules/layout/context.d.ts +2 -0
  109. package/lib/modules/layout/context.js +9 -0
  110. package/lib/modules/layout/drawer-header/index.css +27 -0
  111. package/lib/modules/layout/drawer-header/index.d.ts +10 -0
  112. package/lib/modules/layout/drawer-header/index.js +54 -0
  113. package/lib/modules/layout/index.css +22 -0
  114. package/lib/modules/layout/index.d.ts +8 -0
  115. package/lib/modules/layout/index.js +47 -0
  116. package/lib/modules/layout/store.d.ts +59 -0
  117. package/lib/modules/layout/store.js +379 -0
  118. package/lib/modules/layout/type.d.ts +65 -0
  119. package/lib/modules/layout/type.js +52 -0
  120. package/lib/modules/layout/view.d.ts +2 -0
  121. package/lib/modules/layout/view.js +10 -0
  122. package/lib/modules/member-layout/context.d.ts +2 -0
  123. package/lib/modules/member-layout/context.js +9 -0
  124. package/lib/modules/member-layout/data.d.ts +2 -0
  125. package/lib/modules/member-layout/data.js +304 -0
  126. package/lib/modules/member-layout/grid/index.css +98 -0
  127. package/lib/modules/member-layout/grid/index.d.ts +21 -0
  128. package/lib/modules/member-layout/grid/index.js +316 -0
  129. package/lib/modules/member-layout/index.css +88 -0
  130. package/lib/modules/member-layout/index.d.ts +8 -0
  131. package/lib/modules/member-layout/index.js +45 -0
  132. package/lib/modules/member-layout/share-toast/index.css +30 -0
  133. package/lib/modules/member-layout/share-toast/index.d.ts +5 -0
  134. package/lib/modules/member-layout/share-toast/index.js +43 -0
  135. package/lib/modules/member-layout/speaker/index.css +30 -0
  136. package/lib/modules/member-layout/speaker/index.d.ts +9 -0
  137. package/lib/modules/member-layout/speaker/index.js +28 -0
  138. package/lib/modules/member-layout/store.d.ts +70 -0
  139. package/lib/modules/member-layout/store.js +479 -0
  140. package/lib/modules/member-layout/user/index.css +121 -0
  141. package/lib/modules/member-layout/user/index.d.ts +34 -0
  142. package/lib/modules/member-layout/user/index.js +355 -0
  143. package/lib/modules/member-layout/user/types.d.ts +16 -0
  144. package/lib/modules/member-layout/user/types.js +6 -0
  145. package/lib/modules/member-layout/view.d.ts +2 -0
  146. package/lib/modules/member-layout/view.js +225 -0
  147. package/lib/modules/state-bar/context.d.ts +2 -0
  148. package/lib/modules/state-bar/context.js +9 -0
  149. package/lib/modules/state-bar/index.css +79 -0
  150. package/lib/modules/state-bar/index.d.ts +17 -0
  151. package/lib/modules/state-bar/index.js +55 -0
  152. package/lib/modules/state-bar/leaving-room/index.css +14 -0
  153. package/lib/modules/state-bar/leaving-room/index.d.ts +7 -0
  154. package/lib/modules/state-bar/leaving-room/index.js +38 -0
  155. package/lib/modules/state-bar/meeting-detail/index.css +72 -0
  156. package/lib/modules/state-bar/meeting-detail/index.d.ts +2 -0
  157. package/lib/modules/state-bar/meeting-detail/index.js +59 -0
  158. package/lib/modules/state-bar/meeting-detail/meeting-info/copy.d.ts +4 -0
  159. package/lib/modules/state-bar/meeting-detail/meeting-info/copy.js +81 -0
  160. package/lib/modules/state-bar/meeting-detail/meeting-info/index.css +92 -0
  161. package/lib/modules/state-bar/meeting-detail/meeting-info/index.d.ts +2 -0
  162. package/lib/modules/state-bar/meeting-detail/meeting-info/index.js +188 -0
  163. package/lib/modules/state-bar/meeting-detail/net-quality/index.css +27 -0
  164. package/lib/modules/state-bar/meeting-detail/net-quality/index.d.ts +2 -0
  165. package/lib/modules/state-bar/meeting-detail/net-quality/index.js +87 -0
  166. package/lib/modules/state-bar/store.d.ts +76 -0
  167. package/lib/modules/state-bar/store.js +561 -0
  168. package/lib/modules/state-bar/view.d.ts +7 -0
  169. package/lib/modules/state-bar/view.js +215 -0
  170. package/lib/modules/whiteboard/app.d.ts +2 -0
  171. package/lib/modules/whiteboard/app.js +41 -0
  172. package/lib/modules/whiteboard/components/control-bar/index.css +53 -0
  173. package/lib/modules/whiteboard/components/control-bar/index.d.ts +2 -0
  174. package/lib/modules/whiteboard/components/control-bar/index.js +156 -0
  175. package/lib/modules/whiteboard/components/control-bar/store.d.ts +35 -0
  176. package/lib/modules/whiteboard/components/control-bar/store.js +288 -0
  177. package/lib/modules/whiteboard/components/loading/index.css +76 -0
  178. package/lib/modules/whiteboard/components/loading/index.d.ts +2 -0
  179. package/lib/modules/whiteboard/components/loading/index.js +68 -0
  180. package/lib/modules/whiteboard/components/loading/loading.png +0 -0
  181. package/lib/modules/whiteboard/components/multi-window/index.css +65 -0
  182. package/lib/modules/whiteboard/components/multi-window/index.d.ts +5 -0
  183. package/lib/modules/whiteboard/components/multi-window/index.js +39 -0
  184. package/lib/modules/whiteboard/components/pagination/index.css +228 -0
  185. package/lib/modules/whiteboard/components/pagination/index.d.ts +15 -0
  186. package/lib/modules/whiteboard/components/pagination/index.js +163 -0
  187. package/lib/modules/whiteboard/components/pagination/store.d.ts +18 -0
  188. package/lib/modules/whiteboard/components/pagination/store.js +17 -0
  189. package/lib/modules/whiteboard/components/progress/index.d.ts +5 -0
  190. package/lib/modules/whiteboard/components/progress/index.js +43 -0
  191. package/lib/modules/whiteboard/components/progress/style.css +52 -0
  192. package/lib/modules/whiteboard/components/scene-pagination.d.ts +1 -0
  193. package/lib/modules/whiteboard/components/scene-pagination.js +30 -0
  194. package/lib/modules/whiteboard/components/switch-theme/index.css +98 -0
  195. package/lib/modules/whiteboard/components/switch-theme/index.d.ts +3 -0
  196. package/lib/modules/whiteboard/components/switch-theme/index.js +89 -0
  197. package/lib/modules/whiteboard/components/switch-theme/item.d.ts +9 -0
  198. package/lib/modules/whiteboard/components/switch-theme/item.js +53 -0
  199. package/lib/modules/whiteboard/components/switch-theme/libs.d.ts +4 -0
  200. package/lib/modules/whiteboard/components/switch-theme/libs.js +29 -0
  201. package/lib/modules/whiteboard/components/toolbar/ style.css +588 -0
  202. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/color.d.ts +5 -0
  203. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/color.js +38 -0
  204. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.d.ts +1 -0
  205. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +107 -0
  206. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.d.ts +1 -0
  207. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +59 -0
  208. package/lib/modules/whiteboard/components/toolbar/components/color-picker/index.d.ts +2 -0
  209. package/lib/modules/whiteboard/components/toolbar/components/color-picker/index.js +44 -0
  210. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.d.ts +4 -0
  211. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +89 -0
  212. package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.d.ts +1 -0
  213. package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +63 -0
  214. package/lib/modules/whiteboard/components/toolbar/components/history.d.ts +2 -0
  215. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -0
  216. package/lib/modules/whiteboard/components/toolbar/components/icons/fold-icon.d.ts +2 -0
  217. package/lib/modules/whiteboard/components/toolbar/components/icons/fold-icon.js +39 -0
  218. package/lib/modules/whiteboard/components/toolbar/components/icons/move-icon.d.ts +1 -0
  219. package/lib/modules/whiteboard/components/toolbar/components/icons/move-icon.js +66 -0
  220. package/lib/modules/whiteboard/components/toolbar/components/move-handle.d.ts +5 -0
  221. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +134 -0
  222. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.d.ts +4 -0
  223. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +106 -0
  224. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.d.ts +4 -0
  225. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +168 -0
  226. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  227. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +211 -0
  228. package/lib/modules/whiteboard/components/toolbar/index.d.ts +2 -0
  229. package/lib/modules/whiteboard/components/toolbar/index.js +183 -0
  230. package/lib/modules/whiteboard/components/toolbar/store.d.ts +51 -0
  231. package/lib/modules/whiteboard/components/toolbar/store.js +248 -0
  232. package/lib/modules/whiteboard/context.d.ts +69 -0
  233. package/lib/modules/whiteboard/context.js +36 -0
  234. package/lib/modules/whiteboard/index.d.ts +119 -0
  235. package/lib/modules/whiteboard/index.js +1134 -0
  236. package/lib/modules/whiteboard/style.css +143 -0
  237. package/lib/modules/whiteboard/type.d.ts +94 -0
  238. package/lib/modules/whiteboard/type.js +89 -0
  239. package/lib/modules/whiteboard/utils.d.ts +12 -0
  240. package/lib/modules/whiteboard/utils.js +36 -0
  241. package/lib/plugins/css-preset-plugin.d.ts +1 -0
  242. package/lib/plugins/css-preset-plugin.js +29 -0
  243. package/lib/plugins/module-dev-plugin.d.ts +12 -0
  244. package/lib/plugins/module-dev-plugin.js +183 -0
  245. package/lib/plugins/multi-lang-plugin.d.ts +1 -0
  246. package/lib/plugins/multi-lang-plugin.js +19 -0
  247. package/lib/plugins/rtm-plugin.d.ts +1 -0
  248. package/lib/plugins/rtm-plugin.js +5 -0
  249. package/lib/plugins/web-rtc-plugin.d.ts +1 -0
  250. package/lib/plugins/web-rtc-plugin.js +5 -0
  251. package/lib/translations/enUS.d.ts +1855 -0
  252. package/lib/translations/enUS.js +1895 -0
  253. package/lib/translations/zhCN.d.ts +1852 -0
  254. package/lib/translations/zhCN.js +1892 -0
  255. package/lib/type.d.ts +121 -0
  256. package/lib/type.js +46 -0
  257. package/lib/ui-manager.d.ts +32 -0
  258. package/lib/ui-manager.js +426 -0
  259. package/lib/ui-scene.d.ts +14 -0
  260. package/lib/ui-scene.js +141 -0
  261. package/lib/utilities/board-context.d.ts +4 -0
  262. package/lib/utilities/board-context.js +12 -0
  263. package/lib/utilities/constant.d.ts +286 -0
  264. package/lib/utilities/constant.js +271 -0
  265. package/lib/utilities/copyText.d.ts +2 -0
  266. package/lib/utilities/copyText.js +43 -0
  267. package/lib/utilities/extract.d.ts +5 -0
  268. package/lib/utilities/extract.js +117 -0
  269. package/lib/utilities/hooks.d.ts +14 -0
  270. package/lib/utilities/hooks.js +101 -0
  271. package/lib/utilities/mute-action.d.ts +4 -0
  272. package/lib/utilities/mute-action.js +48 -0
  273. package/lib/utilities/parameters.d.ts +7 -0
  274. package/lib/utilities/parameters.js +20 -0
  275. package/lib/utilities/regex.d.ts +1 -0
  276. package/lib/utilities/regex.js +14 -0
  277. package/lib/utilities/tools.d.ts +27 -0
  278. package/lib/utilities/tools.js +169 -0
  279. package/lib/utilities/useNamespace.d.ts +15 -0
  280. package/lib/utilities/useNamespace.js +66 -0
  281. 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,6 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -0,0 +1,2 @@
1
+ import './index.css';
2
+ export declare const View: () => import("react/jsx-runtime").JSX.Element;
@@ -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,2 @@
1
+ import StateBarStore from './store';
2
+ export declare const StoreContext: import("react").Context<StateBarStore>;
@@ -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);