@100mslive/react-native-room-kit 1.1.4 → 1.1.5

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 (410) hide show
  1. package/lib/commonjs/HMSContainer.js +1 -1
  2. package/lib/commonjs/HMSContainer.js.map +1 -1
  3. package/lib/commonjs/HMSInstanceSetup.js +15 -6
  4. package/lib/commonjs/HMSInstanceSetup.js.map +1 -1
  5. package/lib/commonjs/HMSPrebuilt.js +1 -1
  6. package/lib/commonjs/HMSPrebuilt.js.map +1 -1
  7. package/lib/commonjs/HMSRoomSetup.js +1 -1
  8. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  9. package/lib/commonjs/components/AnimatedFooter.js +1 -1
  10. package/lib/commonjs/components/AnimatedFooter.js.map +1 -1
  11. package/lib/commonjs/components/AnimatedHLSFooter.js +1 -1
  12. package/lib/commonjs/components/AnimatedHLSFooter.js.map +1 -1
  13. package/lib/commonjs/components/AnimatedHeader.js +1 -1
  14. package/lib/commonjs/components/AnimatedHeader.js.map +1 -1
  15. package/lib/commonjs/components/AvatarView.js +1 -1
  16. package/lib/commonjs/components/AvatarView.js.map +1 -1
  17. package/lib/commonjs/components/BackButton.js +1 -1
  18. package/lib/commonjs/components/BackButton.js.map +1 -1
  19. package/lib/commonjs/components/BottomSheet.js +1 -1
  20. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  21. package/lib/commonjs/components/ChangeNameModalContent.js +1 -1
  22. package/lib/commonjs/components/ChangeNameModalContent.js.map +1 -1
  23. package/lib/commonjs/components/Chat/ChatBanner.js +1 -1
  24. package/lib/commonjs/components/Chat/ChatBanner.js.map +1 -1
  25. package/lib/commonjs/components/Chat/ChatFilterBottomSheet.js +1 -1
  26. package/lib/commonjs/components/Chat/ChatFilterBottomSheet.js.map +1 -1
  27. package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js +1 -1
  28. package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js.map +1 -1
  29. package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js +1 -1
  30. package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
  31. package/lib/commonjs/components/Chat/ChatFilterItem.js +1 -1
  32. package/lib/commonjs/components/Chat/ChatFilterItem.js.map +1 -1
  33. package/lib/commonjs/components/Chat/ChatFilterView.js +3 -2
  34. package/lib/commonjs/components/Chat/ChatFilterView.js.map +1 -1
  35. package/lib/commonjs/components/Chat/ChatList.js +1 -1
  36. package/lib/commonjs/components/Chat/ChatList.js.map +1 -1
  37. package/lib/commonjs/components/Chat/ChatMessage.js +1 -1
  38. package/lib/commonjs/components/Chat/ChatMessage.js.map +1 -1
  39. package/lib/commonjs/components/Chat/ChatMoreActionsModal.js +1 -1
  40. package/lib/commonjs/components/Chat/ChatMoreActionsModal.js.map +1 -1
  41. package/lib/commonjs/components/Chat/ChatMoreActionsSheetView.js +1 -1
  42. package/lib/commonjs/components/Chat/ChatMoreActionsSheetView.js.map +1 -1
  43. package/lib/commonjs/components/Chat/ChatMoreActionsView.js +1 -1
  44. package/lib/commonjs/components/Chat/ChatMoreActionsView.js.map +1 -1
  45. package/lib/commonjs/components/Chat/ChatPaused.js +1 -1
  46. package/lib/commonjs/components/Chat/ChatPaused.js.map +1 -1
  47. package/lib/commonjs/components/Chat/MessageOptionsBottomSheet.js +1 -1
  48. package/lib/commonjs/components/Chat/MessageOptionsBottomSheet.js.map +1 -1
  49. package/lib/commonjs/components/Chat/MessageOptionsBottomSheetView.js +1 -1
  50. package/lib/commonjs/components/Chat/MessageOptionsBottomSheetView.js.map +1 -1
  51. package/lib/commonjs/components/Chat/MessageOptionsView.js +1 -1
  52. package/lib/commonjs/components/Chat/MessageOptionsView.js.map +1 -1
  53. package/lib/commonjs/components/Chat/PeerBlockedFromChat.js +1 -1
  54. package/lib/commonjs/components/Chat/PeerBlockedFromChat.js.map +1 -1
  55. package/lib/commonjs/components/Chat/PinnedMessages.js +1 -1
  56. package/lib/commonjs/components/Chat/PinnedMessages.js.map +1 -1
  57. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +1 -1
  58. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
  59. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js +1 -1
  60. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js.map +1 -1
  61. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js +1 -1
  62. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
  63. package/lib/commonjs/components/ChatAndParticipants/ChatView.js +1 -1
  64. package/lib/commonjs/components/ChatAndParticipants/ChatView.js.map +1 -1
  65. package/lib/commonjs/components/ChatAndParticipants/ParticipantsView.js +1 -1
  66. package/lib/commonjs/components/ChatAndParticipants/ParticipantsView.js.map +1 -1
  67. package/lib/commonjs/components/CreatePoll.js +1 -1
  68. package/lib/commonjs/components/CreatePoll.js.map +1 -1
  69. package/lib/commonjs/components/DisplayView.js +1 -1
  70. package/lib/commonjs/components/DisplayView.js.map +1 -1
  71. package/lib/commonjs/components/EndRoomModal.js +1 -1
  72. package/lib/commonjs/components/EndRoomModal.js.map +1 -1
  73. package/lib/commonjs/components/EndRoomModalContent.js +1 -1
  74. package/lib/commonjs/components/EndRoomModalContent.js.map +1 -1
  75. package/lib/commonjs/components/Footer.js +22 -5
  76. package/lib/commonjs/components/Footer.js.map +1 -1
  77. package/lib/commonjs/components/FullScreenVideoView.js +1 -1
  78. package/lib/commonjs/components/FullScreenVideoView.js.map +1 -1
  79. package/lib/commonjs/components/GridView.js +1 -1
  80. package/lib/commonjs/components/GridView.js.map +1 -1
  81. package/lib/commonjs/components/HLSFooter.js +1 -1
  82. package/lib/commonjs/components/HLSFooter.js.map +1 -1
  83. package/lib/commonjs/components/HLSView.js +1 -1
  84. package/lib/commonjs/components/HLSView.js.map +1 -1
  85. package/lib/commonjs/components/HMSBaseButton.js +1 -1
  86. package/lib/commonjs/components/HMSBaseButton.js.map +1 -1
  87. package/lib/commonjs/components/HMSChat.js +1 -1
  88. package/lib/commonjs/components/HMSChat.js.map +1 -1
  89. package/lib/commonjs/components/HMSDangerButton.js +1 -1
  90. package/lib/commonjs/components/HMSDangerButton.js.map +1 -1
  91. package/lib/commonjs/components/HMSHLSMessage.js +1 -1
  92. package/lib/commonjs/components/HMSHLSMessage.js.map +1 -1
  93. package/lib/commonjs/components/HMSHLSMessageList.js +1 -1
  94. package/lib/commonjs/components/HMSHLSMessageList.js.map +1 -1
  95. package/lib/commonjs/components/HMSHLSNotStarted.js +1 -1
  96. package/lib/commonjs/components/HMSHLSNotStarted.js.map +1 -1
  97. package/lib/commonjs/components/HMSHLSStreamLoading.js +1 -1
  98. package/lib/commonjs/components/HMSHLSStreamLoading.js.map +1 -1
  99. package/lib/commonjs/components/HMSHandRaiseNotification.js +1 -1
  100. package/lib/commonjs/components/HMSHandRaiseNotification.js.map +1 -1
  101. package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js +1 -1
  102. package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js.map +1 -1
  103. package/lib/commonjs/components/HMSKeyboardAvoidingView.js +1 -1
  104. package/lib/commonjs/components/HMSKeyboardAvoidingView.js.map +1 -1
  105. package/lib/commonjs/components/HMSLiveIndicator.js +1 -1
  106. package/lib/commonjs/components/HMSLiveIndicator.js.map +1 -1
  107. package/lib/commonjs/components/HMSLiveViewerCount.js +1 -1
  108. package/lib/commonjs/components/HMSLiveViewerCount.js.map +1 -1
  109. package/lib/commonjs/components/HMSLocalScreenshareNotification.js +1 -1
  110. package/lib/commonjs/components/HMSLocalScreenshareNotification.js.map +1 -1
  111. package/lib/commonjs/components/HMSLocalVideoView.js +1 -1
  112. package/lib/commonjs/components/HMSLocalVideoView.js.map +1 -1
  113. package/lib/commonjs/components/HMSManageAudioOutput.js +1 -1
  114. package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -1
  115. package/lib/commonjs/components/HMSManageCameraRotation.js +1 -1
  116. package/lib/commonjs/components/HMSManageCameraRotation.js.map +1 -1
  117. package/lib/commonjs/components/HMSManageLeave.js +1 -1
  118. package/lib/commonjs/components/HMSManageLeave.js.map +1 -1
  119. package/lib/commonjs/components/HMSManageLocalAudio.js +1 -1
  120. package/lib/commonjs/components/HMSManageLocalAudio.js.map +1 -1
  121. package/lib/commonjs/components/HMSManageLocalVideo.js +1 -1
  122. package/lib/commonjs/components/HMSManageLocalVideo.js.map +1 -1
  123. package/lib/commonjs/components/HMSManageNoiseCancellation.js +36 -0
  124. package/lib/commonjs/components/HMSManageNoiseCancellation.js.map +1 -0
  125. package/lib/commonjs/components/HMSManageRaiseHand.js +1 -1
  126. package/lib/commonjs/components/HMSManageRaiseHand.js.map +1 -1
  127. package/lib/commonjs/components/HMSMeetingEnded.js +1 -1
  128. package/lib/commonjs/components/HMSMeetingEnded.js.map +1 -1
  129. package/lib/commonjs/components/HMSNotification.js +1 -1
  130. package/lib/commonjs/components/HMSNotification.js.map +1 -1
  131. package/lib/commonjs/components/HMSNotifications.js +1 -1
  132. package/lib/commonjs/components/HMSNotifications.js.map +1 -1
  133. package/lib/commonjs/components/HMSOverlayChatView.js +1 -1
  134. package/lib/commonjs/components/HMSOverlayChatView.js.map +1 -1
  135. package/lib/commonjs/components/HMSPollsQuizzesNotification.js +1 -1
  136. package/lib/commonjs/components/HMSPollsQuizzesNotification.js.map +1 -1
  137. package/lib/commonjs/components/HMSPreviewEditName.js +1 -1
  138. package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
  139. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +1 -1
  140. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
  141. package/lib/commonjs/components/HMSPreviewJoinButton.js +1 -1
  142. package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
  143. package/lib/commonjs/components/HMSPreviewNetworkQuality.js +1 -1
  144. package/lib/commonjs/components/HMSPreviewNetworkQuality.js.map +1 -1
  145. package/lib/commonjs/components/HMSPreviewPeersList.js +1 -1
  146. package/lib/commonjs/components/HMSPreviewPeersList.js.map +1 -1
  147. package/lib/commonjs/components/HMSPreviewSubtitle.js +1 -1
  148. package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
  149. package/lib/commonjs/components/HMSPreviewTile.js +1 -1
  150. package/lib/commonjs/components/HMSPreviewTile.js.map +1 -1
  151. package/lib/commonjs/components/HMSPreviewTitle.js +1 -1
  152. package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
  153. package/lib/commonjs/components/HMSPrimaryButton.js +1 -1
  154. package/lib/commonjs/components/HMSPrimaryButton.js.map +1 -1
  155. package/lib/commonjs/components/HMSReconnectingNotification.js +1 -1
  156. package/lib/commonjs/components/HMSReconnectingNotification.js.map +1 -1
  157. package/lib/commonjs/components/HMSRecordingIndicator.js +1 -1
  158. package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -1
  159. package/lib/commonjs/components/HMSRoleChangeDeclinedNotification.js +1 -1
  160. package/lib/commonjs/components/HMSRoleChangeDeclinedNotification.js.map +1 -1
  161. package/lib/commonjs/components/HMSRoomOptions.js +1 -1
  162. package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
  163. package/lib/commonjs/components/HMSSecondaryButton.js +1 -1
  164. package/lib/commonjs/components/HMSSecondaryButton.js.map +1 -1
  165. package/lib/commonjs/components/HMSSendMessageInput.js +1 -1
  166. package/lib/commonjs/components/HMSSendMessageInput.js.map +1 -1
  167. package/lib/commonjs/components/HMSTerminalErrorNotification.js +1 -1
  168. package/lib/commonjs/components/HMSTerminalErrorNotification.js.map +1 -1
  169. package/lib/commonjs/components/HMSTextInput.js +1 -1
  170. package/lib/commonjs/components/HMSTextInput.js.map +1 -1
  171. package/lib/commonjs/components/HMSVideoView.js +1 -1
  172. package/lib/commonjs/components/HMSVideoView.js.map +1 -1
  173. package/lib/commonjs/components/Header.js +1 -1
  174. package/lib/commonjs/components/Header.js.map +1 -1
  175. package/lib/commonjs/components/LeaderboardEntry.js +1 -1
  176. package/lib/commonjs/components/LeaderboardEntry.js.map +1 -1
  177. package/lib/commonjs/components/LeaveRoomBottomSheet.js +1 -1
  178. package/lib/commonjs/components/LeaveRoomBottomSheet.js.map +1 -1
  179. package/lib/commonjs/components/LocalPeerRegularVideoView.js +1 -1
  180. package/lib/commonjs/components/LocalPeerRegularVideoView.js.map +1 -1
  181. package/lib/commonjs/components/LocalPeerScreenshareView.js +1 -1
  182. package/lib/commonjs/components/LocalPeerScreenshareView.js.map +1 -1
  183. package/lib/commonjs/components/Meeting.js +1 -1
  184. package/lib/commonjs/components/Meeting.js.map +1 -1
  185. package/lib/commonjs/components/MeetingScreenContent.js +1 -1
  186. package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
  187. package/lib/commonjs/components/MiniView.js +1 -1
  188. package/lib/commonjs/components/MiniView.js.map +1 -1
  189. package/lib/commonjs/components/Modals.js +1 -1
  190. package/lib/commonjs/components/Modals.js.map +1 -1
  191. package/lib/commonjs/components/OverlayContainer.js +1 -1
  192. package/lib/commonjs/components/OverlayContainer.js.map +1 -1
  193. package/lib/commonjs/components/OverlayedViews.js +1 -1
  194. package/lib/commonjs/components/OverlayedViews.js.map +1 -1
  195. package/lib/commonjs/components/PIPView.js +1 -1
  196. package/lib/commonjs/components/PIPView.js.map +1 -1
  197. package/lib/commonjs/components/PaginationDots.js +1 -1
  198. package/lib/commonjs/components/PaginationDots.js.map +1 -1
  199. package/lib/commonjs/components/Participants/MultiRoleParticipantsList.js +1 -1
  200. package/lib/commonjs/components/Participants/MultiRoleParticipantsList.js.map +1 -1
  201. package/lib/commonjs/components/Participants/ParticipantsAccordian.js +1 -1
  202. package/lib/commonjs/components/Participants/ParticipantsAccordian.js.map +1 -1
  203. package/lib/commonjs/components/Participants/ParticipantsAccordianExpanded.js +1 -1
  204. package/lib/commonjs/components/Participants/ParticipantsAccordianExpanded.js.map +1 -1
  205. package/lib/commonjs/components/Participants/ParticipantsGroupFooter.js +1 -1
  206. package/lib/commonjs/components/Participants/ParticipantsGroupFooter.js.map +1 -1
  207. package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js +1 -1
  208. package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js.map +1 -1
  209. package/lib/commonjs/components/Participants/ParticipantsGroupOptions.js +1 -1
  210. package/lib/commonjs/components/Participants/ParticipantsGroupOptions.js.map +1 -1
  211. package/lib/commonjs/components/Participants/ParticipantsItem.js +12 -3
  212. package/lib/commonjs/components/Participants/ParticipantsItem.js.map +1 -1
  213. package/lib/commonjs/components/Participants/ParticipantsItemOption.js +1 -1
  214. package/lib/commonjs/components/Participants/ParticipantsItemOption.js.map +1 -1
  215. package/lib/commonjs/components/Participants/ParticipantsItemOptions.js +6 -5
  216. package/lib/commonjs/components/Participants/ParticipantsItemOptions.js.map +1 -1
  217. package/lib/commonjs/components/Participants/ParticipantsList.js +1 -1
  218. package/lib/commonjs/components/Participants/ParticipantsList.js.map +1 -1
  219. package/lib/commonjs/components/Participants/ParticipantsListFooter.js +1 -1
  220. package/lib/commonjs/components/Participants/ParticipantsListFooter.js.map +1 -1
  221. package/lib/commonjs/components/Participants/ParticipantsSeachInput.js +1 -1
  222. package/lib/commonjs/components/Participants/ParticipantsSeachInput.js.map +1 -1
  223. package/lib/commonjs/components/ParticipantsCount.js +1 -1
  224. package/lib/commonjs/components/ParticipantsCount.js.map +1 -1
  225. package/lib/commonjs/components/PeerMinimizedView.js +1 -1
  226. package/lib/commonjs/components/PeerMinimizedView.js.map +1 -1
  227. package/lib/commonjs/components/PeerRTCStatsContainer.js +1 -1
  228. package/lib/commonjs/components/PeerRTCStatsContainer.js.map +1 -1
  229. package/lib/commonjs/components/PeerSettingsModalContent.js +3 -2
  230. package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
  231. package/lib/commonjs/components/PeerVideoTile/AvatarView.js +1 -1
  232. package/lib/commonjs/components/PeerVideoTile/AvatarView.js.map +1 -1
  233. package/lib/commonjs/components/PeerVideoTile/HMSFullScreenButton.js +1 -1
  234. package/lib/commonjs/components/PeerVideoTile/HMSFullScreenButton.js.map +1 -1
  235. package/lib/commonjs/components/PeerVideoTile/HMSPinchGesture.js +1 -1
  236. package/lib/commonjs/components/PeerVideoTile/HMSPinchGesture.js.map +1 -1
  237. package/lib/commonjs/components/PeerVideoTile/PeerAudioIndicator.js +1 -1
  238. package/lib/commonjs/components/PeerVideoTile/PeerAudioIndicator.js.map +1 -1
  239. package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js +1 -1
  240. package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js.map +1 -1
  241. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +12 -3
  242. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
  243. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +2 -1
  244. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
  245. package/lib/commonjs/components/PeerVideoTile/VideoView.js +1 -1
  246. package/lib/commonjs/components/PeerVideoTile/VideoView.js.map +1 -1
  247. package/lib/commonjs/components/PollAndQuizQuestionResponseCard.js +1 -1
  248. package/lib/commonjs/components/PollAndQuizQuestionResponseCard.js.map +1 -1
  249. package/lib/commonjs/components/PollAndQuizQuestionResponseCards.js +1 -1
  250. package/lib/commonjs/components/PollAndQuizQuestionResponseCards.js.map +1 -1
  251. package/lib/commonjs/components/PollAndQuizSheetScreen.js +1 -1
  252. package/lib/commonjs/components/PollAndQuizSheetScreen.js.map +1 -1
  253. package/lib/commonjs/components/PollAndQuizVoting.js +12 -4
  254. package/lib/commonjs/components/PollAndQuizVoting.js.map +1 -1
  255. package/lib/commonjs/components/PollAndQuizzStateLabel.js +1 -1
  256. package/lib/commonjs/components/PollAndQuizzStateLabel.js.map +1 -1
  257. package/lib/commonjs/components/PollQDeleteConfirmationSheetView.js +1 -1
  258. package/lib/commonjs/components/PollQDeleteConfirmationSheetView.js.map +1 -1
  259. package/lib/commonjs/components/PollQuestion.js +1 -1
  260. package/lib/commonjs/components/PollQuestion.js.map +1 -1
  261. package/lib/commonjs/components/PollQuestionDeleteConfirmation.js +1 -1
  262. package/lib/commonjs/components/PollQuestionDeleteConfirmation.js.map +1 -1
  263. package/lib/commonjs/components/PollQuestions.js +1 -1
  264. package/lib/commonjs/components/PollQuestions.js.map +1 -1
  265. package/lib/commonjs/components/PollResponseProgressView.js +1 -1
  266. package/lib/commonjs/components/PollResponseProgressView.js.map +1 -1
  267. package/lib/commonjs/components/PollsAndQuizBottomSheet.js +1 -1
  268. package/lib/commonjs/components/PollsAndQuizBottomSheet.js.map +1 -1
  269. package/lib/commonjs/components/PollsAndQuizzesCard.js +1 -1
  270. package/lib/commonjs/components/PollsAndQuizzesCard.js.map +1 -1
  271. package/lib/commonjs/components/PollsAndQuizzesModalContent.js +1 -1
  272. package/lib/commonjs/components/PollsAndQuizzesModalContent.js.map +1 -1
  273. package/lib/commonjs/components/PollsConfigAndList.js +1 -1
  274. package/lib/commonjs/components/PollsConfigAndList.js.map +1 -1
  275. package/lib/commonjs/components/PressableIcon.js +1 -1
  276. package/lib/commonjs/components/PressableIcon.js.map +1 -1
  277. package/lib/commonjs/components/Preview.js +26 -5
  278. package/lib/commonjs/components/Preview.js.map +1 -1
  279. package/lib/commonjs/components/PreviewForRoleChangeModal.js +1 -1
  280. package/lib/commonjs/components/PreviewForRoleChangeModal.js.map +1 -1
  281. package/lib/commonjs/components/PreviousPollsAndQuizzesList.js +1 -1
  282. package/lib/commonjs/components/PreviousPollsAndQuizzesList.js.map +1 -1
  283. package/lib/commonjs/components/QuizEndOptionsView.js +1 -1
  284. package/lib/commonjs/components/QuizEndOptionsView.js.map +1 -1
  285. package/lib/commonjs/components/QuizLeaderboardEntriesScreen.js +1 -1
  286. package/lib/commonjs/components/QuizLeaderboardEntriesScreen.js.map +1 -1
  287. package/lib/commonjs/components/QuizLeaderboardScreen.js +1 -1
  288. package/lib/commonjs/components/QuizLeaderboardScreen.js.map +1 -1
  289. package/lib/commonjs/components/QuizLeaderboardSummary.js +1 -1
  290. package/lib/commonjs/components/QuizLeaderboardSummary.js.map +1 -1
  291. package/lib/commonjs/components/ReconnectionView.js +1 -1
  292. package/lib/commonjs/components/ReconnectionView.js.map +1 -1
  293. package/lib/commonjs/components/RoomSettingsModalContent.js +67 -2
  294. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  295. package/lib/commonjs/components/StatusBar.js +1 -1
  296. package/lib/commonjs/components/StatusBar.js.map +1 -1
  297. package/lib/commonjs/components/StopRecordingModalContent.js +1 -1
  298. package/lib/commonjs/components/StopRecordingModalContent.js.map +1 -1
  299. package/lib/commonjs/components/StreamingQualityModalContent.js +1 -1
  300. package/lib/commonjs/components/StreamingQualityModalContent.js.map +1 -1
  301. package/lib/commonjs/components/UnmountAfterDelay.js +1 -1
  302. package/lib/commonjs/components/UnmountAfterDelay.js.map +1 -1
  303. package/lib/commonjs/components/VoterParticipationSummary.js +1 -1
  304. package/lib/commonjs/components/VoterParticipationSummary.js.map +1 -1
  305. package/lib/commonjs/components/WebrtcView.js +1 -1
  306. package/lib/commonjs/components/WebrtcView.js.map +1 -1
  307. package/lib/commonjs/components/WelcomeInMeeting.js +1 -1
  308. package/lib/commonjs/components/WelcomeInMeeting.js.map +1 -1
  309. package/lib/commonjs/components/styles.js +4 -0
  310. package/lib/commonjs/components/styles.js.map +1 -1
  311. package/lib/commonjs/redux/actionTypes.js +1 -0
  312. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  313. package/lib/commonjs/redux/actions/index.js +8 -3
  314. package/lib/commonjs/redux/actions/index.js.map +1 -1
  315. package/lib/commonjs/redux/reducers/appState.js +1 -1
  316. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  317. package/lib/commonjs/redux/reducers/hmsStates.js +7 -1
  318. package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
  319. package/lib/commonjs/redux/reducers/message.js +1 -1
  320. package/lib/commonjs/redux/reducers/message.js.map +1 -1
  321. package/lib/commonjs/redux/reducers/userState.js +1 -1
  322. package/lib/commonjs/redux/reducers/userState.js.map +1 -1
  323. package/lib/commonjs/utils/functions.js +1 -0
  324. package/lib/commonjs/utils/functions.js.map +1 -1
  325. package/lib/commonjs/utils/hooks.js +12 -18
  326. package/lib/commonjs/utils/hooks.js.map +1 -1
  327. package/lib/module/HMSInstanceSetup.js +16 -7
  328. package/lib/module/HMSInstanceSetup.js.map +1 -1
  329. package/lib/module/components/Chat/ChatFilterView.js +2 -1
  330. package/lib/module/components/Chat/ChatFilterView.js.map +1 -1
  331. package/lib/module/components/Footer.js +23 -6
  332. package/lib/module/components/Footer.js.map +1 -1
  333. package/lib/module/components/HMSManageNoiseCancellation.js +28 -0
  334. package/lib/module/components/HMSManageNoiseCancellation.js.map +1 -0
  335. package/lib/module/components/Participants/ParticipantsItem.js +12 -3
  336. package/lib/module/components/Participants/ParticipantsItem.js.map +1 -1
  337. package/lib/module/components/Participants/ParticipantsItemOptions.js +5 -4
  338. package/lib/module/components/Participants/ParticipantsItemOptions.js.map +1 -1
  339. package/lib/module/components/PeerSettingsModalContent.js +4 -3
  340. package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
  341. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +12 -3
  342. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
  343. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +2 -1
  344. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
  345. package/lib/module/components/PollAndQuizVoting.js +11 -3
  346. package/lib/module/components/PollAndQuizVoting.js.map +1 -1
  347. package/lib/module/components/Preview.js +26 -5
  348. package/lib/module/components/Preview.js.map +1 -1
  349. package/lib/module/components/RoomSettingsModalContent.js +69 -4
  350. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  351. package/lib/module/components/styles.js +4 -0
  352. package/lib/module/components/styles.js.map +1 -1
  353. package/lib/module/redux/actionTypes.js +1 -0
  354. package/lib/module/redux/actionTypes.js.map +1 -1
  355. package/lib/module/redux/actions/index.js +4 -0
  356. package/lib/module/redux/actions/index.js.map +1 -1
  357. package/lib/module/redux/reducers/hmsStates.js +7 -1
  358. package/lib/module/redux/reducers/hmsStates.js.map +1 -1
  359. package/lib/module/utils/functions.js +1 -0
  360. package/lib/module/utils/functions.js.map +1 -1
  361. package/lib/module/utils/hooks.js +12 -18
  362. package/lib/module/utils/hooks.js.map +1 -1
  363. package/lib/typescript/HMSInstanceSetup.d.ts.map +1 -1
  364. package/lib/typescript/components/Chat/ChatFilterView.d.ts.map +1 -1
  365. package/lib/typescript/components/Footer.d.ts.map +1 -1
  366. package/lib/typescript/components/HMSManageNoiseCancellation.d.ts +3 -0
  367. package/lib/typescript/components/HMSManageNoiseCancellation.d.ts.map +1 -0
  368. package/lib/typescript/components/Participants/ParticipantsItem.d.ts.map +1 -1
  369. package/lib/typescript/components/Participants/ParticipantsItemOptions.d.ts.map +1 -1
  370. package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
  371. package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts +1 -0
  372. package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts.map +1 -1
  373. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -1
  374. package/lib/typescript/components/PollAndQuizVoting.d.ts.map +1 -1
  375. package/lib/typescript/components/Preview.d.ts.map +1 -1
  376. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  377. package/lib/typescript/components/styles.d.ts +4 -0
  378. package/lib/typescript/components/styles.d.ts.map +1 -1
  379. package/lib/typescript/redux/actionTypes.d.ts +1 -0
  380. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  381. package/lib/typescript/redux/actions/index.d.ts +5 -1
  382. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  383. package/lib/typescript/redux/index.d.ts +1 -0
  384. package/lib/typescript/redux/index.d.ts.map +1 -1
  385. package/lib/typescript/redux/reducers/hmsStates.d.ts +7 -2
  386. package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
  387. package/lib/typescript/redux/reducers/index.d.ts +1 -0
  388. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  389. package/lib/typescript/utils/functions.d.ts +1 -0
  390. package/lib/typescript/utils/functions.d.ts.map +1 -1
  391. package/lib/typescript/utils/hooks.d.ts.map +1 -1
  392. package/package.json +65 -4
  393. package/src/HMSInstanceSetup.tsx +26 -5
  394. package/src/components/Chat/ChatFilterView.tsx +6 -2
  395. package/src/components/Footer.tsx +31 -5
  396. package/src/components/HMSManageNoiseCancellation.tsx +41 -0
  397. package/src/components/Participants/ParticipantsItem.tsx +29 -3
  398. package/src/components/Participants/ParticipantsItemOptions.tsx +9 -4
  399. package/src/components/PeerSettingsModalContent.tsx +14 -10
  400. package/src/components/PeerVideoTile/PeerNameAndNetwork.tsx +25 -9
  401. package/src/components/PeerVideoTile/PeerVideoTileView.tsx +2 -0
  402. package/src/components/PollAndQuizVoting.tsx +13 -1
  403. package/src/components/Preview.tsx +42 -3
  404. package/src/components/RoomSettingsModalContent.tsx +85 -1
  405. package/src/components/styles.ts +4 -0
  406. package/src/redux/actionTypes.ts +1 -0
  407. package/src/redux/actions/index.ts +8 -0
  408. package/src/redux/reducers/hmsStates.ts +15 -1
  409. package/src/utils/functions.ts +1 -0
  410. package/src/utils/hooks.ts +12 -12
