@100mslive/react-native-room-kit 1.1.7 → 1.1.9-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/lib/commonjs/HMSInstanceSetup.js +11 -5
  2. package/lib/commonjs/HMSInstanceSetup.js.map +1 -1
  3. package/lib/commonjs/HMSRoomSetup.js +8 -0
  4. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  5. package/lib/commonjs/Icons/AddImage/assets/add-image.png +0 -0
  6. package/lib/commonjs/Icons/AddImage/assets/add-image@2x.png +0 -0
  7. package/lib/commonjs/Icons/AddImage/assets/add-image@3x.png +0 -0
  8. package/lib/commonjs/Icons/AddImage/index.js +33 -0
  9. package/lib/commonjs/Icons/AddImage/index.js.map +1 -0
  10. package/lib/commonjs/Icons/BlurPeople/assets/blur-people.png +0 -0
  11. package/lib/commonjs/Icons/BlurPeople/assets/blur-people@2x.png +0 -0
  12. package/lib/commonjs/Icons/BlurPeople/assets/blur-people@3x.png +0 -0
  13. package/lib/commonjs/Icons/BlurPeople/index.js +33 -0
  14. package/lib/commonjs/Icons/BlurPeople/index.js.map +1 -0
  15. package/lib/commonjs/Icons/CrossCircle/assets/cross-circle-large.png +0 -0
  16. package/lib/commonjs/Icons/CrossCircle/assets/cross-circle-large@2x.png +0 -0
  17. package/lib/commonjs/Icons/CrossCircle/assets/cross-circle-large@3x.png +0 -0
  18. package/lib/commonjs/Icons/CrossCircle/index.js +7 -2
  19. package/lib/commonjs/Icons/CrossCircle/index.js.map +1 -1
  20. package/lib/commonjs/Icons/Pencil/assets/pencil-board.png +0 -0
  21. package/lib/commonjs/Icons/Pencil/assets/pencil-board@2x.png +0 -0
  22. package/lib/commonjs/Icons/Pencil/assets/pencil-board@3x.png +0 -0
  23. package/lib/commonjs/Icons/Pencil/index.js +2 -1
  24. package/lib/commonjs/Icons/Pencil/index.js.map +1 -1
  25. package/lib/commonjs/Icons/VirtualBackground/assets/virtual-background.png +0 -0
  26. package/lib/commonjs/Icons/VirtualBackground/assets/virtual-background@2x.png +0 -0
  27. package/lib/commonjs/Icons/VirtualBackground/assets/virtual-background@3x.png +0 -0
  28. package/lib/commonjs/Icons/VirtualBackground/index.js +33 -0
  29. package/lib/commonjs/Icons/VirtualBackground/index.js.map +1 -0
  30. package/lib/commonjs/Icons/index.js +33 -0
  31. package/lib/commonjs/Icons/index.js.map +1 -1
  32. package/lib/commonjs/components/Chat/ChatMessage.js +13 -1
  33. package/lib/commonjs/components/Chat/ChatMessage.js.map +1 -1
  34. package/lib/commonjs/components/DisplayView.js +2 -1
  35. package/lib/commonjs/components/DisplayView.js.map +1 -1
  36. package/lib/commonjs/components/Footer.js +1 -1
  37. package/lib/commonjs/components/Footer.js.map +1 -1
  38. package/lib/commonjs/components/FullScreenWhiteboard.js +58 -0
  39. package/lib/commonjs/components/FullScreenWhiteboard.js.map +1 -0
  40. package/lib/commonjs/components/GridView.js +6 -4
  41. package/lib/commonjs/components/GridView.js.map +1 -1
  42. package/lib/commonjs/components/HLSChatView.js +7 -2
  43. package/lib/commonjs/components/HLSChatView.js.map +1 -1
  44. package/lib/commonjs/components/HLSDescriptionPane.js +3 -29
  45. package/lib/commonjs/components/HLSDescriptionPane.js.map +1 -1
  46. package/lib/commonjs/components/HLSPlayerContainer.js +4 -1
  47. package/lib/commonjs/components/HLSPlayerContainer.js.map +1 -1
  48. package/lib/commonjs/components/HMSHLSMessage.js +14 -1
  49. package/lib/commonjs/components/HMSHLSMessage.js.map +1 -1
  50. package/lib/commonjs/components/HMSManageCameraRotation.js +11 -4
  51. package/lib/commonjs/components/HMSManageCameraRotation.js.map +1 -1
  52. package/lib/commonjs/components/HMSManageLocalVideo.js +11 -4
  53. package/lib/commonjs/components/HMSManageLocalVideo.js.map +1 -1
  54. package/lib/commonjs/components/HMSManageVirtualBackground.js +55 -0
  55. package/lib/commonjs/components/HMSManageVirtualBackground.js.map +1 -0
  56. package/lib/commonjs/components/HMSOverlayMessageView.js +14 -1
  57. package/lib/commonjs/components/HMSOverlayMessageView.js.map +1 -1
  58. package/lib/commonjs/components/HMSRoomOptions.js +2 -1
  59. package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
  60. package/lib/commonjs/components/MeetingScreenContent.js +22 -2
  61. package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
  62. package/lib/commonjs/components/Preview.js +8 -3
  63. package/lib/commonjs/components/Preview.js.map +1 -1
  64. package/lib/commonjs/components/RoomSettingsModalContent.js +91 -6
  65. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  66. package/lib/commonjs/components/TilesContainer.js +4 -4
  67. package/lib/commonjs/components/TilesContainer.js.map +1 -1
  68. package/lib/commonjs/components/VirtualBackgroundBottomSheet.js +52 -0
  69. package/lib/commonjs/components/VirtualBackgroundBottomSheet.js.map +1 -0
  70. package/lib/commonjs/components/VirtualBackgroundModalContent.js +364 -0
  71. package/lib/commonjs/components/VirtualBackgroundModalContent.js.map +1 -0
  72. package/lib/commonjs/components/WebrtcView.js +2 -2
  73. package/lib/commonjs/components/WebrtcView.js.map +1 -1
  74. package/lib/commonjs/components/Whiteboard.js +72 -0
  75. package/lib/commonjs/components/Whiteboard.js.map +1 -0
  76. package/lib/commonjs/components/WhiteboardContainer.js +35 -0
  77. package/lib/commonjs/components/WhiteboardContainer.js.map +1 -0
  78. package/lib/commonjs/components/WhiteboardFullScreenButton.js +42 -0
  79. package/lib/commonjs/components/WhiteboardFullScreenButton.js.map +1 -0
  80. package/lib/commonjs/hooks-util.js +36 -6
  81. package/lib/commonjs/hooks-util.js.map +1 -1
  82. package/lib/commonjs/modules/imagePickerWrapper.js +19 -0
  83. package/lib/commonjs/modules/imagePickerWrapper.js.map +1 -0
  84. package/lib/commonjs/modules/videoPluginWrapper.js +13 -0
  85. package/lib/commonjs/modules/videoPluginWrapper.js.map +1 -0
  86. package/lib/commonjs/redux/actionTypes.js +6 -0
  87. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  88. package/lib/commonjs/redux/actions/index.js +27 -3
  89. package/lib/commonjs/redux/actions/index.js.map +1 -1
  90. package/lib/commonjs/redux/reducers/appState.js +17 -1
  91. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  92. package/lib/commonjs/redux/reducers/hmsStates.js +13 -1
  93. package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
  94. package/lib/commonjs/utils/functions.js +33 -1
  95. package/lib/commonjs/utils/functions.js.map +1 -1
  96. package/lib/commonjs/utils/types.js +1 -0
  97. package/lib/commonjs/utils/types.js.map +1 -1
  98. package/lib/module/HMSInstanceSetup.js +12 -6
  99. package/lib/module/HMSInstanceSetup.js.map +1 -1
  100. package/lib/module/HMSRoomSetup.js +10 -2
  101. package/lib/module/HMSRoomSetup.js.map +1 -1
  102. package/lib/module/Icons/AddImage/assets/add-image.png +0 -0
  103. package/lib/module/Icons/AddImage/assets/add-image@2x.png +0 -0
  104. package/lib/module/Icons/AddImage/assets/add-image@3x.png +0 -0
  105. package/lib/module/Icons/AddImage/index.js +25 -0
  106. package/lib/module/Icons/AddImage/index.js.map +1 -0
  107. package/lib/module/Icons/BlurPeople/assets/blur-people.png +0 -0
  108. package/lib/module/Icons/BlurPeople/assets/blur-people@2x.png +0 -0
  109. package/lib/module/Icons/BlurPeople/assets/blur-people@3x.png +0 -0
  110. package/lib/module/Icons/BlurPeople/index.js +25 -0
  111. package/lib/module/Icons/BlurPeople/index.js.map +1 -0
  112. package/lib/module/Icons/CrossCircle/assets/cross-circle-large.png +0 -0
  113. package/lib/module/Icons/CrossCircle/assets/cross-circle-large@2x.png +0 -0
  114. package/lib/module/Icons/CrossCircle/assets/cross-circle-large@3x.png +0 -0
  115. package/lib/module/Icons/CrossCircle/index.js +7 -2
  116. package/lib/module/Icons/CrossCircle/index.js.map +1 -1
  117. package/lib/module/Icons/Pencil/assets/pencil-board.png +0 -0
  118. package/lib/module/Icons/Pencil/assets/pencil-board@2x.png +0 -0
  119. package/lib/module/Icons/Pencil/assets/pencil-board@3x.png +0 -0
  120. package/lib/module/Icons/Pencil/index.js +2 -1
  121. package/lib/module/Icons/Pencil/index.js.map +1 -1
  122. package/lib/module/Icons/VirtualBackground/assets/virtual-background.png +0 -0
  123. package/lib/module/Icons/VirtualBackground/assets/virtual-background@2x.png +0 -0
  124. package/lib/module/Icons/VirtualBackground/assets/virtual-background@3x.png +0 -0
  125. package/lib/module/Icons/VirtualBackground/index.js +25 -0
  126. package/lib/module/Icons/VirtualBackground/index.js.map +1 -0
  127. package/lib/module/Icons/index.js +3 -0
  128. package/lib/module/Icons/index.js.map +1 -1
  129. package/lib/module/components/Chat/ChatMessage.js +15 -3
  130. package/lib/module/components/Chat/ChatMessage.js.map +1 -1
  131. package/lib/module/components/DisplayView.js +2 -1
  132. package/lib/module/components/DisplayView.js.map +1 -1
  133. package/lib/module/components/Footer.js +1 -1
  134. package/lib/module/components/Footer.js.map +1 -1
  135. package/lib/module/components/FullScreenWhiteboard.js +48 -0
  136. package/lib/module/components/FullScreenWhiteboard.js.map +1 -0
  137. package/lib/module/components/GridView.js +6 -4
  138. package/lib/module/components/GridView.js.map +1 -1
  139. package/lib/module/components/HLSChatView.js +7 -2
  140. package/lib/module/components/HLSChatView.js.map +1 -1
  141. package/lib/module/components/HLSDescriptionPane.js +2 -28
  142. package/lib/module/components/HLSDescriptionPane.js.map +1 -1
  143. package/lib/module/components/HLSPlayerContainer.js +4 -1
  144. package/lib/module/components/HLSPlayerContainer.js.map +1 -1
  145. package/lib/module/components/HMSHLSMessage.js +15 -2
  146. package/lib/module/components/HMSHLSMessage.js.map +1 -1
  147. package/lib/module/components/HMSManageCameraRotation.js +11 -4
  148. package/lib/module/components/HMSManageCameraRotation.js.map +1 -1
  149. package/lib/module/components/HMSManageLocalVideo.js +11 -4
  150. package/lib/module/components/HMSManageLocalVideo.js.map +1 -1
  151. package/lib/module/components/HMSManageVirtualBackground.js +46 -0
  152. package/lib/module/components/HMSManageVirtualBackground.js.map +1 -0
  153. package/lib/module/components/HMSOverlayMessageView.js +15 -2
  154. package/lib/module/components/HMSOverlayMessageView.js.map +1 -1
  155. package/lib/module/components/HMSRoomOptions.js +2 -1
  156. package/lib/module/components/HMSRoomOptions.js.map +1 -1
  157. package/lib/module/components/MeetingScreenContent.js +23 -3
  158. package/lib/module/components/MeetingScreenContent.js.map +1 -1
  159. package/lib/module/components/Preview.js +8 -3
  160. package/lib/module/components/Preview.js.map +1 -1
  161. package/lib/module/components/RoomSettingsModalContent.js +94 -9
  162. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  163. package/lib/module/components/TilesContainer.js +4 -4
  164. package/lib/module/components/TilesContainer.js.map +1 -1
  165. package/lib/module/components/VirtualBackgroundBottomSheet.js +43 -0
  166. package/lib/module/components/VirtualBackgroundBottomSheet.js.map +1 -0
  167. package/lib/module/components/VirtualBackgroundModalContent.js +355 -0
  168. package/lib/module/components/VirtualBackgroundModalContent.js.map +1 -0
  169. package/lib/module/components/WebrtcView.js +2 -2
  170. package/lib/module/components/WebrtcView.js.map +1 -1
  171. package/lib/module/components/Whiteboard.js +64 -0
  172. package/lib/module/components/Whiteboard.js.map +1 -0
  173. package/lib/module/components/WhiteboardContainer.js +27 -0
  174. package/lib/module/components/WhiteboardContainer.js.map +1 -0
  175. package/lib/module/components/WhiteboardFullScreenButton.js +33 -0
  176. package/lib/module/components/WhiteboardFullScreenButton.js.map +1 -0
  177. package/lib/module/hooks-util.js +36 -6
  178. package/lib/module/hooks-util.js.map +1 -1
  179. package/lib/module/modules/imagePickerWrapper.js +14 -0
  180. package/lib/module/modules/imagePickerWrapper.js.map +1 -0
  181. package/lib/module/modules/videoPluginWrapper.js +8 -0
  182. package/lib/module/modules/videoPluginWrapper.js.map +1 -0
  183. package/lib/module/redux/actionTypes.js +6 -0
  184. package/lib/module/redux/actionTypes.js.map +1 -1
  185. package/lib/module/redux/actions/index.js +20 -0
  186. package/lib/module/redux/actions/index.js.map +1 -1
  187. package/lib/module/redux/reducers/appState.js +17 -1
  188. package/lib/module/redux/reducers/appState.js.map +1 -1
  189. package/lib/module/redux/reducers/hmsStates.js +13 -1
  190. package/lib/module/redux/reducers/hmsStates.js.map +1 -1
  191. package/lib/module/utils/functions.js +29 -1
  192. package/lib/module/utils/functions.js.map +1 -1
  193. package/lib/module/utils/types.js +1 -0
  194. package/lib/module/utils/types.js.map +1 -1
  195. package/lib/typescript/HMSInstanceSetup.d.ts.map +1 -1
  196. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  197. package/lib/typescript/Icons/AddImage/index.d.ts +7 -0
  198. package/lib/typescript/Icons/AddImage/index.d.ts.map +1 -0
  199. package/lib/typescript/Icons/BlurPeople/index.d.ts +7 -0
  200. package/lib/typescript/Icons/BlurPeople/index.d.ts.map +1 -0
  201. package/lib/typescript/Icons/CrossCircle/index.d.ts +1 -0
  202. package/lib/typescript/Icons/CrossCircle/index.d.ts.map +1 -1
  203. package/lib/typescript/Icons/Pencil/index.d.ts +1 -0
  204. package/lib/typescript/Icons/Pencil/index.d.ts.map +1 -1
  205. package/lib/typescript/Icons/VirtualBackground/index.d.ts +7 -0
  206. package/lib/typescript/Icons/VirtualBackground/index.d.ts.map +1 -0
  207. package/lib/typescript/Icons/index.d.ts +3 -0
  208. package/lib/typescript/Icons/index.d.ts.map +1 -1
  209. package/lib/typescript/components/Chat/ChatMessage.d.ts.map +1 -1
  210. package/lib/typescript/components/DisplayView.d.ts.map +1 -1
  211. package/lib/typescript/components/Footer.d.ts.map +1 -1
  212. package/lib/typescript/components/FullScreenWhiteboard.d.ts +3 -0
  213. package/lib/typescript/components/FullScreenWhiteboard.d.ts.map +1 -0
  214. package/lib/typescript/components/GridView.d.ts.map +1 -1
  215. package/lib/typescript/components/HLSChatView.d.ts.map +1 -1
  216. package/lib/typescript/components/HLSDescriptionPane.d.ts.map +1 -1
  217. package/lib/typescript/components/HLSPlayerContainer.d.ts.map +1 -1
  218. package/lib/typescript/components/HMSHLSMessage.d.ts.map +1 -1
  219. package/lib/typescript/components/HMSManageCameraRotation.d.ts +8 -1
  220. package/lib/typescript/components/HMSManageCameraRotation.d.ts.map +1 -1
  221. package/lib/typescript/components/HMSManageLocalVideo.d.ts +8 -1
  222. package/lib/typescript/components/HMSManageLocalVideo.d.ts.map +1 -1
  223. package/lib/typescript/components/HMSManageVirtualBackground.d.ts +8 -0
  224. package/lib/typescript/components/HMSManageVirtualBackground.d.ts.map +1 -0
  225. package/lib/typescript/components/HMSOverlayMessageView.d.ts.map +1 -1
  226. package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
  227. package/lib/typescript/components/MeetingScreenContent.d.ts.map +1 -1
  228. package/lib/typescript/components/Preview.d.ts.map +1 -1
  229. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  230. package/lib/typescript/components/TilesContainer.d.ts.map +1 -1
  231. package/lib/typescript/components/VirtualBackgroundBottomSheet.d.ts +3 -0
  232. package/lib/typescript/components/VirtualBackgroundBottomSheet.d.ts.map +1 -0
  233. package/lib/typescript/components/VirtualBackgroundModalContent.d.ts +6 -0
  234. package/lib/typescript/components/VirtualBackgroundModalContent.d.ts.map +1 -0
  235. package/lib/typescript/components/WebrtcView.d.ts.map +1 -1
  236. package/lib/typescript/components/Whiteboard.d.ts +6 -0
  237. package/lib/typescript/components/Whiteboard.d.ts.map +1 -0
  238. package/lib/typescript/components/WhiteboardContainer.d.ts +6 -0
  239. package/lib/typescript/components/WhiteboardContainer.d.ts.map +1 -0
  240. package/lib/typescript/components/WhiteboardFullScreenButton.d.ts +5 -0
  241. package/lib/typescript/components/WhiteboardFullScreenButton.d.ts.map +1 -0
  242. package/lib/typescript/hooks-util.d.ts.map +1 -1
  243. package/lib/typescript/modules/imagePickerWrapper.d.ts +6 -0
  244. package/lib/typescript/modules/imagePickerWrapper.d.ts.map +1 -0
  245. package/lib/typescript/modules/videoPluginWrapper.d.ts +19 -0
  246. package/lib/typescript/modules/videoPluginWrapper.d.ts.map +1 -0
  247. package/lib/typescript/redux/actionTypes.d.ts +4 -0
  248. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  249. package/lib/typescript/redux/actions/index.d.ts +22 -1
  250. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  251. package/lib/typescript/redux/index.d.ts +4 -0
  252. package/lib/typescript/redux/index.d.ts.map +1 -1
  253. package/lib/typescript/redux/reducers/appState.d.ts +2 -0
  254. package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
  255. package/lib/typescript/redux/reducers/hmsStates.d.ts +13 -2
  256. package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
  257. package/lib/typescript/redux/reducers/index.d.ts +4 -0
  258. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  259. package/lib/typescript/utils/functions.d.ts +2 -0
  260. package/lib/typescript/utils/functions.d.ts.map +1 -1
  261. package/lib/typescript/utils/types.d.ts +1 -0
  262. package/lib/typescript/utils/types.d.ts.map +1 -1
  263. package/package.json +10 -3
  264. package/src/HMSInstanceSetup.tsx +17 -4
  265. package/src/HMSRoomSetup.tsx +21 -0
  266. package/src/Icons/AddImage/assets/add-image.png +0 -0
  267. package/src/Icons/AddImage/assets/add-image@2x.png +0 -0
  268. package/src/Icons/AddImage/assets/add-image@3x.png +0 -0
  269. package/src/Icons/AddImage/index.tsx +33 -0
  270. package/src/Icons/BlurPeople/assets/blur-people.png +0 -0
  271. package/src/Icons/BlurPeople/assets/blur-people@2x.png +0 -0
  272. package/src/Icons/BlurPeople/assets/blur-people@3x.png +0 -0
  273. package/src/Icons/BlurPeople/index.tsx +33 -0
  274. package/src/Icons/CrossCircle/assets/cross-circle-large.png +0 -0
  275. package/src/Icons/CrossCircle/assets/cross-circle-large@2x.png +0 -0
  276. package/src/Icons/CrossCircle/assets/cross-circle-large@3x.png +0 -0
  277. package/src/Icons/CrossCircle/index.tsx +19 -3
  278. package/src/Icons/Pencil/assets/pencil-board.png +0 -0
  279. package/src/Icons/Pencil/assets/pencil-board@2x.png +0 -0
  280. package/src/Icons/Pencil/assets/pencil-board@3x.png +0 -0
  281. package/src/Icons/Pencil/index.tsx +9 -2
  282. package/src/Icons/VirtualBackground/assets/virtual-background.png +0 -0
  283. package/src/Icons/VirtualBackground/assets/virtual-background@2x.png +0 -0
  284. package/src/Icons/VirtualBackground/assets/virtual-background@3x.png +0 -0
  285. package/src/Icons/VirtualBackground/index.tsx +33 -0
  286. package/src/Icons/index.ts +3 -0
  287. package/src/components/Chat/ChatMessage.tsx +19 -2
  288. package/src/components/DisplayView.tsx +3 -0
  289. package/src/components/Footer.tsx +5 -2
  290. package/src/components/FullScreenWhiteboard.tsx +59 -0
  291. package/src/components/GridView.tsx +14 -5
  292. package/src/components/HLSChatView.tsx +7 -4
  293. package/src/components/HLSDescriptionPane.tsx +2 -33
  294. package/src/components/HLSPlayerContainer.tsx +15 -7
  295. package/src/components/HMSHLSMessage.tsx +16 -1
  296. package/src/components/HMSManageCameraRotation.tsx +18 -4
  297. package/src/components/HMSManageLocalVideo.tsx +20 -4
  298. package/src/components/HMSManageVirtualBackground.tsx +76 -0
  299. package/src/components/HMSOverlayMessageView.tsx +16 -1
  300. package/src/components/HMSRoomOptions.tsx +3 -0
  301. package/src/components/MeetingScreenContent.tsx +28 -2
  302. package/src/components/Preview.tsx +12 -5
  303. package/src/components/RoomSettingsModalContent.tsx +108 -2
  304. package/src/components/TilesContainer.tsx +7 -5
  305. package/src/components/VirtualBackgroundBottomSheet.tsx +62 -0
  306. package/src/components/VirtualBackgroundModalContent.tsx +500 -0
  307. package/src/components/WebrtcView.tsx +11 -4
  308. package/src/components/Whiteboard.tsx +101 -0
  309. package/src/components/WhiteboardContainer.tsx +35 -0
  310. package/src/components/WhiteboardFullScreenButton.tsx +52 -0
  311. package/src/hooks-util.ts +41 -9
  312. package/src/modules/imagePickerWrapper.ts +20 -0
  313. package/src/modules/videoPluginWrapper.ts +32 -0
  314. package/src/redux/actionTypes.ts +8 -0
  315. package/src/redux/actions/index.ts +22 -0
  316. package/src/redux/reducers/appState.ts +16 -0
  317. package/src/redux/reducers/hmsStates.ts +29 -1
  318. package/src/utils/{functions.ts → functions.tsx} +34 -0
  319. package/src/utils/types.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@100mslive/react-native-room-kit",
