@100mslive/react-native-room-kit 1.0.5 → 1.0.7

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 (356) hide show
  1. package/lib/commonjs/HMSRoomSetup.js +1 -0
  2. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  3. package/lib/commonjs/Icons/Recording/assets/recording-pause.png +0 -0
  4. package/lib/commonjs/Icons/Recording/assets/recording-pause@2x.png +0 -0
  5. package/lib/commonjs/Icons/Recording/assets/recording-pause@3x.png +0 -0
  6. package/lib/commonjs/Icons/Recording/index.js +1 -1
  7. package/lib/commonjs/Icons/Recording/index.js.map +1 -1
  8. package/lib/commonjs/components/AnimatedFooter.js +5 -3
  9. package/lib/commonjs/components/AnimatedFooter.js.map +1 -1
  10. package/lib/commonjs/components/AnimatedHLSFooter.js +4 -9
  11. package/lib/commonjs/components/AnimatedHLSFooter.js.map +1 -1
  12. package/lib/commonjs/components/AnimatedHeader.js +17 -5
  13. package/lib/commonjs/components/AnimatedHeader.js.map +1 -1
  14. package/lib/commonjs/components/AvatarView.js +0 -1
  15. package/lib/commonjs/components/AvatarView.js.map +1 -1
  16. package/lib/commonjs/components/BottomSheet.js +23 -7
  17. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  18. package/lib/commonjs/components/Chat/ChatBanner.js +10 -3
  19. package/lib/commonjs/components/Chat/ChatBanner.js.map +1 -1
  20. package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js +7 -2
  21. package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
  22. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +14 -10
  23. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
  24. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js +5 -3
  25. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
  26. package/lib/commonjs/components/DefaultModal.js +9 -1
  27. package/lib/commonjs/components/DefaultModal.js.map +1 -1
  28. package/lib/commonjs/components/DisplayView.js +4 -11
  29. package/lib/commonjs/components/DisplayView.js.map +1 -1
  30. package/lib/commonjs/components/EndRoomModal.js +1 -2
  31. package/lib/commonjs/components/EndRoomModal.js.map +1 -1
  32. package/lib/commonjs/components/EndRoomModalContent.js +2 -1
  33. package/lib/commonjs/components/EndRoomModalContent.js.map +1 -1
  34. package/lib/commonjs/components/Footer.js +12 -8
  35. package/lib/commonjs/components/Footer.js.map +1 -1
  36. package/lib/commonjs/components/GridView.js +53 -9
  37. package/lib/commonjs/components/GridView.js.map +1 -1
  38. package/lib/commonjs/components/HLSFooter.js +3 -1
  39. package/lib/commonjs/components/HLSFooter.js.map +1 -1
  40. package/lib/commonjs/components/HLSView.js +1 -1
  41. package/lib/commonjs/components/HLSView.js.map +1 -1
  42. package/lib/commonjs/components/HMSHLSMessageList.js +5 -2
  43. package/lib/commonjs/components/HMSHLSMessageList.js.map +1 -1
  44. package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js +44 -0
  45. package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js.map +1 -0
  46. package/lib/commonjs/components/HMSKeyboardAvoidingView.js +3 -1
  47. package/lib/commonjs/components/HMSKeyboardAvoidingView.js.map +1 -1
  48. package/lib/commonjs/components/HMSLiveIndicator.js +6 -57
  49. package/lib/commonjs/components/HMSLiveIndicator.js.map +1 -1
  50. package/lib/commonjs/components/HMSLiveViewerCount.js +78 -0
  51. package/lib/commonjs/components/HMSLiveViewerCount.js.map +1 -0
  52. package/lib/commonjs/components/HMSManageAudioOutput.js +0 -1
  53. package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -1
  54. package/lib/commonjs/components/HMSNotifications.js +9 -1
  55. package/lib/commonjs/components/HMSNotifications.js.map +1 -1
  56. package/lib/commonjs/components/HMSOverlayChatView.js +11 -2
  57. package/lib/commonjs/components/HMSOverlayChatView.js.map +1 -1
  58. package/lib/commonjs/components/HMSPreviewEditName.js +6 -1
  59. package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
  60. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +2 -1
  61. package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
  62. package/lib/commonjs/components/HMSRecordingIndicator.js +15 -4
  63. package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -1
  64. package/lib/commonjs/components/HMSRoomOptions.js +3 -6
  65. package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
  66. package/lib/commonjs/components/HMSTextInput.js +2 -3
  67. package/lib/commonjs/components/HMSTextInput.js.map +1 -1
  68. package/lib/commonjs/components/Header.js +11 -3
  69. package/lib/commonjs/components/Header.js.map +1 -1
  70. package/lib/commonjs/components/LeaveRoomBottomSheet.js +4 -7
  71. package/lib/commonjs/components/LeaveRoomBottomSheet.js.map +1 -1
  72. package/lib/commonjs/components/Meeting.js +2 -13
  73. package/lib/commonjs/components/Meeting.js.map +1 -1
  74. package/lib/commonjs/components/MeetingScreenContent.js +45 -45
  75. package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
  76. package/lib/commonjs/components/MiniView.js +12 -13
  77. package/lib/commonjs/components/MiniView.js.map +1 -1
  78. package/lib/commonjs/components/OverlayedViews.js +6 -2
  79. package/lib/commonjs/components/OverlayedViews.js.map +1 -1
  80. package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js +1 -0
  81. package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js.map +1 -1
  82. package/lib/commonjs/components/PeerSettingsModalContent.js +2 -1
  83. package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
  84. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +0 -1
  85. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
  86. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +2 -1
  87. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
  88. package/lib/commonjs/components/PeerVideoTile/VideoView.js +0 -1
  89. package/lib/commonjs/components/PeerVideoTile/VideoView.js.map +1 -1
  90. package/lib/commonjs/components/PressableIcon.js +6 -2
  91. package/lib/commonjs/components/PressableIcon.js.map +1 -1
  92. package/lib/commonjs/components/Preview.js +2 -1
  93. package/lib/commonjs/components/Preview.js.map +1 -1
  94. package/lib/commonjs/components/RoomSettingsModalContent.js +25 -9
  95. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  96. package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js +1 -1
  97. package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js.map +1 -1
  98. package/lib/commonjs/components/TilesContainer.js +3 -3
  99. package/lib/commonjs/components/TilesContainer.js.map +1 -1
  100. package/lib/commonjs/components/WebrtcView.js +37 -2
  101. package/lib/commonjs/components/WebrtcView.js.map +1 -1
  102. package/lib/commonjs/hooks-util-selectors.js +2 -1
  103. package/lib/commonjs/hooks-util-selectors.js.map +1 -1
  104. package/lib/commonjs/hooks-util.js +78 -31
  105. package/lib/commonjs/hooks-util.js.map +1 -1
  106. package/lib/commonjs/redux/actionTypes.js +3 -1
  107. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  108. package/lib/commonjs/redux/actions/index.js +8 -1
  109. package/lib/commonjs/redux/actions/index.js.map +1 -1
  110. package/lib/commonjs/redux/reducers/appState.js +9 -1
  111. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  112. package/lib/commonjs/utils/theme.js +0 -1
  113. package/lib/commonjs/utils/theme.js.map +1 -1
  114. package/lib/commonjs/utils/types.js +3 -3
  115. package/lib/commonjs/utils/types.js.map +1 -1
  116. package/lib/commonjs/utils.js +0 -1
  117. package/lib/commonjs/utils.js.map +1 -1
  118. package/lib/module/HMSRoomSetup.js +2 -1
  119. package/lib/module/HMSRoomSetup.js.map +1 -1
  120. package/lib/module/Icons/Recording/assets/recording-pause.png +0 -0
  121. package/lib/module/Icons/Recording/assets/recording-pause@2x.png +0 -0
  122. package/lib/module/Icons/Recording/assets/recording-pause@3x.png +0 -0
  123. package/lib/module/Icons/Recording/index.js +1 -1
  124. package/lib/module/Icons/Recording/index.js.map +1 -1
  125. package/lib/module/components/AnimatedFooter.js +5 -3
  126. package/lib/module/components/AnimatedFooter.js.map +1 -1
  127. package/lib/module/components/AnimatedHLSFooter.js +5 -10
  128. package/lib/module/components/AnimatedHLSFooter.js.map +1 -1
  129. package/lib/module/components/AnimatedHeader.js +18 -6
  130. package/lib/module/components/AnimatedHeader.js.map +1 -1
  131. package/lib/module/components/AvatarView.js +0 -1
  132. package/lib/module/components/AvatarView.js.map +1 -1
  133. package/lib/module/components/BottomSheet.js +24 -8
  134. package/lib/module/components/BottomSheet.js.map +1 -1
  135. package/lib/module/components/Chat/ChatBanner.js +10 -3
  136. package/lib/module/components/Chat/ChatBanner.js.map +1 -1
  137. package/lib/module/components/Chat/ChatFilterBottomSheetView.js +7 -2
  138. package/lib/module/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
  139. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +16 -12
  140. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
  141. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsView.js +6 -4
  142. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
  143. package/lib/module/components/DefaultModal.js +9 -1
  144. package/lib/module/components/DefaultModal.js.map +1 -1
  145. package/lib/module/components/DisplayView.js +5 -12
  146. package/lib/module/components/DisplayView.js.map +1 -1
  147. package/lib/module/components/EndRoomModal.js +1 -2
  148. package/lib/module/components/EndRoomModal.js.map +1 -1
  149. package/lib/module/components/EndRoomModalContent.js +2 -1
  150. package/lib/module/components/EndRoomModalContent.js.map +1 -1
  151. package/lib/module/components/Footer.js +12 -9
  152. package/lib/module/components/Footer.js.map +1 -1
  153. package/lib/module/components/GridView.js +54 -10
  154. package/lib/module/components/GridView.js.map +1 -1
  155. package/lib/module/components/HLSFooter.js +3 -1
  156. package/lib/module/components/HLSFooter.js.map +1 -1
  157. package/lib/module/components/HLSView.js +2 -2
  158. package/lib/module/components/HLSView.js.map +1 -1
  159. package/lib/module/components/HMSHLSMessageList.js +5 -2
  160. package/lib/module/components/HMSHLSMessageList.js.map +1 -1
  161. package/lib/module/components/HMSKeyboardAvoidingView.android.js +33 -0
  162. package/lib/module/components/HMSKeyboardAvoidingView.android.js.map +1 -0
  163. package/lib/module/components/HMSKeyboardAvoidingView.js +3 -1
  164. package/lib/module/components/HMSKeyboardAvoidingView.js.map +1 -1
  165. package/lib/module/components/HMSLiveIndicator.js +9 -60
  166. package/lib/module/components/HMSLiveIndicator.js.map +1 -1
  167. package/lib/module/components/HMSLiveViewerCount.js +70 -0
  168. package/lib/module/components/HMSLiveViewerCount.js.map +1 -0
  169. package/lib/module/components/HMSManageAudioOutput.js +0 -1
  170. package/lib/module/components/HMSManageAudioOutput.js.map +1 -1
  171. package/lib/module/components/HMSNotifications.js +9 -2
  172. package/lib/module/components/HMSNotifications.js.map +1 -1
  173. package/lib/module/components/HMSOverlayChatView.js +11 -2
  174. package/lib/module/components/HMSOverlayChatView.js.map +1 -1
  175. package/lib/module/components/HMSPreviewEditName.js +6 -1
  176. package/lib/module/components/HMSPreviewEditName.js.map +1 -1
  177. package/lib/module/components/HMSPreviewHLSLiveIndicator.js +2 -1
  178. package/lib/module/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
  179. package/lib/module/components/HMSRecordingIndicator.js +15 -4
  180. package/lib/module/components/HMSRecordingIndicator.js.map +1 -1
  181. package/lib/module/components/HMSRoomOptions.js +3 -6
  182. package/lib/module/components/HMSRoomOptions.js.map +1 -1
  183. package/lib/module/components/HMSTextInput.js +2 -3
  184. package/lib/module/components/HMSTextInput.js.map +1 -1
  185. package/lib/module/components/Header.js +10 -3
  186. package/lib/module/components/Header.js.map +1 -1
  187. package/lib/module/components/LeaveRoomBottomSheet.js +5 -7
  188. package/lib/module/components/LeaveRoomBottomSheet.js.map +1 -1
  189. package/lib/module/components/Meeting.js +3 -14
  190. package/lib/module/components/Meeting.js.map +1 -1
  191. package/lib/module/components/MeetingScreenContent.js +50 -50
  192. package/lib/module/components/MeetingScreenContent.js.map +1 -1
  193. package/lib/module/components/MiniView.js +12 -13
  194. package/lib/module/components/MiniView.js.map +1 -1
  195. package/lib/module/components/OverlayedViews.js +6 -2
  196. package/lib/module/components/OverlayedViews.js.map +1 -1
  197. package/lib/module/components/Participants/ParticipantsGroupHeader.js +1 -0
  198. package/lib/module/components/Participants/ParticipantsGroupHeader.js.map +1 -1
  199. package/lib/module/components/PeerSettingsModalContent.js +2 -1
  200. package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
  201. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +0 -1
  202. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
  203. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +2 -1
  204. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
  205. package/lib/module/components/PeerVideoTile/VideoView.js +0 -1
  206. package/lib/module/components/PeerVideoTile/VideoView.js.map +1 -1
  207. package/lib/module/components/PressableIcon.js +6 -2
  208. package/lib/module/components/PressableIcon.js.map +1 -1
  209. package/lib/module/components/Preview.js +2 -1
  210. package/lib/module/components/Preview.js.map +1 -1
  211. package/lib/module/components/RoomSettingsModalContent.js +26 -10
  212. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  213. package/lib/module/components/RoomSettingsModalDebugModeContent.js +2 -2
  214. package/lib/module/components/RoomSettingsModalDebugModeContent.js.map +1 -1
  215. package/lib/module/components/TilesContainer.js +3 -3
  216. package/lib/module/components/TilesContainer.js.map +1 -1
  217. package/lib/module/components/WebrtcView.js +37 -2
  218. package/lib/module/components/WebrtcView.js.map +1 -1
  219. package/lib/module/hooks-util-selectors.js +2 -1
  220. package/lib/module/hooks-util-selectors.js.map +1 -1
  221. package/lib/module/hooks-util.js +78 -32
  222. package/lib/module/hooks-util.js.map +1 -1
  223. package/lib/module/redux/actionTypes.js +3 -1
  224. package/lib/module/redux/actionTypes.js.map +1 -1
  225. package/lib/module/redux/actions/index.js +6 -0
  226. package/lib/module/redux/actions/index.js.map +1 -1
  227. package/lib/module/redux/reducers/appState.js +9 -1
  228. package/lib/module/redux/reducers/appState.js.map +1 -1
  229. package/lib/module/utils/theme.js +0 -1
  230. package/lib/module/utils/theme.js.map +1 -1
  231. package/lib/module/utils/types.js +2 -2
  232. package/lib/module/utils/types.js.map +1 -1
  233. package/lib/module/utils.js +0 -1
  234. package/lib/module/utils.js.map +1 -1
  235. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  236. package/lib/typescript/Icons/Recording/index.d.ts +1 -1
  237. package/lib/typescript/Icons/Recording/index.d.ts.map +1 -1
  238. package/lib/typescript/components/AnimatedFooter.d.ts.map +1 -1
  239. package/lib/typescript/components/AnimatedHLSFooter.d.ts.map +1 -1
  240. package/lib/typescript/components/AnimatedHeader.d.ts.map +1 -1
  241. package/lib/typescript/components/BottomSheet.d.ts +2 -0
  242. package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
  243. package/lib/typescript/components/Chat/ChatBanner.d.ts.map +1 -1
  244. package/lib/typescript/components/Chat/ChatFilterBottomSheetView.d.ts.map +1 -1
  245. package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.d.ts.map +1 -1
  246. package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsView.d.ts.map +1 -1
  247. package/lib/typescript/components/DefaultModal.d.ts.map +1 -1
  248. package/lib/typescript/components/DisplayView.d.ts.map +1 -1
  249. package/lib/typescript/components/EndRoomModal.d.ts.map +1 -1
  250. package/lib/typescript/components/EndRoomModalContent.d.ts.map +1 -1
  251. package/lib/typescript/components/Footer.d.ts +1 -1
  252. package/lib/typescript/components/Footer.d.ts.map +1 -1
  253. package/lib/typescript/components/GridView.d.ts.map +1 -1
  254. package/lib/typescript/components/HLSView.d.ts.map +1 -1
  255. package/lib/typescript/components/HMSHLSMessageList.d.ts.map +1 -1
  256. package/lib/typescript/components/HMSKeyboardAvoidingView.android.d.ts +9 -0
  257. package/lib/typescript/components/HMSKeyboardAvoidingView.android.d.ts.map +1 -0
  258. package/lib/typescript/components/HMSKeyboardAvoidingView.d.ts +2 -1
  259. package/lib/typescript/components/HMSKeyboardAvoidingView.d.ts.map +1 -1
  260. package/lib/typescript/components/HMSLiveIndicator.d.ts.map +1 -1
  261. package/lib/typescript/components/HMSLiveViewerCount.d.ts +3 -0
  262. package/lib/typescript/components/HMSLiveViewerCount.d.ts.map +1 -0
  263. package/lib/typescript/components/HMSNotifications.d.ts.map +1 -1
  264. package/lib/typescript/components/HMSOverlayChatView.d.ts +5 -1
  265. package/lib/typescript/components/HMSOverlayChatView.d.ts.map +1 -1
  266. package/lib/typescript/components/HMSPreviewEditName.d.ts.map +1 -1
  267. package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts.map +1 -1
  268. package/lib/typescript/components/HMSRecordingIndicator.d.ts.map +1 -1
  269. package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
  270. package/lib/typescript/components/HMSTextInput.d.ts.map +1 -1
  271. package/lib/typescript/components/Header.d.ts +1 -0
  272. package/lib/typescript/components/Header.d.ts.map +1 -1
  273. package/lib/typescript/components/LeaveRoomBottomSheet.d.ts.map +1 -1
  274. package/lib/typescript/components/Meeting.d.ts.map +1 -1
  275. package/lib/typescript/components/MeetingScreenContent.d.ts.map +1 -1
  276. package/lib/typescript/components/MiniView.d.ts +2 -3
  277. package/lib/typescript/components/MiniView.d.ts.map +1 -1
  278. package/lib/typescript/components/OverlayedViews.d.ts +4 -1
  279. package/lib/typescript/components/OverlayedViews.d.ts.map +1 -1
  280. package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
  281. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -1
  282. package/lib/typescript/components/PressableIcon.d.ts.map +1 -1
  283. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  284. package/lib/typescript/components/RoomSettingsModalDebugModeContent.d.ts.map +1 -1
  285. package/lib/typescript/components/TilesContainer.d.ts.map +1 -1
  286. package/lib/typescript/components/WebrtcView.d.ts +2 -0
  287. package/lib/typescript/components/WebrtcView.d.ts.map +1 -1
  288. package/lib/typescript/hooks-util-selectors.d.ts.map +1 -1
  289. package/lib/typescript/hooks-util.d.ts +5 -0
  290. package/lib/typescript/hooks-util.d.ts.map +1 -1
  291. package/lib/typescript/redux/actionTypes.d.ts +1 -0
  292. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  293. package/lib/typescript/redux/actions/index.d.ts +6 -0
  294. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  295. package/lib/typescript/redux/index.d.ts +1 -0
  296. package/lib/typescript/redux/index.d.ts.map +1 -1
  297. package/lib/typescript/redux/reducers/appState.d.ts +1 -0
  298. package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
  299. package/lib/typescript/redux/reducers/index.d.ts +1 -0
  300. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  301. package/lib/typescript/utils/types.d.ts +1 -0
  302. package/lib/typescript/utils/types.d.ts.map +1 -1
  303. package/package.json +179 -179
  304. package/src/HMSRoomSetup.tsx +4 -1
  305. package/src/Icons/Recording/assets/recording-pause.png +0 -0
  306. package/src/Icons/Recording/assets/recording-pause@2x.png +0 -0
  307. package/src/Icons/Recording/assets/recording-pause@3x.png +0 -0
  308. package/src/Icons/Recording/index.tsx +3 -1
  309. package/src/components/AnimatedFooter.tsx +9 -3
  310. package/src/components/AnimatedHLSFooter.tsx +8 -17
  311. package/src/components/AnimatedHeader.tsx +16 -5
  312. package/src/components/BottomSheet.tsx +52 -9
  313. package/src/components/Chat/ChatBanner.tsx +9 -0
  314. package/src/components/Chat/ChatFilterBottomSheetView.tsx +8 -1
  315. package/src/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.tsx +17 -7
  316. package/src/components/ChatAndParticipants/ChatAndParticipantsView.tsx +5 -4
  317. package/src/components/DefaultModal.tsx +12 -1
  318. package/src/components/DisplayView.tsx +4 -13
  319. package/src/components/EndRoomModal.tsx +0 -1
  320. package/src/components/EndRoomModalContent.tsx +2 -1
  321. package/src/components/Footer.tsx +19 -10
  322. package/src/components/GridView.tsx +54 -15
  323. package/src/components/HLSFooter.tsx +1 -1
  324. package/src/components/HLSView.tsx +2 -1
  325. package/src/components/HMSHLSMessageList.tsx +8 -2
  326. package/src/components/HMSKeyboardAvoidingView.android.tsx +45 -0
  327. package/src/components/HMSKeyboardAvoidingView.tsx +6 -3
  328. package/src/components/HMSLiveIndicator.tsx +8 -73
  329. package/src/components/HMSLiveViewerCount.tsx +90 -0
  330. package/src/components/HMSNotifications.tsx +11 -1
  331. package/src/components/HMSOverlayChatView.tsx +18 -2
  332. package/src/components/HMSPreviewEditName.tsx +10 -1
  333. package/src/components/HMSPreviewHLSLiveIndicator.tsx +2 -1
  334. package/src/components/HMSRecordingIndicator.tsx +28 -2
  335. package/src/components/HMSRoomOptions.tsx +0 -3
  336. package/src/components/HMSTextInput.tsx +1 -0
  337. package/src/components/Header.tsx +14 -3
  338. package/src/components/LeaveRoomBottomSheet.tsx +3 -6
  339. package/src/components/Meeting.tsx +2 -19
  340. package/src/components/MeetingScreenContent.tsx +67 -62
  341. package/src/components/MiniView.tsx +18 -15
  342. package/src/components/OverlayedViews.tsx +6 -3
  343. package/src/components/PeerSettingsModalContent.tsx +2 -1
  344. package/src/components/PeerVideoTile/PeerVideoTileView.tsx +2 -1
  345. package/src/components/PressableIcon.tsx +22 -17
  346. package/src/components/Preview.tsx +2 -2
  347. package/src/components/RoomSettingsModalContent.tsx +22 -6
  348. package/src/components/RoomSettingsModalDebugModeContent.tsx +2 -1
  349. package/src/components/TilesContainer.tsx +9 -5
  350. package/src/components/WebrtcView.tsx +59 -22
  351. package/src/hooks-util-selectors.tsx +2 -1
  352. package/src/hooks-util.ts +86 -43
  353. package/src/redux/actionTypes.ts +3 -0
  354. package/src/redux/actions/index.ts +5 -0
  355. package/src/redux/reducers/appState.ts +8 -0
  356. package/src/utils/types.ts +12 -3
