@100mslive/react-native-room-kit 0.0.3 → 0.1.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 (857) hide show
  1. package/README.md +413 -11
  2. package/lib/commonjs/HMSInstanceSetup.js +3 -15
  3. package/lib/commonjs/HMSInstanceSetup.js.map +1 -1
  4. package/lib/commonjs/HMSPrebuilt.js +17 -6
  5. package/lib/commonjs/HMSPrebuilt.js.map +1 -1
  6. package/lib/commonjs/HMSRoomSetup.js +76 -21
  7. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  8. package/lib/commonjs/Icons/AlertTriangle/assets/alert-triangle.png +0 -0
  9. package/lib/commonjs/Icons/AlertTriangle/assets/alert-triangle@2x.png +0 -0
  10. package/lib/commonjs/Icons/AlertTriangle/assets/alert-triangle@3x.png +0 -0
  11. package/lib/commonjs/Icons/AlertTriangle/index.js +34 -0
  12. package/lib/commonjs/Icons/AlertTriangle/index.js.map +1 -0
  13. package/lib/commonjs/Icons/AnswerPhone/index.js +5 -1
  14. package/lib/commonjs/Icons/AnswerPhone/index.js.map +1 -1
  15. package/lib/commonjs/Icons/BRB/assets/BRB.png +0 -0
  16. package/lib/commonjs/Icons/BRB/assets/BRB@2x.png +0 -0
  17. package/lib/commonjs/Icons/BRB/assets/BRB@3x.png +0 -0
  18. package/lib/commonjs/Icons/BRB/index.js +35 -0
  19. package/lib/commonjs/Icons/BRB/index.js.map +1 -0
  20. package/lib/commonjs/Icons/Bluetooth/index.js +5 -1
  21. package/lib/commonjs/Icons/Bluetooth/index.js.map +1 -1
  22. package/lib/commonjs/Icons/Camera/index.js +5 -1
  23. package/lib/commonjs/Icons/Camera/index.js.map +1 -1
  24. package/lib/commonjs/Icons/Chat/index.js +5 -1
  25. package/lib/commonjs/Icons/Chat/index.js.map +1 -1
  26. package/lib/commonjs/Icons/Check/assets/check.png +0 -0
  27. package/lib/commonjs/Icons/Check/assets/check@2x.png +0 -0
  28. package/lib/commonjs/Icons/Check/assets/check@3x.png +0 -0
  29. package/lib/commonjs/Icons/Check/index.js +34 -0
  30. package/lib/commonjs/Icons/Check/index.js.map +1 -0
  31. package/lib/commonjs/Icons/Chevron/index.js +5 -1
  32. package/lib/commonjs/Icons/Chevron/index.js.map +1 -1
  33. package/lib/commonjs/Icons/Close/index.js +5 -1
  34. package/lib/commonjs/Icons/Close/index.js.map +1 -1
  35. package/lib/commonjs/Icons/Hamburger/assets/hamburger.png +0 -0
  36. package/lib/commonjs/Icons/Hamburger/assets/hamburger@2x.png +0 -0
  37. package/lib/commonjs/Icons/Hamburger/assets/hamburger@3x.png +0 -0
  38. package/lib/commonjs/Icons/Hamburger/index.js +34 -0
  39. package/lib/commonjs/Icons/Hamburger/index.js.map +1 -0
  40. package/lib/commonjs/Icons/Hand/index.js +6 -4
  41. package/lib/commonjs/Icons/Hand/index.js.map +1 -1
  42. package/lib/commonjs/Icons/Headphones/index.js +5 -1
  43. package/lib/commonjs/Icons/Headphones/index.js.map +1 -1
  44. package/lib/commonjs/Icons/Maximize/assets/maximize.png +0 -0
  45. package/lib/commonjs/Icons/Maximize/assets/maximize@2x.png +0 -0
  46. package/lib/commonjs/Icons/Maximize/assets/maximize@3x.png +0 -0
  47. package/lib/commonjs/Icons/Maximize/index.js +34 -0
  48. package/lib/commonjs/Icons/Maximize/index.js.map +1 -0
  49. package/lib/commonjs/Icons/Mic/index.js +5 -1
  50. package/lib/commonjs/Icons/Mic/index.js.map +1 -1
  51. package/lib/commonjs/Icons/Minimize/assets/minimize.png +0 -0
  52. package/lib/commonjs/Icons/Minimize/assets/minimize@2x.png +0 -0
  53. package/lib/commonjs/Icons/Minimize/assets/minimize@3x.png +0 -0
  54. package/lib/commonjs/Icons/Minimize/index.js +34 -0
  55. package/lib/commonjs/Icons/Minimize/index.js.map +1 -0
  56. package/lib/commonjs/Icons/Participants/index.js +5 -1
  57. package/lib/commonjs/Icons/Participants/index.js.map +1 -1
  58. package/lib/commonjs/Icons/Pencil/assets/pencil.png +0 -0
  59. package/lib/commonjs/Icons/Pencil/assets/pencil@2x.png +0 -0
  60. package/lib/commonjs/Icons/Pencil/assets/pencil@3x.png +0 -0
  61. package/lib/commonjs/Icons/Pencil/index.js +34 -0
  62. package/lib/commonjs/Icons/Pencil/index.js.map +1 -0
  63. package/lib/commonjs/Icons/Pin/assets/pin.png +0 -0
  64. package/lib/commonjs/Icons/Pin/assets/pin@2x.png +0 -0
  65. package/lib/commonjs/Icons/Pin/assets/pin@3x.png +0 -0
  66. package/lib/commonjs/Icons/Pin/index.js +34 -0
  67. package/lib/commonjs/Icons/Pin/index.js.map +1 -0
  68. package/lib/commonjs/Icons/Radio/assets/radio.png +0 -0
  69. package/lib/commonjs/Icons/Radio/assets/radio@2x.png +0 -0
  70. package/lib/commonjs/Icons/Radio/assets/radio@3x.png +0 -0
  71. package/lib/commonjs/Icons/Radio/index.js +30 -0
  72. package/lib/commonjs/Icons/Radio/index.js.map +1 -0
  73. package/lib/commonjs/Icons/Recording/assets/recording.png +0 -0
  74. package/lib/commonjs/Icons/Recording/assets/recording@2x.png +0 -0
  75. package/lib/commonjs/Icons/Recording/assets/recording@3x.png +0 -0
  76. package/lib/commonjs/Icons/Recording/index.js +34 -0
  77. package/lib/commonjs/Icons/Recording/index.js.map +1 -0
  78. package/lib/commonjs/Icons/RotateCamera/index.js +5 -1
  79. package/lib/commonjs/Icons/RotateCamera/index.js.map +1 -1
  80. package/lib/commonjs/Icons/ScreenShare/index.js +5 -1
  81. package/lib/commonjs/Icons/ScreenShare/index.js.map +1 -1
  82. package/lib/commonjs/Icons/Speaker/index.js +5 -1
  83. package/lib/commonjs/Icons/Speaker/index.js.map +1 -1
  84. package/lib/commonjs/Icons/Star/assets/star.png +0 -0
  85. package/lib/commonjs/Icons/Star/assets/star@2x.png +0 -0
  86. package/lib/commonjs/Icons/Star/assets/star@3x.png +0 -0
  87. package/lib/commonjs/Icons/Star/index.js +34 -0
  88. package/lib/commonjs/Icons/Star/index.js.map +1 -0
  89. package/lib/commonjs/Icons/Stop/assets/stop.png +0 -0
  90. package/lib/commonjs/Icons/Stop/assets/stop@2x.png +0 -0
  91. package/lib/commonjs/Icons/Stop/assets/stop@3x.png +0 -0
  92. package/lib/commonjs/Icons/Stop/index.js +34 -0
  93. package/lib/commonjs/Icons/Stop/index.js.map +1 -0
  94. package/lib/commonjs/Icons/ThreeDots/index.js +5 -1
  95. package/lib/commonjs/Icons/ThreeDots/index.js.map +1 -1
  96. package/lib/commonjs/Icons/Wave/index.js +5 -1
  97. package/lib/commonjs/Icons/Wave/index.js.map +1 -1
  98. package/lib/commonjs/Icons/index.js +132 -0
  99. package/lib/commonjs/Icons/index.js.map +1 -1
  100. package/lib/commonjs/components/AvatarView.js +1 -2
  101. package/lib/commonjs/components/AvatarView.js.map +1 -1
  102. package/lib/commonjs/components/BackButton.js +8 -6
  103. package/lib/commonjs/components/BackButton.js.map +1 -1
  104. package/lib/commonjs/components/BottomSheet.js +157 -0
  105. package/lib/commonjs/components/BottomSheet.js.map +1 -0
  106. package/lib/commonjs/components/ChangeNameModalContent.js +131 -0
  107. package/lib/commonjs/components/ChangeNameModalContent.js.map +1 -0
  108. package/lib/commonjs/components/CompanyLogo.js +38 -0
  109. package/lib/commonjs/components/CompanyLogo.js.map +1 -0
  110. package/lib/commonjs/components/CustomInput.js +2 -3
  111. package/lib/commonjs/components/CustomInput.js.map +1 -1
  112. package/lib/commonjs/components/DisplayView.js +12 -58
  113. package/lib/commonjs/components/DisplayView.js.map +1 -1
  114. package/lib/commonjs/components/EndRoomModalContent.js +85 -0
  115. package/lib/commonjs/components/EndRoomModalContent.js.map +1 -0
  116. package/lib/commonjs/components/Footer.js +8 -9
  117. package/lib/commonjs/components/Footer.js.map +1 -1
  118. package/lib/commonjs/components/GridView.js +53 -7
  119. package/lib/commonjs/components/GridView.js.map +1 -1
  120. package/lib/commonjs/components/HMSBaseButton.js +66 -0
  121. package/lib/commonjs/components/HMSBaseButton.js.map +1 -0
  122. package/lib/commonjs/components/HMSDangerButton.js +53 -0
  123. package/lib/commonjs/components/HMSDangerButton.js.map +1 -0
  124. package/lib/commonjs/components/HMSHLSStreamLoading.js +65 -0
  125. package/lib/commonjs/components/HMSHLSStreamLoading.js.map +1 -0
  126. package/lib/commonjs/components/HMSLocalVideoView.js +41 -0
  127. package/lib/commonjs/components/HMSLocalVideoView.js.map +1 -0
  128. package/lib/commonjs/components/{HMSSpeakerSettings.js → HMSManageAudioOutput.js} +70 -76
  129. package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -0
  130. package/lib/commonjs/components/HMSManageCameraRotation.js +5 -4
  131. package/lib/commonjs/components/HMSManageCameraRotation.js.map +1 -1
  132. package/lib/commonjs/components/HMSManageLeave.js +91 -159
  133. package/lib/commonjs/components/HMSManageLeave.js.map +1 -1
  134. package/lib/commonjs/components/HMSManageLocalAudio.js +1 -9
  135. package/lib/commonjs/components/HMSManageLocalAudio.js.map +1 -1
  136. package/lib/commonjs/components/HMSManageLocalVideo.js +1 -9
  137. package/lib/commonjs/components/HMSManageLocalVideo.js.map +1 -1
  138. package/lib/commonjs/components/HMSMeetingEnded.js +35 -0
  139. package/lib/commonjs/components/HMSMeetingEnded.js.map +1 -0
  140. package/lib/commonjs/components/HMSPreviewEditName.js +7 -38
  141. package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
  142. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +71 -0
  143. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -0
  144. package/lib/commonjs/components/HMSPreviewJoinButton.js +26 -37
  145. package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
  146. package/lib/commonjs/components/HMSPreviewNetworkQuality.js +45 -0
  147. package/lib/commonjs/components/HMSPreviewNetworkQuality.js.map +1 -0
  148. package/lib/commonjs/components/HMSPreviewPeersList.js +21 -33
  149. package/lib/commonjs/components/HMSPreviewPeersList.js.map +1 -1
  150. package/lib/commonjs/components/HMSPreviewSubtitle.js +43 -7
  151. package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
  152. package/lib/commonjs/components/HMSPreviewTile.js +18 -26
  153. package/lib/commonjs/components/HMSPreviewTile.js.map +1 -1
  154. package/lib/commonjs/components/HMSPreviewTitle.js +14 -6
  155. package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
  156. package/lib/commonjs/components/HMSPrimaryButton.js +53 -0
  157. package/lib/commonjs/components/HMSPrimaryButton.js.map +1 -0
  158. package/lib/commonjs/components/HMSRecordingIndicator.js +46 -0
  159. package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -0
  160. package/lib/commonjs/components/HMSRoomOptions.js +22 -10
  161. package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
  162. package/lib/commonjs/components/HMSShowNetworkQuality.js +5 -6
  163. package/lib/commonjs/components/HMSShowNetworkQuality.js.map +1 -1
  164. package/lib/commonjs/components/HMSTextInput.js +66 -0
  165. package/lib/commonjs/components/HMSTextInput.js.map +1 -0
  166. package/lib/commonjs/components/Header.js +30 -30
  167. package/lib/commonjs/components/Header.js.map +1 -1
  168. package/lib/commonjs/components/LocalPeerRegularVideoView.js +26 -0
  169. package/lib/commonjs/components/LocalPeerRegularVideoView.js.map +1 -0
  170. package/lib/commonjs/components/LocalPeerScreenshareView.js +76 -0
  171. package/lib/commonjs/components/LocalPeerScreenshareView.js.map +1 -0
  172. package/lib/commonjs/components/Meeting.js +14 -3
  173. package/lib/commonjs/components/Meeting.js.map +1 -1
  174. package/lib/commonjs/components/MenuModal/Menu.js +1 -2
  175. package/lib/commonjs/components/MenuModal/Menu.js.map +1 -1
  176. package/lib/commonjs/components/MiniView.js +163 -0
  177. package/lib/commonjs/components/MiniView.js.map +1 -0
  178. package/lib/commonjs/components/Modals.js +35 -380
  179. package/lib/commonjs/components/Modals.js.map +1 -1
  180. package/lib/commonjs/components/PaginationDots.js +56 -0
  181. package/lib/commonjs/components/PaginationDots.js.map +1 -0
  182. package/lib/commonjs/components/Participants/ParticipantsList.js +1 -20
  183. package/lib/commonjs/components/Participants/ParticipantsList.js.map +1 -1
  184. package/lib/commonjs/components/ParticipantsCount.js +55 -0
  185. package/lib/commonjs/components/ParticipantsCount.js.map +1 -0
  186. package/lib/commonjs/components/PeerMinimizedView.js +114 -0
  187. package/lib/commonjs/components/PeerMinimizedView.js.map +1 -0
  188. package/lib/commonjs/components/PeerSettingsModalContent.js +69 -63
  189. package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
  190. package/lib/commonjs/components/PeerVideoTile/AvatarView.js +76 -0
  191. package/lib/commonjs/components/PeerVideoTile/AvatarView.js.map +1 -0
  192. package/lib/commonjs/components/PeerVideoTile/PeerAudioMutedIndicator.js +44 -0
  193. package/lib/commonjs/components/PeerVideoTile/PeerAudioMutedIndicator.js.map +1 -0
  194. package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js +44 -0
  195. package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js.map +1 -0
  196. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +74 -0
  197. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -0
  198. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +146 -0
  199. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -0
  200. package/lib/commonjs/components/PeerVideoTile/VideoView.js +84 -0
  201. package/lib/commonjs/components/PeerVideoTile/VideoView.js.map +1 -0
  202. package/lib/commonjs/components/PeerVideoTile/index.js +2 -0
  203. package/lib/commonjs/components/PeerVideoTile/index.js.map +1 -0
  204. package/lib/commonjs/components/PressableIcon.js +15 -8
  205. package/lib/commonjs/components/PressableIcon.js.map +1 -1
  206. package/lib/commonjs/components/Preview.js +93 -72
  207. package/lib/commonjs/components/Preview.js.map +1 -1
  208. package/lib/commonjs/components/RoomSettingsModalContent.js +228 -457
  209. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  210. package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js +295 -0
  211. package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js.map +1 -0
  212. package/lib/commonjs/components/StopRecordingModalContent.js +97 -0
  213. package/lib/commonjs/components/StopRecordingModalContent.js.map +1 -0
  214. package/lib/commonjs/components/Tile.js +29 -90
  215. package/lib/commonjs/components/Tile.js.map +1 -1
  216. package/lib/commonjs/components/TilesContainer.js +99 -10
  217. package/lib/commonjs/components/TilesContainer.js.map +1 -1
  218. package/lib/commonjs/components/UnmountAfterDelay.js +48 -0
  219. package/lib/commonjs/components/UnmountAfterDelay.js.map +1 -0
  220. package/lib/commonjs/components/WebrtcView.js +51 -0
  221. package/lib/commonjs/components/WebrtcView.js.map +1 -0
  222. package/lib/commonjs/components/WelcomeInMeeting.js +54 -0
  223. package/lib/commonjs/components/WelcomeInMeeting.js.map +1 -0
  224. package/lib/commonjs/components/index.js +0 -11
  225. package/lib/commonjs/components/index.js.map +1 -1
  226. package/lib/commonjs/hooks/useHmsInstance.js +0 -1
  227. package/lib/commonjs/hooks/useHmsInstance.js.map +1 -1
  228. package/lib/commonjs/hooks-sdk-selectors.js +6 -1
  229. package/lib/commonjs/hooks-sdk-selectors.js.map +1 -1
  230. package/lib/commonjs/hooks-sdk.js +16 -1
  231. package/lib/commonjs/hooks-sdk.js.map +1 -1
  232. package/lib/commonjs/hooks-util-selectors.js +14 -1
  233. package/lib/commonjs/hooks-util-selectors.js.map +1 -1
  234. package/lib/commonjs/hooks-util.js +421 -98
  235. package/lib/commonjs/hooks-util.js.map +1 -1
  236. package/lib/commonjs/modules/HMSManager.js +23 -0
  237. package/lib/commonjs/modules/HMSManager.js.map +1 -0
  238. package/lib/commonjs/modules/parser.js +22 -0
  239. package/lib/commonjs/modules/parser.js.map +1 -0
  240. package/lib/commonjs/peerTrackNodeUtils.js +8 -3
  241. package/lib/commonjs/peerTrackNodeUtils.js.map +1 -1
  242. package/lib/commonjs/redux/actionTypes.js +20 -1
  243. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  244. package/lib/commonjs/redux/actions/index.js +65 -1
  245. package/lib/commonjs/redux/actions/index.js.map +1 -1
  246. package/lib/commonjs/redux/reducers/appState.js +70 -1
  247. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  248. package/lib/commonjs/redux/reducers/hmsStates.js +7 -1
  249. package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
  250. package/lib/commonjs/redux/reducers/userState.js +3 -1
  251. package/lib/commonjs/redux/reducers/userState.js.map +1 -1
  252. package/lib/commonjs/utils/functions.js +51 -1
  253. package/lib/commonjs/utils/functions.js.map +1 -1
  254. package/lib/commonjs/utils/theme.js +63 -8
  255. package/lib/commonjs/utils/theme.js.map +1 -1
  256. package/lib/commonjs/utils/types.js +8 -2
  257. package/lib/commonjs/utils/types.js.map +1 -1
  258. package/lib/commonjs/utils.js +2 -2
  259. package/lib/commonjs/utils.js.map +1 -1
  260. package/lib/module/HMSInstanceSetup.js +3 -15
  261. package/lib/module/HMSInstanceSetup.js.map +1 -1
  262. package/lib/module/HMSPrebuilt.js +17 -5
  263. package/lib/module/HMSPrebuilt.js.map +1 -1
  264. package/lib/module/HMSRoomSetup.js +81 -26
  265. package/lib/module/HMSRoomSetup.js.map +1 -1
  266. package/lib/module/Icons/AlertTriangle/assets/alert-triangle.png +0 -0
  267. package/lib/module/Icons/AlertTriangle/assets/alert-triangle@2x.png +0 -0
  268. package/lib/module/Icons/AlertTriangle/assets/alert-triangle@3x.png +0 -0
  269. package/lib/module/Icons/AlertTriangle/index.js +26 -0
  270. package/lib/module/Icons/AlertTriangle/index.js.map +1 -0
  271. package/lib/module/Icons/AnswerPhone/index.js +5 -1
  272. package/lib/module/Icons/AnswerPhone/index.js.map +1 -1
  273. package/lib/module/Icons/BRB/assets/BRB.png +0 -0
  274. package/lib/module/Icons/BRB/assets/BRB@2x.png +0 -0
  275. package/lib/module/Icons/BRB/assets/BRB@3x.png +0 -0
  276. package/lib/module/Icons/BRB/index.js +27 -0
  277. package/lib/module/Icons/BRB/index.js.map +1 -0
  278. package/lib/module/Icons/Bluetooth/index.js +5 -1
  279. package/lib/module/Icons/Bluetooth/index.js.map +1 -1
  280. package/lib/module/Icons/Camera/index.js +5 -1
  281. package/lib/module/Icons/Camera/index.js.map +1 -1
  282. package/lib/module/Icons/Chat/index.js +5 -1
  283. package/lib/module/Icons/Chat/index.js.map +1 -1
  284. package/lib/module/Icons/Check/assets/check.png +0 -0
  285. package/lib/module/Icons/Check/assets/check@2x.png +0 -0
  286. package/lib/module/Icons/Check/assets/check@3x.png +0 -0
  287. package/lib/module/Icons/Check/index.js +26 -0
  288. package/lib/module/Icons/Check/index.js.map +1 -0
  289. package/lib/module/Icons/Chevron/index.js +5 -1
  290. package/lib/module/Icons/Chevron/index.js.map +1 -1
  291. package/lib/module/Icons/Close/index.js +5 -1
  292. package/lib/module/Icons/Close/index.js.map +1 -1
  293. package/lib/module/Icons/Hamburger/assets/hamburger.png +0 -0
  294. package/lib/module/Icons/Hamburger/assets/hamburger@2x.png +0 -0
  295. package/lib/module/Icons/Hamburger/assets/hamburger@3x.png +0 -0
  296. package/lib/module/Icons/Hamburger/index.js +26 -0
  297. package/lib/module/Icons/Hamburger/index.js.map +1 -0
  298. package/lib/module/Icons/Hand/index.js +6 -4
  299. package/lib/module/Icons/Hand/index.js.map +1 -1
  300. package/lib/module/Icons/Headphones/index.js +5 -1
  301. package/lib/module/Icons/Headphones/index.js.map +1 -1
  302. package/lib/module/Icons/Maximize/assets/maximize.png +0 -0
  303. package/lib/module/Icons/Maximize/assets/maximize@2x.png +0 -0
  304. package/lib/module/Icons/Maximize/assets/maximize@3x.png +0 -0
  305. package/lib/module/Icons/Maximize/index.js +26 -0
  306. package/lib/module/Icons/Maximize/index.js.map +1 -0
  307. package/lib/module/Icons/Mic/index.js +5 -1
  308. package/lib/module/Icons/Mic/index.js.map +1 -1
  309. package/lib/module/Icons/Minimize/assets/minimize.png +0 -0
  310. package/lib/module/Icons/Minimize/assets/minimize@2x.png +0 -0
  311. package/lib/module/Icons/Minimize/assets/minimize@3x.png +0 -0
  312. package/lib/module/Icons/Minimize/index.js +26 -0
  313. package/lib/module/Icons/Minimize/index.js.map +1 -0
  314. package/lib/module/Icons/Participants/index.js +5 -1
  315. package/lib/module/Icons/Participants/index.js.map +1 -1
  316. package/lib/module/Icons/Pencil/assets/pencil.png +0 -0
  317. package/lib/module/Icons/Pencil/assets/pencil@2x.png +0 -0
  318. package/lib/module/Icons/Pencil/assets/pencil@3x.png +0 -0
  319. package/lib/module/Icons/Pencil/index.js +26 -0
  320. package/lib/module/Icons/Pencil/index.js.map +1 -0
  321. package/lib/module/Icons/Pin/assets/pin.png +0 -0
  322. package/lib/module/Icons/Pin/assets/pin@2x.png +0 -0
  323. package/lib/module/Icons/Pin/assets/pin@3x.png +0 -0
  324. package/lib/module/Icons/Pin/index.js +26 -0
  325. package/lib/module/Icons/Pin/index.js.map +1 -0
  326. package/lib/module/Icons/Radio/assets/radio.png +0 -0
  327. package/lib/module/Icons/Radio/assets/radio@2x.png +0 -0
  328. package/lib/module/Icons/Radio/assets/radio@3x.png +0 -0
  329. package/lib/module/Icons/Radio/index.js +22 -0
  330. package/lib/module/Icons/Radio/index.js.map +1 -0
  331. package/lib/module/Icons/Recording/assets/recording.png +0 -0
  332. package/lib/module/Icons/Recording/assets/recording@2x.png +0 -0
  333. package/lib/module/Icons/Recording/assets/recording@3x.png +0 -0
  334. package/lib/module/Icons/Recording/index.js +26 -0
  335. package/lib/module/Icons/Recording/index.js.map +1 -0
  336. package/lib/module/Icons/RotateCamera/index.js +5 -1
  337. package/lib/module/Icons/RotateCamera/index.js.map +1 -1
  338. package/lib/module/Icons/ScreenShare/index.js +5 -1
  339. package/lib/module/Icons/ScreenShare/index.js.map +1 -1
  340. package/lib/module/Icons/Speaker/index.js +5 -1
  341. package/lib/module/Icons/Speaker/index.js.map +1 -1
  342. package/lib/module/Icons/Star/assets/star.png +0 -0
  343. package/lib/module/Icons/Star/assets/star@2x.png +0 -0
  344. package/lib/module/Icons/Star/assets/star@3x.png +0 -0
  345. package/lib/module/Icons/Star/index.js +26 -0
  346. package/lib/module/Icons/Star/index.js.map +1 -0
  347. package/lib/module/Icons/Stop/assets/stop.png +0 -0
  348. package/lib/module/Icons/Stop/assets/stop@2x.png +0 -0
  349. package/lib/module/Icons/Stop/assets/stop@3x.png +0 -0
  350. package/lib/module/Icons/Stop/index.js +26 -0
  351. package/lib/module/Icons/Stop/index.js.map +1 -0
  352. package/lib/module/Icons/ThreeDots/index.js +5 -1
  353. package/lib/module/Icons/ThreeDots/index.js.map +1 -1
  354. package/lib/module/Icons/Wave/index.js +5 -1
  355. package/lib/module/Icons/Wave/index.js.map +1 -1
  356. package/lib/module/Icons/index.js +12 -0
  357. package/lib/module/Icons/index.js.map +1 -1
  358. package/lib/module/components/AvatarView.js +1 -2
  359. package/lib/module/components/AvatarView.js.map +1 -1
  360. package/lib/module/components/BackButton.js +9 -7
  361. package/lib/module/components/BackButton.js.map +1 -1
  362. package/lib/module/components/BottomSheet.js +146 -0
  363. package/lib/module/components/BottomSheet.js.map +1 -0
  364. package/lib/module/components/ChangeNameModalContent.js +122 -0
  365. package/lib/module/components/ChangeNameModalContent.js.map +1 -0
  366. package/lib/module/components/CompanyLogo.js +30 -0
  367. package/lib/module/components/CompanyLogo.js.map +1 -0
  368. package/lib/module/components/CustomInput.js +2 -3
  369. package/lib/module/components/CustomInput.js.map +1 -1
  370. package/lib/module/components/DisplayView.js +16 -61
  371. package/lib/module/components/DisplayView.js.map +1 -1
  372. package/lib/module/components/EndRoomModalContent.js +76 -0
  373. package/lib/module/components/EndRoomModalContent.js.map +1 -0
  374. package/lib/module/components/Footer.js +9 -10
  375. package/lib/module/components/Footer.js.map +1 -1
  376. package/lib/module/components/GridView.js +55 -10
  377. package/lib/module/components/GridView.js.map +1 -1
  378. package/lib/module/components/HMSBaseButton.js +57 -0
  379. package/lib/module/components/HMSBaseButton.js.map +1 -0
  380. package/lib/module/components/HMSDangerButton.js +44 -0
  381. package/lib/module/components/HMSDangerButton.js.map +1 -0
  382. package/lib/module/components/HMSHLSStreamLoading.js +56 -0
  383. package/lib/module/components/HMSHLSStreamLoading.js.map +1 -0
  384. package/lib/module/components/HMSLocalVideoView.js +32 -0
  385. package/lib/module/components/HMSLocalVideoView.js.map +1 -0
  386. package/lib/module/components/{HMSSpeakerSettings.js → HMSManageAudioOutput.js} +70 -77
  387. package/lib/module/components/HMSManageAudioOutput.js.map +1 -0
  388. package/lib/module/components/HMSManageCameraRotation.js +5 -4
  389. package/lib/module/components/HMSManageCameraRotation.js.map +1 -1
  390. package/lib/module/components/HMSManageLeave.js +95 -161
  391. package/lib/module/components/HMSManageLeave.js.map +1 -1
  392. package/lib/module/components/HMSManageLocalAudio.js +1 -9
  393. package/lib/module/components/HMSManageLocalAudio.js.map +1 -1
  394. package/lib/module/components/HMSManageLocalVideo.js +1 -9
  395. package/lib/module/components/HMSManageLocalVideo.js.map +1 -1
  396. package/lib/module/components/HMSMeetingEnded.js +26 -0
  397. package/lib/module/components/HMSMeetingEnded.js.map +1 -0
  398. package/lib/module/components/HMSPreviewEditName.js +7 -38
  399. package/lib/module/components/HMSPreviewEditName.js.map +1 -1
  400. package/lib/module/components/HMSPreviewHLSLiveIndicator.js +62 -0
  401. package/lib/module/components/HMSPreviewHLSLiveIndicator.js.map +1 -0
  402. package/lib/module/components/HMSPreviewJoinButton.js +28 -39
  403. package/lib/module/components/HMSPreviewJoinButton.js.map +1 -1
  404. package/lib/module/components/HMSPreviewNetworkQuality.js +36 -0
  405. package/lib/module/components/HMSPreviewNetworkQuality.js.map +1 -0
  406. package/lib/module/components/HMSPreviewPeersList.js +21 -33
  407. package/lib/module/components/HMSPreviewPeersList.js.map +1 -1
  408. package/lib/module/components/HMSPreviewSubtitle.js +43 -7
  409. package/lib/module/components/HMSPreviewSubtitle.js.map +1 -1
  410. package/lib/module/components/HMSPreviewTile.js +18 -26
  411. package/lib/module/components/HMSPreviewTile.js.map +1 -1
  412. package/lib/module/components/HMSPreviewTitle.js +14 -6
  413. package/lib/module/components/HMSPreviewTitle.js.map +1 -1
  414. package/lib/module/components/HMSPrimaryButton.js +44 -0
  415. package/lib/module/components/HMSPrimaryButton.js.map +1 -0
  416. package/lib/module/components/HMSRecordingIndicator.js +37 -0
  417. package/lib/module/components/HMSRecordingIndicator.js.map +1 -0
  418. package/lib/module/components/HMSRoomOptions.js +23 -11
  419. package/lib/module/components/HMSRoomOptions.js.map +1 -1
  420. package/lib/module/components/HMSShowNetworkQuality.js +6 -7
  421. package/lib/module/components/HMSShowNetworkQuality.js.map +1 -1
  422. package/lib/module/components/HMSTextInput.js +57 -0
  423. package/lib/module/components/HMSTextInput.js.map +1 -0
  424. package/lib/module/components/Header.js +32 -32
  425. package/lib/module/components/Header.js.map +1 -1
  426. package/lib/module/components/LocalPeerRegularVideoView.js +17 -0
  427. package/lib/module/components/LocalPeerRegularVideoView.js.map +1 -0
  428. package/lib/module/components/LocalPeerScreenshareView.js +66 -0
  429. package/lib/module/components/LocalPeerScreenshareView.js.map +1 -0
  430. package/lib/module/components/Meeting.js +15 -4
  431. package/lib/module/components/Meeting.js.map +1 -1
  432. package/lib/module/components/MenuModal/Menu.js +1 -2
  433. package/lib/module/components/MenuModal/Menu.js.map +1 -1
  434. package/lib/module/components/MiniView.js +154 -0
  435. package/lib/module/components/MiniView.js.map +1 -0
  436. package/lib/module/components/Modals.js +37 -378
  437. package/lib/module/components/Modals.js.map +1 -1
  438. package/lib/module/components/PaginationDots.js +47 -0
  439. package/lib/module/components/PaginationDots.js.map +1 -0
  440. package/lib/module/components/Participants/ParticipantsList.js +1 -20
  441. package/lib/module/components/Participants/ParticipantsList.js.map +1 -1
  442. package/lib/module/components/ParticipantsCount.js +46 -0
  443. package/lib/module/components/ParticipantsCount.js.map +1 -0
  444. package/lib/module/components/PeerMinimizedView.js +104 -0
  445. package/lib/module/components/PeerMinimizedView.js.map +1 -0
  446. package/lib/module/components/PeerSettingsModalContent.js +72 -66
  447. package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
  448. package/lib/module/components/PeerVideoTile/AvatarView.js +66 -0
  449. package/lib/module/components/PeerVideoTile/AvatarView.js.map +1 -0
  450. package/lib/module/components/PeerVideoTile/PeerAudioMutedIndicator.js +35 -0
  451. package/lib/module/components/PeerVideoTile/PeerAudioMutedIndicator.js.map +1 -0
  452. package/lib/module/components/PeerVideoTile/PeerMetadata.js +35 -0
  453. package/lib/module/components/PeerVideoTile/PeerMetadata.js.map +1 -0
  454. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +65 -0
  455. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -0
  456. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +136 -0
  457. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -0
  458. package/lib/module/components/PeerVideoTile/VideoView.js +75 -0
  459. package/lib/module/components/PeerVideoTile/VideoView.js.map +1 -0
  460. package/lib/module/components/PeerVideoTile/index.js +2 -0
  461. package/lib/module/components/PeerVideoTile/index.js.map +1 -0
  462. package/lib/module/components/PressableIcon.js +15 -8
  463. package/lib/module/components/PressableIcon.js.map +1 -1
  464. package/lib/module/components/Preview.js +93 -72
  465. package/lib/module/components/Preview.js.map +1 -1
  466. package/lib/module/components/RoomSettingsModalContent.js +231 -459
  467. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  468. package/lib/module/components/RoomSettingsModalDebugModeContent.js +287 -0
  469. package/lib/module/components/RoomSettingsModalDebugModeContent.js.map +1 -0
  470. package/lib/module/components/StopRecordingModalContent.js +88 -0
  471. package/lib/module/components/StopRecordingModalContent.js.map +1 -0
  472. package/lib/module/components/Tile.js +30 -91
  473. package/lib/module/components/Tile.js.map +1 -1
  474. package/lib/module/components/TilesContainer.js +100 -10
  475. package/lib/module/components/TilesContainer.js.map +1 -1
  476. package/lib/module/components/UnmountAfterDelay.js +39 -0
  477. package/lib/module/components/UnmountAfterDelay.js.map +1 -0
  478. package/lib/module/components/WebrtcView.js +41 -0
  479. package/lib/module/components/WebrtcView.js.map +1 -0
  480. package/lib/module/components/WelcomeInMeeting.js +45 -0
  481. package/lib/module/components/WelcomeInMeeting.js.map +1 -0
  482. package/lib/module/components/index.js +0 -1
  483. package/lib/module/components/index.js.map +1 -1
  484. package/lib/module/hooks/useHmsInstance.js +0 -1
  485. package/lib/module/hooks/useHmsInstance.js.map +1 -1
  486. package/lib/module/hooks-sdk-selectors.js +4 -0
  487. package/lib/module/hooks-sdk-selectors.js.map +1 -1
  488. package/lib/module/hooks-sdk.js +16 -1
  489. package/lib/module/hooks-sdk.js.map +1 -1
  490. package/lib/module/hooks-util-selectors.js +12 -0
  491. package/lib/module/hooks-util-selectors.js.map +1 -1
  492. package/lib/module/hooks-util.js +417 -104
  493. package/lib/module/hooks-util.js.map +1 -1
  494. package/lib/module/modules/HMSManager.js +17 -0
  495. package/lib/module/modules/HMSManager.js.map +1 -0
  496. package/lib/module/modules/parser.js +16 -0
  497. package/lib/module/modules/parser.js.map +1 -0
  498. package/lib/module/peerTrackNodeUtils.js +6 -2
  499. package/lib/module/peerTrackNodeUtils.js.map +1 -1
  500. package/lib/module/redux/actionTypes.js +20 -1
  501. package/lib/module/redux/actionTypes.js.map +1 -1
  502. package/lib/module/redux/actions/index.js +54 -0
  503. package/lib/module/redux/actions/index.js.map +1 -1
  504. package/lib/module/redux/reducers/appState.js +70 -1
  505. package/lib/module/redux/reducers/appState.js.map +1 -1
  506. package/lib/module/redux/reducers/hmsStates.js +7 -1
  507. package/lib/module/redux/reducers/hmsStates.js.map +1 -1
  508. package/lib/module/redux/reducers/userState.js +3 -1
  509. package/lib/module/redux/reducers/userState.js.map +1 -1
  510. package/lib/module/utils/functions.js +47 -0
  511. package/lib/module/utils/functions.js.map +1 -1
  512. package/lib/module/utils/theme.js +58 -5
  513. package/lib/module/utils/theme.js.map +1 -1
  514. package/lib/module/utils/types.js +6 -1
  515. package/lib/module/utils/types.js.map +1 -1
  516. package/lib/module/utils.js +2 -2
  517. package/lib/module/utils.js.map +1 -1
  518. package/lib/typescript/HMSInstanceSetup.d.ts.map +1 -1
  519. package/lib/typescript/HMSPrebuilt.d.ts +3 -3
  520. package/lib/typescript/HMSPrebuilt.d.ts.map +1 -1
  521. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  522. package/lib/typescript/Icons/AlertTriangle/index.d.ts +7 -0
  523. package/lib/typescript/Icons/AlertTriangle/index.d.ts.map +1 -0
  524. package/lib/typescript/Icons/AnswerPhone/index.d.ts.map +1 -1
  525. package/lib/typescript/Icons/BRB/index.d.ts +7 -0
  526. package/lib/typescript/Icons/BRB/index.d.ts.map +1 -0
  527. package/lib/typescript/Icons/Bluetooth/index.d.ts.map +1 -1
  528. package/lib/typescript/Icons/Camera/index.d.ts.map +1 -1
  529. package/lib/typescript/Icons/Chat/index.d.ts.map +1 -1
  530. package/lib/typescript/Icons/Check/index.d.ts +7 -0
  531. package/lib/typescript/Icons/Check/index.d.ts.map +1 -0
  532. package/lib/typescript/Icons/Chevron/index.d.ts.map +1 -1
  533. package/lib/typescript/Icons/Close/index.d.ts.map +1 -1
  534. package/lib/typescript/Icons/Hamburger/index.d.ts +7 -0
  535. package/lib/typescript/Icons/Hamburger/index.d.ts.map +1 -0
  536. package/lib/typescript/Icons/Hand/index.d.ts.map +1 -1
  537. package/lib/typescript/Icons/Headphones/index.d.ts.map +1 -1
  538. package/lib/typescript/Icons/Maximize/index.d.ts +7 -0
  539. package/lib/typescript/Icons/Maximize/index.d.ts.map +1 -0
  540. package/lib/typescript/Icons/Mic/index.d.ts.map +1 -1
  541. package/lib/typescript/Icons/Minimize/index.d.ts +7 -0
  542. package/lib/typescript/Icons/Minimize/index.d.ts.map +1 -0
  543. package/lib/typescript/Icons/Participants/index.d.ts.map +1 -1
  544. package/lib/typescript/Icons/Pencil/index.d.ts +7 -0
  545. package/lib/typescript/Icons/Pencil/index.d.ts.map +1 -0
  546. package/lib/typescript/Icons/Pin/index.d.ts +7 -0
  547. package/lib/typescript/Icons/Pin/index.d.ts.map +1 -0
  548. package/lib/typescript/Icons/Radio/index.d.ts +7 -0
  549. package/lib/typescript/Icons/Radio/index.d.ts.map +1 -0
  550. package/lib/typescript/Icons/Recording/index.d.ts +7 -0
  551. package/lib/typescript/Icons/Recording/index.d.ts.map +1 -0
  552. package/lib/typescript/Icons/RotateCamera/index.d.ts.map +1 -1
  553. package/lib/typescript/Icons/ScreenShare/index.d.ts.map +1 -1
  554. package/lib/typescript/Icons/Speaker/index.d.ts.map +1 -1
  555. package/lib/typescript/Icons/Star/index.d.ts +7 -0
  556. package/lib/typescript/Icons/Star/index.d.ts.map +1 -0
  557. package/lib/typescript/Icons/Stop/index.d.ts +7 -0
  558. package/lib/typescript/Icons/Stop/index.d.ts.map +1 -0
  559. package/lib/typescript/Icons/ThreeDots/index.d.ts.map +1 -1
  560. package/lib/typescript/Icons/Wave/index.d.ts.map +1 -1
  561. package/lib/typescript/Icons/index.d.ts +12 -0
  562. package/lib/typescript/Icons/index.d.ts.map +1 -1
  563. package/lib/typescript/components/BackButton.d.ts.map +1 -1
  564. package/lib/typescript/components/BottomSheet.d.ts +25 -0
  565. package/lib/typescript/components/BottomSheet.d.ts.map +1 -0
  566. package/lib/typescript/components/ChangeNameModalContent.d.ts +6 -0
  567. package/lib/typescript/components/ChangeNameModalContent.d.ts.map +1 -0
  568. package/lib/typescript/components/CompanyLogo.d.ts +7 -0
  569. package/lib/typescript/components/CompanyLogo.d.ts.map +1 -0
  570. package/lib/typescript/components/CustomInput.d.ts +1 -1
  571. package/lib/typescript/components/CustomInput.d.ts.map +1 -1
  572. package/lib/typescript/components/DisplayView.d.ts.map +1 -1
  573. package/lib/typescript/components/EndRoomModalContent.d.ts +6 -0
  574. package/lib/typescript/components/EndRoomModalContent.d.ts.map +1 -0
  575. package/lib/typescript/components/Footer.d.ts.map +1 -1
  576. package/lib/typescript/components/GridView.d.ts +3 -4
  577. package/lib/typescript/components/GridView.d.ts.map +1 -1
  578. package/lib/typescript/components/HMSBaseButton.d.ts +15 -0
  579. package/lib/typescript/components/HMSBaseButton.d.ts.map +1 -0
  580. package/lib/typescript/components/HMSDangerButton.d.ts +12 -0
  581. package/lib/typescript/components/HMSDangerButton.d.ts.map +1 -0
  582. package/lib/typescript/components/HMSHLSStreamLoading.d.ts +3 -0
  583. package/lib/typescript/components/HMSHLSStreamLoading.d.ts.map +1 -0
  584. package/lib/typescript/components/HMSLocalVideoView.d.ts +3 -0
  585. package/lib/typescript/components/HMSLocalVideoView.d.ts.map +1 -0
  586. package/lib/typescript/components/HMSManageAudioOutput.d.ts +3 -0
  587. package/lib/typescript/components/HMSManageAudioOutput.d.ts.map +1 -0
  588. package/lib/typescript/components/HMSManageLeave.d.ts.map +1 -1
  589. package/lib/typescript/components/HMSManageLocalAudio.d.ts.map +1 -1
  590. package/lib/typescript/components/HMSManageLocalVideo.d.ts.map +1 -1
  591. package/lib/typescript/components/HMSMeetingEnded.d.ts +3 -0
  592. package/lib/typescript/components/HMSMeetingEnded.d.ts.map +1 -0
  593. package/lib/typescript/components/HMSPreviewEditName.d.ts.map +1 -1
  594. package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts +3 -0
  595. package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts.map +1 -0
  596. package/lib/typescript/components/HMSPreviewJoinButton.d.ts.map +1 -1
  597. package/lib/typescript/components/HMSPreviewNetworkQuality.d.ts +3 -0
  598. package/lib/typescript/components/HMSPreviewNetworkQuality.d.ts.map +1 -0
  599. package/lib/typescript/components/HMSPreviewPeersList.d.ts.map +1 -1
  600. package/lib/typescript/components/HMSPreviewSubtitle.d.ts.map +1 -1
  601. package/lib/typescript/components/HMSPreviewTile.d.ts.map +1 -1
  602. package/lib/typescript/components/HMSPreviewTitle.d.ts.map +1 -1
  603. package/lib/typescript/components/HMSPrimaryButton.d.ts +12 -0
  604. package/lib/typescript/components/HMSPrimaryButton.d.ts.map +1 -0
  605. package/lib/typescript/components/HMSRecordingIndicator.d.ts +3 -0
  606. package/lib/typescript/components/HMSRecordingIndicator.d.ts.map +1 -0
  607. package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
  608. package/lib/typescript/components/HMSShowNetworkQuality.d.ts.map +1 -1
  609. package/lib/typescript/components/HMSTextInput.d.ts +10 -0
  610. package/lib/typescript/components/HMSTextInput.d.ts.map +1 -0
  611. package/lib/typescript/components/Header.d.ts.map +1 -1
  612. package/lib/typescript/components/LocalPeerRegularVideoView.d.ts +6 -0
  613. package/lib/typescript/components/LocalPeerRegularVideoView.d.ts.map +1 -0
  614. package/lib/typescript/components/LocalPeerScreenshareView.d.ts +3 -0
  615. package/lib/typescript/components/LocalPeerScreenshareView.d.ts.map +1 -0
  616. package/lib/typescript/components/Meeting.d.ts.map +1 -1
  617. package/lib/typescript/components/MenuModal/Menu.d.ts.map +1 -1
  618. package/lib/typescript/components/MiniView.d.ts +9 -0
  619. package/lib/typescript/components/MiniView.d.ts.map +1 -0
  620. package/lib/typescript/components/Modals.d.ts +1 -16
  621. package/lib/typescript/components/Modals.d.ts.map +1 -1
  622. package/lib/typescript/components/PaginationDots.d.ts +6 -0
  623. package/lib/typescript/components/PaginationDots.d.ts.map +1 -0
  624. package/lib/typescript/components/Participants/ParticipantsList.d.ts.map +1 -1
  625. package/lib/typescript/components/ParticipantsCount.d.ts +3 -0
  626. package/lib/typescript/components/ParticipantsCount.d.ts.map +1 -0
  627. package/lib/typescript/components/PeerMinimizedView.d.ts +12 -0
  628. package/lib/typescript/components/PeerMinimizedView.d.ts.map +1 -0
  629. package/lib/typescript/components/PeerSettingsModalContent.d.ts +1 -0
  630. package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
  631. package/lib/typescript/components/PeerVideoTile/AvatarView.d.ts +9 -0
  632. package/lib/typescript/components/PeerVideoTile/AvatarView.d.ts.map +1 -0
  633. package/lib/typescript/components/PeerVideoTile/PeerAudioMutedIndicator.d.ts +6 -0
  634. package/lib/typescript/components/PeerVideoTile/PeerAudioMutedIndicator.d.ts.map +1 -0
  635. package/lib/typescript/components/PeerVideoTile/PeerMetadata.d.ts +6 -0
  636. package/lib/typescript/components/PeerVideoTile/PeerMetadata.d.ts.map +1 -0
  637. package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts +10 -0
  638. package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts.map +1 -0
  639. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts +10 -0
  640. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -0
  641. package/lib/typescript/components/PeerVideoTile/VideoView.d.ts +13 -0
  642. package/lib/typescript/components/PeerVideoTile/VideoView.d.ts.map +1 -0
  643. package/lib/typescript/components/PeerVideoTile/index.d.ts +1 -0
  644. package/lib/typescript/components/PeerVideoTile/index.d.ts.map +1 -0
  645. package/lib/typescript/components/PressableIcon.d.ts.map +1 -1
  646. package/lib/typescript/components/Preview.d.ts.map +1 -1
  647. package/lib/typescript/components/RoomSettingsModalContent.d.ts +2 -2
  648. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  649. package/lib/typescript/components/RoomSettingsModalDebugModeContent.d.ts +17 -0
  650. package/lib/typescript/components/RoomSettingsModalDebugModeContent.d.ts.map +1 -0
  651. package/lib/typescript/components/StopRecordingModalContent.d.ts +6 -0
  652. package/lib/typescript/components/StopRecordingModalContent.d.ts.map +1 -0
  653. package/lib/typescript/components/Tile.d.ts +12 -3
  654. package/lib/typescript/components/Tile.d.ts.map +1 -1
  655. package/lib/typescript/components/TilesContainer.d.ts.map +1 -1
  656. package/lib/typescript/components/UnmountAfterDelay.d.ts +12 -0
  657. package/lib/typescript/components/UnmountAfterDelay.d.ts.map +1 -0
  658. package/lib/typescript/components/WebrtcView.d.ts +10 -0
  659. package/lib/typescript/components/WebrtcView.d.ts.map +1 -0
  660. package/lib/typescript/components/WelcomeInMeeting.d.ts +5 -0
  661. package/lib/typescript/components/WelcomeInMeeting.d.ts.map +1 -0
  662. package/lib/typescript/components/index.d.ts +0 -1
  663. package/lib/typescript/components/index.d.ts.map +1 -1
  664. package/lib/typescript/hooks-sdk-selectors.d.ts +2 -0
  665. package/lib/typescript/hooks-sdk-selectors.d.ts.map +1 -1
  666. package/lib/typescript/hooks-sdk.d.ts +1 -0
  667. package/lib/typescript/hooks-sdk.d.ts.map +1 -1
  668. package/lib/typescript/hooks-util-selectors.d.ts +2 -0
  669. package/lib/typescript/hooks-util-selectors.d.ts.map +1 -1
  670. package/lib/typescript/hooks-util.d.ts +24 -4
  671. package/lib/typescript/hooks-util.d.ts.map +1 -1
  672. package/lib/typescript/modules/HMSManager.d.ts +4 -0
  673. package/lib/typescript/modules/HMSManager.d.ts.map +1 -0
  674. package/lib/typescript/modules/parser.d.ts +3 -0
  675. package/lib/typescript/modules/parser.d.ts.map +1 -0
  676. package/lib/typescript/peerTrackNodeUtils.d.ts +1 -0
  677. package/lib/typescript/peerTrackNodeUtils.d.ts.map +1 -1
  678. package/lib/typescript/redux/actionTypes.d.ts +11 -1
  679. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  680. package/lib/typescript/redux/actions/index.d.ts +61 -3
  681. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  682. package/lib/typescript/redux/index.d.ts +10 -1
  683. package/lib/typescript/redux/index.d.ts.map +1 -1
  684. package/lib/typescript/redux/reducers/appState.d.ts +8 -0
  685. package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
  686. package/lib/typescript/redux/reducers/hmsStates.d.ts +7 -1
  687. package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
  688. package/lib/typescript/redux/reducers/index.d.ts +10 -1
  689. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  690. package/lib/typescript/redux/reducers/userState.d.ts +3 -2
  691. package/lib/typescript/redux/reducers/userState.d.ts.map +1 -1
  692. package/lib/typescript/utils/functions.d.ts +14 -0
  693. package/lib/typescript/utils/functions.d.ts.map +1 -1
  694. package/lib/typescript/utils/theme.d.ts +7 -3
  695. package/lib/typescript/utils/theme.d.ts.map +1 -1
  696. package/lib/typescript/utils/types.d.ts +8 -4
  697. package/lib/typescript/utils/types.d.ts.map +1 -1
  698. package/package.json +11 -16
  699. package/src/HMSInstanceSetup.tsx +5 -31
  700. package/src/HMSPrebuilt.tsx +27 -8
  701. package/src/HMSRoomSetup.tsx +98 -23
  702. package/src/Icons/AlertTriangle/assets/alert-triangle.png +0 -0
  703. package/src/Icons/AlertTriangle/assets/alert-triangle@2x.png +0 -0
  704. package/src/Icons/AlertTriangle/assets/alert-triangle@3x.png +0 -0
  705. package/src/Icons/AlertTriangle/index.tsx +33 -0
  706. package/src/Icons/AnswerPhone/index.tsx +7 -1
  707. package/src/Icons/BRB/assets/BRB.png +0 -0
  708. package/src/Icons/BRB/assets/BRB@2x.png +0 -0
  709. package/src/Icons/BRB/assets/BRB@3x.png +0 -0
  710. package/src/Icons/BRB/index.tsx +31 -0
  711. package/src/Icons/Bluetooth/index.tsx +7 -1
  712. package/src/Icons/Camera/index.tsx +7 -1
  713. package/src/Icons/Chat/index.tsx +7 -1
  714. package/src/Icons/Check/assets/check.png +0 -0
  715. package/src/Icons/Check/assets/check@2x.png +0 -0
  716. package/src/Icons/Check/assets/check@3x.png +0 -0
  717. package/src/Icons/Check/index.tsx +33 -0
  718. package/src/Icons/Chevron/index.tsx +7 -1
  719. package/src/Icons/Close/index.tsx +7 -1
  720. package/src/Icons/Hamburger/assets/hamburger.png +0 -0
  721. package/src/Icons/Hamburger/assets/hamburger@2x.png +0 -0
  722. package/src/Icons/Hamburger/assets/hamburger@3x.png +0 -0
  723. package/src/Icons/Hamburger/index.tsx +33 -0
  724. package/src/Icons/Hand/index.tsx +6 -3
  725. package/src/Icons/Headphones/index.tsx +7 -1
  726. package/src/Icons/Maximize/assets/maximize.png +0 -0
  727. package/src/Icons/Maximize/assets/maximize@2x.png +0 -0
  728. package/src/Icons/Maximize/assets/maximize@3x.png +0 -0
  729. package/src/Icons/Maximize/index.tsx +33 -0
  730. package/src/Icons/Mic/index.tsx +7 -1
  731. package/src/Icons/Minimize/assets/minimize.png +0 -0
  732. package/src/Icons/Minimize/assets/minimize@2x.png +0 -0
  733. package/src/Icons/Minimize/assets/minimize@3x.png +0 -0
  734. package/src/Icons/Minimize/index.tsx +33 -0
  735. package/src/Icons/Participants/index.tsx +7 -1
  736. package/src/Icons/Pencil/assets/pencil.png +0 -0
  737. package/src/Icons/Pencil/assets/pencil@2x.png +0 -0
  738. package/src/Icons/Pencil/assets/pencil@3x.png +0 -0
  739. package/src/Icons/Pencil/index.tsx +33 -0
  740. package/src/Icons/Pin/assets/pin.png +0 -0
  741. package/src/Icons/Pin/assets/pin@2x.png +0 -0
  742. package/src/Icons/Pin/assets/pin@3x.png +0 -0
  743. package/src/Icons/Pin/index.tsx +30 -0
  744. package/src/Icons/Radio/assets/radio.png +0 -0
  745. package/src/Icons/Radio/assets/radio@2x.png +0 -0
  746. package/src/Icons/Radio/assets/radio@3x.png +0 -0
  747. package/src/Icons/Radio/index.tsx +27 -0
  748. package/src/Icons/Recording/assets/recording.png +0 -0
  749. package/src/Icons/Recording/assets/recording@2x.png +0 -0
  750. package/src/Icons/Recording/assets/recording@3x.png +0 -0
  751. package/src/Icons/Recording/index.tsx +33 -0
  752. package/src/Icons/RotateCamera/index.tsx +7 -1
  753. package/src/Icons/ScreenShare/index.tsx +7 -1
  754. package/src/Icons/Speaker/index.tsx +12 -1
  755. package/src/Icons/Star/assets/star.png +0 -0
  756. package/src/Icons/Star/assets/star@2x.png +0 -0
  757. package/src/Icons/Star/assets/star@3x.png +0 -0
  758. package/src/Icons/Star/index.tsx +30 -0
  759. package/src/Icons/Stop/assets/stop.png +0 -0
  760. package/src/Icons/Stop/assets/stop@2x.png +0 -0
  761. package/src/Icons/Stop/assets/stop@3x.png +0 -0
  762. package/src/Icons/Stop/index.tsx +33 -0
  763. package/src/Icons/ThreeDots/index.tsx +7 -1
  764. package/src/Icons/Wave/index.tsx +7 -1
  765. package/src/Icons/index.ts +12 -0
  766. package/src/components/AvatarView.tsx +1 -2
  767. package/src/components/BackButton.tsx +9 -6
  768. package/src/components/BottomSheet.tsx +191 -0
  769. package/src/components/ChangeNameModalContent.tsx +157 -0
  770. package/src/components/CompanyLogo.tsx +35 -0
  771. package/src/components/CustomInput.tsx +2 -3
  772. package/src/components/DisplayView.tsx +16 -75
  773. package/src/components/EndRoomModalContent.tsx +90 -0
  774. package/src/components/Footer.tsx +7 -7
  775. package/src/components/GridView.tsx +91 -20
  776. package/src/components/HLSView.tsx +1 -1
  777. package/src/components/HMSBaseButton.tsx +91 -0
  778. package/src/components/HMSDangerButton.tsx +65 -0
  779. package/src/components/HMSHLSStreamLoading.tsx +68 -0
  780. package/src/components/HMSLocalVideoView.tsx +42 -0
  781. package/src/components/{HMSSpeakerSettings.tsx → HMSManageAudioOutput.tsx} +99 -78
  782. package/src/components/HMSManageCameraRotation.tsx +11 -8
  783. package/src/components/HMSManageLeave.tsx +107 -183
  784. package/src/components/HMSManageLocalAudio.tsx +1 -10
  785. package/src/components/HMSManageLocalVideo.tsx +1 -10
  786. package/src/components/HMSMeetingEnded.tsx +28 -0
  787. package/src/components/HMSPreviewEditName.tsx +4 -45
  788. package/src/components/HMSPreviewHLSLiveIndicator.tsx +66 -0
  789. package/src/components/HMSPreviewJoinButton.tsx +36 -51
  790. package/src/components/HMSPreviewNetworkQuality.tsx +43 -0
  791. package/src/components/HMSPreviewPeersList.tsx +25 -54
  792. package/src/components/HMSPreviewSubtitle.tsx +46 -6
  793. package/src/components/HMSPreviewTile.tsx +20 -31
  794. package/src/components/HMSPreviewTitle.tsx +18 -5
  795. package/src/components/HMSPrimaryButton.tsx +63 -0
  796. package/src/components/HMSRecordingIndicator.tsx +37 -0
  797. package/src/components/HMSRoomOptions.tsx +30 -16
  798. package/src/components/HMSShowNetworkQuality.tsx +7 -6
  799. package/src/components/HMSTextInput.tsx +78 -0
  800. package/src/components/Header.tsx +37 -36
  801. package/src/components/LocalPeerRegularVideoView.tsx +28 -0
  802. package/src/components/LocalPeerScreenshareView.tsx +72 -0
  803. package/src/components/Meeting.tsx +21 -3
  804. package/src/components/MenuModal/Menu.tsx +1 -1
  805. package/src/components/MiniView.tsx +213 -0
  806. package/src/components/Modals.tsx +5 -409
  807. package/src/components/PaginationDots.tsx +65 -0
  808. package/src/components/Participants/ParticipantsList.tsx +0 -24
  809. package/src/components/ParticipantsCount.tsx +52 -0
  810. package/src/components/PeerMinimizedView.tsx +131 -0
  811. package/src/components/PeerSettingsModalContent.tsx +108 -66
  812. package/src/components/PeerVideoTile/AvatarView.tsx +79 -0
  813. package/src/components/PeerVideoTile/PeerAudioMutedIndicator.tsx +41 -0
  814. package/src/components/PeerVideoTile/PeerMetadata.tsx +46 -0
  815. package/src/components/PeerVideoTile/PeerNameAndNetwork.tsx +81 -0
  816. package/src/components/PeerVideoTile/PeerVideoTileView.tsx +180 -0
  817. package/src/components/PeerVideoTile/VideoView.tsx +104 -0
  818. package/src/components/PeerVideoTile/index.ts +0 -0
  819. package/src/components/PressableIcon.tsx +15 -8
  820. package/src/components/Preview.tsx +150 -104
  821. package/src/components/RoomSettingsModalContent.tsx +234 -659
  822. package/src/components/RoomSettingsModalDebugModeContent.tsx +446 -0
  823. package/src/components/StopRecordingModalContent.tsx +109 -0
  824. package/src/components/Tile.tsx +49 -90
  825. package/src/components/TilesContainer.tsx +116 -14
  826. package/src/components/UnmountAfterDelay.tsx +61 -0
  827. package/src/components/WebrtcView.tsx +72 -0
  828. package/src/components/WelcomeInMeeting.tsx +52 -0
  829. package/src/components/index.ts +0 -1
  830. package/src/hooks/useHmsInstance.ts +0 -1
  831. package/src/hooks-sdk-selectors.tsx +7 -0
  832. package/src/hooks-sdk.ts +18 -0
  833. package/src/hooks-util-selectors.tsx +21 -0
  834. package/src/hooks-util.ts +548 -130
  835. package/src/modules/HMSManager.ts +25 -0
  836. package/src/modules/parser.ts +22 -0
  837. package/src/peerTrackNodeUtils.tsx +13 -10
  838. package/src/redux/actionTypes.ts +28 -0
  839. package/src/redux/actions/index.ts +64 -2
  840. package/src/redux/reducers/appState.ts +65 -0
  841. package/src/redux/reducers/hmsStates.ts +15 -1
  842. package/src/redux/reducers/userState.ts +5 -2
  843. package/src/utils/functions.ts +48 -0
  844. package/src/utils/theme.ts +75 -5
  845. package/src/utils/types.ts +9 -4
  846. package/src/utils.ts +2 -2
  847. package/lib/commonjs/components/HMSSpeakerSettings.js.map +0 -1
  848. package/lib/commonjs/components/ZoomableView.js +0 -84
  849. package/lib/commonjs/components/ZoomableView.js.map +0 -1
  850. package/lib/module/components/HMSSpeakerSettings.js.map +0 -1
  851. package/lib/module/components/ZoomableView.js +0 -76
  852. package/lib/module/components/ZoomableView.js.map +0 -1
  853. package/lib/typescript/components/HMSSpeakerSettings.d.ts +0 -3
  854. package/lib/typescript/components/HMSSpeakerSettings.d.ts.map +0 -1
  855. package/lib/typescript/components/ZoomableView.d.ts +0 -6
  856. package/lib/typescript/components/ZoomableView.d.ts.map +0 -1
  857. package/src/components/ZoomableView.tsx +0 -91
