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

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 (345) hide show
  1. package/lib/commonjs/Icons/CC/assets/cc-off-med.png +0 -0
  2. package/lib/commonjs/Icons/CC/assets/cc-off-med@2x.png +0 -0
  3. package/lib/commonjs/Icons/CC/assets/cc-off-med@3x.png +0 -0
  4. package/lib/commonjs/Icons/CC/assets/cc-on-med.png +0 -0
  5. package/lib/commonjs/Icons/CC/assets/cc-on-med@2x.png +0 -0
  6. package/lib/commonjs/Icons/CC/assets/cc-on-med@3x.png +0 -0
  7. package/lib/commonjs/Icons/CC/index.js +39 -0
  8. package/lib/commonjs/Icons/CC/index.js.map +1 -0
  9. package/lib/commonjs/Icons/Close/assets/close-med.png +0 -0
  10. package/lib/commonjs/Icons/Close/assets/close-med@2x.png +0 -0
  11. package/lib/commonjs/Icons/Close/assets/close-med@3x.png +0 -0
  12. package/lib/commonjs/Icons/Close/index.js +7 -2
  13. package/lib/commonjs/Icons/Close/index.js.map +1 -1
  14. package/lib/commonjs/Icons/Maximize/assets/maximize-med.png +0 -0
  15. package/lib/commonjs/Icons/Maximize/assets/maximize-med@2x.png +0 -0
  16. package/lib/commonjs/Icons/Maximize/assets/maximize-med@3x.png +0 -0
  17. package/lib/commonjs/Icons/Maximize/index.js +7 -2
  18. package/lib/commonjs/Icons/Maximize/index.js.map +1 -1
  19. package/lib/commonjs/Icons/Minimize/assets/minimize-med.png +0 -0
  20. package/lib/commonjs/Icons/Minimize/assets/minimize-med@2x.png +0 -0
  21. package/lib/commonjs/Icons/Minimize/assets/minimize-med@3x.png +0 -0
  22. package/lib/commonjs/Icons/Minimize/index.js +7 -2
  23. package/lib/commonjs/Icons/Minimize/index.js.map +1 -1
  24. package/lib/commonjs/Icons/index.js +11 -0
  25. package/lib/commonjs/Icons/index.js.map +1 -1
  26. package/lib/commonjs/components/AnimatedHeader.js +1 -11
  27. package/lib/commonjs/components/AnimatedHeader.js.map +1 -1
  28. package/lib/commonjs/components/Chat/ChatBanner.js +1 -0
  29. package/lib/commonjs/components/Chat/ChatBanner.js.map +1 -1
  30. package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js +10 -7
  31. package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js.map +1 -1
  32. package/lib/commonjs/components/Chat/ChatList.js +4 -2
  33. package/lib/commonjs/components/Chat/ChatList.js.map +1 -1
  34. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js +2 -1
  35. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
  36. package/lib/commonjs/components/DisplayView.js +1 -9
  37. package/lib/commonjs/components/DisplayView.js.map +1 -1
  38. package/lib/commonjs/components/Footer.js +7 -44
  39. package/lib/commonjs/components/Footer.js.map +1 -1
  40. package/lib/commonjs/components/HLSAnimatedDescriptionPane.js +30 -0
  41. package/lib/commonjs/components/HLSAnimatedDescriptionPane.js.map +1 -0
  42. package/lib/commonjs/components/HLSChatFooterView.js +51 -0
  43. package/lib/commonjs/components/HLSChatFooterView.js.map +1 -0
  44. package/lib/commonjs/components/HLSChatHeaderView.js +130 -0
  45. package/lib/commonjs/components/HLSChatHeaderView.js.map +1 -0
  46. package/lib/commonjs/components/HLSChatMessages.js +55 -0
  47. package/lib/commonjs/components/HLSChatMessages.js.map +1 -0
  48. package/lib/commonjs/components/HLSChatView.js +49 -0
  49. package/lib/commonjs/components/HLSChatView.js.map +1 -0
  50. package/lib/commonjs/components/HLSDescriptionPane.js +145 -0
  51. package/lib/commonjs/components/HLSDescriptionPane.js.map +1 -0
  52. package/lib/commonjs/components/HLSDescriptionPaneHeader.js +70 -0
  53. package/lib/commonjs/components/HLSDescriptionPaneHeader.js.map +1 -0
  54. package/lib/commonjs/components/HLSFooter.js +1 -1
  55. package/lib/commonjs/components/HLSFooter.js.map +1 -1
  56. package/lib/commonjs/components/HLSHandRaiseButton.js +38 -0
  57. package/lib/commonjs/components/HLSHandRaiseButton.js.map +1 -0
  58. package/lib/commonjs/components/HLSManageChatTextInput.js +90 -0
  59. package/lib/commonjs/components/HLSManageChatTextInput.js.map +1 -0
  60. package/lib/commonjs/components/HLSNotifications.js +32 -0
  61. package/lib/commonjs/components/HLSNotifications.js.map +1 -0
  62. package/lib/commonjs/components/{HLSView.js → HLSPlayer.js} +34 -37
  63. package/lib/commonjs/components/HLSPlayer.js.map +1 -0
  64. package/lib/commonjs/components/HLSPlayerContainer.js +64 -0
  65. package/lib/commonjs/components/HLSPlayerContainer.js.map +1 -0
  66. package/lib/commonjs/components/HLSPlayerControls.js +87 -0
  67. package/lib/commonjs/components/HLSPlayerControls.js.map +1 -0
  68. package/lib/commonjs/components/HLSRecordingStatusText.js +31 -0
  69. package/lib/commonjs/components/HLSRecordingStatusText.js.map +1 -0
  70. package/lib/commonjs/components/HLSRoomOptionsButton.js +25 -0
  71. package/lib/commonjs/components/HLSRoomOptionsButton.js.map +1 -0
  72. package/lib/commonjs/components/HLSStreamStartedTime.js +69 -0
  73. package/lib/commonjs/components/HLSStreamStartedTime.js.map +1 -0
  74. package/lib/commonjs/components/HLSViewerScreenContent.js +61 -0
  75. package/lib/commonjs/components/HLSViewerScreenContent.js.map +1 -0
  76. package/lib/commonjs/components/HMSHLSNotStarted.js +15 -7
  77. package/lib/commonjs/components/HMSHLSNotStarted.js.map +1 -1
  78. package/lib/commonjs/components/HMSKeyboardAvoidingView.js +5 -1
  79. package/lib/commonjs/components/HMSKeyboardAvoidingView.js.map +1 -1
  80. package/lib/commonjs/components/HMSLiveViewerCount.js +2 -4
  81. package/lib/commonjs/components/HMSLiveViewerCount.js.map +1 -1
  82. package/lib/commonjs/components/HMSNotification.js +3 -2
  83. package/lib/commonjs/components/HMSNotification.js.map +1 -1
  84. package/lib/commonjs/components/HMSNotifications.js +3 -1
  85. package/lib/commonjs/components/HMSNotifications.js.map +1 -1
  86. package/lib/commonjs/components/HMSOverlayChatView.js +7 -4
  87. package/lib/commonjs/components/HMSOverlayChatView.js.map +1 -1
  88. package/lib/commonjs/components/Meeting.js +3 -1
  89. package/lib/commonjs/components/Meeting.js.map +1 -1
  90. package/lib/commonjs/components/MeetingScreenContent.js +2 -9
  91. package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
  92. package/lib/commonjs/components/OverlayedViews.js +1 -1
  93. package/lib/commonjs/components/OverlayedViews.js.map +1 -1
  94. package/lib/commonjs/components/PressableIcon.js +1 -2
  95. package/lib/commonjs/components/PressableIcon.js.map +1 -1
  96. package/lib/commonjs/hooks-util.js +128 -5
  97. package/lib/commonjs/hooks-util.js.map +1 -1
  98. package/lib/commonjs/redux/actionTypes.js +4 -0
  99. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  100. package/lib/commonjs/redux/actions/index.js +17 -3
  101. package/lib/commonjs/redux/actions/index.js.map +1 -1
  102. package/lib/commonjs/redux/reducers/appState.js +17 -1
  103. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  104. package/lib/module/Icons/CC/assets/cc-off-med.png +0 -0
  105. package/lib/module/Icons/CC/assets/cc-off-med@2x.png +0 -0
  106. package/lib/module/Icons/CC/assets/cc-off-med@3x.png +0 -0
  107. package/lib/module/Icons/CC/assets/cc-on-med.png +0 -0
  108. package/lib/module/Icons/CC/assets/cc-on-med@2x.png +0 -0
  109. package/lib/module/Icons/CC/assets/cc-on-med@3x.png +0 -0
  110. package/lib/module/Icons/CC/index.js +31 -0
  111. package/lib/module/Icons/CC/index.js.map +1 -0
  112. package/lib/module/Icons/Close/assets/close-med.png +0 -0
  113. package/lib/module/Icons/Close/assets/close-med@2x.png +0 -0
  114. package/lib/module/Icons/Close/assets/close-med@3x.png +0 -0
  115. package/lib/module/Icons/Close/index.js +7 -2
  116. package/lib/module/Icons/Close/index.js.map +1 -1
  117. package/lib/module/Icons/Maximize/assets/maximize-med.png +0 -0
  118. package/lib/module/Icons/Maximize/assets/maximize-med@2x.png +0 -0
  119. package/lib/module/Icons/Maximize/assets/maximize-med@3x.png +0 -0
  120. package/lib/module/Icons/Maximize/index.js +7 -2
  121. package/lib/module/Icons/Maximize/index.js.map +1 -1
  122. package/lib/module/Icons/Minimize/assets/minimize-med.png +0 -0
  123. package/lib/module/Icons/Minimize/assets/minimize-med@2x.png +0 -0
  124. package/lib/module/Icons/Minimize/assets/minimize-med@3x.png +0 -0
  125. package/lib/module/Icons/Minimize/index.js +7 -2
  126. package/lib/module/Icons/Minimize/index.js.map +1 -1
  127. package/lib/module/Icons/index.js +1 -0
  128. package/lib/module/Icons/index.js.map +1 -1
  129. package/lib/module/components/AnimatedHeader.js +1 -11
  130. package/lib/module/components/AnimatedHeader.js.map +1 -1
  131. package/lib/module/components/Chat/ChatBanner.js +1 -0
  132. package/lib/module/components/Chat/ChatBanner.js.map +1 -1
  133. package/lib/module/components/Chat/ChatFilterBottomSheetOpener.js +10 -7
  134. package/lib/module/components/Chat/ChatFilterBottomSheetOpener.js.map +1 -1
  135. package/lib/module/components/Chat/ChatList.js +4 -2
  136. package/lib/module/components/Chat/ChatList.js.map +1 -1
  137. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsView.js +3 -2
  138. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
  139. package/lib/module/components/DisplayView.js +3 -11
  140. package/lib/module/components/DisplayView.js.map +1 -1
  141. package/lib/module/components/Footer.js +9 -46
  142. package/lib/module/components/Footer.js.map +1 -1
  143. package/lib/module/components/HLSAnimatedDescriptionPane.js +21 -0
  144. package/lib/module/components/HLSAnimatedDescriptionPane.js.map +1 -0
  145. package/lib/module/components/HLSChatFooterView.js +42 -0
  146. package/lib/module/components/HLSChatFooterView.js.map +1 -0
  147. package/lib/module/components/HLSChatHeaderView.js +121 -0
  148. package/lib/module/components/HLSChatHeaderView.js.map +1 -0
  149. package/lib/module/components/HLSChatMessages.js +46 -0
  150. package/lib/module/components/HLSChatMessages.js.map +1 -0
  151. package/lib/module/components/HLSChatView.js +40 -0
  152. package/lib/module/components/HLSChatView.js.map +1 -0
  153. package/lib/module/components/HLSDescriptionPane.js +136 -0
  154. package/lib/module/components/HLSDescriptionPane.js.map +1 -0
  155. package/lib/module/components/HLSDescriptionPaneHeader.js +61 -0
  156. package/lib/module/components/HLSDescriptionPaneHeader.js.map +1 -0
  157. package/lib/module/components/HLSFooter.js +2 -2
  158. package/lib/module/components/HLSFooter.js.map +1 -1
  159. package/lib/module/components/HLSHandRaiseButton.js +29 -0
  160. package/lib/module/components/HLSHandRaiseButton.js.map +1 -0
  161. package/lib/module/components/HLSManageChatTextInput.js +81 -0
  162. package/lib/module/components/HLSManageChatTextInput.js.map +1 -0
  163. package/lib/module/components/HLSNotifications.js +24 -0
  164. package/lib/module/components/HLSNotifications.js.map +1 -0
  165. package/lib/module/components/{HLSView.js → HLSPlayer.js} +35 -38
  166. package/lib/module/components/HLSPlayer.js.map +1 -0
  167. package/lib/module/components/HLSPlayerContainer.js +56 -0
  168. package/lib/module/components/HLSPlayerContainer.js.map +1 -0
  169. package/lib/module/components/HLSPlayerControls.js +81 -0
  170. package/lib/module/components/HLSPlayerControls.js.map +1 -0
  171. package/lib/module/components/HLSRecordingStatusText.js +22 -0
  172. package/lib/module/components/HLSRecordingStatusText.js.map +1 -0
  173. package/lib/module/components/HLSRoomOptionsButton.js +16 -0
  174. package/lib/module/components/HLSRoomOptionsButton.js.map +1 -0
  175. package/lib/module/components/HLSStreamStartedTime.js +60 -0
  176. package/lib/module/components/HLSStreamStartedTime.js.map +1 -0
  177. package/lib/module/components/HLSViewerScreenContent.js +53 -0
  178. package/lib/module/components/HLSViewerScreenContent.js.map +1 -0
  179. package/lib/module/components/HMSHLSNotStarted.js +15 -7
  180. package/lib/module/components/HMSHLSNotStarted.js.map +1 -1
  181. package/lib/module/components/HMSKeyboardAvoidingView.js +5 -1
  182. package/lib/module/components/HMSKeyboardAvoidingView.js.map +1 -1
  183. package/lib/module/components/HMSLiveViewerCount.js +3 -5
  184. package/lib/module/components/HMSLiveViewerCount.js.map +1 -1
  185. package/lib/module/components/HMSNotification.js +4 -3
  186. package/lib/module/components/HMSNotification.js.map +1 -1
  187. package/lib/module/components/HMSNotifications.js +3 -1
  188. package/lib/module/components/HMSNotifications.js.map +1 -1
  189. package/lib/module/components/HMSOverlayChatView.js +5 -2
  190. package/lib/module/components/HMSOverlayChatView.js.map +1 -1
  191. package/lib/module/components/Meeting.js +4 -2
  192. package/lib/module/components/Meeting.js.map +1 -1
  193. package/lib/module/components/MeetingScreenContent.js +3 -10
  194. package/lib/module/components/MeetingScreenContent.js.map +1 -1
  195. package/lib/module/components/OverlayedViews.js +2 -2
  196. package/lib/module/components/OverlayedViews.js.map +1 -1
  197. package/lib/module/components/PressableIcon.js +1 -2
  198. package/lib/module/components/PressableIcon.js.map +1 -1
  199. package/lib/module/hooks-util.js +125 -5
  200. package/lib/module/hooks-util.js.map +1 -1
  201. package/lib/module/redux/actionTypes.js +4 -0
  202. package/lib/module/redux/actionTypes.js.map +1 -1
  203. package/lib/module/redux/actions/index.js +12 -0
  204. package/lib/module/redux/actions/index.js.map +1 -1
  205. package/lib/module/redux/reducers/appState.js +17 -1
  206. package/lib/module/redux/reducers/appState.js.map +1 -1
  207. package/lib/typescript/Icons/CC/index.d.ts +9 -0
  208. package/lib/typescript/Icons/CC/index.d.ts.map +1 -0
  209. package/lib/typescript/Icons/Close/index.d.ts +1 -0
  210. package/lib/typescript/Icons/Close/index.d.ts.map +1 -1
  211. package/lib/typescript/Icons/Maximize/index.d.ts +1 -0
  212. package/lib/typescript/Icons/Maximize/index.d.ts.map +1 -1
  213. package/lib/typescript/Icons/Minimize/index.d.ts +1 -0
  214. package/lib/typescript/Icons/Minimize/index.d.ts.map +1 -1
  215. package/lib/typescript/Icons/index.d.ts +1 -0
  216. package/lib/typescript/Icons/index.d.ts.map +1 -1
  217. package/lib/typescript/components/AnimatedHeader.d.ts.map +1 -1
  218. package/lib/typescript/components/Chat/ChatFilterBottomSheetOpener.d.ts +4 -1
  219. package/lib/typescript/components/Chat/ChatFilterBottomSheetOpener.d.ts.map +1 -1
  220. package/lib/typescript/components/Chat/ChatList.d.ts +4 -1
  221. package/lib/typescript/components/Chat/ChatList.d.ts.map +1 -1
  222. package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsView.d.ts.map +1 -1
  223. package/lib/typescript/components/DisplayView.d.ts.map +1 -1
  224. package/lib/typescript/components/Footer.d.ts.map +1 -1
  225. package/lib/typescript/components/HLSAnimatedDescriptionPane.d.ts +10 -0
  226. package/lib/typescript/components/HLSAnimatedDescriptionPane.d.ts.map +1 -0
  227. package/lib/typescript/components/HLSChatFooterView.d.ts +3 -0
  228. package/lib/typescript/components/HLSChatFooterView.d.ts.map +1 -0
  229. package/lib/typescript/components/HLSChatHeaderView.d.ts +7 -0
  230. package/lib/typescript/components/HLSChatHeaderView.d.ts.map +1 -0
  231. package/lib/typescript/components/HLSChatMessages.d.ts +3 -0
  232. package/lib/typescript/components/HLSChatMessages.d.ts.map +1 -0
  233. package/lib/typescript/components/HLSChatView.d.ts +3 -0
  234. package/lib/typescript/components/HLSChatView.d.ts.map +1 -0
  235. package/lib/typescript/components/HLSDescriptionPane.d.ts +6 -0
  236. package/lib/typescript/components/HLSDescriptionPane.d.ts.map +1 -0
  237. package/lib/typescript/components/HLSDescriptionPaneHeader.d.ts +9 -0
  238. package/lib/typescript/components/HLSDescriptionPaneHeader.d.ts.map +1 -0
  239. package/lib/typescript/components/HLSHandRaiseButton.d.ts +3 -0
  240. package/lib/typescript/components/HLSHandRaiseButton.d.ts.map +1 -0
  241. package/lib/typescript/components/HLSManageChatTextInput.d.ts +3 -0
  242. package/lib/typescript/components/HLSManageChatTextInput.d.ts.map +1 -0
  243. package/lib/typescript/components/HLSNotifications.d.ts +3 -0
  244. package/lib/typescript/components/HLSNotifications.d.ts.map +1 -0
  245. package/lib/typescript/components/HLSPlayer.d.ts +4 -0
  246. package/lib/typescript/components/HLSPlayer.d.ts.map +1 -0
  247. package/lib/typescript/components/HLSPlayerContainer.d.ts +4 -0
  248. package/lib/typescript/components/HLSPlayerContainer.d.ts.map +1 -0
  249. package/lib/typescript/components/HLSPlayerControls.d.ts +4 -0
  250. package/lib/typescript/components/HLSPlayerControls.d.ts.map +1 -0
  251. package/lib/typescript/components/HLSRecordingStatusText.d.ts +9 -0
  252. package/lib/typescript/components/HLSRecordingStatusText.d.ts.map +1 -0
  253. package/lib/typescript/components/HLSRoomOptionsButton.d.ts +3 -0
  254. package/lib/typescript/components/HLSRoomOptionsButton.d.ts.map +1 -0
  255. package/lib/typescript/components/HLSStreamStartedTime.d.ts +6 -0
  256. package/lib/typescript/components/HLSStreamStartedTime.d.ts.map +1 -0
  257. package/lib/typescript/components/HLSViewerScreenContent.d.ts +6 -0
  258. package/lib/typescript/components/HLSViewerScreenContent.d.ts.map +1 -0
  259. package/lib/typescript/components/HMSHLSNotStarted.d.ts.map +1 -1
  260. package/lib/typescript/components/HMSKeyboardAvoidingView.d.ts +2 -0
  261. package/lib/typescript/components/HMSKeyboardAvoidingView.d.ts.map +1 -1
  262. package/lib/typescript/components/HMSLiveViewerCount.d.ts.map +1 -1
  263. package/lib/typescript/components/HMSNotification.d.ts.map +1 -1
  264. package/lib/typescript/components/HMSNotifications.d.ts.map +1 -1
  265. package/lib/typescript/components/HMSOverlayChatView.d.ts +2 -2
  266. package/lib/typescript/components/HMSOverlayChatView.d.ts.map +1 -1
  267. package/lib/typescript/components/Meeting.d.ts.map +1 -1
  268. package/lib/typescript/components/MeetingScreenContent.d.ts.map +1 -1
  269. package/lib/typescript/components/PressableIcon.d.ts.map +1 -1
  270. package/lib/typescript/hooks-util.d.ts +20 -1
  271. package/lib/typescript/hooks-util.d.ts.map +1 -1
  272. package/lib/typescript/redux/actionTypes.d.ts +2 -0
  273. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  274. package/lib/typescript/redux/actions/index.d.ts +12 -0
  275. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  276. package/lib/typescript/redux/index.d.ts +2 -0
  277. package/lib/typescript/redux/index.d.ts.map +1 -1
  278. package/lib/typescript/redux/reducers/appState.d.ts +2 -0
  279. package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
  280. package/lib/typescript/redux/reducers/index.d.ts +2 -0
  281. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  282. package/package.json +3 -3
  283. package/src/Icons/CC/assets/cc-off-med.png +0 -0
  284. package/src/Icons/CC/assets/cc-off-med@2x.png +0 -0
  285. package/src/Icons/CC/assets/cc-off-med@3x.png +0 -0
  286. package/src/Icons/CC/assets/cc-on-med.png +0 -0
  287. package/src/Icons/CC/assets/cc-on-med@2x.png +0 -0
  288. package/src/Icons/CC/assets/cc-on-med@3x.png +0 -0
  289. package/src/Icons/CC/index.tsx +51 -0
  290. package/src/Icons/Close/assets/close-med.png +0 -0
  291. package/src/Icons/Close/assets/close-med@2x.png +0 -0
  292. package/src/Icons/Close/assets/close-med@3x.png +0 -0
  293. package/src/Icons/Close/index.tsx +19 -3
  294. package/src/Icons/Maximize/assets/maximize-med.png +0 -0
  295. package/src/Icons/Maximize/assets/maximize-med@2x.png +0 -0
  296. package/src/Icons/Maximize/assets/maximize-med@3x.png +0 -0
  297. package/src/Icons/Maximize/index.tsx +19 -3
  298. package/src/Icons/Minimize/assets/minimize-med.png +0 -0
  299. package/src/Icons/Minimize/assets/minimize-med@2x.png +0 -0
  300. package/src/Icons/Minimize/assets/minimize-med@3x.png +0 -0
  301. package/src/Icons/Minimize/index.tsx +19 -3
  302. package/src/Icons/index.ts +1 -0
  303. package/src/components/AnimatedHeader.tsx +1 -9
  304. package/src/components/Chat/ChatBanner.tsx +1 -0
  305. package/src/components/Chat/ChatFilterBottomSheetOpener.tsx +16 -8
  306. package/src/components/Chat/ChatList.tsx +4 -1
  307. package/src/components/ChatAndParticipants/ChatAndParticipantsView.tsx +6 -1
  308. package/src/components/DisplayView.tsx +9 -23
  309. package/src/components/Footer.tsx +8 -77
  310. package/src/components/HLSAnimatedDescriptionPane.tsx +36 -0
  311. package/src/components/HLSChatFooterView.tsx +53 -0
  312. package/src/components/HLSChatHeaderView.tsx +165 -0
  313. package/src/components/HLSChatMessages.tsx +62 -0
  314. package/src/components/HLSChatView.tsx +55 -0
  315. package/src/components/HLSDescriptionPane.tsx +168 -0
  316. package/src/components/HLSDescriptionPaneHeader.tsx +78 -0
  317. package/src/components/HLSFooter.tsx +2 -2
  318. package/src/components/HLSHandRaiseButton.tsx +41 -0
  319. package/src/components/HLSManageChatTextInput.tsx +98 -0
  320. package/src/components/HLSNotifications.tsx +33 -0
  321. package/src/components/{HLSView.tsx → HLSPlayer.tsx} +80 -77
  322. package/src/components/HLSPlayerContainer.tsx +67 -0
  323. package/src/components/HLSPlayerControls.tsx +101 -0
  324. package/src/components/HLSRecordingStatusText.tsx +50 -0
  325. package/src/components/HLSRoomOptionsButton.tsx +19 -0
  326. package/src/components/HLSStreamStartedTime.tsx +79 -0
  327. package/src/components/HLSViewerScreenContent.tsx +96 -0
  328. package/src/components/HMSHLSNotStarted.tsx +18 -7
  329. package/src/components/HMSKeyboardAvoidingView.tsx +16 -6
  330. package/src/components/HMSLiveViewerCount.tsx +2 -8
  331. package/src/components/HMSNotification.tsx +20 -14
  332. package/src/components/HMSNotifications.tsx +3 -1
  333. package/src/components/HMSOverlayChatView.tsx +10 -3
  334. package/src/components/Meeting.tsx +9 -1
  335. package/src/components/MeetingScreenContent.tsx +3 -7
  336. package/src/components/OverlayedViews.tsx +2 -2
  337. package/src/components/PressableIcon.tsx +1 -3
  338. package/src/hooks-util.ts +185 -6
  339. package/src/redux/actionTypes.ts +6 -0
  340. package/src/redux/actions/index.ts +10 -0
  341. package/src/redux/reducers/appState.ts +16 -0
  342. package/lib/commonjs/components/HLSView.js.map +0 -1
  343. package/lib/module/components/HLSView.js.map +0 -1
  344. package/lib/typescript/components/HLSView.d.ts +0 -4
  345. package/lib/typescript/components/HLSView.d.ts.map +0 -1