@@ -2,10 +2,16 @@ import * as React from 'react';
2
2
  import { useSelector } from 'react-redux';
3
3
  import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
4
4
  import type { HMSLocalPeer, HMSPeer } from '@100mslive/react-native-hms';
5
+ import { HMSPeerType } from '@100mslive/react-native-hms';
5
6
 
6
7
  import { isParticipantHostOrBroadcaster } from '../../utils/functions';
7
8
  import { useHMSRoomStyleSheet } from '../../hooks-util';
8
- import { HandIcon, NetworkQualityIcon, ThreeDotsIcon } from '../../Icons';
9
+ import {
10
+ AnswerPhoneIcon,
11
+ HandIcon,
12
+ NetworkQualityIcon,
13
+ ThreeDotsIcon,
14
+ } from '../../Icons';
9
15
  import { Menu } from '../MenuModal';
10
16
  import { ParticipantsItemOptions } from './ParticipantsItemOptions';
11
17
  import type { RootState } from '../../redux';
@@ -45,6 +51,7 @@ const _ParticipantsItem: React.FC<ParticipantsItemProps> = ({
45
51
  }));
46
52
 
47
53
  const show3Dots = selfHostOrBroadcaster && !peer.isLocal;
54
+ const isSIPPeerType = peer.type === HMSPeerType.SIP;
48
55
 
