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