@@ -5,6 +5,7 @@ import { SafeAreaView } from 'react-native-safe-area-context';
5
5
 
6
6
  import {
7
7
  useHMSRoomStyleSheet,
8
+ useIsHLSViewer,
8
9
  useShowChatAndParticipants,
9
10
  } from '../../hooks-util';
10
11
  import { ChatAndParticipantsHeader } from './ChatAndParticipantsHeader';
@@ -19,6 +20,7 @@ const _ChatAndParticipantsView: React.FC = () => {
19
20
  const activeChatBottomSheetTab = useSelector(
20
21
  (state: RootState) => state.app.activeChatBottomSheetTab
21
22
  );
23
+ const isHLSViewer = useIsHLSViewer();
22
24
 
23
25
  const { hide, canShowParticipants, canShowChat, overlayChatLayout } =
24
26
  useShowChatAndParticipants();
@@ -35,7 +37,10 @@ const _ChatAndParticipantsView: React.FC = () => {
35
37
  activeChatBottomSheetTab === 'Participants' && canShowParticipants;
36
38
 
37
39
  const showChat =
38
- activeChatBottomSheetTab === 'Chat' && canShowChat && !overlayChatLayout;
40
+ !isHLSViewer &&
41
+ activeChatBottomSheetTab === 'Chat' &&
42
+ canShowChat &&
43
+ !overlayChatLayout;
39
44
 
40
45
  return (
41
46
  <SafeAreaView style={styles.container} edges={['left', 'right']}>
@@ -9,14 +9,12 @@ import { ModalTypes, PipModes } from '../utils/types';
9
9
  import type { PeerTrackNode } from '../utils/types';
10
10
  import { requestExternalStoragePermission } from '../utils/functions';
11
11
  import {
12
- ChangeAspectRatio,
13
12
  ChangeRoleModal,
14
13
  ChangeTrackStateModal,
15
14
  SaveScreenshot,
16
15
  } from './Modals';
17
16
  import type { RootState } from '../redux';
18
17
  import { GridView } from './GridView';
19
- import { HLSView } from './HLSView';
20
18
  import { PeerSettingsModalContent } from '../components/PeerSettingsModalContent';
21
19
  import { StreamingQualityModalContent } from '../components/StreamingQualityModalContent';
22
20
  import {
@@ -24,7 +22,6 @@ import {
24
22
  useHMSInstance,
25
23
  useHMSRoleChangeRequest,
26
24
  useHMSSessionStoreListeners,
27
- useIsHLSViewer,
28
25
  useModalType,
29
26
  } from '../hooks-util';
30
27
  import { WebrtcView } from './WebrtcView';
@@ -48,7 +45,6 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
48
45
  }) => {
49
46
  // --- 100ms SDK Instance ---
50
47
  const hmsInstance = useHMSInstance();
51
- const isHLSViewer = useIsHLSViewer();
52
48
 
53
49
  const {
54
50
  modalVisibleType: modalVisible,
@@ -130,16 +126,12 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
130
126
 
131
127
  return (
132
128
  <View style={{ flex: 1 }}>
133
- {isHLSViewer ? (
134
- <HLSView />
135
- ) : (
136
- <WebrtcView
137
- ref={gridViewRef}
138
- offset={offset}
139
- peerTrackNodes={peerTrackNodes}
140
- handlePeerTileMorePress={handlePeerTileMorePress}
141
- />
142
- )}
129
+ <WebrtcView
130
+ ref={gridViewRef}
131
+ offset={offset}
132
+ peerTrackNodes={peerTrackNodes}
133
+ handlePeerTileMorePress={handlePeerTileMorePress}
134
+ />
143
135
 
144
136
  {isPipModeActive ? null : (
145
137
  <>
@@ -171,15 +163,6 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
171
163
  ) : null}
172
164
  </BottomSheet>
173
165
 
174
- <DefaultModal
175
- modalPosiion="center"
176
- modalVisible={modalVisible === ModalTypes.HLS_PLAYER_ASPECT_RATIO}
177
- setModalVisible={() => setModalVisible(ModalTypes.DEFAULT)}
178
- >
179
- <ChangeAspectRatio
180
- cancelModal={() => setModalVisible(ModalTypes.DEFAULT)}
181
- />
182
- </DefaultModal>
183
166
  {/* Save Image Captured from Local Camera */}
184
167
  <DefaultModal
185
168
  modalPosiion="center"
@@ -193,6 +176,7 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
193
176
  />
194
177
  ) : null}
195
178
  </DefaultModal>
179
+
196
180
  <DefaultModal
197
181
  modalPosiion="center"
198
182
  modalVisible={modalVisible === ModalTypes.STREAMING_QUALITY_SETTING}
@@ -207,6 +191,7 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
207
191
  />
208
192
  ) : null}
209
193
  </DefaultModal>
194
+
210
195
  <DefaultModal
211
196
  modalPosiion="center"
212
197
  modalVisible={modalVisible === ModalTypes.CHANGE_TRACK}
@@ -219,6 +204,7 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
219
204
  />
220
205
  ) : null}