@@ -6,6 +6,8 @@ import Animated, {
6
6
  } from 'react-native-reanimated';
7
7
  import type { SharedValue } from 'react-native-reanimated';
8
8
 
9
+ import { useFooterHeight } from './Footer';
10
+
9
11
  interface AnimatedFooterProps {
10
12
  offset: SharedValue<number>;
11
13
  }
@@ -14,12 +16,16 @@ export const AnimatedFooter: React.FC<AnimatedFooterProps> = ({
14
16
  offset,
15
17
  children,
16
18
  }) => {
19
+ const footerHeight = useFooterHeight();
20
+
17
21
  const animatedStyles = useAnimatedStyle(() => {
18
22
  return {
19
- opacity: interpolate(offset.value, [0, 0.7, 1], [0, 0.5, 1]),
20
- transform: [{ translateY: interpolate(offset.value, [0, 1], [10, 0]) }],
23
+ opacity: interpolate(offset.value, [0, 0.3, 1], [0, 0.7, 1]),
24
+ transform: [
25
+ { translateY: interpolate(offset.value, [0, 1], [footerHeight, 0]) },
26
+ ],
21
27
  };
22
- }, []);
28
+ }, [footerHeight]);
23
29
 
24
30
  const animatedProps = useAnimatedProps((): {
25
31
  pointerEvents: 'none' | 'auto';
@@ -2,11 +2,12 @@ import * as React from 'react';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
  import Animated, {
4
4
  interpolate,
5
- useAnimatedProps,
6
5
  useAnimatedStyle,
7
6
  } from 'react-native-reanimated';
8
7
  import type { SharedValue } from 'react-native-reanimated';
9
8
 
9
+ import { useFooterHeight } from './Footer';
10
+
10
11
  interface AnimatedHLSFooterProps {
11
12
  offset: SharedValue<number>;
12
13
  style?: StyleProp<Animated.AnimateStyle<StyleProp<ViewStyle>>>;
@@ -17,27 +18,17 @@ export const AnimatedHLSFooter: React.FC<AnimatedHLSFooterProps> = ({
17
18
  children,
18
19
  style,
19
20
  }) => {
20
- const animatedStyles = useAnimatedStyle(() => {
21
- return {
22
- opacity: interpolate(offset.value, [0, 0.7, 1], [0, 0.5, 1]),
23
- transform: [{ translateY: interpolate(offset.value, [0, 1], [10, 0]) }],
24
- };
25
- }, []);
21
+ const footerHeight = useFooterHeight();
26
22
 
27
- const animatedProps = useAnimatedProps((): {
28
- pointerEvents: 'none' | 'auto';
29
- } => {
23
+ const animatedStyles = useAnimatedStyle(() => {
30
24
  return {
31
- pointerEvents: offset.value === 0 ? 'none' : 'auto',
25
+ transform: [
26
+ { translateY: interpolate(offset.value, [0, 1], [footerHeight, 0]) },
27
+ ],
32
28
  };
33
29
  }, []);
34
30
 
35
31
  return (
36
- <Animated.View
37
- style={[animatedStyles, style]}
38
- animatedProps={animatedProps}
39
- >
40
- {children}
41
- </Animated.View>
32
+ <Animated.View style={[animatedStyles, style]}>{children}</Animated.View>
42
33
  );
43
34
  };
@@ -1,11 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { StyleSheet } from 'react-native';
3
3
  import Animated, {
4
+ interpolate,
4
5
  useAnimatedProps,
5
6
  useAnimatedStyle,
6
7
  } from 'react-native-reanimated';
7
8
  import type { SharedValue } from 'react-native-reanimated';
8
9
 
10
+ import { useHeaderHeight } from './Header';
9
11
  import { useIsHLSViewer } from '../hooks-util';
10
12
 
11
13
  export interface AnimatedHeaderProps {
@@ -17,13 +19,22 @@ export const AnimatedHeader: React.FC<AnimatedHeaderProps> = ({
17
19
  offset,
18
20
  }) => {
19
21
  const isHLSViewer = useIsHLSViewer();
22
+ const headerHeight = useHeaderHeight();
20
23
 
21
24
  const animatedStyles = useAnimatedStyle(() => {
25
+ if (isHLSViewer) {
26
+ return {
27
+ opacity: offset.value,
28
+ transform: [{ translateY: 0 }],
29
+ };
30
+ }
22
31
  return {
23
- opacity: offset.value,
24
- // transform: [{ translateY: interpolate(offset.value, [0, 1], [-10, 0]) }]
32
+ opacity: interpolate(offset.value, [0, 0.3, 1], [0, 0.7, 1]),
33
+ transform: [
34
+ { translateY: interpolate(offset.value, [0, 1], [-headerHeight, 0]) },
35
+ ],
25
36
  };
26
- }, []);
37
+ }, [headerHeight, isHLSViewer]);
27
38
 
28
39
  const animatedProps = useAnimatedProps((): {
29
40
  pointerEvents: 'none' | 'auto';
@@ -35,7 +46,7 @@ export const AnimatedHeader: React.FC<AnimatedHeaderProps> = ({
35
46
 
36
47
  return (
37
48
  <Animated.View
38
- style={[isHLSViewer ? styles.hlsContainer : null, animatedStyles]}
49
+ style={[styles.container, animatedStyles]}
39
50
  animatedProps={animatedProps}
40
51
  >
41
52
  {children}
@@ -44,7 +55,7 @@ export const AnimatedHeader: React.FC<AnimatedHeaderProps> = ({
44
55
  };
45
56
 
46
57
  const styles = StyleSheet.create({
47
- hlsContainer: {
58
+ container: {
48
59
  position: 'absolute',
49
60
  top: 0,
50
61
  width: '100%',
@@ -1,8 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import Modal from 'react-native-modal';
3
3
  import type { ReactNativeModal } from 'react-native-modal';
4
- import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
- import type { StyleProp, TextProps, TouchableOpacityProps, ViewStyle } from 'react-native';
4
+ import { KeyboardAvoidingView, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
+ import type {
6
+ StyleProp,
7
+ TextProps,
8
+ TouchableOpacityProps,
9
+ ViewStyle,
10
+ } from 'react-native';
6
11
 
7
12
  import { CloseIcon } from '../Icons';
8
13
  import {
@@ -10,6 +15,7 @@ import {
10
15
  useHMSRoomStyle,
11
16
  useHMSRoomStyleSheet,
12
17
  } from '../hooks-util';
18
+ import { useIsLandscapeOrientation } from '../utils/dimension';
13
19
 
14
20
  type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };
15
21
 
@@ -20,12 +26,22 @@ export type BottomSheetProps = WithRequired<
20
26
  // closes modal and no action will be taken after modal has been closed
21
27
  dismissModal(): void;
22
28
  containerStyle?: StyleProp<ViewStyle>;
29
+ bottomOffsetSpace?: number;
30
+ fullWidth?: boolean;
23
31
  };
24
32
 
25
33
  export const BottomSheet: React.FC<BottomSheetProps> & {
26
34
  Header: React.FC<HeaderProps>;
27
35
  Divider: React.FC<BottomSheetDividerProps>;
28
- } = ({ dismissModal, style, children, containerStyle, ...resetProps }) => {
36
+ } = ({
37
+ dismissModal,
38
+ fullWidth = false,
39
+ style,
40
+ children,
41
+ containerStyle,
42
+ bottomOffsetSpace = 32,
43
+ ...resetProps
44
+ }) => {
29
45
  const { background_dim: backgroundDimColor } = useHMSRoomColorPalette();
30
46
 
31
47
  const containerStyles = useHMSRoomStyle((theme) => ({
@@ -34,6 +50,10 @@ export const BottomSheet: React.FC<BottomSheetProps> & {
34
50
 
35
51
  const { handleModalHideAction } = useBottomSheetActionHandlers();
36
52
 
53
+ const isLandscapeOrientation = useIsLandscapeOrientation();
54
+
55
+ const Container = resetProps.avoidKeyboard && Platform.OS === 'android' ? KeyboardAvoidingView : View;
56
+
37
57
  return (
38
58
  <Modal
39
59
  {...resetProps}
@@ -53,11 +73,23 @@ export const BottomSheet: React.FC<BottomSheetProps> & {
53
73
  supportedOrientations={
54
74
  resetProps.supportedOrientations ?? ['portrait', 'landscape']
55
75
  }
56
- // coverScreen={true}
76
+ statusBarTranslucent={true}
57
77
  >
58
- <View style={[styles.container, containerStyles, containerStyle]}>
78
+ <Container
79
+ behavior='padding'
80
+ style={[
81
+ isLandscapeOrientation && !fullWidth
82
+ ? styles.landscapeContainer
83
+ : styles.container,
84
+ containerStyles,
85
+ containerStyle,
86
+ ]}
87
+ >
59
88
  {children}
60
- </View>
89
+ {typeof bottomOffsetSpace === 'number' && bottomOffsetSpace > 0 ? (
90
+ <View style={{ height: bottomOffsetSpace, width: '100%' }} />
91
+ ) : null}
92
+ </Container>
61
93
  </Modal>
62
94
  );
63
95
  };
@@ -93,12 +125,18 @@ const BottomSheetHeader: React.FC<HeaderProps> = ({
93
125
  return (
94
126
  <View style={styles.header}>
95
127
  <View>
96
- <Text testID={headingTestID} style={[styles.headerText, hmsRoomStyles.headerText]}>
128
+ <Text
129
+ testID={headingTestID}
130
+ style={[styles.headerText, hmsRoomStyles.headerText]}
131
+ >
97
132
  {heading}
98
133
  </Text>
99
134
 
100
135
  {subheading ? (
101
- <Text testID={subheadingTestID} style={[styles.subheadingText, hmsRoomStyles.subheadingText]}>
136
+ <Text
137
+ testID={subheadingTestID}
138
+ style={[styles.subheadingText, hmsRoomStyles.subheadingText]}
139
+ >
102
140
  {subheading}
103
141
  </Text>
104
142
  ) : null}
@@ -168,7 +206,12 @@ const styles = StyleSheet.create({
168
206
  container: {
169
207
  borderTopLeftRadius: 16,
170
208
  borderTopRightRadius: 16,
171
- paddingBottom: 32,
209
+ },
210
+ landscapeContainer: {
211
+ borderRadius: 16,
212
+ width: '60%',
213
+ alignSelf: 'center',
214
+ marginBottom: 12,
172
215
  },
173
216
  header: {
174
217
  flexDirection: 'row',
@@ -2,8 +2,11 @@ import * as React from 'react';
2
2
  import { View, StyleSheet, Text, Image } from 'react-native';
3
3
 
4
4
  import { useHMSRoomStyleSheet } from '../../hooks-util';
5
+ import { useIsLandscapeOrientation } from '../../utils/dimension';
5
6
 
6
7
  export const ChatBanner = () => {
8
+ const isLandscapeOrientation = useIsLandscapeOrientation();
9
+
7
10
  const hmsRoomStyles = useHMSRoomStyleSheet((theme, typography) => ({
8
11
  title: {
9
12
  color: theme.palette.on_surface_high,
@@ -19,6 +22,7 @@ export const ChatBanner = () => {
19
22
  <View style={styles.container}>
20
23
  <Image
21
24
  source={require('../../assets/empty-chat-illustration/empty-chat.png')}
25
+ style={isLandscapeOrientation ? styles.landscapeCoverImage : null}
22
26
  />
23
27
  <Text style={[styles.title, hmsRoomStyles.title]}>
24
28
  Start a Conversation
@@ -36,8 +40,13 @@ const styles = StyleSheet.create({
36
40
  flex: 1,
37
41
  alignItems: 'center',
38
42
  justifyContent: 'center',
43
+ overflow: 'hidden',
39
44
  // transform: [Platform.OS === 'android' ? { scale: -1 } : { scaleY: -1 }],
40
45
  },
46
+ landscapeCoverImage: {
47
+ flexShrink: 1,
48
+ resizeMode: 'contain',
49
+ },
41
50
  title: {
42
51
  fontSize: 20,
43
52
  lineHeight: 24,
@@ -8,6 +8,7 @@ import { ChatFilterView } from './ChatFilterView';
8
8
  import { useHMSRoomStyleSheet } from '../../hooks-util';
9
9
  import type { RootState } from '../../redux';
10
10
  import { setChatFilterSheetVisible } from '../../redux/actions';
11
+ import { useIsLandscapeOrientation } from '../../utils/dimension';
11
12
 
12
13
  interface ChatFilterBottomSheetViewProps {}
13
14
 
@@ -15,6 +16,7 @@ const _ChatFilterBottomSheetView: React.FC<
15
16
  ChatFilterBottomSheetViewProps
16
17
  > = ({}) => {
17
18
  const dispatch = useDispatch();
19
+ const isLandscapeOrientation = useIsLandscapeOrientation();
18
20
  const chatFilterSheetVisible = useSelector(
19
21
  (state: RootState) => state.app.chatFilterSheetVisible
20
22
  );
@@ -48,7 +50,11 @@ const _ChatFilterBottomSheetView: React.FC<
48
50
  <Animated.View
49
51
  entering={SlideInDown}
50
52
  exiting={SlideOutDown}
51
- style={[styles.contentContainer, hmsRoomStyles.contentContainer]}
53
+ style={[
54
+ styles.contentContainer,
55
+ hmsRoomStyles.contentContainer,
56
+ isLandscapeOrientation ? { maxHeight: '88%' } : null,
57
+ ]}
52
58
  >
53
59
  <ChatFilterView />
54
60
  </Animated.View>
@@ -63,6 +69,7 @@ const styles = StyleSheet.create({
63
69
  height: '100%',
64
70
  zIndex: 1,
65
71
  justifyContent: 'flex-end',
72
+ alignSelf: 'center',
66
73
  },
67
74
  backdrop: {
68
75
  position: 'absolute',
@@ -1,28 +1,40 @@
1
1
  import * as React from 'react';
2
2
  import { StyleSheet } from 'react-native';
3
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
3
 
5
4
  import { BottomSheet } from '../BottomSheet';
6
- import { useShowChatAndParticipants } from '../../hooks-util';
5
+ import { useHMSRoomStyleSheet, useShowChatAndParticipants } from '../../hooks-util';
7
6
  import { ChatAndParticipantsView } from './ChatAndParticipantsView';
8
- import { HEADER_HEIGHT } from '../Header';
7
+ import { useHeaderHeight } from '../Header';
8
+ import { useIsLandscapeOrientation } from '../../utils/dimension';
9
9
 
10
10
  export const ChatAndParticipantsBottomSheet = () => {
11
- const { top: topSafeArea } = useSafeAreaInsets();
11
+ const headerHeight = useHeaderHeight();
12
+ const isLandscapeOrientation = useIsLandscapeOrientation();
12
13
 
13
14
  const { modalVisible, hide } = useShowChatAndParticipants();
14
15
 
16
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme) => ({
17
+ contentContainer: {
18
+ backgroundColor: theme.palette.surface_dim,
19
+ },
20
+ }));
21
+
15
22
  const closeChatWindow = () => hide('modal');
16
23
 
17
24
  return (
18
25
  <BottomSheet
26
+ fullWidth={true}
19
27
  dismissModal={closeChatWindow}
20
28
  isVisible={modalVisible}
21
29
  avoidKeyboard={true}
22
30
  containerStyle={[
23
31
  styles.bottomSheet,
24
- { marginTop: topSafeArea + HEADER_HEIGHT },
32
+ hmsRoomStyles.contentContainer,
33
+ {
34
+ marginTop: isLandscapeOrientation ? 0 : headerHeight,
35
+ },
25
36
  ]}
37
+ bottomOffsetSpace={0}
26
38
  >
27
39
  <ChatAndParticipantsView />
28
40
  </BottomSheet>
@@ -32,7 +44,5 @@ export const ChatAndParticipantsBottomSheet = () => {
32
44
  const styles = StyleSheet.create({
33
45
  bottomSheet: {
34
46
  flex: 1,
35
- backgroundColor: undefined,
36
- paddingBottom: 0,
37
47
  },
38
48
  });
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { useSelector } from 'react-redux';
3
- import { StyleSheet, View } from 'react-native';
3
+ import { Platform, StyleSheet, View } from 'react-native';
4
+ import { SafeAreaView } from 'react-native-safe-area-context';
4
5
 
5
6
  import {
6
7
  useHMSRoomStyleSheet,
@@ -35,7 +36,7 @@ const _ChatAndParticipantsView: React.FC = () => {
35
36
  activeChatBottomSheetTab === 'Chat' && canShowChat && !overlayChatLayout;
36
37
 
37
38
  return (
38
- <View style={styles.container}>
39
+ <SafeAreaView style={styles.container} edges={['left', 'right']}>
39
40
  <View
40
41
  style={[
41
42
  styles.contentContainer,
@@ -55,7 +56,7 @@ const _ChatAndParticipantsView: React.FC = () => {
55
56
  </View>
56
57
 
57
58
  <ChatFilterBottomSheetView />
58
- </View>
59
+ </SafeAreaView>
59
60
  );
60
61
  };
61
62
 
@@ -68,7 +69,7 @@ const styles = StyleSheet.create({
68
69
  flex: 1,
69
70
  paddingHorizontal: 16,
70
71
  paddingTop: 12,
71
- paddingBottom: 32,
72
+ paddingBottom: Platform.OS === 'ios' ? 32 : 0,
72
73
  borderTopLeftRadius: 16,
73
74
  borderTopRightRadius: 16,
74
75
  },
@@ -8,6 +8,7 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
8
8
  import { COLORS } from '../utils/theme';
9
9
  import { CustomButton } from './CustomButton';
10
10
  import { CloseIcon } from '../Icons';
11
+ import { useIsLandscapeOrientation } from '../utils/dimension';
11
12
 
12
13
  export interface DefaultModalProps {
13
14
  modalVisible: boolean;
@@ -32,6 +33,8 @@ export const DefaultModal: React.FC<DefaultModalProps> = ({
32
33
  modalStyle,
33
34
  }) => {
34
35
  const { left, right } = useSafeAreaInsets();
36
+ const isLandscapeOrientation = useIsLandscapeOrientation();
37
+
35
38
  return (
36
39
  <Modal
37
40
  useNativeDriver={true}
@@ -51,7 +54,9 @@ export const DefaultModal: React.FC<DefaultModalProps> = ({
51
54
  >
52
55
  <View
53
56
  style={[
54
- styles.contentContainer,
57
+ isLandscapeOrientation
58
+ ? styles.landscapeContentContainer
59
+ : styles.contentContainer,
55
60
  modalPosiion === 'flex-end' ? styles.end : styles.center,
56
61
  viewStyle,
57
62
  { marginLeft: left, marginRight: right },
@@ -80,6 +85,12 @@ const styles = StyleSheet.create({
80
85
  // minHeight: '20%',
81
86
  backgroundColor: COLORS.SURFACE.DEFAULT,
82
87
  },
88
+ landscapeContentContainer: {
89
+ maxHeight: '80%',
90
+ maxWidth: '60%',
91
+ // minHeight: '20%',
92
+ backgroundColor: COLORS.SURFACE.DEFAULT,
93
+ },
83
94
  end: {
84
95
  flex: 1,
85
96
  borderTopLeftRadius: 16,
@@ -1,11 +1,7 @@
1
1
  import React, { useRef, useState } from 'react';
2
2
  import { useSelector } from 'react-redux';
3
- import { InteractionManager } from 'react-native';
3
+ import { InteractionManager, View } from 'react-native';
4
4
  import { HMSTrack, HMSCameraControl } from '@100mslive/react-native-hms';
5
- import Animated, {
6
- interpolate,
7
- useAnimatedStyle,
8
- } from 'react-native-reanimated';
9
5
  import type { SharedValue } from 'react-native-reanimated';
10
6
 
11
7
  import { DefaultModal } from './DefaultModal';
@@ -132,19 +128,14 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
132
128
  setModalVisible(ModalTypes.STREAMING_QUALITY_SETTING, true);
133
129
  };
134
130
 
135
- const animatedStyles = useAnimatedStyle(() => {
136
- return {
137
- transform: [{ translateY: interpolate(offset.value, [0, 1], [4, 0]) }],
138
- };
139
- }, []);
140
-
141
131
  return (
142
- <Animated.View style={[{ flex: 1 }, animatedStyles]}>
132
+ <View style={{ flex: 1 }}>
143
133
  {isHLSViewer ? (
144
134
  <HLSView />
145
135
  ) : (
146
136
  <WebrtcView
147
137
  ref={gridViewRef}
138
+ offset={offset}
148
139
  peerTrackNodes={peerTrackNodes}
149
140
  handlePeerTileMorePress={handlePeerTileMorePress}
150
141
  />
@@ -239,6 +230,6 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
239
230
  </DefaultModal>
240
231
  </>
241
232
  )}
242
- </Animated.View>
233
+ </View>
243
234
  );
244
235
  };
@@ -16,7 +16,6 @@ export const EndRoomModal: React.FC<EndRoomModalProps> = () => {
16
16
  <BottomSheet
17
17
  dismissModal={dismissModal}
18
18
  isVisible={modalVisibleType === ModalTypes.END_ROOM}
19
- animationOutTiming={700}
20
19
  >
21
20
  <EndRoomModalContent dismissModal={dismissModal} />
22
21
  </BottomSheet>
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { useSelector } from 'react-redux';
3
3
  import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
4
+ import { HMSStreamingState } from '@100mslive/react-native-hms';
4
5
 
5
6
  import { useHMSRoomStyleSheet, useLeaveMethods } from '../hooks-util';
6
7
  import { AlertTriangleIcon, CloseIcon } from '../Icons';
@@ -40,7 +41,7 @@ export const EndRoomModalContent: React.FC<EndRoomModalContentProps> = ({
40
41
 
41
42
  const isStreaming = useSelector(
42
43
  (state: RootState) =>
43
- state.hmsStates.room?.hlsStreamingState?.running ?? false
44
+ state.hmsStates.room?.hlsStreamingState?.state === HMSStreamingState.STARTED ?? false
44
45
  );
45
46
 
46
47
  return (
@@ -32,6 +32,7 @@ export const _Footer: React.FC<FooterProps> = () => {
32
32
  const canPublishAudio = useCanPublishAudio();
33
33
  const canPublishVideo = useCanPublishVideo();
34
34
  const canPublishScreen = useCanPublishScreen();
35
+ const editUsernameDisabled = useSelector((state: RootState) => state.app.editUsernameDisabled);
35
36
 
36
37
  const isViewer = !(canPublishAudio || canPublishVideo || canPublishScreen);
37
38
 
@@ -52,12 +53,18 @@ export const _Footer: React.FC<FooterProps> = () => {
52
53
  !!state.hmsStates.localPeer?.role?.permissions?.browserRecording
53
54
  );
54
55
 
56
+ const canEditUsernameFromRoomModal = isViewer && !editUsernameDisabled;
57
+
58
+ const canShowHandRaiseInFooter = !isOnStage && isViewer; // on_stage_exp object undefined && viewer -> show in footer
59
+ const canShowHandRaiseInRoomModal = !isOnStage && !isViewer; // on_stage_exp object undefined && publisher -> show in room modal
60
+
55
61
  const canShowOptions =
56
- isViewer ||
57
- canPublishScreen ||
58
62
  canShowParticipants ||
63
+ canPublishScreen ||
59
64
  canShowBRB ||
60
- canStartRecording;
65
+ canShowHandRaiseInRoomModal ||
66
+ canStartRecording ||
67
+ canEditUsernameFromRoomModal;
61
68
 
62
69
  const footerActionButtons = useMemo(() => {
63
70
  const actions = [];
@@ -66,7 +73,7 @@ export const _Footer: React.FC<FooterProps> = () => {
66
73
  actions.push('chat');
67
74
  }
68
75
 
69
- if (!isOnStage && isViewer) {
76
+ if (canShowHandRaiseInFooter) {
70
77
  actions.unshift('hand-raise');
71
78
  }
72
79
 
@@ -86,10 +93,9 @@ export const _Footer: React.FC<FooterProps> = () => {
86
93
 
87
94
  return actions;
88
95
  }, [
89
- isOnStage,
96
+ canShowHandRaiseInFooter,
90
97
  canShowOptions,
91
98
  canShowChat,
92
- isViewer,
93
99
  canPublishAudio,
94
100
  canPublishVideo,
95
101
  ]);
@@ -101,7 +107,7 @@ export const _Footer: React.FC<FooterProps> = () => {
101
107
  return (
102
108
  <SafeAreaView
103
109
  style={isHLSViewer ? null : containerStyles}
104
- edges={['bottom']}
110
+ edges={['bottom', 'left', 'right']}
105
111
  >
106
112
  <View
107
113
  style={[
@@ -136,12 +142,15 @@ export const _Footer: React.FC<FooterProps> = () => {
136
142
  );
137
143
  };
138
144
 
139
- export const useFooterHeight = () => {
145
+ export const useFooterHeight = (excludeSafeArea: boolean = false) => {
140
146
  const isHLSViewer = useIsHLSViewer();
141
147
  const { bottom } = useSafeAreaInsets();
142
148
 
143
149
  return (
144
- bottom + (isHLSViewer ? 8 : 16) + (Platform.OS === 'android' ? 16 : 0) + 40
150
+ (excludeSafeArea ? 0 : bottom) +
151
+ (isHLSViewer ? 8 : 16) +
152
+ (Platform.OS === 'android' ? 16 : 0) +
153
+ 40
145
154
  ); // bottomSafeArea + paddingTop + marginBottom + content
146
155
  };
147
156
 
@@ -152,7 +161,7 @@ const styles = StyleSheet.create({
152
161
  flexDirection: 'row',
153
162
  alignItems: 'center',
154
163
  justifyContent: 'center',
155
- marginBottom: Platform.OS === 'android' ? 16 : 0, // TODO: need to correct hide aimation offsets because of this change
164
+ marginBottom: Platform.OS === 'android' ? 16 : 0, // TODO: need to correct hide animation offsets because of this change
156
165
  },
157
166
  hlsContainer: {
158
167
  paddingTop: 8,