package/src/hooks-util.ts CHANGED
@@ -21,31 +21,58 @@ import {
21
21
  import type {
22
22
  HMSSessionStore,
23
23
  HMSSessionStoreValue,
24
+ HMSSpeaker,
24
25
  } from '@100mslive/react-native-hms';
26
+ import type {
27
+ ColorPalette,
28
+ Theme,
29
+ Typography,
30
+ } from '@100mslive/types-prebuilt';
25
31
  import Toast from 'react-native-simple-toast';
26
- import { useRef, useCallback, useEffect, useState, useMemo } from 'react';
27
-
28
- import { ModalTypes, PipModes } from './utils/types';
32
+ import {
33
+ useRef,
34
+ useCallback,
35
+ useEffect,
36
+ useState,
37
+ useMemo,
38
+ useContext,
39
+ } from 'react';
40
+ import type { DependencyList } from 'react';
41
+
42
+ import { MaxTilesInOnePage, ModalTypes, PipModes } from './utils/types';
29
43
  import type { PeerTrackNode } from './utils/types';
30
44
  import { createPeerTrackNode, parseMetadata } from './utils/functions';
31
- import { useDispatch, useSelector, useStore } from 'react-redux';
45
+ import {
46
+ batch,
47
+ shallowEqual,
48
+ useDispatch,
49
+ useSelector,
50
+ useStore,
51
+ } from 'react-redux';
32
52
  import type { RootState } from './redux';
33
53
  import {
34
54
  addMessage,
35
55
  addPinnedMessage,
36
- addToPreviewPeersList,
56
+ changeMeetingState,
37
57
  changePipModeStatus,
58
+ changeStartingHLSStream,
38
59
  clearStore,
39
- removeFromPreviewPeersList,
40
60
  saveUserData,
41
61
  setHMSLocalPeerState,
42
62
  setHMSRoleState,
43
63
  setHMSRoomState,
44
64
  setIsLocalAudioMutedState,
45
65
  setIsLocalVideoMutedState,
66
+ setLayoutConfig,
67
+ setLocalPeerTrackNode,
68
+ setMiniViewPeerTrackNode,
46
69
  setModalType,
70
+ setStartingOrStoppingRecording,
71
+ updateLocalPeerTrackNode,
72
+ updateMiniViewPeerTrackNode,
47
73
  } from './redux/actions';
48
74
  import {
75
+ createPeerTrackNodeUniqueId,
49
76
  degradeOrRestorePeerTrackNodes,
50
77
  peerTrackNodeExistForPeer,
51
78
  peerTrackNodeExistForPeerAndTrack,
@@ -61,7 +88,8 @@ import {
61
88
  LayoutAnimation,
62
89
  Platform,
63
90
  } from 'react-native';
64
- import { useNavigation } from '@react-navigation/native';
91
+ import type { ImageStyle, StyleProp, ViewStyle, TextStyle } from 'react-native';
92
+ import { NavigationContext } from '@react-navigation/native';
65
93
  import {
66
94
  useIsLandscapeOrientation,
67
95
  useIsPortraitOrientation,
@@ -70,33 +98,27 @@ import {
70
98
  useSafeAreaFrame,
71
99
  useSafeAreaInsets,
72
100
  } from 'react-native-safe-area-context';
73
- import { selectIsHLSViewer } from './hooks-util-selectors';
101
+ import { selectIsHLSViewer, selectShouldGoLive } from './hooks-util-selectors';
102
+ import type { GridViewRefAttrs } from './components/GridView';
103
+ import { getRoomLayout } from './modules/HMSManager';
104
+ import { DEFAULT_THEME, DEFAULT_TYPOGRAPHY } from './utils/theme';
74
105
 
75
106
  export const useHMSListeners = (
76
- meetingState: MeetingState,
77
- setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>,
78
- setMeetingState: React.Dispatch<React.SetStateAction<MeetingState>>
107
+ setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
79
108
  ) => {
80
109
  const hmsInstance = useHMSInstance();
81
110
  const updateLocalPeer = useUpdateHMSLocalPeer(hmsInstance);
82
111
 
83
- useHMSRoomUpdate(hmsInstance, setMeetingState);
112
+ useHMSRoomUpdate(hmsInstance);
84
113
 
85
- useHMSPeersUpdate(
86
- meetingState,
87
- hmsInstance,
88
- updateLocalPeer,
89
- setPeerTrackNodes
90
- );
114
+ useHMSPeersUpdate(hmsInstance, updateLocalPeer, setPeerTrackNodes);
91
115
 
92
116
  useHMSTrackUpdate(hmsInstance, updateLocalPeer, setPeerTrackNodes);
93
117
  };
94
118
 
95
- const useHMSRoomUpdate = (
96
- hmsInstance: HMSSDK,
97
- setMeetingState: React.Dispatch<React.SetStateAction<MeetingState>>
98
- ) => {
119
+ const useHMSRoomUpdate = (hmsInstance: HMSSDK) => {
99
120
  const dispatch = useDispatch();
121
+ const reduxStore = useStore<RootState>();
100
122
 
101
123
  useEffect(() => {
102
124
  const roomUpdateHandler = (data: {
@@ -112,16 +134,23 @@ const useHMSRoomUpdate = (
112
134
  * before ON_JOIN, if ON_ROOM comes then we can show Meeting screen to user, instead of Loader or Preview
113
135
  */
114
136
  if (room.localPeer.role?.name?.includes('hls-') ?? false) {
115
- dispatch(setHMSLocalPeerState(room.localPeer));
116
- setMeetingState((prevMeetingScreen) => {
117
- if (prevMeetingScreen !== MeetingState.IN_MEETING) {
118
- return MeetingState.IN_MEETING;
137
+ const meetingState = reduxStore.getState().app.meetingState;
138
+
139
+ batch(() => {
140
+ dispatch(setHMSLocalPeerState(room.localPeer));
141
+ if (meetingState !== MeetingState.IN_MEETING) {
142
+ dispatch(changeMeetingState(MeetingState.IN_MEETING));
119
143
  }
120
- return prevMeetingScreen;
121
144
  });
122
145
  }
123
146
 
124
147
  if (type === HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED) {
148
+ const startingOrStoppingRecording = reduxStore.getState().app.startingOrStoppingRecording;
149
+
150
+ if (startingOrStoppingRecording) {
151
+ dispatch(setStartingOrStoppingRecording(false));
152
+ }
153
+
125
154
  let streaming = room?.browserRecordingState?.running;
126
155
  const startAtDate = room?.browserRecordingState?.startedAt;
127
156
 
@@ -143,6 +172,8 @@ const useHMSRoomUpdate = (
143
172
  Toast.TOP
144
173
  );
145
174
  } else if (type === HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED) {
175
+ dispatch(changeStartingHLSStream(false));
176
+
146
177
  let streaming = room?.hlsStreamingState?.running;
147
178
 
148
179
  Toast.showWithGravity(
@@ -212,24 +243,27 @@ type PeerUpdate = {
212
243
  };
213
244
 
214
245
  const useHMSPeersUpdate = (
215
- meetingState: MeetingState,
216
246
  hmsInstance: HMSSDK,
217
247
  updateLocalPeer: () => void,
218
248
  setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
219
249
  ) => {
220
250
  const dispatch = useDispatch();
221
- const inMeeting = meetingState === MeetingState.IN_MEETING;
251
+ const store = useStore<RootState>();
252
+ // const inMeeting = useSelector(
253
+ // (state: RootState) => state.app.meetingState === MeetingState.IN_MEETING
254
+ // );
222
255
 
223
256
  useEffect(() => {
224
257
  const peerUpdateHandler = ({ peer, type }: PeerUpdate) => {
225
258
  // Handle State from Preview screen
226
- if (!inMeeting) {
227
- if (type === HMSPeerUpdate.PEER_JOINED) {
228
- dispatch(addToPreviewPeersList(peer));
229
- } else if (type === HMSPeerUpdate.PEER_LEFT) {
230
- dispatch(removeFromPreviewPeersList(peer));
231
- }
232
- }
259
+ // TODO: When `inMeeting` becomes true Peer Update is resubscribed, we might lose some events during that time
260
+ // if (!inMeeting) {
261
+ // if (type === HMSPeerUpdate.PEER_JOINED) {
262
+ // dispatch(addToPreviewPeersList(peer));
263
+ // } else if (type === HMSPeerUpdate.PEER_LEFT) {
264
+ // dispatch(removeFromPreviewPeersList(peer));
265
+ // }
266
+ // }
233
267
 
234
268
  // Handle State for Meeting screen
235
269
  if (type === HMSPeerUpdate.PEER_JOINED) {
@@ -249,6 +283,28 @@ const useHMSPeersUpdate = (
249
283
  return prevPeerTrackNodes;
250
284
  });
251
285
 
286
+ const reduxState = store.getState();
287
+ const miniviewPeerTrackNode = reduxState.app.miniviewPeerTrackNode;
288
+ const localPeerTrackNode = reduxState.app.localPeerTrackNode;
289
+
290
+ batch(() => {
291
+ if (localPeerTrackNode) {
292
+ dispatch(updateLocalPeerTrackNode({ peer }));
293
+ } else {
294
+ dispatch(
295
+ setLocalPeerTrackNode(createPeerTrackNode(peer, peer.videoTrack))
296
+ );
297
+ }
298
+
299
+ // only set `localPeerTrackNode` as miniview peer track node when we are already using it.
300
+ if (
301
+ miniviewPeerTrackNode &&
302
+ miniviewPeerTrackNode.peer.peerID === peer.peerID
303
+ ) {
304
+ dispatch(updateMiniViewPeerTrackNode({ peer }));
305
+ }
306
+ });
307
+
252
308
  // - TODO: update local localPeer state
253
309
  // - Pass this updated data to Meeting component -> DisplayView component
254
310
  updateLocalPeer();
@@ -292,7 +348,7 @@ const useHMSPeersUpdate = (
292
348
  return () => {
293
349
  hmsInstance.removeEventListener(HMSUpdateListenerActions.ON_PEER_UPDATE);
294
350
  };
295
- }, [inMeeting, hmsInstance]); // TODO: When `inMeeting` becomes true Peer Update is resubscribed, we might lose some events during that time
351
+ }, [hmsInstance]);
296
352
  };
297
353
 
298
354
  type TrackUpdate = {
@@ -307,10 +363,22 @@ const useHMSTrackUpdate = (
307
363
  setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
308
364
  ) => {
309
365
  const dispatch = useDispatch();
366
+ const store = useStore<RootState>();
310
367
 
311
368
  useEffect(() => {
312
369
  const trackUpdateHandler = ({ peer, track, type }: TrackUpdate) => {
370
+ const reduxState = store.getState();
371
+ const miniviewPeerTrackNode = reduxState.app.miniviewPeerTrackNode;
372
+ const localPeerTrackNode = reduxState.app.localPeerTrackNode;
373
+
313
374
  if (type === HMSTrackUpdate.TRACK_ADDED) {
375
+ const newPeerTrackNode = createPeerTrackNode(peer, track);
376
+
377
+ const willCreateMiniviewPeerTrackNode =
378
+ !miniviewPeerTrackNode &&
379
+ peer.isLocal &&
380
+ track.source === HMSTrackSource.REGULAR;
381
+
314
382
  setPeerTrackNodes((prevPeerTrackNodes) => {
315
383
  if (
316
384
  peerTrackNodeExistForPeerAndTrack(prevPeerTrackNodes, peer, track)
@@ -324,14 +392,65 @@ const useHMSTrackUpdate = (
324
392
  }
325
393
  return replacePeerTrackNodes(prevPeerTrackNodes, peer);
326
394
  }
327
- const newPeerTrackNode = createPeerTrackNode(peer, track);
328
- return [...prevPeerTrackNodes, newPeerTrackNode];
395
+
396
+ if (
397
+ miniviewPeerTrackNode
398
+ ? newPeerTrackNode.id !== miniviewPeerTrackNode.id
399
+ : !willCreateMiniviewPeerTrackNode
400
+ ) {
401
+ return [...prevPeerTrackNodes, newPeerTrackNode];
402
+ }
403
+
404
+ return prevPeerTrackNodes;
329
405
  });
330
406
 
331
407
  // - TODO: update local localPeer state
332
408
  // - Pass this updated data to Meeting component -> DisplayView component
333
409
  if (peer.isLocal) {
410
+ if (track.source === HMSTrackSource.REGULAR) {
411
+ if (!localPeerTrackNode) {
412
+ dispatch(setLocalPeerTrackNode(newPeerTrackNode));
413
+ } else {
414
+ dispatch(
415
+ updateLocalPeerTrackNode(
416
+ track.type === HMSTrackType.VIDEO ? { peer, track } : { peer }
417
+ )
418
+ );
419
+ }
420
+
421
+ // only setting `miniviewPeerTrackNode`, when:
422
+ // - there is no `miniviewPeerTrackNode`
423
+ // - if there is, then it is of regular track
424
+ if (!miniviewPeerTrackNode) {
425
+ dispatch(setMiniViewPeerTrackNode(newPeerTrackNode));
426
+ } else if (miniviewPeerTrackNode.id === newPeerTrackNode.id) {
427
+ dispatch(
428
+ updateMiniViewPeerTrackNode(
429
+ track.type === HMSTrackType.VIDEO ? { peer, track } : { peer }
430
+ )
431
+ );
432
+ }
433
+ }
434
+ // else -> {
435
+ // should `localPeerTrackNode` be created/updated for non-regular track addition?
436
+ // should `miniviewPeerTrackNode` be created/updated for non-regular track addition?
437
+ // }
438
+
334
439
  updateLocalPeer();
440
+ } else {
441
+ // only setting `miniviewPeerTrackNode`, when:
442
+ // - there is already `miniviewPeerTrackNode`
443
+ // - and it is of same peer's regular track
444
+ if (
445
+ miniviewPeerTrackNode &&
446
+ miniviewPeerTrackNode.id === newPeerTrackNode.id
447
+ ) {
448
+ dispatch(
449
+ updateMiniViewPeerTrackNode(
450
+ track.type === HMSTrackType.VIDEO ? { peer, track } : { peer }
451
+ )
452
+ );
453
+ }
335
454
  }
336
455
  return;
337
456
  }
@@ -349,7 +468,52 @@ const useHMSTrackUpdate = (
349
468
  // - TODO: update local localPeer state
350
469
  // - Pass this updated data to Meeting component -> DisplayView component
351
470
  if (peer.isLocal) {
471
+ if (track.source === HMSTrackSource.REGULAR) {
472
+ if (!peer.audioTrack?.trackId && !peer.videoTrack?.trackId) {
473
+ dispatch(setLocalPeerTrackNode(null));
474
+
475
+ // removing `miniviewPeerTrackNode`, when:
476
+ // - `localPeerTrack` was used as `miniviewPeerTrackNode`
477
+ // - and now local peer doesn't have any tracks
478
+ if (
479
+ miniviewPeerTrackNode &&
480
+ miniviewPeerTrackNode.peer.peerID === peer.peerID
481
+ ) {
482
+ dispatch(setMiniViewPeerTrackNode(null));
483
+ }
484
+ } else {
485
+ if (track.type === HMSTrackType.VIDEO) {
486
+ dispatch(updateLocalPeerTrackNode({ peer, track: undefined }));
487
+ } else {
488
+ dispatch(updateLocalPeerTrackNode({ peer }));
489
+ }
490
+
491
+ // updating `miniviewPeerTrackNode`
492
+ if (
493
+ miniviewPeerTrackNode &&
494
+ miniviewPeerTrackNode.peer.peerID === peer.peerID
495
+ ) {
496
+ if (track.type === HMSTrackType.VIDEO) {
497
+ dispatch(
498
+ updateMiniViewPeerTrackNode({ peer, track: undefined })
499
+ );
500
+ } else {
501
+ dispatch(updateMiniViewPeerTrackNode({ peer }));
502
+ }
503
+ }
504
+ }
505
+ }
506
+
352
507
  updateLocalPeer();
508
+ } else {
509
+ // only removing `miniviewPeerTrackNode`, when:
510
+ // - there is already `miniviewPeerTrackNode`
511
+ // - and it is of same peer's regular track
512
+ const uniqueId = createPeerTrackNodeUniqueId(peer, track);
513
+
514
+ if (miniviewPeerTrackNode && miniviewPeerTrackNode.id === uniqueId) {
515
+ dispatch(setMiniViewPeerTrackNode(null));
516
+ }
353
517
  }
354
518
  return;
355
519
  }
@@ -383,10 +547,29 @@ const useHMSTrackUpdate = (
383
547
  return prevPeerTrackNodes;
384
548
  });
385
549
 
550
+ const uniqueId = createPeerTrackNodeUniqueId(peer, track);
551
+
386
552
  // - TODO: update local localPeer state
387
553
  // - Pass this updated data to Meeting component -> DisplayView component
388
554
  if (peer.isLocal) {
555
+ const updatePayload =
556
+ track.type === HMSTrackType.VIDEO ? { peer, track } : { peer };
557
+
558
+ dispatch(updateLocalPeerTrackNode(updatePayload));
559
+
560
+ // Take care of miniviewPeerTrackNode
561
+ if (miniviewPeerTrackNode && miniviewPeerTrackNode.id === uniqueId) {
562
+ dispatch(updateMiniViewPeerTrackNode(updatePayload));
563
+ }
564
+
389
565
  updateLocalPeer();
566
+ } else {
567
+ if (miniviewPeerTrackNode && miniviewPeerTrackNode.id === uniqueId) {
568
+ const updatePayload =
569
+ track.type === HMSTrackType.VIDEO ? { peer, track } : { peer };
570
+
571
+ dispatch(updateMiniViewPeerTrackNode(updatePayload));
572
+ }
390
573
  }
391
574
  return;
392
575
  }
@@ -407,6 +590,16 @@ const useHMSTrackUpdate = (
407
590
  }
408
591
  return prevPeerTrackNodes;
409
592
  });
593
+
594
+ const uniqueId = createPeerTrackNodeUniqueId(peer, track);
595
+
596
+ if (miniviewPeerTrackNode && miniviewPeerTrackNode.id === uniqueId) {
597
+ dispatch(
598
+ updateMiniViewPeerTrackNode({
599
+ isDegraded: type === HMSTrackUpdate.TRACK_DEGRADED,
600
+ })
601
+ );
602
+ }
410
603
  return;
411
604
  }
412
605
  };
@@ -547,7 +740,9 @@ export const useHMSRoleChangeRequest = (
547
740
 
548
741
  type SessionStoreListeners = Array<{ remove: () => void }>;
549
742
 
550
- export const useHMSSessionStoreListeners = () => {
743
+ export const useHMSSessionStoreListeners = (
744
+ gridViewRef: React.MutableRefObject<GridViewRefAttrs | null>
745
+ ) => {
551
746
  const dispatch = useDispatch();
552
747
  const hmsSessionStore = useSelector(
553
748
  (state: RootState) => state.user.hmsSessionStore
@@ -564,6 +759,10 @@ export const useHMSSessionStoreListeners = () => {
564
759
  const handleSpotlightIdChange = (id: HMSSessionStoreValue) => {
565
760
  // set value to the state to rerender the component to reflect changes
566
761
  dispatch(saveUserData({ spotlightTrackId: id }));
762
+ // Scroll to start of the list
763
+ gridViewRef.current
764
+ ?.getFlatlistRef()
765
+ .current?.scrollToOffset({ animated: true, offset: 0 });
567
766
  };
568
767
 
569
768
  // Handle 'pinnedMessage' key values
@@ -737,52 +936,11 @@ export const useHMSMessages = () => {
737
936
 
738
937
  export const useHMSPIPRoomLeave = () => {
739
938
  const hmsInstance = useHMSInstance();
740
- const dispatch = useDispatch();
741
- // TODO: What if this is undefined?
742
- const navigation = useNavigation();
939
+ const { destroy } = useLeaveMethods();
743
940
 
744
941
  useEffect(() => {
745
942
  const pipRoomLeaveHandler = () => {
746
- hmsInstance
747
- .destroy()
748
- .then((s) => {
749
- console.log('Destroy Success: ', s);
750
- // TODOS:
751
- // - If show `Meeting_Ended` is true, show Meeting screen by setting state to MEETING_ENDED
752
- // - Reset Redux States
753
- // - HMSInstance will not be available now
754
- // - When your presses "Re Join" Action button, restart process from root component
755
- // - When your presses "Done" Action button
756
- // - If we have callback fn, call it
757
- // - Otherwise try our best to navigate away from current screen
758
- //
759
- // - No screen to show
760
- // - No need to reset redux state?
761
- // - HMSInstance will be available till this point
762
- // - If we have callback fn, call it
763
- // - Otherwise try our best to navigate away from current screen
764
- // - When we are navigated away from screen, HMSInstance will be not available
765
-
766
- // dispatch(clearMessageData());
767
- // dispatch(clearPeerData());
768
- // dispatch(clearHmsReference());
769
-
770
- // if (navigation.canGoBack()) {
771
- // navigation.goBack();
772
- // } else {
773
- // TODO: remove this later
774
- navigation.navigate('QRCodeScreen' as never);
775
- dispatch(clearStore());
776
- // }
777
- })
778
- .catch((e) => {
779
- console.log(`Destroy HMS instance Error: ${e}`);
780
- Toast.showWithGravity(
781
- `Destroy HMS instance Error: ${e}`,
782
- Toast.LONG,
783
- Toast.TOP
784
- );
785
- });
943
+ destroy();
786
944
  };
787
945
 
788
946
  hmsInstance.addEventListener(
@@ -793,57 +951,16 @@ export const useHMSPIPRoomLeave = () => {
793
951
  return () => {
794
952
  hmsInstance.removeEventListener(HMSPIPListenerActions.ON_PIP_ROOM_LEAVE);
795
953
  };
796
- }, [hmsInstance]);
954
+ }, [destroy, hmsInstance]);
797
955
  };
798
956
 
799
957
  export const useHMSRemovedFromRoomUpdate = () => {
800
958
  const hmsInstance = useHMSInstance();
801
- const dispatch = useDispatch();
802
- // TODO: What if this is undefined?
803
- const navigation = useNavigation();
959
+ const { destroy } = useLeaveMethods();
804
960
 
805
961
  useEffect(() => {
806
962
  const removedFromRoomHandler = () => {
807
- hmsInstance
808
- .destroy()
809
- .then((s) => {
810
- console.log('Destroy Success: ', s);
811
- // TODOS:
812
- // - If show `Meeting_Ended` is true, show Meeting screen by setting state to MEETING_ENDED
813
- // - Reset Redux States
814
- // - HMSInstance will not be available now
815
- // - When your presses "Re Join" Action button, restart process from root component
816
- // - When your presses "Done" Action button
817
- // - If we have callback fn, call it
818
- // - Otherwise try our best to navigate away from current screen
819
- //
820
- // - No screen to show
821
- // - No need to reset redux state?
822
- // - HMSInstance will be available till this point
823
- // - If we have callback fn, call it
824
- // - Otherwise try our best to navigate away from current screen
825
- // - When we are navigated away from screen, HMSInstance will be not available
826
-
827
- // dispatch(clearMessageData());
828
- // dispatch(clearPeerData());
829
- // dispatch(clearHmsReference());
830
-
831
- // if (navigation.canGoBack()) {
832
- // navigation.goBack();
833
- // } else {
834
- // TODO: remove this later
835
- navigation.navigate('QRCodeScreen' as never);
836
- dispatch(clearStore());
837
- // }
838
- })
839
- .catch((e) => {
840
- console.log(`Destroy HMS instance Error: ${e}`);
841
- Toast.showWithGravity(
842
- `Destroy HMS instance Error: ${e}`,
843
- Toast.LONG,
844
- Toast.TOP
845
- );
846
- });
963
+ destroy();
847
964
  };
848
965
 
849
966
  hmsInstance.addEventListener(
@@ -856,7 +973,7 @@ export const useHMSRemovedFromRoomUpdate = () => {
856
973
  HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM
857
974
  );
858
975
  };
859
- }, [hmsInstance]);
976
+ }, [destroy, hmsInstance]);
860
977
  };
861
978
 
862
979
  export const usePIPListener = () => {
@@ -903,6 +1020,104 @@ export const usePIPListener = () => {
903
1020
  }, [isPipModeActive, hmsInstance]);
904
1021
  };
905
1022
 
1023
+ export const useHMSNetworkQualityUpdate = () => {
1024
+ const hmsInstance = useHMSInstance();
1025
+
1026
+ useEffect(() => {
1027
+ hmsInstance.enableNetworkQualityUpdates();
1028
+
1029
+ return () => hmsInstance.disableNetworkQualityUpdates();
1030
+ }, [hmsInstance]);
1031
+ };
1032
+
1033
+ export const useHMSActiveSpeakerUpdates = (
1034
+ setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>,
1035
+ active?: boolean
1036
+ ) => {
1037
+ const hmsInstance = useHMSInstance();
1038
+ const reduxStore = useStore<RootState>();
1039
+ const isPortraitOrientation = useIsPortraitOrientation();
1040
+
1041
+ useEffect(() => {
1042
+ if (!active) {
1043
+ return;
1044
+ }
1045
+
1046
+ const handleActiveSpeaker = (data: HMSSpeaker[]) => {
1047
+ const activePage = reduxStore.getState().app.gridViewActivePage;
1048
+ if (activePage !== 0) {
1049
+ return;
1050
+ }
1051
+
1052
+ setPeerTrackNodes((prevPeerTrackNodes) => {
1053
+ // list of active speakers which are not in first page
1054
+ const activeSpeakers = data.filter((speaker) => {
1055
+ const uniquePeerTrackNodeId = createPeerTrackNodeUniqueId(
1056
+ speaker.peer,
1057
+ speaker.track
1058
+ );
1059
+
1060
+ const inFirstPage = prevPeerTrackNodes.some(
1061
+ (prevPeerTrackNode, _idx) => {
1062
+ // we are on index which is not in current page
1063
+ if (
1064
+ _idx >=
1065
+ (isPortraitOrientation
1066
+ ? MaxTilesInOnePage.IN_PORTRAIT
1067
+ : MaxTilesInOnePage.IN_LANDSCAPE)
1068
+ ) {
1069
+ return false;
1070
+ }
1071
+
1072
+ return prevPeerTrackNode.id === uniquePeerTrackNodeId;
1073
+ }
1074
+ );
1075
+
1076
+ return !inFirstPage;
1077
+ });
1078
+
1079
+ // All active speakers are in first page already, Do nothing
1080
+ if (activeSpeakers.length === 0) {
1081
+ return prevPeerTrackNodes;
1082
+ }
1083
+
1084
+ // Updated list with all Active Speakers in first page
1085
+ return prevPeerTrackNodes.reduce<PeerTrackNode[]>(
1086
+ (accumulated, current) => {
1087
+ if (
1088
+ activeSpeakers.findIndex(
1089
+ (activeSpeaker) =>
1090
+ createPeerTrackNodeUniqueId(
1091
+ activeSpeaker.peer,
1092
+ activeSpeaker.track
1093
+ ) === current.id
1094
+ ) >= 0
1095
+ ) {
1096
+ // return [current, ...accumulated];
1097
+ accumulated.unshift(current);
1098
+ return accumulated;
1099
+ }
1100
+
1101
+ // return [...accumulated, current];
1102
+ accumulated.push(current);
1103
+ return accumulated;
1104
+ },
1105
+ []
1106
+ );
1107
+ });
1108
+ };
1109
+
1110
+ hmsInstance.addEventListener(
1111
+ HMSUpdateListenerActions.ON_SPEAKER,
1112
+ handleActiveSpeaker
1113
+ );
1114
+
1115
+ return () => {
1116
+ hmsInstance.removeEventListener(HMSUpdateListenerActions.ON_SPEAKER);
1117
+ };
1118
+ }, [isPortraitOrientation, active, hmsInstance]);
1119
+ };
1120
+
906
1121
  let modalTaskRef: { current: any } = { current: null };
907
1122
 
908
1123
  export const clearPendingModalTasks = () => {
@@ -992,6 +1207,7 @@ export const clearConfig = () => {
992
1207
 
993
1208
  export const useHMSConfig = () => {
994
1209
  const hmsInstance = useHMSInstance();
1210
+ const dispatch = useDispatch();
995
1211
  const store = useStore();
996
1212
 
997
1213
  const getConfig = useCallback(async () => {
@@ -1005,6 +1221,18 @@ export const useHMSConfig = () => {
1005
1221
  storeState.user.endPoints?.token
1006
1222
  );
1007
1223
 
1224
+ // TODO: [REMOVE LATER] added trycatch block so that we can join rooms where we are getting error from Layout API
1225
+ try {
1226
+ const roomLayout = await getRoomLayout(
1227
+ hmsInstance,
1228
+ token,
1229
+ 'https://api-nonprod.100ms.live'
1230
+ );
1231
+ dispatch(setLayoutConfig(roomLayout));
1232
+ } catch (error) {
1233
+ console.warn('# getRoomLayout error: ', error);
1234
+ }
1235
+
1008
1236
  hmsConfig = new HMSConfig({
1009
1237
  authToken: token,
1010
1238
  username: storeState.user.userName,
@@ -1016,7 +1244,18 @@ export const useHMSConfig = () => {
1016
1244
  return hmsConfig;
1017
1245
  }, [hmsInstance]);
1018
1246
 
1019
- return { clearConfig, getConfig };
1247
+ const updateConfig = useCallback((data: Partial<HMSConfig>) => {
1248
+ if (!hmsConfig) {
1249
+ throw new Error('No HMSConfig is available to update!');
1250
+ }
1251
+
1252
+ Object.entries(data).forEach(([key, value]) => {
1253
+ // @ts-ignore
1254
+ hmsConfig[key] = value;
1255
+ });
1256
+ }, []);
1257
+
1258
+ return { clearConfig, updateConfig, getConfig };
1020
1259
  };
1021
1260
 
1022
1261
  export const useSafeDimensions = () => {
@@ -1031,7 +1270,7 @@ export const useSafeDimensions = () => {
1031
1270
 
1032
1271
  export const useShowChat = (): [
1033
1272
  'none' | 'inset' | 'modal',
1034
- (show: boolean) => void,
1273
+ (show: boolean) => void
1035
1274
  ] => {
1036
1275
  const dispatch = useDispatch();
1037
1276
  const isHLSViewer = useIsHLSViewer();
@@ -1152,3 +1391,182 @@ export const useFilteredParticipants = () => {
1152
1391
  setSearchText: setParticipantsSearchInput,
1153
1392
  };
1154
1393
  };
1394
+
1395
+ export const useShouldGoLive = () => {
1396
+ const shouldGoLive = useSelector(selectShouldGoLive);
1397
+
1398
+ return shouldGoLive;
1399
+ };
1400
+
1401
+ export const useLeaveMethods = () => {
1402
+ const navigation = useContext(NavigationContext);
1403
+ const hmsInstance = useHMSInstance();
1404
+ const dispatch = useDispatch();
1405
+ const reduxStore = useStore<RootState>();
1406
+
1407
+ const destroy = useCallback(async () => {
1408
+ try {
1409
+ const s = await hmsInstance.destroy();
1410
+ console.log('Destroy Success: ', s);
1411
+ // TODOS:
1412
+ // - If show `Meeting_Ended` is true, show Meeting screen by setting state to MEETING_ENDED
1413
+ // - Reset Redux States
1414
+ // - HMSInstance will not be available now
1415
+ // - When your presses "Re Join" Action button, restart process from root component
1416
+ // - When your presses "Done" Action button
1417
+ // - If we have callback fn, call it
1418
+ // - Otherwise try our best to navigate away from current screen
1419
+ //
1420
+ // - No screen to show
1421
+ // - No need to reset redux state?
1422
+ // - HMSInstance will be available till this point
1423
+ // - If we have callback fn, call it
1424
+ // - Otherwise try our best to navigate away from current screen
1425
+ // - When we are navigated away from screen, HMSInstance will be not available
1426
+
1427
+ // dispatch(clearMessageData());
1428
+ // dispatch(clearPeerData());
1429
+ // dispatch(clearHmsReference());
1430
+
1431
+ const onLeave = reduxStore.getState().user.onLeave;
1432
+
1433
+ if (typeof onLeave === 'function') {
1434
+ onLeave();
1435
+ dispatch(clearStore());
1436
+ } else if (navigation && navigation.canGoBack()) {
1437
+ navigation.goBack();
1438
+ dispatch(clearStore());
1439
+ } else {
1440
+ // TODO: call onLeave Callback if provided
1441
+ // Otherwise default action is to show "Meeting Ended" screen
1442
+ dispatch(clearStore()); // TODO: We need different clearStore for MeetingEnded
1443
+ dispatch(changeMeetingState(MeetingState.MEETING_ENDED));
1444
+ }
1445
+ } catch (e) {
1446
+ console.log(`Destroy HMS instance Error: ${e}`);
1447
+ Toast.showWithGravity(
1448
+ `Destroy HMS instance Error: ${e}`,
1449
+ Toast.LONG,
1450
+ Toast.TOP
1451
+ );
1452
+ return Promise.reject(e);
1453
+ }
1454
+ }, [hmsInstance]);
1455
+
1456
+ const leave = useCallback(async () => {
1457
+ try {
1458
+ const d = await hmsInstance.leave();
1459
+ console.log('Leave Success: ', d);
1460
+ await destroy();
1461
+ } catch (e) {
1462
+ console.log(`Leave Room Error: ${e}`);
1463
+ Toast.showWithGravity(`Leave Room Error: ${e}`, Toast.LONG, Toast.TOP);
1464
+ }
1465
+ }, [destroy, hmsInstance]);
1466
+
1467
+ const goToPreview = useCallback(async () => {
1468
+ try {
1469
+ await hmsInstance.leave();
1470
+ await hmsInstance.destroy();
1471
+ dispatch(clearStore());
1472
+ } catch (error) {
1473
+ Toast.showWithGravity(
1474
+ `Unable to go to Preview: ${error}`,
1475
+ Toast.LONG,
1476
+ Toast.TOP
1477
+ );
1478
+ }
1479
+ }, [hmsInstance]);
1480
+
1481
+ const endRoom = useCallback(async () => {
1482
+ try {
1483
+ const d = await hmsInstance.endRoom('Host ended the room');
1484
+ console.log('EndRoom Success: ', d);
1485
+ await destroy();
1486
+ } catch (e) {
1487
+ console.log('EndRoom Error: ', e);
1488
+ }
1489
+ }, [destroy, hmsInstance]);
1490
+
1491
+ return { destroy, leave, endRoom, goToPreview };
1492
+ };
1493
+
1494
+ export const useHMSLayoutConfig = () => {
1495
+ return useSelector((state: RootState) => state.hmsStates.layoutConfig);
1496
+ };
1497
+
1498
+ export const useHMSRoomTheme = <S>(
1499
+ selector?: (theme: Required<Theme>) => S
1500
+ ): Required<Theme> | S => {
1501
+ return useSelector((state: RootState) => {
1502
+ const layoutConfig = state.hmsStates.layoutConfig;
1503
+
1504
+ const roomTheme = layoutConfig?.themes.find((theme) => theme.default);
1505
+
1506
+ const defaultTheme: Required<Theme> = roomTheme
1507
+ ? roomTheme.palette
1508
+ ? (roomTheme as Required<Theme>)
1509
+ : { ...roomTheme, palette: DEFAULT_THEME.palette }
1510
+ : DEFAULT_THEME;
1511
+
1512
+ if (!selector) {
1513
+ return defaultTheme;
1514
+ }
1515
+
1516
+ return selector(defaultTheme);
1517
+ }, shallowEqual);
1518
+ };
1519
+
1520
+ export const useHMSRoomColorPalette = (): ColorPalette => {
1521
+ return useHMSRoomTheme((theme) => theme.palette) as ColorPalette;
1522
+ };
1523
+
1524
+ export const useHMSRoomTypography = (): Typography => {
1525
+ return useSelector((state: RootState) => {
1526
+ const layoutConfig = state.hmsStates.layoutConfig;
1527
+
1528
+ const typography = layoutConfig?.typography;
1529
+
1530
+ if (!typography) {
1531
+ return DEFAULT_TYPOGRAPHY;
1532
+ }
1533
+
1534
+ if (!typography.font_family) {
1535
+ return {
1536
+ ...DEFAULT_TYPOGRAPHY,
1537
+ ...typography,
1538
+ };
1539
+ }
1540
+
1541
+ return typography;
1542
+ }, shallowEqual);
1543
+ };
1544
+
1545
+ export const useHMSRoomStyleSheet = <
1546
+ T extends { [key: string]: StyleProp<ViewStyle | TextStyle | ImageStyle> }
1547
+ >(
1548
+ updater: (theme: Required<Theme>, typography: Required<Typography>) => T,
1549
+ deps: DependencyList = []
1550
+ ): T => {
1551
+ const theme = useHMSRoomTheme<Required<Theme>>();
1552
+ const typography = useHMSRoomTypography();
1553
+
1554
+ return useMemo(
1555
+ () => updater(theme, typography),
1556
+ [theme, typography, ...deps]
1557
+ );
1558
+ };
1559
+
1560
+ export const useHMSRoomStyle = <
1561
+ T extends StyleProp<ViewStyle | TextStyle | ImageStyle>
1562
+ >(
1563
+ updater: (theme: Required<Theme>, typography: Required<Typography>) => T,
1564
+ deps: DependencyList = []
1565
+ ): T => {
1566
+ return useHMSRoomStyleSheet(
1567
+ (theme, typography) => ({
1568
+ default: updater(theme, typography),
1569
+ }),
1570
+ deps
1571
+ ).default;
1572
+ };