3
- "version": "1.1.7",
3
+ "version": "1.1.9-beta.0",
4
4
  "description": "100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -118,6 +118,7 @@
118
118
  "redux": "^4.1.0"
119
119
  },
120
120
  "devDependencies": {
121
+ "@100mslive/react-native-video-plugin": "git+https://github.com/100mslive/react-native-video-plugin.git",
121
122
  "@commitlint/config-conventional": "^17.0.2",
122
123
  "@evilmartians/lefthook": "^1.2.2",
123
124
  "@react-native-community/eslint-config": "^3.0.2",
@@ -136,11 +137,12 @@
136
137
  "react": "17.0.1",
137
138
  "react-native": "0.64.4",
138
139
  "react-native-builder-bob": "^0.21.2",
140
+ "react-native-image-picker": "^7.1.2",
139
141
  "release-it": "^15.0.0",
140
142
  "typescript": "^5.0.2"
141
143
  },
142
144
  "peerDependencies": {
143
- "@100mslive/react-native-hms": "1.10.4",
145
+ "@100mslive/react-native-hms": "1.10.6-beta.0",
144
146
  "@react-native-community/blur": "^4.3.2",
145
147
  "@react-native-masked-view/masked-view": "^0.2.9",
146
148
  "@shopify/flash-list": "^1.4.3",
@@ -152,7 +154,12 @@
152
154
  "react-native-modal": "^12.1.0",
153
155
  "react-native-reanimated": ">=2.17.0",
154
156
  "react-native-safe-area-context": "^3.3.0",
155
- "react-native-simple-toast": "^1.1.3"
157
+ "react-native-simple-toast": "^1.1.3",
158
+ "react-native-webview": "^13.8.7"
159
+ },
160
+ "optionalDependencies": {
161
+ "@100mslive/react-native-video-plugin": "git+https://github.com/100mslive/react-native-video-plugin.git",
162
+ "react-native-image-picker": "^7.1.2"
156
163
  },
