fcr-ui-scene 3.4.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/lib/ scenes/base.d.ts +10 -0
  2. package/lib/ scenes/base.js +75 -0
  3. package/lib/ scenes/main-scene.d.ts +43 -0
  4. package/lib/ scenes/main-scene.js +368 -0
  5. package/lib/ scenes/waiting-scene.d.ts +31 -0
  6. package/lib/ scenes/waiting-scene.js +119 -0
  7. package/lib/common/device-store.d.ts +1 -2
  8. package/lib/common/device-store.js +169 -153
  9. package/lib/common/device-stream-store.d.ts +5 -29
  10. package/lib/common/device-stream-store.js +47 -93
  11. package/lib/common/room-store.js +4 -4
  12. package/lib/common/security-store.d.ts +6 -16
  13. package/lib/common/security-store.js +16 -17
  14. package/lib/common/type.d.ts +8 -0
  15. package/lib/common/type.js +6 -0
  16. package/lib/creator.js +3 -3
  17. package/lib/electron/app.js +21 -5
  18. package/lib/electron/bootstrap-sdk.js +1 -2
  19. package/lib/electron/injections.d.ts +1 -1
  20. package/lib/error-fallback.css +62 -0
  21. package/lib/error-fallback.d.ts +2 -0
  22. package/lib/error-fallback.js +19 -0
  23. package/lib/modules/Interpreter/action/delete-btn/index.d.ts +1 -1
  24. package/lib/modules/Interpreter/action/edit-btn/index.d.ts +0 -1
  25. package/lib/modules/Interpreter/action/edit-btn/index.js +0 -2
  26. package/lib/modules/Interpreter/action/switch-btn/index.css +3 -0
  27. package/lib/modules/Interpreter/action/switch-btn/index.d.ts +2 -4
  28. package/lib/modules/Interpreter/action/switch-btn/index.js +3 -3
  29. package/lib/modules/Interpreter/footer/index.css +4 -3
  30. package/lib/modules/Interpreter/index.d.ts +2 -17
  31. package/lib/modules/Interpreter/index.js +2 -18
  32. package/lib/modules/Interpreter/interpreter-list/index.css +5 -1
  33. package/lib/modules/Interpreter/interpreter-list/index.d.ts +1 -0
  34. package/lib/modules/Interpreter/interpreter-list/index.js +3 -1
  35. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.css +0 -6
  36. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.d.ts +1 -1
  37. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.css +1 -3
  38. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.d.ts +1 -6
  39. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +55 -81
  40. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.d.ts +6 -0
  41. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.js +58 -0
  42. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.d.ts +1 -1
  43. package/lib/modules/Interpreter/store.d.ts +36 -29
  44. package/lib/modules/Interpreter/store.js +575 -606
  45. package/lib/modules/Interpreter/type.d.ts +41 -0
  46. package/lib/modules/Interpreter/type.js +20 -0
  47. package/lib/modules/Interpreter/utils.d.ts +12 -0
  48. package/lib/modules/Interpreter/utils.js +139 -0
  49. package/lib/modules/Interpreter/view.d.ts +0 -1
  50. package/lib/modules/Interpreter/view.js +3 -5
  51. package/lib/modules/action-bar/action-bar-collapes-items.d.ts +1 -1
  52. package/lib/modules/action-bar/action-bar-collapes-items.js +11 -11
  53. package/lib/modules/action-bar/apps/useInterpreter.js +4 -2
  54. package/lib/modules/action-bar/components/apps/app-item/index.css +35 -0
  55. package/lib/modules/action-bar/components/apps/app-item/index.d.ts +12 -0
  56. package/lib/modules/action-bar/components/apps/app-item/index.js +61 -0
  57. package/lib/modules/action-bar/components/apps/appitems.d.ts +5 -0
  58. package/lib/modules/action-bar/components/apps/appitems.js +45 -0
  59. package/lib/modules/action-bar/components/apps/index.css +8 -0
  60. package/lib/modules/action-bar/components/apps/index.d.ts +4 -0
  61. package/lib/modules/action-bar/components/apps/index.js +57 -0
  62. package/lib/modules/action-bar/components/apps/useAppItemOptions.d.ts +9 -0
  63. package/lib/modules/action-bar/components/apps/useAppItemOptions.js +29 -0
  64. package/lib/modules/action-bar/components/apps/useBeautyBackground.d.ts +10 -0
  65. package/lib/modules/action-bar/components/apps/useBeautyBackground.js +36 -0
  66. package/lib/modules/action-bar/components/apps/useInterpreter.d.ts +14 -0
  67. package/lib/modules/action-bar/components/apps/useInterpreter.js +37 -0
  68. package/lib/modules/action-bar/components/apps/useLiveStreaming.d.ts +16 -0
  69. package/lib/modules/action-bar/components/apps/useLiveStreaming.js +41 -0
  70. package/lib/modules/action-bar/components/board/index.d.ts +4 -0
  71. package/lib/modules/action-bar/components/board/index.js +34 -0
  72. package/lib/modules/action-bar/components/breakout-room/index.d.ts +4 -0
  73. package/lib/modules/action-bar/components/breakout-room/index.js +32 -0
  74. package/lib/modules/action-bar/components/chat/index.css +80 -0
  75. package/lib/modules/action-bar/components/chat/index.d.ts +5 -0
  76. package/lib/modules/action-bar/components/chat/index.js +154 -0
  77. package/lib/modules/action-bar/components/device/index.css +162 -0
  78. package/lib/modules/action-bar/components/device/index.d.ts +8 -0
  79. package/lib/modules/action-bar/components/device/index.js +611 -0
  80. package/lib/modules/action-bar/components/interpreter/index.d.ts +6 -0
  81. package/lib/modules/action-bar/components/interpreter/index.js +41 -0
  82. package/lib/modules/action-bar/components/item.d.ts +27 -0
  83. package/lib/modules/action-bar/components/item.js +164 -0
  84. package/lib/modules/action-bar/components/leave/assign-host.d.ts +10 -0
  85. package/lib/modules/action-bar/components/leave/assign-host.js +64 -0
  86. package/lib/modules/action-bar/components/leave/index.css +126 -0
  87. package/lib/modules/action-bar/components/leave/index.d.ts +3 -0
  88. package/lib/modules/action-bar/components/leave/index.js +159 -0
  89. package/lib/modules/action-bar/components/leave/leave-meeting.d.ts +18 -0
  90. package/lib/modules/action-bar/components/leave/leave-meeting.js +153 -0
  91. package/lib/modules/action-bar/components/live-streaming/index.d.ts +4 -0
  92. package/lib/modules/action-bar/components/live-streaming/index.js +39 -0
  93. package/lib/modules/action-bar/components/more/index.css +114 -0
  94. package/lib/modules/action-bar/components/more/index.d.ts +5 -0
  95. package/lib/modules/action-bar/components/more/index.js +83 -0
  96. package/lib/modules/action-bar/components/more/poppover-content.d.ts +8 -0
  97. package/lib/modules/action-bar/components/more/poppover-content.js +400 -0
  98. package/lib/modules/action-bar/components/participants/index.css +21 -0
  99. package/lib/modules/action-bar/components/participants/index.d.ts +5 -0
  100. package/lib/modules/action-bar/components/participants/index.js +83 -0
  101. package/lib/modules/action-bar/components/record/index.css +39 -0
  102. package/lib/modules/action-bar/components/record/index.d.ts +5 -0
  103. package/lib/modules/action-bar/components/record/index.js +166 -0
  104. package/lib/modules/action-bar/components/record/stop-record-dialog.d.ts +5 -0
  105. package/lib/modules/action-bar/components/record/stop-record-dialog.js +48 -0
  106. package/lib/modules/action-bar/components/respond/index.d.ts +4 -0
  107. package/lib/modules/action-bar/components/respond/index.js +32 -0
  108. package/lib/modules/action-bar/components/screen-share/index.d.ts +4 -0
  109. package/lib/modules/action-bar/components/screen-share/index.js +106 -0
  110. package/lib/modules/action-bar/components/screen-share/submenu.d.ts +1 -0
  111. package/lib/modules/action-bar/components/screen-share/submenu.js +154 -0
  112. package/lib/modules/action-bar/components/security/index.d.ts +4 -0
  113. package/lib/modules/action-bar/components/security/index.js +58 -0
  114. package/lib/modules/action-bar/components/settings/index.d.ts +4 -0
  115. package/lib/modules/action-bar/components/settings/index.js +42 -0
  116. package/lib/modules/action-bar/index.css +23 -1
  117. package/lib/modules/action-bar/index.d.ts +2 -22
  118. package/lib/modules/action-bar/index.dev.js +37 -16
  119. package/lib/modules/action-bar/notification-bar/components/interpreter/index.css +58 -0
  120. package/lib/modules/action-bar/notification-bar/components/interpreter/index.d.ts +8 -0
  121. package/lib/modules/action-bar/notification-bar/components/interpreter/index.js +100 -0
  122. package/lib/modules/action-bar/notification-bar/components/virtual-image/index.css +56 -0
  123. package/lib/modules/action-bar/notification-bar/components/virtual-image/index.d.ts +5 -0
  124. package/lib/modules/action-bar/notification-bar/components/virtual-image/index.js +33 -0
  125. package/lib/modules/action-bar/notification-bar/dome.png +0 -0
  126. package/lib/modules/action-bar/notification-bar/fcr_translateswitch.png +0 -0
  127. package/lib/modules/action-bar/notification-bar/index.css +74 -0
  128. package/lib/modules/action-bar/notification-bar/index.d.ts +2 -0
  129. package/lib/modules/action-bar/notification-bar/index.js +99 -0
  130. package/lib/modules/action-bar/screen-share/index.js +5 -0
  131. package/lib/modules/action-bar/security/index.js +1 -0
  132. package/lib/modules/action-bar/smaller.js +2 -2
  133. package/lib/modules/action-bar/store.d.ts +6 -7
  134. package/lib/modules/action-bar/store.js +114 -128
  135. package/lib/modules/action-bar/trigger-input-language-room/fcr_translateswitch.png +0 -0
  136. package/lib/modules/action-bar/trigger-input-language-room/index.css +86 -0
  137. package/lib/modules/action-bar/trigger-input-language-room/index.d.ts +15 -0
  138. package/lib/modules/action-bar/trigger-input-language-room/index.js +220 -0
  139. package/lib/modules/action-bar/trigger-output-language-room/constant.d.ts +10 -0
  140. package/lib/modules/action-bar/trigger-output-language-room/constant.js +8 -0
  141. package/lib/modules/action-bar/trigger-output-language-room/guide-tooltip/index.css +22 -0
  142. package/lib/modules/action-bar/trigger-output-language-room/guide-tooltip/index.d.ts +14 -0
  143. package/lib/modules/action-bar/trigger-output-language-room/guide-tooltip/index.js +75 -0
  144. package/lib/modules/action-bar/trigger-output-language-room/index.d.ts +4 -0
  145. package/lib/modules/action-bar/trigger-output-language-room/index.js +98 -0
  146. package/lib/modules/action-bar/trigger-output-language-room/trigger-language-room.d.ts +5 -0
  147. package/lib/modules/action-bar/trigger-output-language-room/trigger-language-room.js +66 -0
  148. package/lib/modules/action-bar/trigger-output-language-room/trigger-main-room.d.ts +5 -0
  149. package/lib/modules/action-bar/trigger-output-language-room/trigger-main-room.js +36 -0
  150. package/lib/modules/action-bar/trigger-output-language-room/useChangeOutputRoomTool.d.ts +12 -0
  151. package/lib/modules/action-bar/trigger-output-language-room/useChangeOutputRoomTool.js +138 -0
  152. package/lib/modules/action-bar/view.js +6 -6
  153. package/lib/modules/audio-stream/index.d.ts +2 -15
  154. package/lib/modules/audio-stream/index.js +1 -3
  155. package/lib/modules/chat/chat-bar/index.css +5 -0
  156. package/lib/modules/chat/chat-bar/index.js +16 -14
  157. package/lib/modules/chat/chat-select/index.css +6 -3
  158. package/lib/modules/chat/chat.js +7 -6
  159. package/lib/modules/chat/index.css +10 -0
  160. package/lib/modules/chat/index.d.ts +2 -12
  161. package/lib/modules/chat/index.dev.js +14 -3
  162. package/lib/modules/chat/index.js +7 -20
  163. package/lib/modules/chat/message-list.js +1 -0
  164. package/lib/modules/chat/store.js +1 -1
  165. package/lib/modules/components/device-control/components/audio-menu/index.js +4 -4
  166. package/lib/modules/components/device-control/index.css +3 -0
  167. package/lib/modules/components/dialog-container/component/body.d.ts +7 -0
  168. package/lib/modules/components/dialog-container/component/body.js +46 -0
  169. package/lib/modules/components/dialog-container/index.css +78 -0
  170. package/lib/modules/components/dialog-container/index.d.ts +11 -0
  171. package/lib/modules/components/dialog-container/index.js +110 -0
  172. package/lib/modules/components/member-window/index.css +419 -0
  173. package/lib/modules/components/member-window/index.d.ts +76 -0
  174. package/lib/modules/components/member-window/index.js +888 -0
  175. package/lib/modules/components/security-menu/index.css +9 -0
  176. package/lib/modules/components/security-menu/index.js +74 -23
  177. package/lib/modules/components/tab-frame/index.css +40 -0
  178. package/lib/modules/components/tab-frame/index.d.ts +12 -0
  179. package/lib/modules/components/tab-frame/index.js +57 -0
  180. package/lib/modules/connection-gateway/components/computer/index.css +1 -0
  181. package/lib/modules/connection-gateway/components/phone/index.css +1 -1
  182. package/lib/modules/connection-gateway/index.d.ts +2 -9
  183. package/lib/modules/connection-gateway/store.d.ts +3 -11
  184. package/lib/modules/connection-gateway/store.js +1 -17
  185. package/lib/modules/connection-gateway/view.js +21 -4
  186. package/lib/modules/control-bar/components/cloud-recording-buttons.js +1 -1
  187. package/lib/modules/control-bar/index.d.ts +2 -16
  188. package/lib/modules/control-bar/index.js +10 -19
  189. package/lib/modules/control-bar/store.d.ts +3 -16
  190. package/lib/modules/control-bar/store.js +23 -5
  191. package/lib/modules/control-bar/view.js +17 -10
  192. package/lib/modules/device-pretest/settings/virtual-background-setting.js +1 -1
  193. package/lib/modules/dialog/components/Interpreter/electron.js +3 -25
  194. package/lib/modules/dialog/components/Interpreter/index.js +14 -43
  195. package/lib/modules/dialog/components/chat/electron.d.ts +1 -1
  196. package/lib/modules/dialog/components/chat/electron.js +6 -13
  197. package/lib/modules/dialog/components/chat/index.d.ts +1 -4
  198. package/lib/modules/dialog/components/chat/index.js +35 -41
  199. package/lib/modules/dialog/components/confirm/index.js +6 -7
  200. package/lib/modules/dialog/components/connection-gateway/electron.d.ts +1 -1
  201. package/lib/modules/dialog/components/connection-gateway/electron.js +9 -28
  202. package/lib/modules/dialog/components/connection-gateway/index.d.ts +0 -1
  203. package/lib/modules/dialog/components/connection-gateway/index.js +11 -56
  204. package/lib/modules/dialog/components/control-bar/index.js +6 -7
  205. package/lib/modules/dialog/components/device-setting/electron.js +4 -26
  206. package/lib/modules/dialog/components/device-setting/index.js +13 -41
  207. package/lib/modules/dialog/components/invite/index.js +16 -35
  208. package/lib/modules/dialog/components/live-streaming/index.js +18 -53
  209. package/lib/modules/dialog/components/participant/electron.js +4 -17
  210. package/lib/modules/dialog/components/participant/index.js +35 -26
  211. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.js +3 -6
  212. package/lib/modules/dialog/components/remove-admit-waiting-room/index.d.ts +1 -1
  213. package/lib/modules/dialog/components/remove-admit-waiting-room/index.js +4 -14
  214. package/lib/modules/dialog/components/share-screen-selection/index.js +20 -5
  215. package/lib/modules/dialog/components/system-preference/electron.js +5 -8
  216. package/lib/modules/dialog/components/system-preference/index.js +4 -15
  217. package/lib/modules/dialog/components/toast/index.js +8 -12
  218. package/lib/modules/dialog/dialogs.js +2 -1
  219. package/lib/modules/dialog/hooks/useElectron.d.ts +6 -0
  220. package/lib/modules/dialog/hooks/useElectron.js +51 -9
  221. package/lib/modules/dialog/index.css +0 -2
  222. package/lib/modules/dialog/index.d.ts +2 -17
  223. package/lib/modules/dialog/store.d.ts +7 -39
  224. package/lib/modules/dialog/store.js +53 -152
  225. package/lib/modules/dialog/types/index.d.ts +59 -0
  226. package/lib/modules/event-confirm/view.js +4 -1
  227. package/lib/modules/invite/view.d.ts +4 -0
  228. package/lib/modules/invite/view.js +18 -22
  229. package/lib/modules/invite/voip-invite.js +3 -3
  230. package/lib/modules/layout/components/Aside.js +11 -1
  231. package/lib/modules/layout/components/Carousel.js +1 -1
  232. package/lib/modules/layout/components/Layout.js +7 -4
  233. package/lib/modules/layout/components/index.css +6 -1
  234. package/lib/modules/layout/index.js +8 -7
  235. package/lib/modules/layout/member-window/index.css +22 -9
  236. package/lib/modules/layout/member-window/index.js +16 -3
  237. package/lib/modules/layout/store.d.ts +1 -1
  238. package/lib/modules/layout/store.js +1 -7
  239. package/lib/modules/layout/video-window-datasource.js +11 -3
  240. package/lib/modules/notification/index.css +1 -0
  241. package/lib/modules/participant/attendee/index.css +1 -0
  242. package/lib/modules/participant/attendee/index.js +2 -1
  243. package/lib/modules/participant/components/drop-menu/index.css +1 -0
  244. package/lib/modules/participant/components/drop-menu/index.js +9 -9
  245. package/lib/modules/participant/index.css +5 -0
  246. package/lib/modules/participant/index.d.ts +2 -17
  247. package/lib/modules/participant/index.dev.js +38 -27
  248. package/lib/modules/participant/store.d.ts +4 -17
  249. package/lib/modules/participant/store.js +13 -13
  250. package/lib/modules/setting/audio-settings/audio-settings.js +13 -10
  251. package/lib/modules/setting/audio-settings/index.css +26 -1
  252. package/lib/modules/setting/general-settings/index.css +1 -1
  253. package/lib/modules/setting/index.css +2 -1
  254. package/lib/modules/setting/index.d.ts +2 -15
  255. package/lib/modules/setting/index.dev.js +19 -10
  256. package/lib/modules/setting/store.d.ts +5 -18
  257. package/lib/modules/setting/store.js +48 -20
  258. package/lib/modules/setting/translate-settings/index.css +3 -1
  259. package/lib/modules/setting/video-settings/index.css +5 -2
  260. package/lib/modules/share-screen/index.dev.js +20 -19
  261. package/lib/modules/share-screen/selection/index.css +2 -0
  262. package/lib/modules/share-screen/selection/index.js +83 -97
  263. package/lib/modules/share-screen/store.js +16 -36
  264. package/lib/modules/sound-effect/index.d.ts +2 -13
  265. package/lib/modules/sound-effect/index.js +1 -2
  266. package/lib/modules/state-bar/index.css +13 -2
  267. package/lib/modules/state-bar/index.d.ts +1 -5
  268. package/lib/modules/state-bar/index.dev.js +1 -1
  269. package/lib/modules/state-bar/index.js +0 -27
  270. package/lib/modules/state-bar/layout-config.js +1 -1
  271. package/lib/modules/state-bar/meeting-network-state.css +1 -1
  272. package/lib/modules/state-bar/recording.js +7 -4
  273. package/lib/modules/state-bar/view.js +1 -1
  274. package/lib/modules/video-window/index.d.ts +2 -2
  275. package/lib/modules/video-window/store.d.ts +2 -1
  276. package/lib/modules/video-window/store.js +2 -2
  277. package/lib/modules/waiting-room-layout/index.css +1 -3
  278. package/lib/modules/waiting-room-layout/index.d.ts +3 -1
  279. package/lib/modules/waiting-room-layout/index.js +10 -3
  280. package/lib/modules/whiteboard/index.d.ts +2 -13
  281. package/lib/modules/whiteboard/index.js +4 -5
  282. package/lib/providers/device-privilege-provider.d.ts +30 -0
  283. package/lib/providers/device-privilege-provider.js +386 -0
  284. package/lib/providers/device-provider.d.ts +246 -0
  285. package/lib/providers/device-provider.js +1741 -0
  286. package/lib/providers/device-stream-provider.d.ts +36 -0
  287. package/lib/providers/device-stream-provider.js +460 -0
  288. package/lib/providers/event-provider.d.ts +108 -0
  289. package/lib/providers/event-provider.js +288 -0
  290. package/lib/providers/interpreter-provider.d.ts +25 -0
  291. package/lib/providers/interpreter-provider.js +151 -0
  292. package/lib/providers/local-storage-provider.d.ts +8 -0
  293. package/lib/providers/local-storage-provider.js +31 -0
  294. package/lib/providers/monitor-provider.d.ts +15 -0
  295. package/lib/providers/monitor-provider.js +29 -0
  296. package/lib/providers/privilege-provider.d.ts +216 -0
  297. package/lib/providers/privilege-provider.js +966 -0
  298. package/lib/providers/renderer-provider.d.ts +43 -0
  299. package/lib/providers/renderer-provider.js +245 -0
  300. package/lib/providers/room-provider.d.ts +79 -0
  301. package/lib/providers/room-provider.js +439 -0
  302. package/lib/providers/session-provider.d.ts +26 -0
  303. package/lib/providers/session-provider.js +49 -0
  304. package/lib/runtime.d.ts +1 -1
  305. package/lib/scenes/base.d.ts +10 -0
  306. package/lib/scenes/base.js +75 -0
  307. package/lib/scenes/main-scene.d.ts +48 -0
  308. package/lib/scenes/main-scene.js +390 -0
  309. package/lib/scenes/waiting-scene.d.ts +31 -0
  310. package/lib/scenes/waiting-scene.js +129 -0
  311. package/lib/shared-data-source/config.d.ts +16 -0
  312. package/lib/shared-data-source/config.js +21 -0
  313. package/lib/type.d.ts +26 -1
  314. package/lib/ui-manager.d.ts +3 -0
  315. package/lib/ui-manager.js +154 -233
  316. package/lib/ui-node.d.ts +25 -0
  317. package/lib/ui-node.js +156 -0
  318. package/lib/utilities/constant.d.ts +15 -15
  319. package/lib/utilities/constant.js +15 -15
  320. package/lib/utilities/tools.d.ts +2 -0
  321. package/lib/utilities/tools.js +42 -10
  322. package/package.json +12 -11
  323. package/public/assets/fcr_leave2.svg +58 -0
  324. package/public/index.html +150 -13
