@100mslive/react-native-room-kit 0.0.4 → 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 (777) hide show
  1. package/README.md +413 -11
  2. package/lib/commonjs/HMSInstanceSetup.js +2 -1
  3. package/lib/commonjs/HMSInstanceSetup.js.map +1 -1
  4. package/lib/commonjs/HMSPrebuilt.js +4 -2
  5. package/lib/commonjs/HMSPrebuilt.js.map +1 -1
  6. package/lib/commonjs/HMSRoomSetup.js +39 -8
  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/index.js +5 -1
  27. package/lib/commonjs/Icons/Check/index.js.map +1 -1
  28. package/lib/commonjs/Icons/Chevron/index.js +5 -1
  29. package/lib/commonjs/Icons/Chevron/index.js.map +1 -1
  30. package/lib/commonjs/Icons/Close/index.js +5 -1
  31. package/lib/commonjs/Icons/Close/index.js.map +1 -1
  32. package/lib/commonjs/Icons/Hamburger/assets/hamburger.png +0 -0
  33. package/lib/commonjs/Icons/Hamburger/assets/hamburger@2x.png +0 -0
  34. package/lib/commonjs/Icons/Hamburger/assets/hamburger@3x.png +0 -0
  35. package/lib/commonjs/Icons/Hamburger/index.js +34 -0
  36. package/lib/commonjs/Icons/Hamburger/index.js.map +1 -0
  37. package/lib/commonjs/Icons/Hand/index.js +6 -4
  38. package/lib/commonjs/Icons/Hand/index.js.map +1 -1
  39. package/lib/commonjs/Icons/Headphones/index.js +5 -1
  40. package/lib/commonjs/Icons/Headphones/index.js.map +1 -1
  41. package/lib/commonjs/Icons/Maximize/assets/maximize.png +0 -0
  42. package/lib/commonjs/Icons/Maximize/assets/maximize@2x.png +0 -0
  43. package/lib/commonjs/Icons/Maximize/assets/maximize@3x.png +0 -0
  44. package/lib/commonjs/Icons/Maximize/index.js +34 -0
  45. package/lib/commonjs/Icons/Maximize/index.js.map +1 -0
  46. package/lib/commonjs/Icons/Mic/index.js +5 -1
  47. package/lib/commonjs/Icons/Mic/index.js.map +1 -1
  48. package/lib/commonjs/Icons/Minimize/assets/minimize.png +0 -0
  49. package/lib/commonjs/Icons/Minimize/assets/minimize@2x.png +0 -0
  50. package/lib/commonjs/Icons/Minimize/assets/minimize@3x.png +0 -0
  51. package/lib/commonjs/Icons/Minimize/index.js +34 -0
  52. package/lib/commonjs/Icons/Minimize/index.js.map +1 -0
  53. package/lib/commonjs/Icons/Participants/index.js +5 -1
  54. package/lib/commonjs/Icons/Participants/index.js.map +1 -1
  55. package/lib/commonjs/Icons/Pencil/assets/pencil.png +0 -0
  56. package/lib/commonjs/Icons/Pencil/assets/pencil@2x.png +0 -0
  57. package/lib/commonjs/Icons/Pencil/assets/pencil@3x.png +0 -0
  58. package/lib/commonjs/Icons/Pencil/index.js +34 -0
  59. package/lib/commonjs/Icons/Pencil/index.js.map +1 -0
  60. package/lib/commonjs/Icons/Pin/assets/pin.png +0 -0
  61. package/lib/commonjs/Icons/Pin/assets/pin@2x.png +0 -0
  62. package/lib/commonjs/Icons/Pin/assets/pin@3x.png +0 -0
  63. package/lib/commonjs/Icons/Pin/index.js +34 -0
  64. package/lib/commonjs/Icons/Pin/index.js.map +1 -0
  65. package/lib/commonjs/Icons/Recording/assets/recording.png +0 -0
  66. package/lib/commonjs/Icons/Recording/assets/recording@2x.png +0 -0
  67. package/lib/commonjs/Icons/Recording/assets/recording@3x.png +0 -0
  68. package/lib/commonjs/Icons/Recording/index.js +34 -0
  69. package/lib/commonjs/Icons/Recording/index.js.map +1 -0
  70. package/lib/commonjs/Icons/RotateCamera/index.js +5 -1
  71. package/lib/commonjs/Icons/RotateCamera/index.js.map +1 -1
  72. package/lib/commonjs/Icons/ScreenShare/index.js +5 -1
  73. package/lib/commonjs/Icons/ScreenShare/index.js.map +1 -1
  74. package/lib/commonjs/Icons/Speaker/index.js +5 -1
  75. package/lib/commonjs/Icons/Speaker/index.js.map +1 -1
  76. package/lib/commonjs/Icons/Star/assets/star.png +0 -0
  77. package/lib/commonjs/Icons/Star/assets/star@2x.png +0 -0
  78. package/lib/commonjs/Icons/Star/assets/star@3x.png +0 -0
  79. package/lib/commonjs/Icons/Star/index.js +34 -0
  80. package/lib/commonjs/Icons/Star/index.js.map +1 -0
  81. package/lib/commonjs/Icons/Stop/assets/stop.png +0 -0
  82. package/lib/commonjs/Icons/Stop/assets/stop@2x.png +0 -0
  83. package/lib/commonjs/Icons/Stop/assets/stop@3x.png +0 -0
  84. package/lib/commonjs/Icons/Stop/index.js +34 -0
  85. package/lib/commonjs/Icons/Stop/index.js.map +1 -0
  86. package/lib/commonjs/Icons/ThreeDots/index.js +5 -1
  87. package/lib/commonjs/Icons/ThreeDots/index.js.map +1 -1
  88. package/lib/commonjs/Icons/Wave/index.js +5 -1
  89. package/lib/commonjs/Icons/Wave/index.js.map +1 -1
  90. package/lib/commonjs/Icons/index.js +110 -0
  91. package/lib/commonjs/Icons/index.js.map +1 -1
  92. package/lib/commonjs/components/AvatarView.js +1 -2
  93. package/lib/commonjs/components/AvatarView.js.map +1 -1
  94. package/lib/commonjs/components/BackButton.js +6 -4
  95. package/lib/commonjs/components/BackButton.js.map +1 -1
  96. package/lib/commonjs/components/BottomSheet.js +157 -0
  97. package/lib/commonjs/components/BottomSheet.js.map +1 -0
  98. package/lib/commonjs/components/ChangeNameModalContent.js +131 -0
  99. package/lib/commonjs/components/ChangeNameModalContent.js.map +1 -0
  100. package/lib/commonjs/components/CompanyLogo.js +38 -0
  101. package/lib/commonjs/components/CompanyLogo.js.map +1 -0
  102. package/lib/commonjs/components/CustomInput.js +2 -3
  103. package/lib/commonjs/components/CustomInput.js.map +1 -1
  104. package/lib/commonjs/components/DisplayView.js +12 -52
  105. package/lib/commonjs/components/DisplayView.js.map +1 -1
  106. package/lib/commonjs/components/EndRoomModalContent.js +85 -0
  107. package/lib/commonjs/components/EndRoomModalContent.js.map +1 -0
  108. package/lib/commonjs/components/Footer.js +8 -9
  109. package/lib/commonjs/components/Footer.js.map +1 -1
  110. package/lib/commonjs/components/GridView.js +53 -7
  111. package/lib/commonjs/components/GridView.js.map +1 -1
  112. package/lib/commonjs/components/HMSBaseButton.js +66 -0
  113. package/lib/commonjs/components/HMSBaseButton.js.map +1 -0
  114. package/lib/commonjs/components/HMSDangerButton.js +53 -0
  115. package/lib/commonjs/components/HMSDangerButton.js.map +1 -0
  116. package/lib/commonjs/components/HMSHLSStreamLoading.js +17 -8
  117. package/lib/commonjs/components/HMSHLSStreamLoading.js.map +1 -1
  118. package/lib/commonjs/components/HMSManageAudioOutput.js +41 -75
  119. package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -1
  120. package/lib/commonjs/components/HMSManageCameraRotation.js +5 -4
  121. package/lib/commonjs/components/HMSManageCameraRotation.js.map +1 -1
  122. package/lib/commonjs/components/HMSManageLeave.js +91 -106
  123. package/lib/commonjs/components/HMSManageLeave.js.map +1 -1
  124. package/lib/commonjs/components/HMSManageLocalAudio.js +1 -9
  125. package/lib/commonjs/components/HMSManageLocalAudio.js.map +1 -1
  126. package/lib/commonjs/components/HMSManageLocalVideo.js +1 -9
  127. package/lib/commonjs/components/HMSManageLocalVideo.js.map +1 -1
  128. package/lib/commonjs/components/HMSMeetingEnded.js +1 -2
  129. package/lib/commonjs/components/HMSMeetingEnded.js.map +1 -1
  130. package/lib/commonjs/components/HMSPreviewEditName.js +3 -37
  131. package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
  132. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +17 -10
  133. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
  134. package/lib/commonjs/components/HMSPreviewJoinButton.js +23 -46
  135. package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
  136. package/lib/commonjs/components/HMSPreviewNetworkQuality.js +5 -3
  137. package/lib/commonjs/components/HMSPreviewNetworkQuality.js.map +1 -1
  138. package/lib/commonjs/components/HMSPreviewPeersList.js +21 -10
  139. package/lib/commonjs/components/HMSPreviewPeersList.js.map +1 -1
  140. package/lib/commonjs/components/HMSPreviewSubtitle.js +22 -9
  141. package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
  142. package/lib/commonjs/components/HMSPreviewTile.js +16 -8
  143. package/lib/commonjs/components/HMSPreviewTile.js.map +1 -1
  144. package/lib/commonjs/components/HMSPreviewTitle.js +14 -6
  145. package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
  146. package/lib/commonjs/components/HMSPrimaryButton.js +53 -0
  147. package/lib/commonjs/components/HMSPrimaryButton.js.map +1 -0
  148. package/lib/commonjs/components/HMSRecordingIndicator.js +46 -0
  149. package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -0
  150. package/lib/commonjs/components/HMSRoomOptions.js +20 -7
  151. package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
  152. package/lib/commonjs/components/HMSShowNetworkQuality.js +5 -4
  153. package/lib/commonjs/components/HMSShowNetworkQuality.js.map +1 -1
  154. package/lib/commonjs/components/HMSTextInput.js +66 -0
  155. package/lib/commonjs/components/HMSTextInput.js.map +1 -0
  156. package/lib/commonjs/components/Header.js +30 -30
  157. package/lib/commonjs/components/Header.js.map +1 -1
  158. package/lib/commonjs/components/LocalPeerRegularVideoView.js +26 -0
  159. package/lib/commonjs/components/LocalPeerRegularVideoView.js.map +1 -0
  160. package/lib/commonjs/components/LocalPeerScreenshareView.js +76 -0
  161. package/lib/commonjs/components/LocalPeerScreenshareView.js.map +1 -0
  162. package/lib/commonjs/components/Meeting.js +7 -3
  163. package/lib/commonjs/components/Meeting.js.map +1 -1
  164. package/lib/commonjs/components/MiniView.js +163 -0
  165. package/lib/commonjs/components/MiniView.js.map +1 -0
  166. package/lib/commonjs/components/Modals.js +31 -116
  167. package/lib/commonjs/components/Modals.js.map +1 -1
  168. package/lib/commonjs/components/PaginationDots.js +56 -0
  169. package/lib/commonjs/components/PaginationDots.js.map +1 -0
  170. package/lib/commonjs/components/ParticipantsCount.js +55 -0
  171. package/lib/commonjs/components/ParticipantsCount.js.map +1 -0
  172. package/lib/commonjs/components/PeerMinimizedView.js +114 -0
  173. package/lib/commonjs/components/PeerMinimizedView.js.map +1 -0
  174. package/lib/commonjs/components/PeerSettingsModalContent.js +68 -51
  175. package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
  176. package/lib/commonjs/components/PeerVideoTile/AvatarView.js +76 -0
  177. package/lib/commonjs/components/PeerVideoTile/AvatarView.js.map +1 -0
  178. package/lib/commonjs/components/PeerVideoTile/PeerAudioMutedIndicator.js +44 -0
  179. package/lib/commonjs/components/PeerVideoTile/PeerAudioMutedIndicator.js.map +1 -0
  180. package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js +44 -0
  181. package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js.map +1 -0
  182. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +74 -0
  183. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -0
  184. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +146 -0
  185. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -0
  186. package/lib/commonjs/components/PeerVideoTile/VideoView.js +84 -0
  187. package/lib/commonjs/components/PeerVideoTile/VideoView.js.map +1 -0
  188. package/lib/commonjs/components/PeerVideoTile/index.js +2 -0
  189. package/lib/commonjs/components/PeerVideoTile/index.js.map +1 -0
  190. package/lib/commonjs/components/PressableIcon.js +15 -8
  191. package/lib/commonjs/components/PressableIcon.js.map +1 -1
  192. package/lib/commonjs/components/Preview.js +19 -6
  193. package/lib/commonjs/components/Preview.js.map +1 -1
  194. package/lib/commonjs/components/RoomSettingsModalContent.js +232 -362
  195. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  196. package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js +295 -0
  197. package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js.map +1 -0
  198. package/lib/commonjs/components/StopRecordingModalContent.js +97 -0
  199. package/lib/commonjs/components/StopRecordingModalContent.js.map +1 -0
  200. package/lib/commonjs/components/Tile.js +29 -90
  201. package/lib/commonjs/components/Tile.js.map +1 -1
  202. package/lib/commonjs/components/TilesContainer.js +99 -10
  203. package/lib/commonjs/components/TilesContainer.js.map +1 -1
  204. package/lib/commonjs/components/UnmountAfterDelay.js +48 -0
  205. package/lib/commonjs/components/UnmountAfterDelay.js.map +1 -0
  206. package/lib/commonjs/components/WebrtcView.js +51 -0
  207. package/lib/commonjs/components/WebrtcView.js.map +1 -0
  208. package/lib/commonjs/components/WelcomeInMeeting.js +54 -0
  209. package/lib/commonjs/components/WelcomeInMeeting.js.map +1 -0
  210. package/lib/commonjs/hooks-sdk-selectors.js +6 -1
  211. package/lib/commonjs/hooks-sdk-selectors.js.map +1 -1
  212. package/lib/commonjs/hooks-sdk.js +16 -1
  213. package/lib/commonjs/hooks-sdk.js.map +1 -1
  214. package/lib/commonjs/hooks-util-selectors.js +8 -2
  215. package/lib/commonjs/hooks-util-selectors.js.map +1 -1
  216. package/lib/commonjs/hooks-util.js +315 -93
  217. package/lib/commonjs/hooks-util.js.map +1 -1
  218. package/lib/commonjs/modules/HMSManager.js +23 -0
  219. package/lib/commonjs/modules/HMSManager.js.map +1 -0
  220. package/lib/commonjs/modules/parser.js +22 -0
  221. package/lib/commonjs/modules/parser.js.map +1 -0
  222. package/lib/commonjs/peerTrackNodeUtils.js +8 -3
  223. package/lib/commonjs/peerTrackNodeUtils.js.map +1 -1
  224. package/lib/commonjs/redux/actionTypes.js +16 -1
  225. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  226. package/lib/commonjs/redux/actions/index.js +51 -1
  227. package/lib/commonjs/redux/actions/index.js.map +1 -1
  228. package/lib/commonjs/redux/reducers/appState.js +57 -1
  229. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  230. package/lib/commonjs/redux/reducers/hmsStates.js +7 -1
  231. package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
  232. package/lib/commonjs/redux/reducers/userState.js +3 -1
  233. package/lib/commonjs/redux/reducers/userState.js.map +1 -1
  234. package/lib/commonjs/utils/functions.js +51 -1
  235. package/lib/commonjs/utils/functions.js.map +1 -1
  236. package/lib/commonjs/utils/theme.js +62 -8
  237. package/lib/commonjs/utils/theme.js.map +1 -1
  238. package/lib/commonjs/utils/types.js +8 -1
  239. package/lib/commonjs/utils/types.js.map +1 -1
  240. package/lib/module/HMSInstanceSetup.js +2 -1
  241. package/lib/module/HMSInstanceSetup.js.map +1 -1
  242. package/lib/module/HMSPrebuilt.js +4 -2
  243. package/lib/module/HMSPrebuilt.js.map +1 -1
  244. package/lib/module/HMSRoomSetup.js +41 -10
  245. package/lib/module/HMSRoomSetup.js.map +1 -1
  246. package/lib/module/Icons/AlertTriangle/assets/alert-triangle.png +0 -0
  247. package/lib/module/Icons/AlertTriangle/assets/alert-triangle@2x.png +0 -0
  248. package/lib/module/Icons/AlertTriangle/assets/alert-triangle@3x.png +0 -0
  249. package/lib/module/Icons/AlertTriangle/index.js +26 -0
  250. package/lib/module/Icons/AlertTriangle/index.js.map +1 -0
  251. package/lib/module/Icons/AnswerPhone/index.js +5 -1
  252. package/lib/module/Icons/AnswerPhone/index.js.map +1 -1
  253. package/lib/module/Icons/BRB/assets/BRB.png +0 -0
  254. package/lib/module/Icons/BRB/assets/BRB@2x.png +0 -0
  255. package/lib/module/Icons/BRB/assets/BRB@3x.png +0 -0
  256. package/lib/module/Icons/BRB/index.js +27 -0
  257. package/lib/module/Icons/BRB/index.js.map +1 -0
  258. package/lib/module/Icons/Bluetooth/index.js +5 -1
  259. package/lib/module/Icons/Bluetooth/index.js.map +1 -1
  260. package/lib/module/Icons/Camera/index.js +5 -1
  261. package/lib/module/Icons/Camera/index.js.map +1 -1
  262. package/lib/module/Icons/Chat/index.js +5 -1
  263. package/lib/module/Icons/Chat/index.js.map +1 -1
  264. package/lib/module/Icons/Check/index.js +5 -1
  265. package/lib/module/Icons/Check/index.js.map +1 -1
  266. package/lib/module/Icons/Chevron/index.js +5 -1
  267. package/lib/module/Icons/Chevron/index.js.map +1 -1
  268. package/lib/module/Icons/Close/index.js +5 -1
  269. package/lib/module/Icons/Close/index.js.map +1 -1
  270. package/lib/module/Icons/Hamburger/assets/hamburger.png +0 -0
  271. package/lib/module/Icons/Hamburger/assets/hamburger@2x.png +0 -0
  272. package/lib/module/Icons/Hamburger/assets/hamburger@3x.png +0 -0
  273. package/lib/module/Icons/Hamburger/index.js +26 -0
  274. package/lib/module/Icons/Hamburger/index.js.map +1 -0
  275. package/lib/module/Icons/Hand/index.js +6 -4
  276. package/lib/module/Icons/Hand/index.js.map +1 -1
  277. package/lib/module/Icons/Headphones/index.js +5 -1
  278. package/lib/module/Icons/Headphones/index.js.map +1 -1
  279. package/lib/module/Icons/Maximize/assets/maximize.png +0 -0
  280. package/lib/module/Icons/Maximize/assets/maximize@2x.png +0 -0
  281. package/lib/module/Icons/Maximize/assets/maximize@3x.png +0 -0
  282. package/lib/module/Icons/Maximize/index.js +26 -0
  283. package/lib/module/Icons/Maximize/index.js.map +1 -0
  284. package/lib/module/Icons/Mic/index.js +5 -1
  285. package/lib/module/Icons/Mic/index.js.map +1 -1
  286. package/lib/module/Icons/Minimize/assets/minimize.png +0 -0
  287. package/lib/module/Icons/Minimize/assets/minimize@2x.png +0 -0
  288. package/lib/module/Icons/Minimize/assets/minimize@3x.png +0 -0
  289. package/lib/module/Icons/Minimize/index.js +26 -0
  290. package/lib/module/Icons/Minimize/index.js.map +1 -0
  291. package/lib/module/Icons/Participants/index.js +5 -1
  292. package/lib/module/Icons/Participants/index.js.map +1 -1
  293. package/lib/module/Icons/Pencil/assets/pencil.png +0 -0
  294. package/lib/module/Icons/Pencil/assets/pencil@2x.png +0 -0
  295. package/lib/module/Icons/Pencil/assets/pencil@3x.png +0 -0
  296. package/lib/module/Icons/Pencil/index.js +26 -0
  297. package/lib/module/Icons/Pencil/index.js.map +1 -0
  298. package/lib/module/Icons/Pin/assets/pin.png +0 -0
  299. package/lib/module/Icons/Pin/assets/pin@2x.png +0 -0
  300. package/lib/module/Icons/Pin/assets/pin@3x.png +0 -0
  301. package/lib/module/Icons/Pin/index.js +26 -0
  302. package/lib/module/Icons/Pin/index.js.map +1 -0
  303. package/lib/module/Icons/Recording/assets/recording.png +0 -0
  304. package/lib/module/Icons/Recording/assets/recording@2x.png +0 -0
  305. package/lib/module/Icons/Recording/assets/recording@3x.png +0 -0
  306. package/lib/module/Icons/Recording/index.js +26 -0
  307. package/lib/module/Icons/Recording/index.js.map +1 -0
  308. package/lib/module/Icons/RotateCamera/index.js +5 -1
  309. package/lib/module/Icons/RotateCamera/index.js.map +1 -1
  310. package/lib/module/Icons/ScreenShare/index.js +5 -1
  311. package/lib/module/Icons/ScreenShare/index.js.map +1 -1
  312. package/lib/module/Icons/Speaker/index.js +5 -1
  313. package/lib/module/Icons/Speaker/index.js.map +1 -1
  314. package/lib/module/Icons/Star/assets/star.png +0 -0
  315. package/lib/module/Icons/Star/assets/star@2x.png +0 -0
  316. package/lib/module/Icons/Star/assets/star@3x.png +0 -0
  317. package/lib/module/Icons/Star/index.js +26 -0
  318. package/lib/module/Icons/Star/index.js.map +1 -0
  319. package/lib/module/Icons/Stop/assets/stop.png +0 -0
  320. package/lib/module/Icons/Stop/assets/stop@2x.png +0 -0
  321. package/lib/module/Icons/Stop/assets/stop@3x.png +0 -0
  322. package/lib/module/Icons/Stop/index.js +26 -0
  323. package/lib/module/Icons/Stop/index.js.map +1 -0
  324. package/lib/module/Icons/ThreeDots/index.js +5 -1
  325. package/lib/module/Icons/ThreeDots/index.js.map +1 -1
  326. package/lib/module/Icons/Wave/index.js +5 -1
  327. package/lib/module/Icons/Wave/index.js.map +1 -1
  328. package/lib/module/Icons/index.js +10 -0
  329. package/lib/module/Icons/index.js.map +1 -1
  330. package/lib/module/components/AvatarView.js +1 -2
  331. package/lib/module/components/AvatarView.js.map +1 -1
  332. package/lib/module/components/BackButton.js +6 -4
  333. package/lib/module/components/BackButton.js.map +1 -1
  334. package/lib/module/components/BottomSheet.js +146 -0
  335. package/lib/module/components/BottomSheet.js.map +1 -0
  336. package/lib/module/components/ChangeNameModalContent.js +122 -0
  337. package/lib/module/components/ChangeNameModalContent.js.map +1 -0
  338. package/lib/module/components/CompanyLogo.js +30 -0
  339. package/lib/module/components/CompanyLogo.js.map +1 -0
  340. package/lib/module/components/CustomInput.js +2 -3
  341. package/lib/module/components/CustomInput.js.map +1 -1
  342. package/lib/module/components/DisplayView.js +16 -55
  343. package/lib/module/components/DisplayView.js.map +1 -1
  344. package/lib/module/components/EndRoomModalContent.js +76 -0
  345. package/lib/module/components/EndRoomModalContent.js.map +1 -0
  346. package/lib/module/components/Footer.js +9 -10
  347. package/lib/module/components/Footer.js.map +1 -1
  348. package/lib/module/components/GridView.js +55 -10
  349. package/lib/module/components/GridView.js.map +1 -1
  350. package/lib/module/components/HMSBaseButton.js +57 -0
  351. package/lib/module/components/HMSBaseButton.js.map +1 -0
  352. package/lib/module/components/HMSDangerButton.js +44 -0
  353. package/lib/module/components/HMSDangerButton.js.map +1 -0
  354. package/lib/module/components/HMSHLSStreamLoading.js +17 -8
  355. package/lib/module/components/HMSHLSStreamLoading.js.map +1 -1
  356. package/lib/module/components/HMSManageAudioOutput.js +42 -77
  357. package/lib/module/components/HMSManageAudioOutput.js.map +1 -1
  358. package/lib/module/components/HMSManageCameraRotation.js +5 -4
  359. package/lib/module/components/HMSManageCameraRotation.js.map +1 -1
  360. package/lib/module/components/HMSManageLeave.js +94 -107
  361. package/lib/module/components/HMSManageLeave.js.map +1 -1
  362. package/lib/module/components/HMSManageLocalAudio.js +1 -9
  363. package/lib/module/components/HMSManageLocalAudio.js.map +1 -1
  364. package/lib/module/components/HMSManageLocalVideo.js +1 -9
  365. package/lib/module/components/HMSManageLocalVideo.js.map +1 -1
  366. package/lib/module/components/HMSMeetingEnded.js +1 -2
  367. package/lib/module/components/HMSMeetingEnded.js.map +1 -1
  368. package/lib/module/components/HMSPreviewEditName.js +3 -37
  369. package/lib/module/components/HMSPreviewEditName.js.map +1 -1
  370. package/lib/module/components/HMSPreviewHLSLiveIndicator.js +17 -10
  371. package/lib/module/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
  372. package/lib/module/components/HMSPreviewJoinButton.js +26 -49
  373. package/lib/module/components/HMSPreviewJoinButton.js.map +1 -1
  374. package/lib/module/components/HMSPreviewNetworkQuality.js +6 -4
  375. package/lib/module/components/HMSPreviewNetworkQuality.js.map +1 -1
  376. package/lib/module/components/HMSPreviewPeersList.js +21 -10
  377. package/lib/module/components/HMSPreviewPeersList.js.map +1 -1
  378. package/lib/module/components/HMSPreviewSubtitle.js +22 -9
  379. package/lib/module/components/HMSPreviewSubtitle.js.map +1 -1
  380. package/lib/module/components/HMSPreviewTile.js +16 -8
  381. package/lib/module/components/HMSPreviewTile.js.map +1 -1
  382. package/lib/module/components/HMSPreviewTitle.js +14 -6
  383. package/lib/module/components/HMSPreviewTitle.js.map +1 -1
  384. package/lib/module/components/HMSPrimaryButton.js +44 -0
  385. package/lib/module/components/HMSPrimaryButton.js.map +1 -0
  386. package/lib/module/components/HMSRecordingIndicator.js +37 -0
  387. package/lib/module/components/HMSRecordingIndicator.js.map +1 -0
  388. package/lib/module/components/HMSRoomOptions.js +21 -8
  389. package/lib/module/components/HMSRoomOptions.js.map +1 -1
  390. package/lib/module/components/HMSShowNetworkQuality.js +6 -5
  391. package/lib/module/components/HMSShowNetworkQuality.js.map +1 -1
  392. package/lib/module/components/HMSTextInput.js +57 -0
  393. package/lib/module/components/HMSTextInput.js.map +1 -0
  394. package/lib/module/components/Header.js +32 -32
  395. package/lib/module/components/Header.js.map +1 -1
  396. package/lib/module/components/LocalPeerRegularVideoView.js +17 -0
  397. package/lib/module/components/LocalPeerRegularVideoView.js.map +1 -0
  398. package/lib/module/components/LocalPeerScreenshareView.js +66 -0
  399. package/lib/module/components/LocalPeerScreenshareView.js.map +1 -0
  400. package/lib/module/components/Meeting.js +8 -4
  401. package/lib/module/components/Meeting.js.map +1 -1
  402. package/lib/module/components/MiniView.js +154 -0
  403. package/lib/module/components/MiniView.js.map +1 -0
  404. package/lib/module/components/Modals.js +31 -114
  405. package/lib/module/components/Modals.js.map +1 -1
  406. package/lib/module/components/PaginationDots.js +47 -0
  407. package/lib/module/components/PaginationDots.js.map +1 -0
  408. package/lib/module/components/ParticipantsCount.js +46 -0
  409. package/lib/module/components/ParticipantsCount.js.map +1 -0
  410. package/lib/module/components/PeerMinimizedView.js +104 -0
  411. package/lib/module/components/PeerMinimizedView.js.map +1 -0
  412. package/lib/module/components/PeerSettingsModalContent.js +71 -54
  413. package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
  414. package/lib/module/components/PeerVideoTile/AvatarView.js +66 -0
  415. package/lib/module/components/PeerVideoTile/AvatarView.js.map +1 -0
  416. package/lib/module/components/PeerVideoTile/PeerAudioMutedIndicator.js +35 -0
  417. package/lib/module/components/PeerVideoTile/PeerAudioMutedIndicator.js.map +1 -0
  418. package/lib/module/components/PeerVideoTile/PeerMetadata.js +35 -0
  419. package/lib/module/components/PeerVideoTile/PeerMetadata.js.map +1 -0
  420. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +65 -0
  421. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -0
  422. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +136 -0
  423. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -0
  424. package/lib/module/components/PeerVideoTile/VideoView.js +75 -0
  425. package/lib/module/components/PeerVideoTile/VideoView.js.map +1 -0
  426. package/lib/module/components/PeerVideoTile/index.js +2 -0
  427. package/lib/module/components/PeerVideoTile/index.js.map +1 -0
  428. package/lib/module/components/PressableIcon.js +15 -8
  429. package/lib/module/components/PressableIcon.js.map +1 -1
  430. package/lib/module/components/Preview.js +19 -6
  431. package/lib/module/components/Preview.js.map +1 -1
  432. package/lib/module/components/RoomSettingsModalContent.js +233 -364
  433. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  434. package/lib/module/components/RoomSettingsModalDebugModeContent.js +287 -0
  435. package/lib/module/components/RoomSettingsModalDebugModeContent.js.map +1 -0
  436. package/lib/module/components/StopRecordingModalContent.js +88 -0
  437. package/lib/module/components/StopRecordingModalContent.js.map +1 -0
  438. package/lib/module/components/Tile.js +30 -91
  439. package/lib/module/components/Tile.js.map +1 -1
  440. package/lib/module/components/TilesContainer.js +100 -10
  441. package/lib/module/components/TilesContainer.js.map +1 -1
  442. package/lib/module/components/UnmountAfterDelay.js +39 -0
  443. package/lib/module/components/UnmountAfterDelay.js.map +1 -0
  444. package/lib/module/components/WebrtcView.js +41 -0
  445. package/lib/module/components/WebrtcView.js.map +1 -0
  446. package/lib/module/components/WelcomeInMeeting.js +45 -0
  447. package/lib/module/components/WelcomeInMeeting.js.map +1 -0
  448. package/lib/module/hooks-sdk-selectors.js +4 -0
  449. package/lib/module/hooks-sdk-selectors.js.map +1 -1
  450. package/lib/module/hooks-sdk.js +16 -1
  451. package/lib/module/hooks-sdk.js.map +1 -1
  452. package/lib/module/hooks-util-selectors.js +8 -2
  453. package/lib/module/hooks-util-selectors.js.map +1 -1
  454. package/lib/module/hooks-util.js +310 -96
  455. package/lib/module/hooks-util.js.map +1 -1
  456. package/lib/module/modules/HMSManager.js +17 -0
  457. package/lib/module/modules/HMSManager.js.map +1 -0
  458. package/lib/module/modules/parser.js +16 -0
  459. package/lib/module/modules/parser.js.map +1 -0
  460. package/lib/module/peerTrackNodeUtils.js +6 -2
  461. package/lib/module/peerTrackNodeUtils.js.map +1 -1
  462. package/lib/module/redux/actionTypes.js +16 -1
  463. package/lib/module/redux/actionTypes.js.map +1 -1
  464. package/lib/module/redux/actions/index.js +42 -0
  465. package/lib/module/redux/actions/index.js.map +1 -1
  466. package/lib/module/redux/reducers/appState.js +57 -1
  467. package/lib/module/redux/reducers/appState.js.map +1 -1
  468. package/lib/module/redux/reducers/hmsStates.js +7 -1
  469. package/lib/module/redux/reducers/hmsStates.js.map +1 -1
  470. package/lib/module/redux/reducers/userState.js +3 -1
  471. package/lib/module/redux/reducers/userState.js.map +1 -1
  472. package/lib/module/utils/functions.js +47 -0
  473. package/lib/module/utils/functions.js.map +1 -1
  474. package/lib/module/utils/theme.js +57 -5
  475. package/lib/module/utils/theme.js.map +1 -1
  476. package/lib/module/utils/types.js +6 -0
  477. package/lib/module/utils/types.js.map +1 -1
  478. package/lib/typescript/HMSInstanceSetup.d.ts.map +1 -1
  479. package/lib/typescript/HMSPrebuilt.d.ts +1 -0
  480. package/lib/typescript/HMSPrebuilt.d.ts.map +1 -1
  481. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  482. package/lib/typescript/Icons/AlertTriangle/index.d.ts +7 -0
  483. package/lib/typescript/Icons/AlertTriangle/index.d.ts.map +1 -0
  484. package/lib/typescript/Icons/AnswerPhone/index.d.ts.map +1 -1
  485. package/lib/typescript/Icons/BRB/index.d.ts +7 -0
  486. package/lib/typescript/Icons/BRB/index.d.ts.map +1 -0
  487. package/lib/typescript/Icons/Bluetooth/index.d.ts.map +1 -1
  488. package/lib/typescript/Icons/Camera/index.d.ts.map +1 -1
  489. package/lib/typescript/Icons/Chat/index.d.ts.map +1 -1
  490. package/lib/typescript/Icons/Check/index.d.ts.map +1 -1
  491. package/lib/typescript/Icons/Chevron/index.d.ts.map +1 -1
  492. package/lib/typescript/Icons/Close/index.d.ts.map +1 -1
  493. package/lib/typescript/Icons/Hamburger/index.d.ts +7 -0
  494. package/lib/typescript/Icons/Hamburger/index.d.ts.map +1 -0
  495. package/lib/typescript/Icons/Hand/index.d.ts.map +1 -1
  496. package/lib/typescript/Icons/Headphones/index.d.ts.map +1 -1
  497. package/lib/typescript/Icons/Maximize/index.d.ts +7 -0
  498. package/lib/typescript/Icons/Maximize/index.d.ts.map +1 -0
  499. package/lib/typescript/Icons/Mic/index.d.ts.map +1 -1
  500. package/lib/typescript/Icons/Minimize/index.d.ts +7 -0
  501. package/lib/typescript/Icons/Minimize/index.d.ts.map +1 -0
  502. package/lib/typescript/Icons/Participants/index.d.ts.map +1 -1
  503. package/lib/typescript/Icons/Pencil/index.d.ts +7 -0
  504. package/lib/typescript/Icons/Pencil/index.d.ts.map +1 -0
  505. package/lib/typescript/Icons/Pin/index.d.ts +7 -0
  506. package/lib/typescript/Icons/Pin/index.d.ts.map +1 -0
  507. package/lib/typescript/Icons/Recording/index.d.ts +7 -0
  508. package/lib/typescript/Icons/Recording/index.d.ts.map +1 -0
  509. package/lib/typescript/Icons/RotateCamera/index.d.ts.map +1 -1
  510. package/lib/typescript/Icons/ScreenShare/index.d.ts.map +1 -1
  511. package/lib/typescript/Icons/Speaker/index.d.ts.map +1 -1
  512. package/lib/typescript/Icons/Star/index.d.ts +7 -0
  513. package/lib/typescript/Icons/Star/index.d.ts.map +1 -0
  514. package/lib/typescript/Icons/Stop/index.d.ts +7 -0
  515. package/lib/typescript/Icons/Stop/index.d.ts.map +1 -0
  516. package/lib/typescript/Icons/ThreeDots/index.d.ts.map +1 -1
  517. package/lib/typescript/Icons/Wave/index.d.ts.map +1 -1
  518. package/lib/typescript/Icons/index.d.ts +10 -0
  519. package/lib/typescript/Icons/index.d.ts.map +1 -1
  520. package/lib/typescript/components/BackButton.d.ts.map +1 -1
  521. package/lib/typescript/components/BottomSheet.d.ts +25 -0
  522. package/lib/typescript/components/BottomSheet.d.ts.map +1 -0
  523. package/lib/typescript/components/ChangeNameModalContent.d.ts +6 -0
  524. package/lib/typescript/components/ChangeNameModalContent.d.ts.map +1 -0
  525. package/lib/typescript/components/CompanyLogo.d.ts +7 -0
  526. package/lib/typescript/components/CompanyLogo.d.ts.map +1 -0
  527. package/lib/typescript/components/CustomInput.d.ts +1 -1
  528. package/lib/typescript/components/CustomInput.d.ts.map +1 -1
  529. package/lib/typescript/components/DisplayView.d.ts.map +1 -1
  530. package/lib/typescript/components/EndRoomModalContent.d.ts +6 -0
  531. package/lib/typescript/components/EndRoomModalContent.d.ts.map +1 -0
  532. package/lib/typescript/components/Footer.d.ts.map +1 -1
  533. package/lib/typescript/components/GridView.d.ts +3 -4
  534. package/lib/typescript/components/GridView.d.ts.map +1 -1
  535. package/lib/typescript/components/HMSBaseButton.d.ts +15 -0
  536. package/lib/typescript/components/HMSBaseButton.d.ts.map +1 -0
  537. package/lib/typescript/components/HMSDangerButton.d.ts +12 -0
  538. package/lib/typescript/components/HMSDangerButton.d.ts.map +1 -0
  539. package/lib/typescript/components/HMSHLSStreamLoading.d.ts.map +1 -1
  540. package/lib/typescript/components/HMSManageAudioOutput.d.ts.map +1 -1
  541. package/lib/typescript/components/HMSManageLeave.d.ts.map +1 -1
  542. package/lib/typescript/components/HMSManageLocalAudio.d.ts.map +1 -1
  543. package/lib/typescript/components/HMSManageLocalVideo.d.ts.map +1 -1
  544. package/lib/typescript/components/HMSPreviewEditName.d.ts.map +1 -1
  545. package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts.map +1 -1
  546. package/lib/typescript/components/HMSPreviewJoinButton.d.ts.map +1 -1
  547. package/lib/typescript/components/HMSPreviewNetworkQuality.d.ts.map +1 -1
  548. package/lib/typescript/components/HMSPreviewPeersList.d.ts.map +1 -1
  549. package/lib/typescript/components/HMSPreviewSubtitle.d.ts.map +1 -1
  550. package/lib/typescript/components/HMSPreviewTile.d.ts.map +1 -1
  551. package/lib/typescript/components/HMSPreviewTitle.d.ts.map +1 -1
  552. package/lib/typescript/components/HMSPrimaryButton.d.ts +12 -0
  553. package/lib/typescript/components/HMSPrimaryButton.d.ts.map +1 -0
  554. package/lib/typescript/components/HMSRecordingIndicator.d.ts +3 -0
  555. package/lib/typescript/components/HMSRecordingIndicator.d.ts.map +1 -0
  556. package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
  557. package/lib/typescript/components/HMSShowNetworkQuality.d.ts.map +1 -1
  558. package/lib/typescript/components/HMSTextInput.d.ts +10 -0
  559. package/lib/typescript/components/HMSTextInput.d.ts.map +1 -0
  560. package/lib/typescript/components/Header.d.ts.map +1 -1
  561. package/lib/typescript/components/LocalPeerRegularVideoView.d.ts +6 -0
  562. package/lib/typescript/components/LocalPeerRegularVideoView.d.ts.map +1 -0
  563. package/lib/typescript/components/LocalPeerScreenshareView.d.ts +3 -0
  564. package/lib/typescript/components/LocalPeerScreenshareView.d.ts.map +1 -0
  565. package/lib/typescript/components/Meeting.d.ts.map +1 -1
  566. package/lib/typescript/components/MiniView.d.ts +9 -0
  567. package/lib/typescript/components/MiniView.d.ts.map +1 -0
  568. package/lib/typescript/components/Modals.d.ts +0 -7
  569. package/lib/typescript/components/Modals.d.ts.map +1 -1
  570. package/lib/typescript/components/PaginationDots.d.ts +6 -0
  571. package/lib/typescript/components/PaginationDots.d.ts.map +1 -0
  572. package/lib/typescript/components/ParticipantsCount.d.ts +3 -0
  573. package/lib/typescript/components/ParticipantsCount.d.ts.map +1 -0
  574. package/lib/typescript/components/PeerMinimizedView.d.ts +12 -0
  575. package/lib/typescript/components/PeerMinimizedView.d.ts.map +1 -0
  576. package/lib/typescript/components/PeerSettingsModalContent.d.ts +1 -0
  577. package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
  578. package/lib/typescript/components/PeerVideoTile/AvatarView.d.ts +9 -0
  579. package/lib/typescript/components/PeerVideoTile/AvatarView.d.ts.map +1 -0
  580. package/lib/typescript/components/PeerVideoTile/PeerAudioMutedIndicator.d.ts +6 -0
  581. package/lib/typescript/components/PeerVideoTile/PeerAudioMutedIndicator.d.ts.map +1 -0
  582. package/lib/typescript/components/PeerVideoTile/PeerMetadata.d.ts +6 -0
  583. package/lib/typescript/components/PeerVideoTile/PeerMetadata.d.ts.map +1 -0
  584. package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts +10 -0
  585. package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts.map +1 -0
  586. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts +10 -0
  587. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -0
  588. package/lib/typescript/components/PeerVideoTile/VideoView.d.ts +13 -0
  589. package/lib/typescript/components/PeerVideoTile/VideoView.d.ts.map +1 -0
  590. package/lib/typescript/components/PeerVideoTile/index.d.ts +1 -0
  591. package/lib/typescript/components/PeerVideoTile/index.d.ts.map +1 -0
  592. package/lib/typescript/components/PressableIcon.d.ts.map +1 -1
  593. package/lib/typescript/components/Preview.d.ts.map +1 -1
  594. package/lib/typescript/components/RoomSettingsModalContent.d.ts +2 -2
  595. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  596. package/lib/typescript/components/RoomSettingsModalDebugModeContent.d.ts +17 -0
  597. package/lib/typescript/components/RoomSettingsModalDebugModeContent.d.ts.map +1 -0
  598. package/lib/typescript/components/StopRecordingModalContent.d.ts +6 -0
  599. package/lib/typescript/components/StopRecordingModalContent.d.ts.map +1 -0
  600. package/lib/typescript/components/Tile.d.ts +12 -3
  601. package/lib/typescript/components/Tile.d.ts.map +1 -1
  602. package/lib/typescript/components/TilesContainer.d.ts.map +1 -1
  603. package/lib/typescript/components/UnmountAfterDelay.d.ts +12 -0
  604. package/lib/typescript/components/UnmountAfterDelay.d.ts.map +1 -0
  605. package/lib/typescript/components/WebrtcView.d.ts +10 -0
  606. package/lib/typescript/components/WebrtcView.d.ts.map +1 -0
  607. package/lib/typescript/components/WelcomeInMeeting.d.ts +5 -0
  608. package/lib/typescript/components/WelcomeInMeeting.d.ts.map +1 -0
  609. package/lib/typescript/hooks-sdk-selectors.d.ts +2 -0
  610. package/lib/typescript/hooks-sdk-selectors.d.ts.map +1 -1
  611. package/lib/typescript/hooks-sdk.d.ts +1 -0
  612. package/lib/typescript/hooks-sdk.d.ts.map +1 -1
  613. package/lib/typescript/hooks-util-selectors.d.ts.map +1 -1
  614. package/lib/typescript/hooks-util.d.ts +15 -2
  615. package/lib/typescript/hooks-util.d.ts.map +1 -1
  616. package/lib/typescript/modules/HMSManager.d.ts +4 -0
  617. package/lib/typescript/modules/HMSManager.d.ts.map +1 -0
  618. package/lib/typescript/modules/parser.d.ts +3 -0
  619. package/lib/typescript/modules/parser.d.ts.map +1 -0
  620. package/lib/typescript/peerTrackNodeUtils.d.ts +1 -0
  621. package/lib/typescript/peerTrackNodeUtils.d.ts.map +1 -1
  622. package/lib/typescript/redux/actionTypes.d.ts +9 -1
  623. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  624. package/lib/typescript/redux/actions/index.d.ts +45 -0
  625. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  626. package/lib/typescript/redux/index.d.ts +7 -0
  627. package/lib/typescript/redux/index.d.ts.map +1 -1
  628. package/lib/typescript/redux/reducers/appState.d.ts +5 -0
  629. package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
  630. package/lib/typescript/redux/reducers/hmsStates.d.ts +7 -1
  631. package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
  632. package/lib/typescript/redux/reducers/index.d.ts +7 -0
  633. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  634. package/lib/typescript/redux/reducers/userState.d.ts +1 -0
  635. package/lib/typescript/redux/reducers/userState.d.ts.map +1 -1
  636. package/lib/typescript/utils/functions.d.ts +14 -0
  637. package/lib/typescript/utils/functions.d.ts.map +1 -1
  638. package/lib/typescript/utils/theme.d.ts +6 -3
  639. package/lib/typescript/utils/theme.d.ts.map +1 -1
  640. package/lib/typescript/utils/types.d.ts +5 -0
  641. package/lib/typescript/utils/types.d.ts.map +1 -1
  642. package/package.json +3 -1
  643. package/src/HMSInstanceSetup.tsx +1 -0
  644. package/src/HMSPrebuilt.tsx +3 -2
  645. package/src/HMSRoomSetup.tsx +45 -8
  646. package/src/Icons/AlertTriangle/assets/alert-triangle.png +0 -0
  647. package/src/Icons/AlertTriangle/assets/alert-triangle@2x.png +0 -0
  648. package/src/Icons/AlertTriangle/assets/alert-triangle@3x.png +0 -0
  649. package/src/Icons/AlertTriangle/index.tsx +33 -0
  650. package/src/Icons/AnswerPhone/index.tsx +7 -1
  651. package/src/Icons/BRB/assets/BRB.png +0 -0
  652. package/src/Icons/BRB/assets/BRB@2x.png +0 -0
  653. package/src/Icons/BRB/assets/BRB@3x.png +0 -0
  654. package/src/Icons/BRB/index.tsx +31 -0
  655. package/src/Icons/Bluetooth/index.tsx +7 -1
  656. package/src/Icons/Camera/index.tsx +7 -1
  657. package/src/Icons/Chat/index.tsx +7 -1
  658. package/src/Icons/Check/index.tsx +7 -1
  659. package/src/Icons/Chevron/index.tsx +7 -1
  660. package/src/Icons/Close/index.tsx +7 -1
  661. package/src/Icons/Hamburger/assets/hamburger.png +0 -0
  662. package/src/Icons/Hamburger/assets/hamburger@2x.png +0 -0
  663. package/src/Icons/Hamburger/assets/hamburger@3x.png +0 -0
  664. package/src/Icons/Hamburger/index.tsx +33 -0
  665. package/src/Icons/Hand/index.tsx +6 -3
  666. package/src/Icons/Headphones/index.tsx +7 -1
  667. package/src/Icons/Maximize/assets/maximize.png +0 -0
  668. package/src/Icons/Maximize/assets/maximize@2x.png +0 -0
  669. package/src/Icons/Maximize/assets/maximize@3x.png +0 -0
  670. package/src/Icons/Maximize/index.tsx +33 -0
  671. package/src/Icons/Mic/index.tsx +7 -1
  672. package/src/Icons/Minimize/assets/minimize.png +0 -0
  673. package/src/Icons/Minimize/assets/minimize@2x.png +0 -0
  674. package/src/Icons/Minimize/assets/minimize@3x.png +0 -0
  675. package/src/Icons/Minimize/index.tsx +33 -0
  676. package/src/Icons/Participants/index.tsx +7 -1
  677. package/src/Icons/Pencil/assets/pencil.png +0 -0
  678. package/src/Icons/Pencil/assets/pencil@2x.png +0 -0
  679. package/src/Icons/Pencil/assets/pencil@3x.png +0 -0
  680. package/src/Icons/Pencil/index.tsx +33 -0
  681. package/src/Icons/Pin/assets/pin.png +0 -0
  682. package/src/Icons/Pin/assets/pin@2x.png +0 -0
  683. package/src/Icons/Pin/assets/pin@3x.png +0 -0
  684. package/src/Icons/Pin/index.tsx +30 -0
  685. package/src/Icons/Recording/assets/recording.png +0 -0
  686. package/src/Icons/Recording/assets/recording@2x.png +0 -0
  687. package/src/Icons/Recording/assets/recording@3x.png +0 -0
  688. package/src/Icons/Recording/index.tsx +33 -0
  689. package/src/Icons/RotateCamera/index.tsx +7 -1
  690. package/src/Icons/ScreenShare/index.tsx +7 -1
  691. package/src/Icons/Speaker/index.tsx +12 -1
  692. package/src/Icons/Star/assets/star.png +0 -0
  693. package/src/Icons/Star/assets/star@2x.png +0 -0
  694. package/src/Icons/Star/assets/star@3x.png +0 -0
  695. package/src/Icons/Star/index.tsx +30 -0
  696. package/src/Icons/Stop/assets/stop.png +0 -0
  697. package/src/Icons/Stop/assets/stop@2x.png +0 -0
  698. package/src/Icons/Stop/assets/stop@3x.png +0 -0
  699. package/src/Icons/Stop/index.tsx +33 -0
  700. package/src/Icons/ThreeDots/index.tsx +7 -1
  701. package/src/Icons/Wave/index.tsx +7 -1
  702. package/src/Icons/index.ts +10 -0
  703. package/src/components/AvatarView.tsx +1 -2
  704. package/src/components/BackButton.tsx +6 -3
  705. package/src/components/BottomSheet.tsx +191 -0
  706. package/src/components/ChangeNameModalContent.tsx +157 -0
  707. package/src/components/CompanyLogo.tsx +35 -0
  708. package/src/components/CustomInput.tsx +2 -3
  709. package/src/components/DisplayView.tsx +16 -65
  710. package/src/components/EndRoomModalContent.tsx +90 -0
  711. package/src/components/Footer.tsx +7 -7
  712. package/src/components/GridView.tsx +91 -20
  713. package/src/components/HLSView.tsx +1 -1
  714. package/src/components/HMSBaseButton.tsx +91 -0
  715. package/src/components/HMSDangerButton.tsx +65 -0
  716. package/src/components/HMSHLSStreamLoading.tsx +18 -7
  717. package/src/components/HMSManageAudioOutput.tsx +59 -90
  718. package/src/components/HMSManageCameraRotation.tsx +11 -8
  719. package/src/components/HMSManageLeave.tsx +104 -109
  720. package/src/components/HMSManageLocalAudio.tsx +1 -10
  721. package/src/components/HMSManageLocalVideo.tsx +1 -10
  722. package/src/components/HMSMeetingEnded.tsx +1 -2
  723. package/src/components/HMSPreviewEditName.tsx +2 -44
  724. package/src/components/HMSPreviewHLSLiveIndicator.tsx +17 -9
  725. package/src/components/HMSPreviewJoinButton.tsx +33 -71
  726. package/src/components/HMSPreviewNetworkQuality.tsx +7 -4
  727. package/src/components/HMSPreviewPeersList.tsx +23 -13
  728. package/src/components/HMSPreviewSubtitle.tsx +27 -11
  729. package/src/components/HMSPreviewTile.tsx +19 -8
  730. package/src/components/HMSPreviewTitle.tsx +18 -5
  731. package/src/components/HMSPrimaryButton.tsx +63 -0
  732. package/src/components/HMSRecordingIndicator.tsx +37 -0
  733. package/src/components/HMSRoomOptions.tsx +28 -8
  734. package/src/components/HMSShowNetworkQuality.tsx +7 -5
  735. package/src/components/HMSTextInput.tsx +78 -0
  736. package/src/components/Header.tsx +37 -36
  737. package/src/components/LocalPeerRegularVideoView.tsx +28 -0
  738. package/src/components/LocalPeerScreenshareView.tsx +72 -0
  739. package/src/components/Meeting.tsx +10 -3
  740. package/src/components/MiniView.tsx +213 -0
  741. package/src/components/Modals.tsx +1 -110
  742. package/src/components/PaginationDots.tsx +65 -0
  743. package/src/components/ParticipantsCount.tsx +52 -0
  744. package/src/components/PeerMinimizedView.tsx +131 -0
  745. package/src/components/PeerSettingsModalContent.tsx +110 -54
  746. package/src/components/PeerVideoTile/AvatarView.tsx +79 -0
  747. package/src/components/PeerVideoTile/PeerAudioMutedIndicator.tsx +41 -0
  748. package/src/components/PeerVideoTile/PeerMetadata.tsx +46 -0
  749. package/src/components/PeerVideoTile/PeerNameAndNetwork.tsx +81 -0
  750. package/src/components/PeerVideoTile/PeerVideoTileView.tsx +180 -0
  751. package/src/components/PeerVideoTile/VideoView.tsx +104 -0
  752. package/src/components/PeerVideoTile/index.ts +0 -0
  753. package/src/components/PressableIcon.tsx +15 -8
  754. package/src/components/Preview.tsx +24 -6
  755. package/src/components/RoomSettingsModalContent.tsx +236 -524
  756. package/src/components/RoomSettingsModalDebugModeContent.tsx +446 -0
  757. package/src/components/StopRecordingModalContent.tsx +109 -0
  758. package/src/components/Tile.tsx +49 -90
  759. package/src/components/TilesContainer.tsx +116 -14
  760. package/src/components/UnmountAfterDelay.tsx +61 -0
  761. package/src/components/WebrtcView.tsx +72 -0
  762. package/src/components/WelcomeInMeeting.tsx +52 -0
  763. package/src/hooks-sdk-selectors.tsx +7 -0
  764. package/src/hooks-sdk.ts +18 -0
  765. package/src/hooks-util-selectors.tsx +12 -1
  766. package/src/hooks-util.ts +420 -115
  767. package/src/modules/HMSManager.ts +25 -0
  768. package/src/modules/parser.ts +22 -0
  769. package/src/peerTrackNodeUtils.tsx +13 -10
  770. package/src/redux/actionTypes.ts +22 -0
  771. package/src/redux/actions/index.ts +51 -0
  772. package/src/redux/reducers/appState.ts +56 -0
  773. package/src/redux/reducers/hmsStates.ts +15 -1
  774. package/src/redux/reducers/userState.ts +3 -0
  775. package/src/utils/functions.ts +48 -0
  776. package/src/utils/theme.ts +74 -5
  777. package/src/utils/types.ts +6 -0