157
164
  "resolutions": {
158
165
  "@types/react": "17.0.21"
@@ -15,11 +15,15 @@ import {
15
15
  import React, { useEffect } from 'react';
16
16
  import { batch, useDispatch } from 'react-redux';
17
17
 
18
+ import { VideoPlugin } from './modules/videoPluginWrapper';
19
+ import type { HMSVirtualBackgroundPlugin } from './modules/videoPluginWrapper';
20
+
18
21
  import { getJoinConfig } from './utils';
19
22
  import {
20
23
  saveUserData,
21
24
  setHMSInstance,
22
25
  setNoiseCancellationPlugin,
26
+ setVideoPlugin,
23
27
  } from './redux/actions';
24
28
  import { FullScreenIndicator } from './components/FullScreenIndicator';
25
29
  import { clearConfig } from './hooks-util';
@@ -27,7 +31,8 @@ import { store } from './redux';
27
31
  import type { HMSIOSScreenShareConfig } from './utils/types';
28
32
 
29
33
  const getTrackSettings = (
30
- noiseCancellationPlugin: HMSNoiseCancellationPlugin
34
+ noiseCancellationPlugin: HMSNoiseCancellationPlugin,
35
+ videoPlugin: HMSVirtualBackgroundPlugin | null
31
36
  ) => {
32
37
  const joinConfig = getJoinConfig();
33
38
 
@@ -72,6 +77,7 @@ const getTrackSettings = (
72
77
  cameraFacing: HMSCameraFacing.FRONT,
73
78
  disableAutoResize: !joinConfig.autoResize,
74
79
  forceSoftwareDecoder: joinConfig.softwareDecoder,
80
+ videoPlugin: videoPlugin || undefined,
75
81
  });
76
82
 
77
83
  return new HMSTrackSettings({
@@ -97,14 +103,15 @@ const getIOSBuildConfig = (): Partial<HMSIOSScreenShareConfig> =>
97
103
  * @returns
98
104
  */
99
105
  const getHmsInstance = async (
100
- noiseCancellationPlugin: HMSNoiseCancellationPlugin
106
+ noiseCancellationPlugin: HMSNoiseCancellationPlugin,
107
+ videoPlugin: HMSVirtualBackgroundPlugin | null
101
108
  ): Promise<HMSSDK> => {
102
109
  /**
103
110
  * Only required for advanced use-case features like iOS Screen/Audio Share, Android Software Echo Cancellation, etc
104
111
  * NOT required for any other features.
105
112
  * @link https://www.100ms.live/docs/react-native/v2/advanced-features/track-settings
106
113
  */
107
- const trackSettings = getTrackSettings(noiseCancellationPlugin);
114
+ const trackSettings = getTrackSettings(noiseCancellationPlugin, videoPlugin);
108
115
 
109
116
  /**
110
117
  * Regular Usage:
@@ -156,8 +163,11 @@ export const HMSInstanceSetup = () => {
156
163
  clearConfig();
157
164
 
158
165
  const noiseCancellationPlugin = new HMSNoiseCancellationPlugin();
166
+ const videoPlugin = VideoPlugin
167
+ ? new VideoPlugin.HMSVirtualBackgroundPlugin()
168
+ : null;
159
169
 
160
- getHmsInstance(noiseCancellationPlugin)
170
+ getHmsInstance(noiseCancellationPlugin, videoPlugin)
161
171
  .then((hmssdkInstance) => {
162
172
  if (!ignore) {
163
173
  // If this component is mounted
@@ -165,6 +175,9 @@ export const HMSInstanceSetup = () => {
165
175
  batch(() => {
166
176
  dispatch(setHMSInstance(hmssdkInstance));
167
177
  dispatch(setNoiseCancellationPlugin(noiseCancellationPlugin));
178
+ if (videoPlugin) {
179
+ dispatch(setVideoPlugin(videoPlugin));
180
+ }
168
181
  // TODO: remove this from user reducer
169
182
  dispatch(saveUserData({ hmsInstance: hmssdkInstance }));
170
183
  });
@@ -4,6 +4,7 @@ import {
4
4
  HMSRoom,
5
5
  HMSTrack,
6
6
  HMSUpdateListenerActions,
7
+ HMSWhiteboardUpdateType,
7
8
  } from '@100mslive/react-native-hms';
8
9
  import React, { useCallback, useEffect, useRef, useState } from 'react';
9
10
  import { Alert, Keyboard, StatusBar, StyleSheet, View } from 'react-native';
@@ -22,6 +23,7 @@ import {
22
23
  setInitialRole,
23
24
  setLocalPeerTrackNode,
24
25
  setMiniViewPeerTrackNode,
26
+ setWhiteboard,
25
27
  updateLocalPeerTrackNode,
26
28
  } from './redux/actions';
27
29
  import { createPeerTrackNode, getRandomUserId } from './utils/functions';
@@ -482,6 +484,25 @@ export const HMSRoomSetup = () => {
482
484
  };
483
485
  }, [isHLSViewer]);
484
486
 
487
+ useEffect(() => {
488
+ const subscription =
489
+ hmsInstance.interactivityCenter.addWhiteboardUpdateListener(
490
+ async (hmsWhiteboard, updateType) => {
491
+ dispatch(
492
+ setWhiteboard(
493
+ updateType === HMSWhiteboardUpdateType.STARTED
494
+ ? hmsWhiteboard
495
+ : null
496
+ )
497
+ );
498
+ }
499
+ );
500
+
501
+ return () => {
502
+ subscription.remove();
503
+ };
504
+ }, []);
505
+
485
506
  // Syncs showing Polls with HLS Player onCue event
486
507
  useHLSCuedPolls();
487
508
 
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { Image, StyleSheet } from 'react-native';
3
+ import type { ImageProps } from 'react-native';
4
+
5
+ import { useHMSRoomStyle } from '../../hooks-util';
6
+
7
+ interface AddImageIconProps extends Omit<ImageProps, 'source'> {}
8
+
9
+ export const AddImageIcon: React.FC<AddImageIconProps> = ({
10
+ style,
11
+ ...restProps
12
+ }) => {
13
+ const iconStyles = useHMSRoomStyle((theme) => ({
14
+ tintColor: theme.palette.on_surface_high,
15
+ }));
16
+
17
+ return (
18
+ <Image
19
+ source={require('./assets/add-image.png')}
20
+ style={[styles.icon, iconStyles, style]}
21
+ {...restProps}
22
+ />
23
+ );
24
+ };
25
+
26
+ const styles = StyleSheet.create({
27
+ icon: {
28
+ width: 40,
29
+ height: 40,
30
+ alignItems: 'center',
31
+ justifyContent: 'center',
32
+ },
33
+ });
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { Image, StyleSheet } from 'react-native';
3
+ import type { ImageProps } from 'react-native';
4
+
5
+ import { useHMSRoomStyle } from '../../hooks-util';
6
+
7
+ interface BlurPeopleIconProps extends Omit<ImageProps, 'source'> {}
8
+
9
+ export const BlurPeopleIcon: React.FC<BlurPeopleIconProps> = ({
10
+ style,
11
+ ...restProps
12
+ }) => {
13
+ const iconStyles = useHMSRoomStyle((theme) => ({
14
+ tintColor: theme.palette.on_surface_high,
15
+ }));
16
+
17
+ return (
18
+ <Image
19
+ source={require('./assets/blur-people.png')}
20
+ style={[styles.icon, iconStyles, style]}
21
+ {...restProps}
22
+ />
23
+ );
24
+ };
25
+
26
+ const styles = StyleSheet.create({
27
+ icon: {
28
+ width: 40,
29
+ height: 40,
30
+ alignItems: 'center',
31
+ justifyContent: 'center',
32
+ },
33
+ });
@@ -4,10 +4,13 @@ import type { ImageProps } from 'react-native';
4
4
 
5
5
  import { useHMSRoomStyle } from '../../hooks-util';
6
6
 
7
- interface CrossCircleIconProps extends Omit<ImageProps, 'source'> {}
7
+ interface CrossCircleIconProps extends Omit<ImageProps, 'source'> {
8
+ size?: 'normal' | 'large';
9
+ }
8
10
 
9
11
  export const CrossCircleIcon: React.FC<CrossCircleIconProps> = ({
10
12
  style,
13
+ size = 'normal',
11
14
  ...restProps
12
15
  }) => {
13
16
  const iconStyles = useHMSRoomStyle((theme) => ({
@@ -16,8 +19,17 @@ export const CrossCircleIcon: React.FC<CrossCircleIconProps> = ({
16
19
 
17
20
  return (
18
21
  <Image
19
- source={require('./assets/cross-circle.png')}
20
- style={[styles.icon, iconStyles, style]}
22
+ source={
23
+ size === 'large'
24
+ ? require('./assets/cross-circle-large.png')
25
+ : require('./assets/cross-circle.png')
26
+ }
27
+ style={[
28
+ styles.icon,
29
+ iconStyles,
30
+ size === 'large' ? styles.largeIcon : null,
31
+ style,
32
+ ]}
21
33
  {...restProps}
22
34
  />
23
35
  );
@@ -30,4 +42,8 @@ const styles = StyleSheet.create({
30
42
  alignItems: 'center',
31
43
  justifyContent: 'center',
32
44
  },
45
+ largeIcon: {
46
+ width: 40,
47
+ height: 40,
48
+ },
33
49
  });
@@ -4,10 +4,13 @@ import type { ImageProps } from 'react-native';
4
4
 
5
5
  import { useHMSRoomStyle } from '../../hooks-util';
6
6
 
7
- interface PencilIconProps extends Omit<ImageProps, 'source'> {}
7
+ interface PencilIconProps extends Omit<ImageProps, 'source'> {
8
+ type?: 'normal' | 'board';
9
+ }
8
10
 
9
11
  export const PencilIcon: React.FC<PencilIconProps> = ({
10
12
  style,
13
+ type = 'normal',
11
14
  ...restProps
12
15
  }) => {
13
16
  const iconStyles = useHMSRoomStyle((theme) => ({
@@ -16,7 +19,11 @@ export const PencilIcon: React.FC<PencilIconProps> = ({
16
19
 
17
20
  return (
18
21
  <Image
19
- source={require('./assets/pencil.png')}
22
+ source={
23
+ type === 'board'
24
+ ? require('./assets/pencil-board.png')
25
+ : require('./assets/pencil.png')
26
+ }
20
27
  style={[styles.icon, iconStyles, style]}
21
28
  {...restProps}
22
29
  />
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { Image, StyleSheet } from 'react-native';
3
+ import type { ImageProps } from 'react-native';
4
+
5
+ import { useHMSRoomStyle } from '../../hooks-util';
6
+
7
+ interface VirtualBackgroundIconProps extends Omit<ImageProps, 'source'> {}
8
+
9
+ export const VirtualBackgroundIcon: React.FC<VirtualBackgroundIconProps> = ({
10
+ style,
11
+ ...restProps
12
+ }) => {
13
+ const iconStyles = useHMSRoomStyle((theme) => ({
14
+ tintColor: theme.palette.on_surface_high,
15
+ }));
16
+
17
+ return (
18
+ <Image
19
+ source={require('./assets/virtual-background.png')}
20
+ style={[styles.icon, iconStyles, style]}
21
+ {...restProps}
22
+ />
23
+ );
24
+ };
25
+
26
+ const styles = StyleSheet.create({
27
+ icon: {
28
+ width: 24,
29
+ height: 24,
30
+ alignItems: 'center',
31
+ justifyContent: 'center',
32
+ },
33
+ });
@@ -51,3 +51,6 @@ export * from './CC';
51
51
  export * from './Pause';
52
52
  export * from './Play';
53
53
  export * from './SeekArrow';
54
+ export * from './VirtualBackground';
55
+ export * from './BlurPeople';
56
+ export * from './AddImage';
@@ -5,6 +5,7 @@ import {
5
5
  StyleSheet,
6
6
  Platform,
7
7
  TouchableOpacity,
8
+ Linking,
8
9
  } from 'react-native';
9
10
  import { useDispatch, useSelector } from 'react-redux';
10
11
  import { HMSMessage } from '@100mslive/react-native-hms';
@@ -14,7 +15,10 @@ import {
14
15
  useAllowPinningMessage,
15
16
  useHMSRoomStyleSheet,
16
17
  } from '../../hooks-util';
17
- import { getTimeStringin12HourFormat } from '../../utils/functions';
18
+ import {
19
+ getTimeStringin12HourFormat,
20
+ splitLinksAndContent,
21
+ } from '../../utils/functions';
18
22
  import { PinIcon, ThreeDotsIcon } from '../../Icons';
19
23
  import type { RootState } from '../../redux';
20
24
  import { setSelectedMessageForAction } from '../../redux/actions';
@@ -63,6 +67,9 @@ const _ChatMessage: React.FC<HMSHLSMessageProps> = ({ message }) => {
63
67
  color: theme.palette.on_surface_low,
64
68
  fontFamily: `${typography.font_family}-SemiBold`,
65
69
  },
70
+ link: {
71
+ color: theme.palette.primary_bright,
72
+ },
66
73
  }),
67
74
  []
68
75
  );
@@ -82,6 +89,13 @@ const _ChatMessage: React.FC<HMSHLSMessageProps> = ({ message }) => {
82
89
  message.sender &&
83
90
  message.sender.peerID !== localPeerId); // can remove participants
84
91
 
92
+ const handleLinkPress = async (url: string) => {
93
+ const canOpen = await Linking.canOpenURL(url);
94
+ if (canOpen) {
95
+ await Linking.openURL(url);
96
+ }
97
+ };
98
+
85
99
  return (
86
100
  <View style={styles.container}>
87
101
  {isPinned ? (
@@ -126,7 +140,10 @@ const _ChatMessage: React.FC<HMSHLSMessageProps> = ({ message }) => {
126
140
  </View>
127
141
 
128
142
  <Text style={[styles.message, hmsRoomStyles.message]}>
129
- {message.message}
143
+ {splitLinksAndContent(message.message, {
144
+ pressHandler: handleLinkPress,
145
+ style: hmsRoomStyles.link,
146
+ })}
130
147
  </Text>
131
148
  </View>
132
149
  );
@@ -31,6 +31,7 @@ import { PreviewForRoleChangeModal } from './PreviewForRoleChangeModal';
31
31
  import { ChatAndParticipantsBottomSheet } from './ChatAndParticipants';
32
32
  import { LeaveRoomBottomSheet } from './LeaveRoomBottomSheet';
33
33
  import { EndRoomModal } from './EndRoomModal';
34
+ import { FullScreenWhiteboard } from './FullScreenWhiteboard';
34
35
 
35
36
  type CapturedImagePath = { uri: string } | null;
36
37
 
@@ -143,6 +144,8 @@ export const DisplayView: React.FC<DisplayViewProps> = ({
143
144
 
144
145
  <FullScreenVideoView />
145
146
 
147
+ <FullScreenWhiteboard />
148
+
146
149
  <ChatAndParticipantsBottomSheet />
147
150
 
148
151
  <BottomSheet
@@ -118,8 +118,11 @@ export const useFooterHeight = (excludeSafeArea: boolean = false) => {
118
118
  const { bottom } = useSafeAreaInsets();
119
119
 
120
120
  return (
121
- (excludeSafeArea ? 0 : bottom) + (Platform.OS === 'android' ? 16 : 0) + 40
122
- ); // bottomSafeArea + marginBottom + content
121
+ (excludeSafeArea ? 0 : bottom) +
122
+ (Platform.OS === 'android' ? 16 : 0) +
123
+ 42 +
124
+ 16
125
+ ); // bottomSafeArea + marginBottom + content + contentTopPadding
123
126
  };
124
127
 
125
128
  const styles = StyleSheet.create({
@@ -0,0 +1,59 @@
1
+ import * as React from 'react';
2
+ import Modal from 'react-native-modal';
3
+ import { StyleSheet } from 'react-native';
4
+ import { useDispatch, useSelector } from 'react-redux';
5
+ import { SafeAreaView } from 'react-native-safe-area-context';
6
+
7
+ import type { RootState } from '../redux';
8
+ import { useHMSRoomColorPalette, useHMSRoomStyle } from '../hooks-util';
9
+ import { setFullScreenWhiteboard } from '../redux/actions';
10
+ import { Whiteboard } from './Whiteboard';
11
+
12
+ export const FullScreenWhiteboard = () => {
13
+ const dispatch = useDispatch();
14
+ const fullScreenWhiteboard = useSelector(
15
+ (state: RootState) => state.app.fullScreenWhiteboard
16
+ );
17
+
18
+ const { background_dim: backgroundDimColor } = useHMSRoomColorPalette();
19
+
20
+ const contentContainerStyles = useHMSRoomStyle((theme) => ({
21
+ backgroundColor: theme.palette.background_dim,
22
+ }));
23
+
24
+ const handleClosingFullScreenView = () => {
25
+ dispatch(setFullScreenWhiteboard(false));
26
+ };
27
+
28
+ return (
29
+ <Modal
30
+ isVisible={fullScreenWhiteboard}
31
+ animationIn={'fadeInUp'}
32
+ animationInTiming={100}
33
+ animationOutTiming={100}
34
+ animationOut={'fadeOutDown'}
35
+ backdropColor={backgroundDimColor}
36
+ backdropOpacity={0.3}
37
+ onBackButtonPress={handleClosingFullScreenView}
38
+ onBackdropPress={handleClosingFullScreenView}
39
+ useNativeDriver={true}
40
+ useNativeDriverForBackdrop={true}
41
+ hideModalContentWhileAnimating={true}
42
+ style={styles.modal}
43
+ supportedOrientations={['portrait', 'landscape']}
44
+ >
45
+ <SafeAreaView style={[contentContainerStyles, styles.container]}>
46
+ <Whiteboard />
47
+ </SafeAreaView>
48
+ </Modal>
49
+ );
50
+ };
51
+
52
+ const styles = StyleSheet.create({
53
+ modal: {
54
+ margin: 0,
55
+ },
56
+ container: {
57
+ flexGrow: 1,
58
+ },
59
+ });
@@ -16,6 +16,7 @@ import { PaginationDots } from './PaginationDots';
16
16
  import { setGridViewActivePage } from '../redux/actions';
17
17
  import { Tile } from './Tile';
18
18
  import { useIsLandscapeOrientation } from '../utils/dimension';
19
+ import { WhiteboardContainer } from './WhiteboardContainer';
19
20
 
20
21
  export type GridViewProps = {
21
22
  onPeerTileMorePress(peerTrackNode: PeerTrackNode): void;
@@ -52,6 +53,9 @@ export const GridView = React.forwardRef<GridViewRefAttrs, GridViewProps>(
52
53
  const screenshareTilesAvailable = useSelector(
53
54
  (state: RootState) => state.app.screensharePeerTrackNodes.length > 0
54
55
  );
56
+ const whiteboardActive = useSelector(
57
+ (state: RootState) => !!state.hmsStates.whiteboard
58
+ );
55
59
  const regularTilesAvailable = pairedPeers.length > 0;
56
60
 
57
61
  const isLandscapeOrientation = useIsLandscapeOrientation();
@@ -147,9 +151,12 @@ export const GridView = React.forwardRef<GridViewRefAttrs, GridViewProps>(
147
151
  setHmsViewRefs={setHmsViewRefs}
148
152
  onPeerTileMorePress={onPeerTileMorePress}
149
153
  />
154
+ ) : whiteboardActive ? (
155
+ <WhiteboardContainer />
150
156
  ) : null}
151
157
 
152
- {screenshareTilesAvailable && isLandscapeOrientation ? null : (
158
+ {(whiteboardActive || screenshareTilesAvailable) &&
159
+ isLandscapeOrientation ? null : (
153
160
  <RegularTiles
154
161
  ref={regularTilesFlatlistRef}
155
162
  pairedPeers={pairedPeers}
@@ -209,8 +216,10 @@ const RegularTiles = React.forwardRef<
209
216
  const dispatch = useDispatch();
210
217
  const { height: safeHeight } = useSafeAreaFrame();
211
218
 
212
- const screenshareTilesAvailable = useSelector(
213
- (state: RootState) => state.app.screensharePeerTrackNodes.length > 0
219
+ const screenshareTilesOrWhiteboardActive = useSelector(
220
+ (state: RootState) =>
221
+ state.app.screensharePeerTrackNodes.length > 0 ||
222
+ !!state.hmsStates.whiteboard
214
223
  );
215
224
  const activeIndex = useSelector(
216
225
  (state: RootState) => state.app.gridViewActivePage
@@ -248,7 +257,7 @@ const RegularTiles = React.forwardRef<
248
257
  );
249
258
 
250
259
  return (
251
- <View style={{ flex: screenshareTilesAvailable ? undefined : 1 }}>
260
+ <View style={{ flex: screenshareTilesOrWhiteboardActive ? undefined : 1 }}>
252
261
  <FlatList
253
262
  ref={flatlistRef}
254
263
  horizontal={true}
@@ -275,7 +284,7 @@ const RegularTiles = React.forwardRef<
275
284
  list={pairedPeers}
276
285
  activeIndex={activeIndex}
277
286
  style={
278
- screenshareTilesAvailable || isLandscapeOrientation
287
+ screenshareTilesOrWhiteboardActive || isLandscapeOrientation
279
288
  ? { marginVertical: isLandscapeOrientation ? 4 : 8 }
280
289
  : null
281
290
  }
@@ -10,13 +10,16 @@ import { HLSDescriptionPane } from './HLSDescriptionPane';
10
10
  import { useIsLandscapeOrientation } from '../utils/dimension';
11
11
  import type { RootState } from '../redux';
12
12
  import { HLSNotifications } from './HLSNotifications';
13
+ import { PipModes } from '../utils/types';
13
14
 
14
15
  export const HLSChatView = () => {
15
16
  const isLandscapeOrientation = useIsLandscapeOrientation();
16
17
  const { chatWrapperConstraints } = useHLSViewsConstraints();
17
- const hlsFullScreen = useSelector(
18
- (state: RootState) => state.app.hlsFullScreen
19
- );
18
+ const fullScreenMode = useSelector((state: RootState) => {
19
+ const hlsFullScreen = state.app.hlsFullScreen;
20
+ const isPipModeActive = state.app.pipModeStatus === PipModes.ACTIVE;
21
+ return hlsFullScreen || isPipModeActive;
22
+ });
20
23
 
21
24
  const hmsRoomStyles = useHMSRoomStyleSheet((theme) => ({
22
25
  wrapper: {
@@ -24,7 +27,7 @@ export const HLSChatView = () => {
24
27
  },
25
28
  }));
26
29
 
27
- if (hlsFullScreen) {
30
+ if (fullScreenMode) {
28
31
  return null;
29
32
  }
30
33
 
@@ -16,6 +16,7 @@ import {
16
16
  import { HLSAnimatedDescriptionPane } from './HLSAnimatedDescriptionPane';
17
17
  import { setHlsDescriptionPaneVisible } from '../redux/actions';
18
18
  import type { RootState } from '../redux';
19
+ import { splitLinksAndContent } from '../utils/functions';
19
20
 
20
21
  interface HLSDescriptionPaneProps {}
21
22
 
@@ -74,7 +75,7 @@ export const HLSDescriptionPane: React.FC<HLSDescriptionPaneProps> = () => {
74
75
  const handleLinkPress = async (url: string) => {
75
76
  const canOpen = await Linking.canOpenURL(url);
76
77
  if (canOpen) {
77
- Linking.openURL(url);
78
+ await Linking.openURL(url);
78
79
  }
79
80
  };
80
81
 
@@ -134,35 +135,3 @@ const styles = StyleSheet.create({
134
135
  marginHorizontal: 16,
135
136
  },
136
137
  });
137
-
138
- function splitLinksAndContent(
139
- text: string,
140
- { pressHandler, style }: any
141
- ): string | (string | React.ReactElement)[] {
142
- // Regular expression to find links in a string
143
- const pattern = /http[s]?:\/\/\S+/g;
144
-
145
- // Find all links in the text
146
- const links = text.match(pattern) || [];
147
-
148
- if (links.length <= 0) {
149
- return text;
150
- }
151
-
152
- // Split the text into an array of links and content
153
- const parts = text.replace(pattern, '^<link>^').split('^');
154
-
155
- return parts.map((p, i) => {
156
- if (p !== '<link>') {
157
- return p;
158
- }
159
- const link = links.pop();
160
- return link ? (
161
- <Text key={link + i} onPress={() => pressHandler(link)} style={style}>
162
- {link}
163
- </Text>
164
- ) : (
165
- p
166
- );
167
- });
168
- }