@@ -0,0 +1,27 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ import { FcrIconType } from 'agora-ui-foundation/lib/components/icon/type';
3
+ import { PopoverProps } from 'agora-ui-foundation/lib/components/popover';
4
+ import { FcrIconProps } from 'agora-ui-foundation/lib/components/icon';
5
+ interface ActionBarItemProps extends React.ComponentProps<'div'> {
6
+ className?: string;
7
+ icon: FcrIconType | React.ReactNode;
8
+ iconColors: FcrIconProps['colors'];
9
+ active?: boolean;
10
+ onClick?: () => void;
11
+ disabled?: boolean;
12
+ title: string;
13
+ order?: number;
14
+ id: string;
15
+ moreVisible?: boolean;
16
+ }
17
+ export declare const ActionBarItem: FC<PropsWithChildren<ActionBarItemProps & {
18
+ submenu?: {
19
+ children: React.ReactNode;
20
+ onClick: () => void;
21
+ };
22
+ }>>;
23
+ interface ActionBarItemWithPopoverProps extends ActionBarItemProps {
24
+ popoverProps?: PopoverProps;
25
+ }
26
+ export declare const ActionBarItemWithPopover: FC<ActionBarItemWithPopoverProps>;
27
+ export {};
@@ -0,0 +1,164 @@
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.ActionBarItemWithPopover = exports.ActionBarItem = void 0;
24
+ require("core-js/modules/es.array.includes.js");
25
+ require("core-js/modules/es.string.includes.js");
26
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
28
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
29
+ var _classnames = _interopRequireDefault(require("classnames"));
30
+ var _react = require("react");
31
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
32
+ var _popover = require("agora-ui-foundation/lib/components/popover");
33
+ var _icon = require("agora-ui-foundation/lib/components/icon");
34
+ var _actionBarCollapesItems = require("../action-bar-collapes-items");
35
+ var _jsxRuntime = require("react/jsx-runtime");
36
+ var _excluded = ["className", "title", "icon", "iconColors", "active", "onClick", "disabled", "order", "id", "moreVisible", "children"];
37
+ 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; }
38
+ 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; }
39
+ var isFcrIcon = function isFcrIcon(icon) {
40
+ return typeof icon === 'string';
41
+ };
42
+
43
+ // The `...others` is required for rc-tooltip (FcrToolTip) to work,
44
+ // internally it edits the child component's props to include `onMouseEnter`
45
+ // `onMouseMove` etc. So additional props must be passed down to the child component.
46
+ var ActionBarItem = exports.ActionBarItem = function ActionBarItem(props) {
47
+ var className = props.className,
48
+ title = props.title,
49
+ icon = props.icon,
50
+ iconColors = props.iconColors,
51
+ _props$active = props.active,
52
+ active = _props$active === void 0 ? false : _props$active,
53
+ onClick_ = props.onClick,
54
+ _props$disabled = props.disabled,
55
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
56
+ order = props.order,
57
+ id = props.id,
58
+ moreVisible = props.moreVisible,
59
+ children = props.children,
60
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
61
+ var ref = (0, _react.useRef)(null);
62
+ var _useContext = (0, _react.useContext)(_actionBarCollapesItems.actionBarCollapseContext),
63
+ setItem = _useContext.setItem,
64
+ visibleList = _useContext.visibleList;
65
+ var visible = id === 'More' ? moreVisible : visibleList.includes(id);
66
+ var onClick = !disabled && onClick_ ? onClick_ : void 0;
67
+ var innerClassName = (0, _classnames["default"])('fcr-action-bar-item', {
68
+ 'fcr-action-bar-item-active': active,
69
+ 'fcr-action-bar-item-disabled': disabled
70
+ });
71
+ (0, _react.useEffect)(function () {
72
+ // TODO: Only counting the initial `offsetWidth` is incorrect since item content could change.
73
+ // For example, "Record" can be turned into "Pause/Resume Record" which is obviously longer than 80px.
74
+ // Either do one of the following action to solve this problem:
75
+ // - Use resize observer on this component and call `setItem()` again.
76
+ // - Fix item width and do not change.
77
+ return ref.current ? setItem(id, {
78
+ name: id,
79
+ width: ref.current.offsetWidth,
80
+ order: order || 0
81
+ }) : void 0;
82
+ }, [visible]);
83
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({
84
+ ref: ref,
85
+ style: {
86
+ display: visible ? 'flex' : 'none'
87
+ },
88
+ className: (0, _classnames["default"])('fcr-action-bar-item-wrapper', className)
89
+ }, others), {}, {
90
+ children: [children, isFcrIcon(icon) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", {
91
+ onClick: onClick,
92
+ className: innerClassName,
93
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
94
+ className: "fcr-action-bar-item-icon",
95
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
96
+ size: 32,
97
+ type: icon,
98
+ colors: iconColors
99
+ })
100
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
101
+ className: "fcr-action-bar-item-text",
102
+ children: title
103
+ })]
104
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
105
+ className: innerClassName,
106
+ children: [icon, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
107
+ className: "fcr-action-bar-item-text",
108
+ children: title
109
+ })]
110
+ }), props.submenu && /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
111
+ overlayClassName: "fcr-action-bar--popover",
112
+ onVisibleChange: function onVisibleChange() {},
113
+ trigger: "click",
114
+ content: props.submenu.children,
115
+ overlayInnerStyle: {
116
+ minWidth: '210px',
117
+ maxWidth: '370px',
118
+ width: 'fit-content'
119
+ },
120
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
121
+ onClick: function onClick(e) {
122
+ var _props$submenu;
123
+ e.stopPropagation();
124
+ (_props$submenu = props.submenu) === null || _props$submenu === void 0 || _props$submenu.onClick();
125
+ },
126
+ className: "fcr-action-bar-extra",
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
128
+ type: _type.FcrIconType.FCR_DROPUP4,
129
+ colors: {
130
+ iconPrimary: 'var(--fcr_web_ui_scene_mainicon1)'
131
+ },
132
+ size: 24
133
+ })
134
+ })
135
+ })]
136
+ }));
137
+ };
138
+ var ActionBarItemWithPopover = exports.ActionBarItemWithPopover = function ActionBarItemWithPopover(props) {
139
+ var icon = props.icon,
140
+ title = props.title,
141
+ popoverProps = props.popoverProps,
142
+ id = props.id,
143
+ order = props.order;
144
+ var _useState = (0, _react.useState)(false),
145
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
146
+ popoverOpened = _useState2[0],
147
+ setPopoverOpend = _useState2[1];
148
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, _objectSpread(_objectSpread({}, popoverProps), {}, {
149
+ afterVisibleChange: function afterVisibleChange(visible) {
150
+ var _popoverProps$afterVi;
151
+ setPopoverOpend(visible);
152
+ popoverProps === null || popoverProps === void 0 || (_popoverProps$afterVi = popoverProps.afterVisibleChange) === null || _popoverProps$afterVi === void 0 || _popoverProps$afterVi.call(popoverProps, visible);
153
+ },
154
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionBarItem, {
155
+ id: id,
156
+ order: order,
157
+ active: popoverOpened,
158
+ icon: icon,
159
+ title: title,
160
+ iconColors: props.iconColors,
161
+ moreVisible: props.moreVisible
162
+ })
163
+ }));
164
+ };
@@ -0,0 +1,10 @@
1
+ import './index.css';
2
+ import { FcrUserInfo } from 'fcr-core/lib/type';
3
+ interface AssignHostProps {
4
+ remoteUsers: FcrUserInfo[];
5
+ assignHost: (user: FcrUserInfo) => void;
6
+ setPopoverOpened: React.Dispatch<React.SetStateAction<boolean>>;
7
+ handleKeepConnect: () => void;
8
+ }
9
+ export declare const AssignHost: (props: AssignHostProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AssignHost = void 0;
9
+ require("core-js/modules/es.array.index-of.js");
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _mobxReact = require("mobx-react");
14
+ var _react = require("react");
15
+ require("./index.css");
16
+ var _chatSelect = require("../../../chat/chat-select");
17
+ var _i18n = require("agora-ui-foundation/lib/i18n");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ var AssignHost = exports.AssignHost = (0, _mobxReact.observer)(function (props) {
20
+ var remoteUsers = props.remoteUsers,
21
+ assignHost = props.assignHost;
22
+ var _useState = (0, _react.useState)(0),
23
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
24
+ selected = _useState2[0],
25
+ setSelected = _useState2[1];
26
+ var t = (0, _i18n.useI18n)();
27
+ var handleLeave = /*#__PURE__*/function () {
28
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
29
+ var user;
30
+ return _regenerator["default"].wrap(function _callee$(_context) {
31
+ while (1) switch (_context.prev = _context.next) {
32
+ case 0:
33
+ user = remoteUsers[selected];
34
+ assignHost(user);
35
+ props.setPopoverOpened(false);
36
+ props.handleKeepConnect();
37
+ case 4:
38
+ case "end":
39
+ return _context.stop();
40
+ }
41
+ }, _callee);
42
+ }));
43
+ return function handleLeave() {
44
+ return _ref.apply(this, arguments);
45
+ };
46
+ }();
47
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_chatSelect.ChatSelect, {
48
+ type: "assign-host",
49
+ title: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
50
+ className: "assign-host-title",
51
+ children: t('fmt_toolbar_button_assignnewhost')
52
+ }),
53
+ bottomBar: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
54
+ className: "assign-host-bottom",
55
+ onClick: handleLeave,
56
+ children: t('fmt_toolbar_button_assignleave')
57
+ }),
58
+ candidateUsers: remoteUsers,
59
+ selectedUid: remoteUsers[selected].userId,
60
+ onSelect: function onSelect(user) {
61
+ setSelected(remoteUsers.indexOf(user));
62
+ }
63
+ });
64
+ });
@@ -0,0 +1,126 @@
1
+ .leave-title {
2
+ width: 100%;
3
+ height: 39px;
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+
8
+ font-family: Verdana;
9
+ font-size: 14px;
10
+ font-weight: 700;
11
+ line-height: 18.2px;
12
+ text-align: center;
13
+
14
+ color: var(--fcr_ui_scene_icontext1, rgba(255, 255, 255, 1));
15
+ }
16
+
17
+ .fcr-action-bar--leave-popover {
18
+ max-width: 255px;
19
+ }
20
+
21
+ .fcr-action-bar--leave-popover .fcr-tooltip-inner {
22
+ margin: 0;
23
+ }
24
+
25
+ .assistant-leave-lock-info {
26
+ width: 100%;
27
+ height: 16px;
28
+
29
+ font-family: Helvetica Neue;
30
+ font-size: 16px;
31
+ font-weight: 700;
32
+ line-height: 16px;
33
+ text-align: center;
34
+ color: var(--fcr_ui_scene_icontext1, rgba(55, 60, 66, 1));
35
+ }
36
+
37
+ .assistant-lock-leave-title {
38
+ width: 100%;
39
+ margin-top: 15px;
40
+ display: flex;
41
+ justify-content: center;
42
+ align-items: center;
43
+
44
+ font-family: Verdana;
45
+ font-size: 14px;
46
+ font-weight: 400;
47
+ line-height: 18.2px;
48
+ text-align: center;
49
+
50
+ color: var(--fcr_ui_scene_icontext1, rgba(255, 255, 255, 1));
51
+ }
52
+
53
+ .leave-cancel {
54
+ width: 100%;
55
+ height: 36px;
56
+ margin-top: 15px;
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ color: var(--fcr_ui_scene_ramp_red6, rgba(251, 88, 78, 1));
61
+ border-radius: var(--fcr_cornerradius_l);
62
+ border: 1px solid var(--fcr_ui_scene_ramp_red6);
63
+
64
+ font-family: Verdana;
65
+ font-size: 13px;
66
+ font-weight: 400;
67
+ line-height: 24px;
68
+ text-align: center;
69
+
70
+ cursor: pointer;
71
+ }
72
+
73
+ .assign-host-title {
74
+ display: flex;
75
+ align-items: center;
76
+ width: 100%;
77
+ height: 20px;
78
+ padding-left: 5px;
79
+
80
+ font-family: Verdana;
81
+ font-size: 12px;
82
+ font-weight: 700;
83
+ line-height: 12px;
84
+ text-align: left;
85
+ color: var(--fcr_ui_scene_icontext1, rgba(255, 255, 255, 1));
86
+ }
87
+
88
+ .assign-host-bottom {
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+
93
+ width: 215px;
94
+ height: 32px;
95
+ margin-top: 20px;
96
+ border-radius: var(--fcr_cornerradius_l);
97
+
98
+ font-family: Helvetica Neue;
99
+ font-size: 13px;
100
+ font-weight: 400;
101
+ line-height: 24px;
102
+
103
+ color: var(--fcr_ui_scene_white10);
104
+ background: var(--fcr_ui_scene_ramp_red6);
105
+ cursor: pointer;
106
+ }
107
+ .leave-connect-check {
108
+ display: flex;
109
+ justify-content: center;
110
+ align-items: center;
111
+ }
112
+ .leave-container .leave-confirm-disabled {
113
+ background-color: var(--fcr_web_ui_scene_fill3);
114
+ color: var(--fcr_ui_scene_icontext3);
115
+ cursor: not-allowed;
116
+ }
117
+ .fcr-action-bar--leave-meeting-portal {
118
+ width: 255px;
119
+ position: absolute;
120
+ top: 2px;
121
+ left: 10px;
122
+ z-index: 999;
123
+ background-color: var(--fcr_ui_scene_white10);
124
+ border-radius: var(--fcr_cornerradius_l);
125
+ box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
126
+ }
@@ -0,0 +1,3 @@
1
+ export declare const End: (props: {
2
+ onPopoverChanged: (popoverOpened: boolean) => void;
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,159 @@
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.End = void 0;
24
+ require("core-js/modules/web.timers.js");
25
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
26
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
+ var _reactDom = _interopRequireDefault(require("react-dom"));
28
+ var _i18n = require("agora-ui-foundation/lib/i18n");
29
+ var _button = require("agora-ui-foundation/lib/components/button");
30
+ var _leaveMeeting = require("./leave-meeting");
31
+ var _popover = require("agora-ui-foundation/lib/components/popover");
32
+ var _react = require("react");
33
+ var _store = require("../../store");
34
+ var _type = require("../../../../type");
35
+ var _mobxReact = require("mobx-react");
36
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
37
+ var _jsxRuntime = require("react/jsx-runtime");
38
+ 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; }
39
+ 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; }
40
+ var End = exports.End = (0, _mobxReact.observer)(function (props) {
41
+ var transI18n = (0, _i18n.useI18n)();
42
+ var _useContext = (0, _react.useContext)(_store.ActionBarContext),
43
+ localUserRole = _useContext.localUserRole,
44
+ toggleLayoutBarLock = _useContext.toggleLayoutBarLock,
45
+ remoteUsers = _useContext.remoteUsers,
46
+ end = _useContext.end,
47
+ leave = _useContext.leave,
48
+ isLocked = _useContext.isLocked,
49
+ hasAssignHostBeforeLeavingPermission = _useContext.hasAssignHostBeforeLeavingPermission,
50
+ hasEndRoomPermission = _useContext.hasEndRoomPermission,
51
+ keepPhoneAudioConnection = _useContext.keepPhoneAudioConnection,
52
+ isPstnUser = _useContext.isPstnUser,
53
+ assignHost = _useContext.assignHost,
54
+ popoverOpened = _useContext.popoverOpened,
55
+ _setPopoverOpened = _useContext.setPopoverOpened,
56
+ stateBarLeaveMeeting = _useContext.stateBarLeaveMeeting,
57
+ setStateBarLeaveMeeting = _useContext.setStateBarLeaveMeeting;
58
+ var _useState = (0, _react.useState)(false),
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ tooltipOpened = _useState2[0],
61
+ setTooltipOpened = _useState2[1];
62
+ // const [popoverOpened, setPopoverOpened] = useState(false);
63
+ var popOverRef = (0, _react.useRef)(false);
64
+ var onTooltipChanged = function onTooltipChanged(v) {
65
+ if (!popoverOpened) {
66
+ setTooltipOpened(v);
67
+ }
68
+ };
69
+ var onPopoverChanged = function onPopoverChanged(v) {
70
+ setTooltipOpened(false);
71
+ _setPopoverOpened(v);
72
+ toggleLayoutBarLock(v);
73
+ popOverRef.current = v;
74
+ props.onPopoverChanged(v);
75
+ };
76
+ var buttonProps = (0, _react.useMemo)(function () {
77
+ return popoverOpened ? {
78
+ type: 'gray'
79
+ } : {
80
+ styleType: 'danger'
81
+ };
82
+ }, [popoverOpened]);
83
+ var leaveMeetingContent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_leaveMeeting.LeaveMeeting, {
84
+ setPopoverOpened: function setPopoverOpened(value) {
85
+ _setPopoverOpened(value);
86
+ onPopoverChanged(false);
87
+ },
88
+ localUserRole: localUserRole,
89
+ leave: leave,
90
+ isLocked: isLocked,
91
+ hasAssignHostBeforeLeavingPermission: hasAssignHostBeforeLeavingPermission,
92
+ hasEndRoomPermission: hasEndRoomPermission,
93
+ keepPhoneAudioConnection: keepPhoneAudioConnection,
94
+ isPstnUser: isPstnUser,
95
+ remoteUsers: remoteUsers,
96
+ end: end,
97
+ assignHost: assignHost
98
+ });
99
+ var LeaveMeetingPortal = function LeaveMeetingPortal() {
100
+ var portalContent = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
101
+ className: "fcr-action-bar--leave-meeting-portal",
102
+ id: "fcr-action-bar--leave-meeting-portal",
103
+ children: leaveMeetingContent
104
+ });
105
+ return /*#__PURE__*/_reactDom["default"].createPortal(portalContent, document.body);
106
+ };
107
+ (0, _react.useEffect)(function () {
108
+ var reflow = (0, _debounce["default"])(function () {
109
+ /* 修复窗口缩放时,在未经人为操作打开弹窗的情况下,改变窗口大小而触发的打开情形 */
110
+ if (!popOverRef.current) return;
111
+ _setPopoverOpened(false);
112
+ setTimeout(function () {
113
+ _setPopoverOpened(true);
114
+ }, 0);
115
+ }, 100);
116
+ window.addEventListener('resize', reflow);
117
+ return function () {
118
+ window.removeEventListener('resize', reflow);
119
+ };
120
+ }, []);
121
+ (0, _react.useEffect)(function () {
122
+ if (!stateBarLeaveMeeting) return;
123
+ var container = document.getElementById('fcr-action-bar--leave-meeting-portal');
124
+ var handleClickOutside = function handleClickOutside(event) {
125
+ if (!(container !== null && container !== void 0 && container.contains(event.target))) {
126
+ setStateBarLeaveMeeting(false);
127
+ }
128
+ };
129
+ document.addEventListener('mousedown', handleClickOutside);
130
+ return function () {
131
+ document.removeEventListener('mousedown', handleClickOutside);
132
+ };
133
+ }, [stateBarLeaveMeeting]);
134
+ (0, _react.useEffect)(function () {
135
+ if (popoverOpened) {
136
+ onPopoverChanged(popoverOpened);
137
+ }
138
+ }, [popoverOpened]);
139
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
140
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
141
+ overlayClassName: "fcr-action-bar--device-popover fcr-action-bar--leave-popover",
142
+ overlayInnerStyle: {
143
+ width: 255
144
+ },
145
+ visible: popoverOpened,
146
+ onVisibleChange: onPopoverChanged,
147
+ trigger: "click",
148
+ placement: "topRight",
149
+ overlayOffset: 20,
150
+ content: leaveMeetingContent,
151
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, _objectSpread(_objectSpread({
152
+ shape: "rounded",
153
+ size: "XS"
154
+ }, buttonProps), {}, {
155
+ children: popoverOpened ? transI18n('fmt_toolbar_button_cancel') : localUserRole === _type.FcrUserRole.HOST ? transI18n('fmt_toolbar_button_end') : transI18n('fmt_toolbar_button_leave')
156
+ }))
157
+ }), stateBarLeaveMeeting && LeaveMeetingPortal()]
158
+ });
159
+ });
@@ -0,0 +1,18 @@
1
+ import './index.css';
2
+ import { FcrUserInfo, FcrUserRole } from 'fcr-core/lib/type';
3
+ interface LeaveMeetingProps {
4
+ setPopoverOpened: React.Dispatch<React.SetStateAction<boolean>>;
5
+ end: () => void;
6
+ leave: () => void;
7
+ isLocked: boolean;
8
+ keepPhoneAudioConnection: () => void;
9
+ localUserRole: FcrUserRole;
10
+ remoteUsers: FcrUserInfo[];
11
+ hasAssignHostBeforeLeavingPermission: boolean;
12
+ hasEndRoomPermission: boolean;
13
+ isPstnUser: boolean;
14
+ assignHost: (user: FcrUserInfo) => void;
15
+ setHeight?: () => void;
16
+ }
17
+ export declare const LeaveMeeting: import("react").ForwardRefExoticComponent<LeaveMeetingProps & import("react").RefAttributes<unknown>>;
18
+ export {};