package/src/hooks-util.ts CHANGED
@@ -21,7 +21,13 @@ 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
32
  import {
27
33
  useRef,
@@ -31,30 +37,42 @@ import {
31
37
  useMemo,
32
38
  useContext,
33
39
  } from 'react';
40
+ import type { DependencyList } from 'react';
34
41
 
35
- import { ModalTypes, PipModes } from './utils/types';
42
+ import { MaxTilesInOnePage, ModalTypes, PipModes } from './utils/types';
36
43
  import type { PeerTrackNode } from './utils/types';
37
44
  import { createPeerTrackNode, parseMetadata } from './utils/functions';
38
- import { batch, useDispatch, useSelector, useStore } from 'react-redux';
45
+ import {
46
+ batch,
47
+ shallowEqual,
48
+ useDispatch,
49
+ useSelector,
50
+ useStore,
51
+ } from 'react-redux';
39
52
  import type { RootState } from './redux';
40
53
  import {
41
54
  addMessage,
42
55
  addPinnedMessage,
43
- addToPreviewPeersList,
44
56
  changeMeetingState,
45
57
  changePipModeStatus,
46
58
  changeStartingHLSStream,
47
59
  clearStore,
48
- removeFromPreviewPeersList,
49
60
  saveUserData,
50
61
  setHMSLocalPeerState,
51
62
  setHMSRoleState,
52
63
  setHMSRoomState,
53
64
  setIsLocalAudioMutedState,
54
65
  setIsLocalVideoMutedState,
66
+ setLayoutConfig,
67
+ setLocalPeerTrackNode,
68
+ setMiniViewPeerTrackNode,
55
69
  setModalType,
70
+ setStartingOrStoppingRecording,
71
+ updateLocalPeerTrackNode,
72
+ updateMiniViewPeerTrackNode,
56
73
  } from './redux/actions';
57
74
  import {
75
+ createPeerTrackNodeUniqueId,
58
76
  degradeOrRestorePeerTrackNodes,
59
77
  peerTrackNodeExistForPeer,
60
78
  peerTrackNodeExistForPeerAndTrack,
@@ -70,6 +88,7 @@ import {
70
88
  LayoutAnimation,
71
89
  Platform,
72
90
  } from 'react-native';
91
+ import type { ImageStyle, StyleProp, ViewStyle, TextStyle } from 'react-native';
73
92
  import { NavigationContext } from '@react-navigation/native';
74
93
  import {
75
94
  useIsLandscapeOrientation,
@@ -80,6 +99,9 @@ import {
80
99
  useSafeAreaInsets,
81
100
  } from 'react-native-safe-area-context';
82
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';
83
105
 
84
106
  export const useHMSListeners = (
85
107
  setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
@@ -96,7 +118,7 @@ export const useHMSListeners = (
96
118
 
97
119
  const useHMSRoomUpdate = (hmsInstance: HMSSDK) => {
98
120
  const dispatch = useDispatch();
99
- const reduxStore = useStore();
121
+ const reduxStore = useStore<RootState>();
100
122
 
101
123
  useEffect(() => {
102
124
  const roomUpdateHandler = (data: {
@@ -112,8 +134,7 @@ const useHMSRoomUpdate = (hmsInstance: HMSSDK) => {
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
- const meetingState = (reduxStore.getState() as RootState).app
116
- .meetingState;
137
+ const meetingState = reduxStore.getState().app.meetingState;
117
138
 
118
139
  batch(() => {
119
140
  dispatch(setHMSLocalPeerState(room.localPeer));
@@ -124,6 +145,12 @@ const useHMSRoomUpdate = (hmsInstance: HMSSDK) => {
124
145
  }
125
146
 
126
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
+
127
154
  let streaming = room?.browserRecordingState?.running;
128
155
  const startAtDate = room?.browserRecordingState?.startedAt;
129
156
 
@@ -221,20 +248,22 @@ const useHMSPeersUpdate = (
221
248
  setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
222
249
  ) => {
223
250
  const dispatch = useDispatch();
224
- const inMeeting = useSelector(
225
- (state: RootState) => state.app.meetingState === MeetingState.IN_MEETING
226
- );
251
+ const store = useStore<RootState>();
252
+ // const inMeeting = useSelector(
253
+ // (state: RootState) => state.app.meetingState === MeetingState.IN_MEETING
254
+ // );
227
255
 
228
256
  useEffect(() => {
229
257
  const peerUpdateHandler = ({ peer, type }: PeerUpdate) => {
230
258
  // Handle State from Preview screen
231
- if (!inMeeting) {
232
- if (type === HMSPeerUpdate.PEER_JOINED) {
233
- dispatch(addToPreviewPeersList(peer));
234
- } else if (type === HMSPeerUpdate.PEER_LEFT) {
235
- dispatch(removeFromPreviewPeersList(peer));
236
- }
237
- }
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
+ // }
238
267
 
239
268
  // Handle State for Meeting screen
240
269
  if (type === HMSPeerUpdate.PEER_JOINED) {
@@ -254,6 +283,28 @@ const useHMSPeersUpdate = (
254
283
  return prevPeerTrackNodes;
255
284
  });
256
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
+
257
308
  // - TODO: update local localPeer state
258
309
  // - Pass this updated data to Meeting component -> DisplayView component
259
310
  updateLocalPeer();
@@ -297,7 +348,7 @@ const useHMSPeersUpdate = (
297
348
  return () => {
298
349
  hmsInstance.removeEventListener(HMSUpdateListenerActions.ON_PEER_UPDATE);
299
350
  };
300
- }, [inMeeting, hmsInstance]); // TODO: When `inMeeting` becomes true Peer Update is resubscribed, we might lose some events during that time
351
+ }, [hmsInstance]);
301
352
  };
302
353
 
303
354
  type TrackUpdate = {
@@ -312,10 +363,22 @@ const useHMSTrackUpdate = (
312
363
  setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
313
364
  ) => {
314
365
  const dispatch = useDispatch();
366
+ const store = useStore<RootState>();
315
367
 
316
368
  useEffect(() => {
317
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
+
318
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
+
319
382
  setPeerTrackNodes((prevPeerTrackNodes) => {
320
383
  if (
321
384
  peerTrackNodeExistForPeerAndTrack(prevPeerTrackNodes, peer, track)
@@ -329,14 +392,65 @@ const useHMSTrackUpdate = (
329
392
  }
330
393
  return replacePeerTrackNodes(prevPeerTrackNodes, peer);
331
394
  }
332
- const newPeerTrackNode = createPeerTrackNode(peer, track);
333
- 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;
334
405
  });
335
406
 
336
407
  // - TODO: update local localPeer state
337
408
  // - Pass this updated data to Meeting component -> DisplayView component
338
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
+
339
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
+ }
340
454
  }
341
455
  return;
342
456
  }
@@ -354,7 +468,52 @@ const useHMSTrackUpdate = (
354
468
  // - TODO: update local localPeer state
355
469
  // - Pass this updated data to Meeting component -> DisplayView component
356
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
+
357
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
+ }
358
517
  }
359
518
  return;
360
519
  }
@@ -388,10 +547,29 @@ const useHMSTrackUpdate = (
388
547
  return prevPeerTrackNodes;
389
548
  });
390
549
 
550
+ const uniqueId = createPeerTrackNodeUniqueId(peer, track);
551
+
391
552
  // - TODO: update local localPeer state
392
553
  // - Pass this updated data to Meeting component -> DisplayView component
393
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
+
394
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
+ }
395
573
  }
396
574
  return;
397
575
  }
@@ -412,6 +590,16 @@ const useHMSTrackUpdate = (
412
590
  }
413
591
  return prevPeerTrackNodes;
414
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
+ }
415
603
  return;
416
604
  }
417
605
  };
@@ -552,7 +740,9 @@ export const useHMSRoleChangeRequest = (
552
740
 
553
741
  type SessionStoreListeners = Array<{ remove: () => void }>;
554
742
 
555
- export const useHMSSessionStoreListeners = () => {
743
+ export const useHMSSessionStoreListeners = (
744
+ gridViewRef: React.MutableRefObject<GridViewRefAttrs | null>
745
+ ) => {
556
746
  const dispatch = useDispatch();
557
747
  const hmsSessionStore = useSelector(
558
748
  (state: RootState) => state.user.hmsSessionStore
@@ -569,6 +759,10 @@ export const useHMSSessionStoreListeners = () => {
569
759
  const handleSpotlightIdChange = (id: HMSSessionStoreValue) => {
570
760
  // set value to the state to rerender the component to reflect changes
571
761
  dispatch(saveUserData({ spotlightTrackId: id }));
762
+ // Scroll to start of the list
763
+ gridViewRef.current
764
+ ?.getFlatlistRef()
765
+ .current?.scrollToOffset({ animated: true, offset: 0 });
572
766
  };
573
767
 
574
768
  // Handle 'pinnedMessage' key values
@@ -742,54 +936,11 @@ export const useHMSMessages = () => {
742
936
 
743
937
  export const useHMSPIPRoomLeave = () => {
744
938
  const hmsInstance = useHMSInstance();
745
- const dispatch = useDispatch();
746
- // TODO: What if this is undefined?
747
- const navigation = useContext(NavigationContext);
939
+ const { destroy } = useLeaveMethods();
748
940
 
749
941
  useEffect(() => {
750
942
  const pipRoomLeaveHandler = () => {
751
- hmsInstance
752
- .destroy()
753
- .then((s) => {
754
- console.log('Destroy Success: ', s);
755
- // TODOS:
756
- // - If show `Meeting_Ended` is true, show Meeting screen by setting state to MEETING_ENDED
757
- // - Reset Redux States
758
- // - HMSInstance will not be available now
759
- // - When your presses "Re Join" Action button, restart process from root component
760
- // - When your presses "Done" Action button
761
- // - If we have callback fn, call it
762
- // - Otherwise try our best to navigate away from current screen
763
- //
764
- // - No screen to show
765
- // - No need to reset redux state?
766
- // - HMSInstance will be available till this point
767
- // - If we have callback fn, call it
768
- // - Otherwise try our best to navigate away from current screen
769
- // - When we are navigated away from screen, HMSInstance will be not available
770
-
771
- // dispatch(clearMessageData());
772
- // dispatch(clearPeerData());
773
- // dispatch(clearHmsReference());
774
-
775
- if (navigation && navigation.canGoBack()) {
776
- navigation.goBack();
777
- dispatch(clearStore());
778
- } else {
779
- // TODO: call onLeave Callback if provided
780
- // Otherwise default action is to show "Meeting Ended" screen
781
- dispatch(clearStore()); // TODO: We need different clearStore for MeetingEnded
782
- dispatch(changeMeetingState(MeetingState.MEETING_ENDED));
783
- }
784
- })
785
- .catch((e) => {
786
- console.log(`Destroy HMS instance Error: ${e}`);
787
- Toast.showWithGravity(
788
- `Destroy HMS instance Error: ${e}`,
789
- Toast.LONG,
790
- Toast.TOP
791
- );
792
- });
943
+ destroy();
793
944
  };
794
945
 
795
946
  hmsInstance.addEventListener(
@@ -800,59 +951,16 @@ export const useHMSPIPRoomLeave = () => {
800
951
  return () => {
801
952
  hmsInstance.removeEventListener(HMSPIPListenerActions.ON_PIP_ROOM_LEAVE);
802
953
  };
803
- }, [hmsInstance]);
954
+ }, [destroy, hmsInstance]);
804
955
  };
805
956
 
806
957
  export const useHMSRemovedFromRoomUpdate = () => {
807
958
  const hmsInstance = useHMSInstance();
808
- const dispatch = useDispatch();
809
- // TODO: What if this is undefined?
810
- const navigation = useContext(NavigationContext);
959
+ const { destroy } = useLeaveMethods();
811
960
 
812
961
  useEffect(() => {
813
962
  const removedFromRoomHandler = () => {
814
- hmsInstance
815
- .destroy()
816
- .then((s) => {
817
- console.log('Destroy Success: ', s);
818
- // TODOS:
819
- // - If show `Meeting_Ended` is true, show Meeting screen by setting state to MEETING_ENDED
820
- // - Reset Redux States
821
- // - HMSInstance will not be available now
822
- // - When your presses "Re Join" Action button, restart process from root component
823
- // - When your presses "Done" Action button
824
- // - If we have callback fn, call it
825
- // - Otherwise try our best to navigate away from current screen
826
- //
827
- // - No screen to show
828
- // - No need to reset redux state?
829
- // - HMSInstance will be available till this point
830
- // - If we have callback fn, call it
831
- // - Otherwise try our best to navigate away from current screen
832
- // - When we are navigated away from screen, HMSInstance will be not available
833
-
834
- // dispatch(clearMessageData());
835
- // dispatch(clearPeerData());
836
- // dispatch(clearHmsReference());
837
-
838
- if (navigation && navigation.canGoBack()) {
839
- navigation.goBack();
840
- dispatch(clearStore());
841
- } else {
842
- // TODO: call onLeave Callback if provided
843
- // Otherwise default action is to show "Meeting Ended" screen
844
- dispatch(clearStore()); // TODO: We need different clearStore for MeetingEnded
845
- dispatch(changeMeetingState(MeetingState.MEETING_ENDED));
846
- }
847
- })
848
- .catch((e) => {
849
- console.log(`Destroy HMS instance Error: ${e}`);
850
- Toast.showWithGravity(
851
- `Destroy HMS instance Error: ${e}`,
852
- Toast.LONG,
853
- Toast.TOP
854
- );
855
- });
963
+ destroy();
856
964
  };
857
965
 
858
966
  hmsInstance.addEventListener(
@@ -865,7 +973,7 @@ export const useHMSRemovedFromRoomUpdate = () => {
865
973
  HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM
866
974
  );
867
975
  };
868
- }, [hmsInstance]);
976
+ }, [destroy, hmsInstance]);
869
977
  };
870
978
 
871
979
  export const usePIPListener = () => {
@@ -912,6 +1020,104 @@ export const usePIPListener = () => {
912
1020
  }, [isPipModeActive, hmsInstance]);
913
1021
  };
914
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
+
915
1121
  let modalTaskRef: { current: any } = { current: null };
916
1122
 
917
1123
  export const clearPendingModalTasks = () => {
@@ -1001,6 +1207,7 @@ export const clearConfig = () => {
1001
1207
 
1002
1208
  export const useHMSConfig = () => {
1003
1209
  const hmsInstance = useHMSInstance();
1210
+ const dispatch = useDispatch();
1004
1211
  const store = useStore();
1005
1212
 
1006
1213
  const getConfig = useCallback(async () => {
@@ -1014,6 +1221,18 @@ export const useHMSConfig = () => {
1014
1221
  storeState.user.endPoints?.token
1015
1222
  );
1016
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
+
1017
1236
  hmsConfig = new HMSConfig({
1018
1237
  authToken: token,
1019
1238
  username: storeState.user.userName,
@@ -1051,7 +1270,7 @@ export const useSafeDimensions = () => {
1051
1270
 
1052
1271
  export const useShowChat = (): [
1053
1272
  'none' | 'inset' | 'modal',
1054
- (show: boolean) => void,
1273
+ (show: boolean) => void
1055
1274
  ] => {
1056
1275
  const dispatch = useDispatch();
1057
1276
  const isHLSViewer = useIsHLSViewer();
@@ -1183,6 +1402,7 @@ export const useLeaveMethods = () => {
1183
1402
  const navigation = useContext(NavigationContext);
1184
1403
  const hmsInstance = useHMSInstance();
1185
1404
  const dispatch = useDispatch();
1405
+ const reduxStore = useStore<RootState>();
1186
1406
 
1187
1407
  const destroy = useCallback(async () => {
1188
1408
  try {
@@ -1208,7 +1428,12 @@ export const useLeaveMethods = () => {
1208
1428
  // dispatch(clearPeerData());
1209
1429
  // dispatch(clearHmsReference());
1210
1430
 
1211
- if (navigation && navigation.canGoBack()) {
1431
+ const onLeave = reduxStore.getState().user.onLeave;
1432
+
1433
+ if (typeof onLeave === 'function') {
1434
+ onLeave();
1435
+ dispatch(clearStore());
1436
+ } else if (navigation && navigation.canGoBack()) {
1212
1437
  navigation.goBack();
1213
1438
  dispatch(clearStore());
1214
1439
  } else {
@@ -1265,3 +1490,83 @@ export const useLeaveMethods = () => {
1265
1490
 
1266
1491
  return { destroy, leave, endRoom, goToPreview };
1267
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
+ };