49
56
  const showOptions = () => setOptionsVisible(true);
50
57
 
@@ -52,7 +59,12 @@ const _ParticipantsItem: React.FC<ParticipantsItemProps> = ({
52
59
 
53
60
  return (
54
61
  <View style={styles.container}>
55
- <Text testID={TestIds.participant_name} style={[styles.label, hmsRoomStyles.label]}>
62
+ <Text
63
+ testID={TestIds.participant_name}
64
+ style={[styles.label, hmsRoomStyles.label]}
65
+ ellipsizeMode="middle"
66
+ numberOfLines={1}
67
+ >
56
68
  {peer.name}
57
69
  {peer.isLocal ? ' (You)' : null}
58
70
  </Text>
@@ -70,7 +82,20 @@ const _ParticipantsItem: React.FC<ParticipantsItemProps> = ({
70
82
  </View>
71
83
  ) : null}
72
84
 
73
- {peer.networkQuality &&
85
+ {isSIPPeerType ? (
86
+ <View
87
+ style={[
88
+ styles.control,
89
+ styles.iconWrapper,
90
+ hmsRoomStyles.iconWrapper,
91
+ ]}
92
+ >
93
+ <AnswerPhoneIcon style={styles.networkIcon} />
94
+ </View>
95
+ ) : null}
96
+
97
+ {!isSIPPeerType &&
98
+ peer.networkQuality &&
74
99
  peer.networkQuality.downlinkQuality >= 0 &&
75
100
  peer.networkQuality.downlinkQuality < 4 ? (
76
101
  <View
@@ -119,6 +144,7 @@ const styles = StyleSheet.create({
119
144
  justifyContent: 'space-between',
120
145
  },
121
146
  label: {
147
+ flexShrink: 1,
122
148
  fontSize: 14,
123
149
  lineHeight: 20,
124
150
  letterSpacing: 0.1,
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
  import { useSelector } from 'react-redux';
4
4
  import type { HMSLocalPeer, HMSPeer } from '@100mslive/react-native-hms';
5
+ import { HMSPeerType } from '@100mslive/react-native-hms';
5
6
 
6
7
  import {
7
8
  useHMSInstance,
@@ -156,25 +157,29 @@ const _ParticipantsItemOptions: React.FC<ParticipantsItemOptionsProps> = ({
156
157
  !insideHandRaiseGroup &&
157
158
  localPeerCanMuteTrack &&
158
159
  peerCanPublishAudio &&
159
- peer.audioTrack?.isMute() === false;
160
+ peer.audioTrack?.isMute() === false &&
161
+ peer.type === HMSPeerType.REGULAR;
160
162
 
161
163
  const showUnmuteAudioOption =
162
164
  !insideHandRaiseGroup &&
163
165
  localPeerCanUnmuteTrack &&
164
166
  peerCanPublishAudio &&
165
- peer.audioTrack?.isMute();
167
+ peer.audioTrack?.isMute() &&
168
+ peer.type === HMSPeerType.REGULAR;
166
169
 
167
170
  const showMuteVideoOption =
168
171
  !insideHandRaiseGroup &&
169
172
  localPeerCanMuteTrack &&
170
173
  peerCanPublishVideo &&
171
- peer.videoTrack?.isMute() === false;
174
+ peer.videoTrack?.isMute() === false &&
175
+ peer.type === HMSPeerType.REGULAR;
172
176
 
173
177
  const showUnmuteVideoOption =
174
178
  !insideHandRaiseGroup &&
175
179
  localPeerCanUnmuteTrack &&
176
180
  peerCanPublishVideo &&
177
- peer.videoTrack?.isMute();
181
+ peer.videoTrack?.isMute() &&
182
+ peer.type === HMSPeerType.REGULAR;
178
183
 
179
184
  const showBringOnStageOptions =
180
185
  offStageRoles && offStageRoles.includes(peer.role?.name || '');
@@ -1,19 +1,19 @@
1
1
  import React from 'react';
2
+ import type { StyleProp, TextStyle, TouchableOpacityProps } from 'react-native';
2
3
  import {
3
- View,
4
- TouchableOpacity,
5
- Text,
6
- StyleSheet,
7
- LayoutAnimation,
8
4
  InteractionManager,
5
+ LayoutAnimation,
6
+ StyleSheet,
7
+ Text,
8
+ TouchableOpacity,
9
+ View,
9
10
  } from 'react-native';
10
- import type { StyleProp, TextStyle, TouchableOpacityProps } from 'react-native';
11
11
  import { useDispatch, useSelector } from 'react-redux';
12
- import { HMSTrack } from '@100mslive/react-native-hms';
12
+ import { HMSPeerType, HMSTrack } from '@100mslive/react-native-hms';
13
13
 
14
14
  import type { RootState } from '../redux';
15
- import { ModalTypes } from '../utils/types';
16
15
  import type { PeerTrackNode } from '../utils/types';
16
+ import { ModalTypes } from '../utils/types';
17
17
  import { setInsetViewMinimized } from '../redux/actions';
18
18
  import { useHMSRoomStyle, useModalType } from '../hooks-util';
19
19
  import {
@@ -157,7 +157,9 @@ export const PeerSettingsModalContent: React.FC<
157
157
  ) : null}
158
158
 
159
159
  {/* If Peer's Audio is Unmuted and Local Peer has mute Permissions */}
160
- {!isPeerAudioMute && localPeerPermissions?.mute ? (
160
+ {!isPeerAudioMute &&
161
+ localPeerPermissions?.mute &&
162
+ peer.type === HMSPeerType.REGULAR ? (
161
163
  <SettingItem
162
164
  text={'Mute Audio'}
163
165
  icon={<MicIcon muted={true} style={styles.customIcon} />}
@@ -180,7 +182,9 @@ export const PeerSettingsModalContent: React.FC<
180
182
  ) : null}
181
183
 
182
184
  {/* If Peer's Video is Unmuted and Local Peer has mute Permissions */}
183
- {!isPeerVideoMute && localPeerPermissions?.mute ? (
185
+ {!isPeerVideoMute &&
186
+ localPeerPermissions?.mute &&
187
+ peer.type === HMSPeerType.REGULAR ? (
184
188
  <SettingItem
185
189
  text={'Mute Video'}
186
190
  icon={<CameraIcon muted={true} style={styles.customIcon} />}
@@ -3,12 +3,17 @@ import { StyleSheet, Text, View } from 'react-native';
3
3
  import { HMSTrackSource } from '@100mslive/react-native-hms';
4
4
 
5
5
  import { hexToRgbA } from '../../utils/theme';
6
- import { NetworkQualityIcon, ScreenShareIcon } from '../../Icons';
6
+ import {
7
+ AnswerPhoneIcon,
8
+ NetworkQualityIcon,
9
+ ScreenShareIcon,
10
+ } from '../../Icons';
7
11
  import { useHMSRoomStyleSheet } from '../../hooks-util';
8
12
  import { TestIds } from '../../utils/constants';
9
13
 
10
14
  export interface PeerNameAndNetworkProps {
11
15
  name: string;
16
+ isSIPPeerType: boolean | undefined;
12
17
  isLocal: boolean | undefined;
13
18
  trackSource: HMSTrackSource | undefined;
14
19
  networkQuality: number | undefined;
@@ -16,6 +21,7 @@ export interface PeerNameAndNetworkProps {
16
21
 
17
22
  export const PeerNameAndNetwork: React.FC<PeerNameAndNetworkProps> = ({
18
23
  name,
24
+ isSIPPeerType,
19
25
  isLocal,
20
26
  trackSource,
21
27
  networkQuality,
@@ -41,24 +47,28 @@ export const PeerNameAndNetwork: React.FC<PeerNameAndNetworkProps> = ({
41
47
  <View style={[styles.contentContainer, hmsRoomStyles.contentContainer]}>
42
48
  {isScreenTrackSource ? (
43
49
  <ScreenShareIcon style={styles.screenShareIcon} />
50
+ ) : isSIPPeerType ? (
51
+ <AnswerPhoneIcon style={styles.phoneIcon} />
44
52
  ) : null}
45
53
 
46
54
  <Text
47
55
  testID={TestIds.tile_user_name}
48
56
  style={[styles.name, hmsRoomStyles.name]}
49
57
  numberOfLines={1}
50
- ellipsizeMode={showTrackSource ? 'middle' : 'tail'}
58
+ ellipsizeMode={showTrackSource || isSIPPeerType ? 'middle' : 'tail'}
51
59
  >
52
60
  {name}
53
- {isLocal ? ' (You)' : ''}
54
- {showTrackSource ? `'s ${trackSource}` : ''}
61
+ {isLocal && ' (You)'}
62
+ {showTrackSource && `'s ${trackSource}`}
55
63
  </Text>
56
64
 
57
- <NetworkQualityIcon
58
- testID={TestIds.tile_network_icon}
59
- quality={networkQuality}
60
- style={styles.networkIcon}
61
- />
65
+ {isSIPPeerType ? null : (
66
+ <NetworkQualityIcon
67
+ testID={TestIds.tile_network_icon}
68
+ quality={networkQuality}
69
+ style={styles.networkIcon}
70
+ />
71
+ )}
62
72
  </View>
63
73
  </View>
64
74
  );
@@ -76,6 +86,7 @@ const styles = StyleSheet.create({
76
86
  paddingVertical: 4,
77
87
  paddingHorizontal: 8,
78
88
  borderRadius: 8,
89
+ alignItems: 'center',
79
90
  marginLeft: 8, // left offset
80
91
  marginRight: 20 + 4 + 44, // network icon width + network icon left margin + 3 dots button width and horizontal margins
81
92
  },
@@ -91,6 +102,11 @@ const styles = StyleSheet.create({
91
102
  height: 20,
92
103
  marginRight: 6,
93
104
  },
105
+ phoneIcon: {
106
+ width: 16,
107
+ height: 16,
108
+ marginRight: 4,
109
+ },
94
110
  networkIcon: {
95
111
  marginLeft: 4,
96
112
  },
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Pressable, StyleSheet, View } from 'react-native';
3
3
  import {
4
+ HMSPeerType,
4
5
  HMSTrackSource,
5
6
  HMSTrackType,
6
7
  HMSVideoViewMode,
@@ -194,6 +195,7 @@ export const _PeerVideoTileView = React.forwardRef<
194
195
  {/* Handling showing Peer name */}
195
196
  {insetMode || isPipModeActive ? null : (
196
197
  <PeerNameAndNetwork
198
+ isSIPPeerType={peer.type === HMSPeerType.SIP}
197
199
  name={peer.name}
198
200
  isLocal={peer.isLocal}
199
201
  trackSource={trackSource}
@@ -49,6 +49,18 @@ export const PollAndQuizVoting: React.FC<PollAndQuizVotingProps> = ({
49
49
  }
50
50
  return null;
51
51
  });
52
+ const pollId = selectedPoll?.pollId;
53
+ const localPeerPollInitiator = useSelector((state: RootState) => {
54
+ if (!pollId) return null;
55
+ const localPeerUserId = state.hmsStates.localPeer?.customerUserID;
56
+ const pollInitiatorUserID =
57
+ state.polls.polls[pollId]?.createdBy?.customerUserID;
58
+ return (
59
+ localPeerUserId &&
60
+ pollInitiatorUserID &&
61
+ localPeerUserId === pollInitiatorUserID
62
+ );
63
+ });
52
64
  const canCreateOrEndPoll = useSelector((state: RootState) => {
53
65
  const permissions = state.hmsStates.localPeer?.role?.permissions;
54
66
  return permissions?.pollWrite;
@@ -187,7 +199,7 @@ export const PollAndQuizVoting: React.FC<PollAndQuizVotingProps> = ({
187
199
  {selectedPoll &&
188
200
  selectedPoll.type === HMSPollType.quiz &&
189
201
  selectedPoll.state === HMSPollState.stopped &&
190
- !canCreateOrEndPoll ? (
202
+ !localPeerPollInitiator ? (
191
203
  <React.Fragment>
192
204
  <VoterParticipationSummary pollId={selectedPoll.pollId} />
193
205
 
@@ -20,7 +20,11 @@ import { HMSPreviewTile } from './HMSPreviewTile';
20
20
  import { HMSPreviewTitle } from './HMSPreviewTitle';
21
21
  import { HMSManageAudioOutput } from './HMSManageAudioOutput';
22
22
  import { HMSPreviewNetworkQuality } from './HMSPreviewNetworkQuality';
23
- import { useCanPublishVideo, useHMSActions } from '../hooks-sdk';
23
+ import {
24
+ useCanPublishAudio,
25
+ useCanPublishVideo,
26
+ useHMSActions,
27
+ } from '../hooks-sdk';
24
28
  import { HMSPreviewHLSLiveIndicator } from './HMSPreviewHLSLiveIndicator';
25
29
  import { CompanyLogo } from './CompanyLogo';
26
30
  import {
@@ -30,6 +34,9 @@ import {
30
34
  } from '../hooks-util';
31
35
  import { HMSKeyboardAvoidingView } from './HMSKeyboardAvoidingView';
32
36
  import { hexToRgbA } from '../utils/theme';
37
+ import { HMSManageNoiseCancellation } from './HMSManageNoiseCancellation';
38
+ import { useSelector } from 'react-redux';
39
+ import type { RootState } from '../redux';
33
40
 
34
41
  const backButtonEdges = ['top'] as const;
35
42
  const headerEdges = ['top', 'left', 'right'] as const;
@@ -88,6 +95,35 @@ export const Preview = ({
88
95
  setupAudioVideoOnPreview().then((r) => console.log(r));
89
96
  }, []);
90
97
 
98
+ const canPublishAudio = useCanPublishAudio();
99
+ const isLocalAudioMuted = useSelector(
100
+ (state: RootState) => state.hmsStates.isLocalAudioMuted
101
+ );
102
+
103
+ const [isNCAvailable, setIsNCAvailable] = React.useState(false);
104
+
105
+ const noiseCancellationPlugin = useSelector(
106
+ (state: RootState) => state.hmsStates.noiseCancellationPlugin
107
+ );
108
+
109
+ useEffect(() => {
110
+ if (noiseCancellationPlugin) {
111
+ let isMounted = true;
112
+
113
+ noiseCancellationPlugin.isNoiseCancellationAvailable().then((r) => {
114
+ if (isMounted) {
115
+ setIsNCAvailable(r);
116
+ }
117
+ });
118
+ return () => {
119
+ isMounted = false;
120
+ };
121
+ }
122
+ }, [noiseCancellationPlugin]);
123
+
124
+ const showNoiseCancellationButton =
125
+ canPublishAudio && !isLocalAudioMuted && isNCAvailable;
126
+
91
127
  return (
92
128
  <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
93
129
  <View style={[styles.container, hmsRoomStyles.container]}>
@@ -138,13 +174,15 @@ export const Preview = ({
138
174
  <View style={styles.micAndCameraControls}>
139
175
  <HMSManageLocalAudio />
140
176
 
141
- <View style={styles.manageLocalVideoWrapper}>
177
+ <View style={styles.manageLocalButtonWrapper}>
142
178
  <HMSManageLocalVideo />
143
179
  </View>
144
180
 
145
181
  <HMSManageCameraRotation />
146
182
  </View>
147
183
 
184
+ {showNoiseCancellationButton && <HMSManageNoiseCancellation />}
185
+
148
186
  <HMSManageAudioOutput />
149
187
  </View>
150
188
  )}
@@ -201,8 +239,9 @@ const styles = StyleSheet.create({
201
239
  },
202
240
  micAndCameraControls: {
203
241
  flexDirection: 'row',
242
+ alignItems: 'center',
204
243
  },
205
- manageLocalVideoWrapper: {
244
+ manageLocalButtonWrapper: {
206
245
  marginHorizontal: 16,
207
246
  },
208
247
  joinButtonRow: {
@@ -16,10 +16,12 @@ import {
16
16
  PollVoteIcon,
17
17
  RecordingIcon,
18
18
  ScreenShareIcon,
19
+ WaveIcon,
19
20
  } from '../Icons';
20
21
  import { BottomSheet, useBottomSheetActions } from './BottomSheet';
21
22
  import {
22
23
  isPublishingAllowed,
24
+ useHMSConferencingScreenConfig,
23
25
  useHMSLayoutConfig,
24
26
  useHMSRoomColorPalette,
25
27
  useHMSRoomStyleSheet,
@@ -27,6 +29,7 @@ import {
27
29
  useStartRecording,
28
30
  } from '../hooks-util';
29
31
  import {
32
+ useCanPublishAudio,
30
33
  useCanPublishScreen,
31
34
  useHMSActions,
32
35
  useIsAnyStreamingOn,
@@ -183,6 +186,72 @@ export const RoomSettingsModalContent: React.FC<
183
186
  };
184
187
  // #endregion
185
188
 
189
+ // #region Noise Cancellation Plugin
190
+ const noiseCancellationPlugin = useSelector(
191
+ (state: RootState) => state.hmsStates.noiseCancellationPlugin
192
+ );
193
+ const [isNoiseCancellationEnabled, setIsNoiseCancellationEnabled] =
194
+ React.useState(false);
195
+ const [isNoiseCancellationAvailable, setIsNoiseCancellationAvailable] =
196
+ React.useState(false);
197
+
198
+ const canPublishAudio = useCanPublishAudio();
199
+
200
+ const isLocalAudioMuted = useSelector(
201
+ (state: RootState) => state.hmsStates.isLocalAudioMuted
202
+ );
203
+
204
+ const showNoiseCancellationButton =
205
+ canPublishAudio && isNoiseCancellationAvailable;
206
+
207
+ React.useEffect(() => {
208
+ if (noiseCancellationPlugin) {
209
+ let mounted = true;
210
+
211
+ Promise.all(
212
+ [
213
+ noiseCancellationPlugin.isEnabled(),
214
+ noiseCancellationPlugin.isNoiseCancellationAvailable(),
215
+ ].map((promise) =>
216
+ promise
217
+ .then((value) => ({ status: 'fulfilled' as const, value }))
218
+ .catch((reason) => ({ status: 'rejected' as const, reason }))
219
+ )
220
+ ).then((results) => {
221
+ const [isEnabledResult, isAvailableResult] = results;
222
+ if (mounted) {
223
+ if (isEnabledResult && isEnabledResult.status === 'fulfilled') {
224
+ setIsNoiseCancellationEnabled(isEnabledResult.value);
225
+ }
226
+ if (isAvailableResult && isAvailableResult.status === 'fulfilled') {
227
+ setIsNoiseCancellationAvailable(isAvailableResult.value);
228
+ }
229
+ }
230
+ });
231
+
232
+ return () => {
233
+ mounted = false;
234
+ };
235
+ }
236
+ }, [noiseCancellationPlugin]);
237
+
238
+ const handleNoiseCancellation = () => {
239
+ // Register callback to be called when bottom sheet is hiddden
240
+ registerOnModalHideAction(() => {
241
+ if (!noiseCancellationPlugin || !isNoiseCancellationAvailable) return;
242
+
243
+ if (isNoiseCancellationEnabled) {
244
+ noiseCancellationPlugin.disable();
245
+ } else {
246
+ noiseCancellationPlugin.enable();
247
+ }
248
+ });
249
+
250
+ // Close the current bottom sheet
251
+ closeRoomSettingsModal();
252
+ };
253
+ // #endregion
254
+
186
255
  const changeName = () => {
187
256
  // Register callback to be called when bottom sheet is hiddden
188
257
  registerOnModalHideAction(() => {
@@ -207,6 +276,10 @@ export const RoomSettingsModalContent: React.FC<
207
276
  !!layoutConfig?.screens?.conferencing?.default?.elements?.brb
208
277
  );
209
278
 
279
+ const canRaiseHand = useHMSConferencingScreenConfig(
280
+ (confScreenConfig) => !!confScreenConfig?.elements?.hand_raise
281
+ );
282
+
210
283
  const isOnStage = useHMSLayoutConfig((layoutConfig) => {
211
284
  return !!layoutConfig?.screens?.conferencing?.default?.elements
212
285
  ?.on_stage_exp;
@@ -217,7 +290,7 @@ export const RoomSettingsModalContent: React.FC<
217
290
  return (allowed && allowed.length > 0) ?? false;
218
291
  });
219
292
 
220
- const showHandRaiseIcon = !isOnStage && allowedToPublish;
293
+ const showHandRaiseIcon = canRaiseHand && !isOnStage && allowedToPublish;
221
294
 
222
295
  return (
223
296
  <View>
@@ -321,6 +394,17 @@ export const RoomSettingsModalContent: React.FC<
321
394
  isActive: false,
322
395
  hide: !canReadOrWritePoll,
323
396
  },
397
+ {
398
+ id: 'noise-cancellation',
399
+ icon: <WaveIcon style={{ width: 20, height: 20 }} />,
400
+ label: isNoiseCancellationEnabled
401
+ ? 'Noise Reduced'
402
+ : 'Reduce Noise',
403
+ pressHandler: handleNoiseCancellation,
404
+ isActive: isNoiseCancellationEnabled,
405
+ hide: !showNoiseCancellationButton,
406
+ disabled: isLocalAudioMuted,
407
+ },
324
408
  ].filter((itm) => !itm.hide),
325
409
  true
326
410
  ).map((itm, idx) => {
@@ -956,6 +956,10 @@ const styles = StyleSheet.create({
956
956
  height: '100%',
957
957
  zIndex: 10,
958
958
  },
959
+ noiseButton: {
960
+ marginLeft: 'auto',
961
+ marginRight: 16,
962
+ },
959
963
  });
960
964
 
961
965
  export { styles };
@@ -185,6 +185,7 @@ export enum HmsStateActionTypes {
185
185
  REPLACE_PARTICIPANTS_LIST = 'REPLACE_PARTICIPANTS_LIST',
186
186
  SET_ACTIVE_SPEAKERS = 'SET_ACTIVE_SPEAKERS',
187
187
  SET_RECONNECTING = 'SET_RECONNECTING',
188
+ SET_NOISE_CANCELLATION_PLUGIN = 'SET_NOISE_CANCELLATION_PLUGIN',
188
189
  SET_INITIAL_ROLE = 'SET_INITIAL_ROLE',
189
190
  }
190
191
 
@@ -3,6 +3,7 @@ import type {
3
3
  HMSLocalAudioStats,
4
4
  HMSLocalVideoStats,
5
5
  HMSMessage,
6
+ HMSNoiseCancellationPlugin,
6
7
  HMSPeer,
7
8
  HMSPoll,
8
9
  HMSPollQuestion,
@@ -431,6 +432,13 @@ export const setReconnecting = (reconnecting: boolean) => ({
431
432
  reconnecting,
432
433
  });
433
434
 
435
+ export const setNoiseCancellationPlugin = (
436
+ noiseCancellationPlugin: HMSNoiseCancellationPlugin
437
+ ) => ({
438
+ type: HmsStateActionTypes.SET_NOISE_CANCELLATION_PLUGIN,
439
+ noiseCancellationPlugin,
440
+ });
441
+
434
442
  export const setHandleBackButton = (handleBackButton?: boolean) => ({
435
443
  type: actionTypes.SET_HANDLE_BACK_BUTTON,
436
444
  payload: { handleBackButton },
@@ -1,5 +1,6 @@
1
1
  import type {
2
2
  HMSLocalPeer,
3
+ HMSNoiseCancellationPlugin,
3
4
  HMSPeer,
4
5
  HMSRole,
5
6
  HMSRoleChangeRequest,
@@ -29,7 +30,8 @@ type ActionType =
29
30
  | AddUpdateParticipant
30
31
  | ReplaceParticipantsList
31
32
  | SetActiveSpeakers
32
- | SetReconnecting;
33
+ | SetReconnecting
34
+ | SetNoiseCancellationPlugin;
33
35
 
34
36
  type SetRoomAction = {
35
37
  type: HmsStateActionTypes.SET_ROOM_STATE;
@@ -131,6 +133,11 @@ type SetReconnecting = {
131
133
  reconnecting: boolean;
132
134
  };
133
135
 
136
+ type SetNoiseCancellationPlugin = {
137
+ type: HmsStateActionTypes.SET_NOISE_CANCELLATION_PLUGIN;
138
+ noiseCancellationPlugin: HMSNoiseCancellationPlugin;
139
+ };
140
+
134
141
  type IntialStateType = {
135
142
  isLocalAudioMuted: boolean | undefined;
136
143
  isLocalVideoMuted: boolean | undefined;
@@ -145,6 +152,7 @@ type IntialStateType = {
145
152
  previewPeersList: HMSPeer[];
146
153
  layoutConfig: Layout[] | null;
147
154
  roleChangeRequest: HMSRoleChangeRequest | null;
155
+ noiseCancellationPlugin: HMSNoiseCancellationPlugin | null;
148
156
  };
149
157
 
150
158
  const INITIAL_STATE: IntialStateType = {
@@ -161,6 +169,7 @@ const INITIAL_STATE: IntialStateType = {
161
169
  previewPeersList: [],
162
170
  layoutConfig: null,
163
171
  roleChangeRequest: null,
172
+ noiseCancellationPlugin: null,
164
173
  };
165
174
 
166
175
  const hmsStatesReducer = (
@@ -557,6 +566,11 @@ const hmsStatesReducer = (
557
566
  ...state,
558
567
  reconnecting: action.reconnecting,
559
568
  };
569
+ case HmsStateActionTypes.SET_NOISE_CANCELLATION_PLUGIN:
570
+ return {
571
+ ...state,
572
+ noiseCancellationPlugin: action.noiseCancellationPlugin,
573
+ };
560
574
  case HmsStateActionTypes.CLEAR_STATES:
561
575
  return INITIAL_STATE;
562
576
  default:
@@ -445,6 +445,7 @@ export function groupIntoPairs(totalNumber: number) {
445
445
 
446
446
  /**
447
447
  * @param list array of items
448
+ * @param fill boolean to fill the last triplet with `undefined` if it has less than 3 items
448
449
  * @returns list of triplets
449
450
  *
450
451
  * Example: If list is `[a, b, c, d]`, then output will be `[ [a, b, c], [d] ]`
@@ -111,9 +111,16 @@ export const useFetchLeaderboardResponse = (
111
111
  const dispatch = useDispatch();
112
112
  const hmsInstance = useHMSInstance();
113
113
 
114
- const hasPollWritePermission = useSelector((state: RootState) => {
115
- const permissions = state.hmsStates.localPeer?.role?.permissions;
116
- return permissions?.pollWrite;
114
+ const localPeerPollInitiator = useSelector((state: RootState) => {
115
+ if (!pollId) return null;
116
+ const localPeerUserId = state.hmsStates.localPeer?.customerUserID;
117
+ const pollInitiatorUserID =
118
+ state.polls.polls[pollId]?.createdBy?.customerUserID;
119
+ return (
120
+ localPeerUserId &&
121
+ pollInitiatorUserID &&
122
+ localPeerUserId === pollInitiatorUserID
123
+ );
117
124
  });
118
125
 
119
126
  const leaderboardData = useSelector((state: RootState) => {
@@ -134,7 +141,7 @@ export const useFetchLeaderboardResponse = (
134
141
  pollId,
135
142
  5,
136
143
  1, // Indexing starts from 1
137
- !hasPollWritePermission // fetchCurrentUser only if user has only pollRead permission
144
+ !localPeerPollInitiator // fetchCurrentUser only if user is voter, and not poll initiator
138
145
  );
139
146
  if (mounted) {
140
147
  dispatch(addLeaderboard(pollId, response));
@@ -146,7 +153,7 @@ export const useFetchLeaderboardResponse = (
146
153
  return () => {
147
154
  mounted = false;
148
155
  };
149
- }, [pollId, leaderboardDataExist, hasPollWritePermission]);
156
+ }, [pollId, leaderboardDataExist, localPeerPollInitiator]);
150
157
 
151
158
  return leaderboardData;
152
159
  };
@@ -167,10 +174,6 @@ export const useLeaderboardSummaryData = (
167
174
  localPeerUserId === pollInitiatorUserID
168
175
  );
169
176
  });
170
- const canCreateOrEndPoll = useSelector((state: RootState) => {
171
- const permissions = state.hmsStates.localPeer?.role?.permissions;
172
- return permissions?.pollWrite;
173
- });
174
177
 
175
178
  const leaderboardData = useSelector((state: RootState) => {
176
179
  if (!pollId) return null;
@@ -237,9 +240,6 @@ export const useLeaderboardSummaryData = (
237
240
  : null;
238
241
 
239
242
  const voterSummaryData = useMemo(() => {
240
- if (!localLeaderboardEntry || canCreateOrEndPoll) {
241
- return null;
242
- }
243
243
  return [
244
244
  [
245
245
  {