221
206
  </DefaultModal>
207
+
222
208
  <DefaultModal
223
209
  modalPosiion="center"
224
210
  modalVisible={modalVisible === ModalTypes.CHANGE_ROLE}
@@ -1,4 +1,4 @@
1
- import React, { memo, useEffect, useMemo, useState } from 'react';
1
+ import React, { memo, useMemo } from 'react';
2
2
  import { View, StyleSheet, Platform } from 'react-native';
3
3
  import {
4
4
  SafeAreaView,
@@ -6,10 +6,10 @@ import {
6
6
  } from 'react-native-safe-area-context';
7
7
 
8
8
  import {
9
+ useCanShowRoomOptionsButton,
9
10
  useHMSConferencingScreenConfig,
10
11
  useHMSLayoutConfig,
11
12
  useHMSRoomStyle,
12
- useIsHLSViewer,
13
13
  useShowChatAndParticipants,
14
14
  } from '../hooks-util';
15
15
  import { HMSManageLeave } from './HMSManageLeave';
@@ -23,51 +23,18 @@ import {
23
23
  useCanPublishScreen,
24
24
  useCanPublishVideo,
25
25
  } from '../hooks-sdk';
26
- import { useSelector } from 'react-redux';
27
- import type { RootState } from '../redux';
28
26
 
29
27
  interface FooterProps {}
30
28
 
31
29
  export const _Footer: React.FC<FooterProps> = () => {
32
- const isHLSViewer = useIsHLSViewer();
33
30
  const canPublishAudio = useCanPublishAudio();
34
31
  const canPublishVideo = useCanPublishVideo();
35
32
  const canPublishScreen = useCanPublishScreen();
36
- const editUsernameDisabled = useSelector(
37
- (state: RootState) => state.app.editUsernameDisabled
38
- );
39
- const [isNoiseCancellationAvailable, setIsNoiseCancellationAvailable] =
40
- useState(false);
41
- const noiseCancellationPlugin = useSelector(
42
- (state: RootState) => state.hmsStates.noiseCancellationPlugin
43
- );
44
- useEffect(() => {
45
- if (noiseCancellationPlugin) {
46
- let mounted = true;
47
-
48
- noiseCancellationPlugin
49
- .isNoiseCancellationAvailable()
50
- .then((isAvailable) => {
51
- if (mounted) {
52
- setIsNoiseCancellationAvailable(isAvailable);
53
- }
54
- });
55
-
56
- return () => {
57
- mounted = false;
58
- };
59
- }
60
- }, [noiseCancellationPlugin]);
33
+ const canShowOptions = useCanShowRoomOptionsButton();
34
+ const { canShowChat } = useShowChatAndParticipants();
61
35
 
62
36
  const isViewer = !(canPublishAudio || canPublishVideo || canPublishScreen);
63
37
 
64
- const { canShowParticipants, canShowChat } = useShowChatAndParticipants();
65
-
66
- const canShowBRB = useHMSLayoutConfig(
67
- (layoutConfig) =>
68
- !!layoutConfig?.screens?.conferencing?.default?.elements?.brb
69
- );
70
-
71
38
  const isOnStage = useHMSLayoutConfig((layoutConfig) => {
72
39
  return !!layoutConfig?.screens?.conferencing?.default?.elements
73
40
  ?.on_stage_exp;
@@ -77,29 +44,8 @@ export const _Footer: React.FC<FooterProps> = () => {
77
44
  (confScreenConfig) => !!confScreenConfig?.elements?.hand_raise
78
45
  );
79
46
 
80
- const canStartRecording = useSelector(
81
- (state: RootState) =>
82
- !!state.hmsStates.localPeer?.role?.permissions?.browserRecording
83
- );
84
-
85
- const canReadOrWritePoll = useSelector((state: RootState) => {
86
- const permissions = state.hmsStates.localPeer?.role?.permissions;
87
- return permissions?.pollRead || permissions?.pollWrite;
88
- });
89
-
90
- const canEditUsernameFromRoomModal = isViewer && !editUsernameDisabled;
91
-
92
47
  const canShowHandRaiseInFooter = canRaiseHand && !isOnStage && isViewer;
93
48
 
94
- const canShowOptions =
95
- canShowParticipants ||
96
- canPublishScreen ||
97
- canShowBRB ||
98
- canStartRecording ||
99
- canEditUsernameFromRoomModal ||
100
- canReadOrWritePoll ||
101
- isNoiseCancellationAvailable;
102
-
103
49
  const footerActionButtons = useMemo(() => {
104
50
  const actions = [];
105
51
 
@@ -139,16 +85,8 @@ export const _Footer: React.FC<FooterProps> = () => {
139
85
  }));
140
86
 
141
87
  return (
142
- <SafeAreaView
143
- style={isHLSViewer ? null : containerStyles}
144
- edges={['bottom', 'left', 'right']}
145
- >
146
- <View
147
- style={[
148
- styles.container,
149
- isHLSViewer ? styles.hlsContainer : containerStyles,
150
- ]}
151
- >
88
+ <SafeAreaView style={containerStyles} edges={['bottom', 'left', 'right']}>
89
+ <View style={[styles.container, containerStyles]}>
152
90
  {footerActionButtons.map((actionType, index) => {
153
91
  return (
154
92
  <View
@@ -177,15 +115,11 @@ export const _Footer: React.FC<FooterProps> = () => {
177
115
  };
178
116
 
179
117
  export const useFooterHeight = (excludeSafeArea: boolean = false) => {
180
- const isHLSViewer = useIsHLSViewer();
181
118
  const { bottom } = useSafeAreaInsets();
182
119
 
183
120
  return (
184
- (excludeSafeArea ? 0 : bottom) +
185
- (isHLSViewer ? 8 : 16) +
186
- (Platform.OS === 'android' ? 16 : 0) +
187
- 40
188
- ); // bottomSafeArea + paddingTop + marginBottom + content
121
+ (excludeSafeArea ? 0 : bottom) + (Platform.OS === 'android' ? 16 : 0) + 40
122
+ ); // bottomSafeArea + marginBottom + content
189
123
  };
190
124
 
191
125
  const styles = StyleSheet.create({
@@ -197,9 +131,6 @@ const styles = StyleSheet.create({
197
131
  justifyContent: 'center',
198
132
  marginBottom: Platform.OS === 'android' ? 16 : 0, // TODO: need to correct hide animation offsets because of this change
199
133
  },
200
- hlsContainer: {
201
- paddingTop: 8,
202
- },
203
134
  iconWrapper: {
204
135
  marginLeft: 24,
205
136
  },
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+
4
+ import Animated, {
5
+ interpolate,
6
+ useAnimatedStyle,
7
+ } from 'react-native-reanimated';
8
+ import type { AnimatedStyle, SharedValue } from 'react-native-reanimated';
9
+
10
+ export interface HLSAnimatedDescriptionPaneProps {
11
+ sharedValue: SharedValue<number>;
12
+ height: number;
13
+ style?: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
14
+ }
15
+
16
+ export const HLSAnimatedDescriptionPane: React.FC<
17
+ HLSAnimatedDescriptionPaneProps
18
+ > = ({ children, style, sharedValue, height }) => {
19
+ const animatedStyles = useAnimatedStyle(
20
+ () => ({
21
+ // opacity: interpolate(sharedValue.value, [0, 0.3, 1], [0, 1, 1]),
22
+ transform: [
23
+ {
24
+ translateY: interpolate(sharedValue.value, [0, 1], [-height, 0]),
25
+ },
26
+ ],
27
+ }),
28
+ [height]
29
+ );
30
+
31
+ return (
32
+ <Animated.View style={[{ flex: 1 }, animatedStyles, style]}>
33
+ {children}
34
+ </Animated.View>
35
+ );
36
+ };
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+ import { SafeAreaView } from 'react-native-safe-area-context';
4
+
5
+ import { useHMSRoomStyleSheet } from '../hooks-util';
6
+ import { HLSHandRaiseButton } from './HLSHandRaiseButton';
7
+ import { HLSRoomOptionsButton } from './HLSRoomOptionsButton';
8
+ import { HLSManageChatTextInput } from './HLSManageChatTextInput';
9
+
10
+ export const HLSChatFooterView = () => {
11
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme) => ({
12
+ container: {
13
+ backgroundColor: theme.palette.surface_dim,
14
+ borderBottomColor: theme.palette.border_bright,
15
+ },
16
+ input: {
17
+ backgroundColor: theme.palette.surface_default,
18
+ borderColor: theme.palette.surface_default,
19
+ },
20
+ }));
21
+
22
+ return (
23
+ <SafeAreaView
24
+ edges={['bottom']}
25
+ style={[styles.container, hmsRoomStyles.container]}
26
+ >
27
+ <HLSManageChatTextInput />
28
+
29
+ <HLSHandRaiseButton />
30
+
31
+ <HLSRoomOptionsButton />
32
+ </SafeAreaView>
33
+ );
34
+ };
35
+
36
+ const styles = StyleSheet.create({
37
+ container: {
38
+ padding: 16,
39
+ flexDirection: 'row',
40
+ // alignItems: 'center',
41
+ alignItems: 'flex-end',
42
+ },
43
+ input: {
44
+ flex: 0,
45
+ height: 40,
46
+ marginHorizontal: 0,
47
+ marginTop: 0,
48
+ marginBottom: 0,
49
+ },
50
+ chatPaused: {
51
+ flexShrink: 1,
52
+ },
53
+ });
@@ -0,0 +1,165 @@
1
+ import * as React from 'react';
2
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
3
+ import { useDispatch, useSelector } from 'react-redux';
4
+
5
+ import { CompanyLogo } from './CompanyLogo';
6
+ import {
7
+ useHMSConferencingScreenConfig,
8
+ useHMSRoomStyleSheet,
9
+ } from '../hooks-util';
10
+ import type { RootState } from '../redux';
11
+ import { HLSRecordingStatusText } from './HLSRecordingStatusText';
12
+ import { useIsHLSStreamingOn } from '../hooks-sdk';
13
+ import { HLSStreamStartedTime } from './HLSStreamStartedTime';
14
+ import { setHlsDescriptionPaneVisible } from '../redux/actions';
15
+
16
+ export interface HLSChatHeaderViewProps {
17
+ expanded?: boolean;
18
+ }
19
+
20
+ export const _HLSChatHeaderView: React.FC<HLSChatHeaderViewProps> = ({
21
+ expanded = false,
22
+ }) => {
23
+ const dispatch = useDispatch();
24
+ const isHLSStreaming = useIsHLSStreamingOn();
25
+
26
+ const peerCount = useSelector(
27
+ (state: RootState) => state.hmsStates.room?.peerCount
28
+ );
29
+ const headerTitle = useHMSConferencingScreenConfig((confScreenConfig) => {
30
+ return confScreenConfig?.elements?.header?.title;
31
+ });
32
+ const isValidHeaderDescription = useHMSConferencingScreenConfig(
33
+ (confScreenConfig) => {
34
+ return !!confScreenConfig?.elements?.header?.description;
35
+ }
36
+ );
37
+
38
+ const showDescriptionPane = () => {
39
+ dispatch(setHlsDescriptionPaneVisible(true));
40
+ };
41
+
42
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme, typography) => ({
43
+ container: {
44
+ backgroundColor: theme.palette.surface_dim,
45
+ borderBottomColor: theme.palette.border_bright,
46
+ },
47
+ semiBoldSecondaryHigh: {
48
+ fontFamily: `${typography.font_family}-SemiBold`,
49
+ color: theme.palette.on_secondary_high,
50
+ },
51
+ semiBoldSurfaceHigh: {
52
+ fontFamily: `${typography.font_family}-SemiBold`,
53
+ color: theme.palette.on_surface_high,
54
+ },
55
+ regularSurfaceMedium: {
56
+ fontFamily: `${typography.font_family}-Regular`,
57
+ color: theme.palette.on_surface_medium,
58
+ },
59
+ regularSurfaceLow: {
60
+ fontFamily: `${typography.font_family}-Regular`,
61
+ color: theme.palette.on_surface_low,
62
+ },
63
+ }));
64
+
65
+ return (
66
+ <View
67
+ style={[
68
+ styles.container,
69
+ hmsRoomStyles.container,
70
+ expanded ? { borderBottomWidth: 0 } : null,
71
+ ]}
72
+ >
73
+ <CompanyLogo style={styles.logo} />
74
+
75
+ <View style={{ flexShrink: 1 }}>
76
+ {headerTitle ? (
77
+ <Text
78
+ numberOfLines={expanded ? undefined : 2}
79
+ style={[styles.title, hmsRoomStyles.semiBoldSecondaryHigh]}
80
+ >
81
+ {headerTitle}
82
+ </Text>
83
+ ) : null}
84
+
85
+ <View style={{ flexDirection: 'row', alignItems: 'center' }}>
86
+ <Text style={[styles.subtitle, hmsRoomStyles.regularSurfaceMedium]}>
87
+ {peerCount} {isHLSStreaming ? 'watching' : 'joined'}
88
+ </Text>
89
+
90
+ {isHLSStreaming ? (
91
+ <HLSStreamStartedTime
92
+ prefix={
93
+ <Text
94
+ style={[
95
+ styles.subtitleDivider,
96
+ hmsRoomStyles.regularSurfaceLow,
97
+ ]}
98
+ >
99
+
100
+ </Text>
101
+ }
102
+ />
103
+ ) : null}
104
+
105
+ {isValidHeaderDescription && !expanded ? (
106
+ <Pressable
107
+ onPress={showDescriptionPane}
108
+ hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
109
+ >
110
+ <Text
111
+ style={[
112
+ styles.subtitle,
113
+ { marginLeft: 8 },
114
+ hmsRoomStyles.semiBoldSurfaceHigh,
115
+ ]}
116
+ >
117
+ ...more
118
+ </Text>
119
+ </Pressable>
120
+ ) : (
121
+ <HLSRecordingStatusText
122
+ style={[styles.subtitle, hmsRoomStyles.regularSurfaceMedium]}
123
+ prefix={
124
+ <Text
125
+ style={[
126
+ styles.subtitleDivider,
127
+ hmsRoomStyles.regularSurfaceLow,
128
+ ]}
129
+ >
130
+
131
+ </Text>
132
+ }
133
+ />
134
+ )}
135
+ </View>
136
+ </View>
137
+ </View>
138
+ );
139
+ };
140
+
141
+ export const HLSChatHeaderView = React.memo(_HLSChatHeaderView);
142
+
143
+ const styles = StyleSheet.create({
144
+ container: {
145
+ padding: 16,
146
+ flexDirection: 'row',
147
+ alignItems: 'center',
148
+ borderBottomWidth: 1,
149
+ },
150
+ logo: { marginRight: 12 },
151
+ title: {
152
+ fontSize: 14,
153
+ lineHeight: 20,
154
+ marginBottom: 4,
155
+ },
156
+ subtitle: {
157
+ fontSize: 12,
158
+ lineHeight: 16,
159
+ },
160
+ subtitleDivider: {
161
+ fontSize: 6,
162
+ lineHeight: 16,
163
+ marginHorizontal: 8,
164
+ },
165
+ });
@@ -0,0 +1,62 @@
1
+ import * as React from 'react';
2
+ import { Platform, StyleSheet, View } from 'react-native';
3
+ import { useSelector } from 'react-redux';
4
+ import { FlashList } from '@shopify/flash-list';
5
+ import type { HMSMessage } from '@100mslive/react-native-hms';
6
+
7
+ import type { RootState } from '../redux';
8
+ import { HMSHLSMessage } from './HMSHLSMessage';
9
+ import { ChatBanner, PinnedMessages } from './Chat';
10
+ import { MessageOptionsBottomSheet } from './Chat/MessageOptionsBottomSheet';
11
+
12
+ export const HLSChatMessages = () => {
13
+ const messages = useSelector((state: RootState) => state.messages.messages);
14
+
15
+ const _keyExtractor = React.useCallback(
16
+ (item: HMSMessage) => item.messageId,
17
+ []
18
+ );
19
+
20
+ const _renderItem = React.useCallback((data: { item: HMSMessage }) => {
21
+ return <HMSHLSMessage message={data.item} />;
22
+ }, []);
23
+
24
+ return (
25
+ <View
26
+ style={{
27
+ flex: 1,
28
+ paddingHorizontal: 16,
29
+ }}
30
+ >
31
+ <View style={styles.container}>
32
+ <PinnedMessages />
33
+
34
+ {messages.length > 0 ? (
35
+ <FlashList
36
+ data={messages}
37
+ inverted={true}
38
+ estimatedItemSize={62}
39
+ contentContainerStyle={{ paddingBottom: 12 }}
40
+ showsVerticalScrollIndicator={Platform.OS !== 'android'}
41
+ // contentContainerStyle={styles.listContentContainer} // Bug: Android inverted flashlist will apply padding on left when `paddingRight: 12` is applied
42
+ keyboardShouldPersistTaps="always"
43
+ // ListEmptyComponent={ChatBanner}
44
+ // ItemSeparatorComponent={() => <View style={{ height: 16 }} />} // TODO: There is a bug related to this: https://github.com/Shopify/flash-list/issues/638
45
+ renderItem={_renderItem}
46
+ keyExtractor={_keyExtractor}
47
+ />
48
+ ) : (
49
+ <ChatBanner />
50
+ )}
51
+ </View>
52
+
53
+ <MessageOptionsBottomSheet />
54
+ </View>
55
+ );
56
+ };
57
+
58
+ const styles = StyleSheet.create({
59
+ container: {
60
+ flex: 1,
61
+ },
62
+ });
@@ -0,0 +1,55 @@
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
3
+ import { useSelector } from 'react-redux';
4
+
5
+ import { useHLSViewsConstraints, useHMSRoomStyleSheet } from '../hooks-util';
6
+ import { HLSChatHeaderView } from './HLSChatHeaderView';
7
+ import { HLSChatFooterView } from './HLSChatFooterView';
8
+ import { HLSChatMessages } from './HLSChatMessages';
9
+ import { HLSDescriptionPane } from './HLSDescriptionPane';
10
+ import { useIsLandscapeOrientation } from '../utils/dimension';
11
+ import type { RootState } from '../redux';
12
+ import { HLSNotifications } from './HLSNotifications';
13
+
14
+ export const HLSChatView = () => {
15
+ const isLandscapeOrientation = useIsLandscapeOrientation();
16
+ const { chatWrapperConstraints } = useHLSViewsConstraints();
17
+ const hlsFullScreen = useSelector(
18
+ (state: RootState) => state.app.hlsFullScreen
19
+ );
20
+
21
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme) => ({
22
+ wrapper: {
23
+ backgroundColor: theme.palette.surface_dim,
24
+ },
25
+ }));
26
+
27
+ if (hlsFullScreen) {
28
+ return null;
29
+ }
30
+
31
+ return (
32
+ <View
33
+ style={{
34
+ position: 'absolute',
35
+ bottom: isLandscapeOrientation ? undefined : 0,
36
+ right: 0,
37
+ width: chatWrapperConstraints.width,
38
+ height: chatWrapperConstraints.height,
39
+ }}
40
+ >
41
+ <View style={[{ flex: 1, position: 'relative' }, hmsRoomStyles.wrapper]}>
42
+ {isLandscapeOrientation ? null : <HLSChatHeaderView />}
43
+
44
+ <HLSChatMessages />
45
+
46
+ <HLSChatFooterView />
47
+
48
+ <HLSNotifications />
49
+
50
+ {/* Below is absolute positioned and only visible when state is true */}
51
+ {isLandscapeOrientation ? null : <HLSDescriptionPane />}
52
+ </View>
53
+ </View>
54
+ );
55
+ };