@100mslive/react-native-room-kit 1.0.9 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/README.md +5 -6
  2. package/lib/commonjs/HMSRoomSetup.js +49 -0
  3. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  4. package/lib/commonjs/Icons/Add/assets/add-circle.png +0 -0
  5. package/lib/commonjs/Icons/Add/assets/add-circle@2x.png +0 -0
  6. package/lib/commonjs/Icons/Add/assets/add-circle@3x.png +0 -0
  7. package/lib/commonjs/Icons/Add/index.js +35 -0
  8. package/lib/commonjs/Icons/Add/index.js.map +1 -0
  9. package/lib/commonjs/Icons/CheckBox/assets/checkbox-checked.png +0 -0
  10. package/lib/commonjs/Icons/CheckBox/assets/checkbox-checked@2x.png +0 -0
  11. package/lib/commonjs/Icons/CheckBox/assets/checkbox-checked@3x.png +0 -0
  12. package/lib/commonjs/Icons/CheckBox/assets/checkbox.png +0 -0
  13. package/lib/commonjs/Icons/CheckBox/assets/checkbox@2x.png +0 -0
  14. package/lib/commonjs/Icons/CheckBox/assets/checkbox@3x.png +0 -0
  15. package/lib/commonjs/Icons/CheckBox/index.js +34 -0
  16. package/lib/commonjs/Icons/CheckBox/index.js.map +1 -0
  17. package/lib/commonjs/Icons/Poll/assets/poll.png +0 -0
  18. package/lib/commonjs/Icons/Poll/assets/poll@2x.png +0 -0
  19. package/lib/commonjs/Icons/Poll/assets/poll@3x.png +0 -0
  20. package/lib/commonjs/Icons/Poll/index.js +33 -0
  21. package/lib/commonjs/Icons/Poll/index.js.map +1 -0
  22. package/lib/commonjs/Icons/PollVote/assets/poll-vote.png +0 -0
  23. package/lib/commonjs/Icons/PollVote/assets/poll-vote@2x.png +0 -0
  24. package/lib/commonjs/Icons/PollVote/assets/poll-vote@3x.png +0 -0
  25. package/lib/commonjs/Icons/PollVote/index.js +33 -0
  26. package/lib/commonjs/Icons/PollVote/index.js.map +1 -0
  27. package/lib/commonjs/Icons/Quiz/assets/quiz.png +0 -0
  28. package/lib/commonjs/Icons/Quiz/assets/quiz@2x.png +0 -0
  29. package/lib/commonjs/Icons/Quiz/assets/quiz@3x.png +0 -0
  30. package/lib/commonjs/Icons/Quiz/index.js +33 -0
  31. package/lib/commonjs/Icons/Quiz/index.js.map +1 -0
  32. package/lib/commonjs/Icons/TrashBin/assets/trash-bin.png +0 -0
  33. package/lib/commonjs/Icons/TrashBin/assets/trash-bin@2x.png +0 -0
  34. package/lib/commonjs/Icons/TrashBin/assets/trash-bin@3x.png +0 -0
  35. package/lib/commonjs/Icons/TrashBin/index.js +34 -0
  36. package/lib/commonjs/Icons/TrashBin/index.js.map +1 -0
  37. package/lib/commonjs/Icons/index.js +66 -0
  38. package/lib/commonjs/Icons/index.js.map +1 -1
  39. package/lib/commonjs/components/CheckboxInputRow.js +53 -0
  40. package/lib/commonjs/components/CheckboxInputRow.js.map +1 -0
  41. package/lib/commonjs/components/CreatePoll.js +163 -0
  42. package/lib/commonjs/components/CreatePoll.js.map +1 -0
  43. package/lib/commonjs/components/Footer.js +6 -1
  44. package/lib/commonjs/components/Footer.js.map +1 -1
  45. package/lib/commonjs/components/GridView.js +9 -4
  46. package/lib/commonjs/components/GridView.js.map +1 -1
  47. package/lib/commonjs/components/HLSPlayerEmoticons.js +2 -3
  48. package/lib/commonjs/components/HLSPlayerEmoticons.js.map +1 -1
  49. package/lib/commonjs/components/HMSBaseButton.js +4 -2
  50. package/lib/commonjs/components/HMSBaseButton.js.map +1 -1
  51. package/lib/commonjs/components/HMSNotification.js +5 -1
  52. package/lib/commonjs/components/HMSNotification.js.map +1 -1
  53. package/lib/commonjs/components/HMSNotifications.js +4 -0
  54. package/lib/commonjs/components/HMSNotifications.js.map +1 -1
  55. package/lib/commonjs/components/HMSPollsQuizzesNotification.js +95 -0
  56. package/lib/commonjs/components/HMSPollsQuizzesNotification.js.map +1 -0
  57. package/lib/commonjs/components/HMSRoomOptions.js +2 -1
  58. package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
  59. package/lib/commonjs/components/HMSSecondaryButton.js +56 -0
  60. package/lib/commonjs/components/HMSSecondaryButton.js.map +1 -0
  61. package/lib/commonjs/components/Meeting.js +1 -0
  62. package/lib/commonjs/components/Meeting.js.map +1 -1
  63. package/lib/commonjs/components/OverlayContainer.js +6 -3
  64. package/lib/commonjs/components/OverlayContainer.js.map +1 -1
  65. package/lib/commonjs/components/OverlayedViews.js +5 -2
  66. package/lib/commonjs/components/OverlayedViews.js.map +1 -1
  67. package/lib/commonjs/components/PeerVideoTile/HMSPinchGesture.js +18 -87
  68. package/lib/commonjs/components/PeerVideoTile/HMSPinchGesture.js.map +1 -1
  69. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +3 -1
  70. package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
  71. package/lib/commonjs/components/PollAndQuizQuestionResponseCard.js +185 -0
  72. package/lib/commonjs/components/PollAndQuizQuestionResponseCard.js.map +1 -0
  73. package/lib/commonjs/components/PollAndQuizVoting.js +136 -0
  74. package/lib/commonjs/components/PollAndQuizVoting.js.map +1 -0
  75. package/lib/commonjs/components/PollAndQuizzStateLabel.js +72 -0
  76. package/lib/commonjs/components/PollAndQuizzStateLabel.js.map +1 -0
  77. package/lib/commonjs/components/PollQDeleteConfirmationSheetView.js +68 -0
  78. package/lib/commonjs/components/PollQDeleteConfirmationSheetView.js.map +1 -0
  79. package/lib/commonjs/components/PollQuestion.js +368 -0
  80. package/lib/commonjs/components/PollQuestion.js.map +1 -0
  81. package/lib/commonjs/components/PollQuestionDeleteConfirmation.js +97 -0
  82. package/lib/commonjs/components/PollQuestionDeleteConfirmation.js.map +1 -0
  83. package/lib/commonjs/components/PollQuestions.js +189 -0
  84. package/lib/commonjs/components/PollQuestions.js.map +1 -0
  85. package/lib/commonjs/components/PollResponseProgressView.js +68 -0
  86. package/lib/commonjs/components/PollResponseProgressView.js.map +1 -0
  87. package/lib/commonjs/components/PollsAndQuizBottomSheet.js +59 -0
  88. package/lib/commonjs/components/PollsAndQuizBottomSheet.js.map +1 -0
  89. package/lib/commonjs/components/PollsAndQuizzesCard.js +97 -0
  90. package/lib/commonjs/components/PollsAndQuizzesCard.js.map +1 -0
  91. package/lib/commonjs/components/PollsAndQuizzesModalContent.js +159 -0
  92. package/lib/commonjs/components/PollsAndQuizzesModalContent.js.map +1 -0
  93. package/lib/commonjs/components/PollsConfigAndList.js +32 -0
  94. package/lib/commonjs/components/PollsConfigAndList.js.map +1 -0
  95. package/lib/commonjs/components/PreviousPollsAndQuizzesList.js +76 -0
  96. package/lib/commonjs/components/PreviousPollsAndQuizzesList.js.map +1 -0
  97. package/lib/commonjs/components/RadioInput.js +42 -0
  98. package/lib/commonjs/components/RadioInput.js.map +1 -0
  99. package/lib/commonjs/components/RadioInputRow.js +57 -0
  100. package/lib/commonjs/components/RadioInputRow.js.map +1 -0
  101. package/lib/commonjs/components/RoomSettingsModalContent.js +31 -6
  102. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  103. package/lib/commonjs/components/SwitchRow.js +2 -1
  104. package/lib/commonjs/components/SwitchRow.js.map +1 -1
  105. package/lib/commonjs/components/TilesContainer.js +1 -1
  106. package/lib/commonjs/components/WebrtcView.js +14 -6
  107. package/lib/commonjs/components/WebrtcView.js.map +1 -1
  108. package/lib/commonjs/hooks-util.js +36 -1
  109. package/lib/commonjs/hooks-util.js.map +1 -1
  110. package/lib/commonjs/redux/actionTypes.js +38 -1
  111. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  112. package/lib/commonjs/redux/actions/index.js +140 -1
  113. package/lib/commonjs/redux/actions/index.js.map +1 -1
  114. package/lib/commonjs/redux/reducers/index.js +3 -1
  115. package/lib/commonjs/redux/reducers/index.js.map +1 -1
  116. package/lib/commonjs/redux/reducers/polls.js +251 -0
  117. package/lib/commonjs/redux/reducers/polls.js.map +1 -0
  118. package/lib/commonjs/types.js +1 -0
  119. package/lib/commonjs/types.js.map +1 -1
  120. package/lib/commonjs/utils/functions.js +6 -1
  121. package/lib/commonjs/utils/functions.js.map +1 -1
  122. package/lib/commonjs/utils/types.js +1 -0
  123. package/lib/commonjs/utils/types.js.map +1 -1
  124. package/lib/module/HMSRoomSetup.js +52 -3
  125. package/lib/module/HMSRoomSetup.js.map +1 -1
  126. package/lib/module/Icons/Add/assets/add-circle.png +0 -0
  127. package/lib/module/Icons/Add/assets/add-circle@2x.png +0 -0
  128. package/lib/module/Icons/Add/assets/add-circle@3x.png +0 -0
  129. package/lib/module/Icons/Add/index.js +27 -0
  130. package/lib/module/Icons/Add/index.js.map +1 -0
  131. package/lib/module/Icons/CheckBox/assets/checkbox-checked.png +0 -0
  132. package/lib/module/Icons/CheckBox/assets/checkbox-checked@2x.png +0 -0
  133. package/lib/module/Icons/CheckBox/assets/checkbox-checked@3x.png +0 -0
  134. package/lib/module/Icons/CheckBox/assets/checkbox.png +0 -0
  135. package/lib/module/Icons/CheckBox/assets/checkbox@2x.png +0 -0
  136. package/lib/module/Icons/CheckBox/assets/checkbox@3x.png +0 -0
  137. package/lib/module/Icons/CheckBox/index.js +26 -0
  138. package/lib/module/Icons/CheckBox/index.js.map +1 -0
  139. package/lib/module/Icons/Poll/assets/poll.png +0 -0
  140. package/lib/module/Icons/Poll/assets/poll@2x.png +0 -0
  141. package/lib/module/Icons/Poll/assets/poll@3x.png +0 -0
  142. package/lib/module/Icons/Poll/index.js +25 -0
  143. package/lib/module/Icons/Poll/index.js.map +1 -0
  144. package/lib/module/Icons/PollVote/assets/poll-vote.png +0 -0
  145. package/lib/module/Icons/PollVote/assets/poll-vote@2x.png +0 -0
  146. package/lib/module/Icons/PollVote/assets/poll-vote@3x.png +0 -0
  147. package/lib/module/Icons/PollVote/index.js +25 -0
  148. package/lib/module/Icons/PollVote/index.js.map +1 -0
  149. package/lib/module/Icons/Quiz/assets/quiz.png +0 -0
  150. package/lib/module/Icons/Quiz/assets/quiz@2x.png +0 -0
  151. package/lib/module/Icons/Quiz/assets/quiz@3x.png +0 -0
  152. package/lib/module/Icons/Quiz/index.js +25 -0
  153. package/lib/module/Icons/Quiz/index.js.map +1 -0
  154. package/lib/module/Icons/TrashBin/assets/trash-bin.png +0 -0
  155. package/lib/module/Icons/TrashBin/assets/trash-bin@2x.png +0 -0
  156. package/lib/module/Icons/TrashBin/assets/trash-bin@3x.png +0 -0
  157. package/lib/module/Icons/TrashBin/index.js +26 -0
  158. package/lib/module/Icons/TrashBin/index.js.map +1 -0
  159. package/lib/module/Icons/index.js +6 -0
  160. package/lib/module/Icons/index.js.map +1 -1
  161. package/lib/module/components/CheckboxInputRow.js +45 -0
  162. package/lib/module/components/CheckboxInputRow.js.map +1 -0
  163. package/lib/module/components/CreatePoll.js +155 -0
  164. package/lib/module/components/CreatePoll.js.map +1 -0
  165. package/lib/module/components/Footer.js +6 -1
  166. package/lib/module/components/Footer.js.map +1 -1
  167. package/lib/module/components/GridView.js +10 -5
  168. package/lib/module/components/GridView.js.map +1 -1
  169. package/lib/module/components/HLSPlayerEmoticons.js +2 -3
  170. package/lib/module/components/HLSPlayerEmoticons.js.map +1 -1
  171. package/lib/module/components/HMSBaseButton.js +5 -3
  172. package/lib/module/components/HMSBaseButton.js.map +1 -1
  173. package/lib/module/components/HMSNotification.js +5 -1
  174. package/lib/module/components/HMSNotification.js.map +1 -1
  175. package/lib/module/components/HMSNotifications.js +4 -0
  176. package/lib/module/components/HMSNotifications.js.map +1 -1
  177. package/lib/module/components/HMSPollsQuizzesNotification.js +86 -0
  178. package/lib/module/components/HMSPollsQuizzesNotification.js.map +1 -0
  179. package/lib/module/components/HMSRoomOptions.js +2 -1
  180. package/lib/module/components/HMSRoomOptions.js.map +1 -1
  181. package/lib/module/components/HMSSecondaryButton.js +47 -0
  182. package/lib/module/components/HMSSecondaryButton.js.map +1 -0
  183. package/lib/module/components/Meeting.js +2 -1
  184. package/lib/module/components/Meeting.js.map +1 -1
  185. package/lib/module/components/OverlayContainer.js +5 -3
  186. package/lib/module/components/OverlayContainer.js.map +1 -1
  187. package/lib/module/components/OverlayedViews.js +5 -2
  188. package/lib/module/components/OverlayedViews.js.map +1 -1
  189. package/lib/module/components/PeerVideoTile/HMSPinchGesture.js +18 -87
  190. package/lib/module/components/PeerVideoTile/HMSPinchGesture.js.map +1 -1
  191. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +3 -1
  192. package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
  193. package/lib/module/components/PollAndQuizQuestionResponseCard.js +176 -0
  194. package/lib/module/components/PollAndQuizQuestionResponseCard.js.map +1 -0
  195. package/lib/module/components/PollAndQuizVoting.js +127 -0
  196. package/lib/module/components/PollAndQuizVoting.js.map +1 -0
  197. package/lib/module/components/PollAndQuizzStateLabel.js +63 -0
  198. package/lib/module/components/PollAndQuizzStateLabel.js.map +1 -0
  199. package/lib/module/components/PollQDeleteConfirmationSheetView.js +60 -0
  200. package/lib/module/components/PollQDeleteConfirmationSheetView.js.map +1 -0
  201. package/lib/module/components/PollQuestion.js +359 -0
  202. package/lib/module/components/PollQuestion.js.map +1 -0
  203. package/lib/module/components/PollQuestionDeleteConfirmation.js +88 -0
  204. package/lib/module/components/PollQuestionDeleteConfirmation.js.map +1 -0
  205. package/lib/module/components/PollQuestions.js +180 -0
  206. package/lib/module/components/PollQuestions.js.map +1 -0
  207. package/lib/module/components/PollResponseProgressView.js +59 -0
  208. package/lib/module/components/PollResponseProgressView.js.map +1 -0
  209. package/lib/module/components/PollsAndQuizBottomSheet.js +50 -0
  210. package/lib/module/components/PollsAndQuizBottomSheet.js.map +1 -0
  211. package/lib/module/components/PollsAndQuizzesCard.js +88 -0
  212. package/lib/module/components/PollsAndQuizzesCard.js.map +1 -0
  213. package/lib/module/components/PollsAndQuizzesModalContent.js +150 -0
  214. package/lib/module/components/PollsAndQuizzesModalContent.js.map +1 -0
  215. package/lib/module/components/PollsConfigAndList.js +23 -0
  216. package/lib/module/components/PollsConfigAndList.js.map +1 -0
  217. package/lib/module/components/PreviousPollsAndQuizzesList.js +67 -0
  218. package/lib/module/components/PreviousPollsAndQuizzesList.js.map +1 -0
  219. package/lib/module/components/RadioInput.js +34 -0
  220. package/lib/module/components/RadioInput.js.map +1 -0
  221. package/lib/module/components/RadioInputRow.js +49 -0
  222. package/lib/module/components/RadioInputRow.js.map +1 -0
  223. package/lib/module/components/RoomSettingsModalContent.js +32 -7
  224. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  225. package/lib/module/components/SwitchRow.js +2 -1
  226. package/lib/module/components/SwitchRow.js.map +1 -1
  227. package/lib/module/components/TilesContainer.js +1 -1
  228. package/lib/module/components/WebrtcView.js +15 -7
  229. package/lib/module/components/WebrtcView.js.map +1 -1
  230. package/lib/module/hooks-util.js +35 -2
  231. package/lib/module/hooks-util.js.map +1 -1
  232. package/lib/module/redux/actionTypes.js +39 -0
  233. package/lib/module/redux/actionTypes.js.map +1 -1
  234. package/lib/module/redux/actions/index.js +116 -1
  235. package/lib/module/redux/actions/index.js.map +1 -1
  236. package/lib/module/redux/reducers/index.js +3 -1
  237. package/lib/module/redux/reducers/index.js.map +1 -1
  238. package/lib/module/redux/reducers/polls.js +245 -0
  239. package/lib/module/redux/reducers/polls.js.map +1 -0
  240. package/lib/module/types.js +1 -0
  241. package/lib/module/types.js.map +1 -1
  242. package/lib/module/utils/functions.js +5 -1
  243. package/lib/module/utils/functions.js.map +1 -1
  244. package/lib/module/utils/types.js +1 -0
  245. package/lib/module/utils/types.js.map +1 -1
  246. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  247. package/lib/typescript/Icons/Add/index.d.ts +8 -0
  248. package/lib/typescript/Icons/Add/index.d.ts.map +1 -0
  249. package/lib/typescript/Icons/CheckBox/index.d.ts +8 -0
  250. package/lib/typescript/Icons/CheckBox/index.d.ts.map +1 -0
  251. package/lib/typescript/Icons/Poll/index.d.ts +7 -0
  252. package/lib/typescript/Icons/Poll/index.d.ts.map +1 -0
  253. package/lib/typescript/Icons/PollVote/index.d.ts +7 -0
  254. package/lib/typescript/Icons/PollVote/index.d.ts.map +1 -0
  255. package/lib/typescript/Icons/Quiz/index.d.ts +7 -0
  256. package/lib/typescript/Icons/Quiz/index.d.ts.map +1 -0
  257. package/lib/typescript/Icons/TrashBin/index.d.ts +7 -0
  258. package/lib/typescript/Icons/TrashBin/index.d.ts.map +1 -0
  259. package/lib/typescript/Icons/index.d.ts +6 -0
  260. package/lib/typescript/Icons/index.d.ts.map +1 -1
  261. package/lib/typescript/components/CheckboxInputRow.d.ts +13 -0
  262. package/lib/typescript/components/CheckboxInputRow.d.ts.map +1 -0
  263. package/lib/typescript/components/CreatePoll.d.ts +5 -0
  264. package/lib/typescript/components/CreatePoll.d.ts.map +1 -0
  265. package/lib/typescript/components/Footer.d.ts.map +1 -1
  266. package/lib/typescript/components/GridView.d.ts.map +1 -1
  267. package/lib/typescript/components/HLSPlayerEmoticons.d.ts.map +1 -1
  268. package/lib/typescript/components/HMSBaseButton.d.ts +2 -1
  269. package/lib/typescript/components/HMSBaseButton.d.ts.map +1 -1
  270. package/lib/typescript/components/HMSNotifications.d.ts.map +1 -1
  271. package/lib/typescript/components/HMSPollsQuizzesNotification.d.ts +7 -0
  272. package/lib/typescript/components/HMSPollsQuizzesNotification.d.ts.map +1 -0
  273. package/lib/typescript/components/HMSPrimaryButton.d.ts +1 -1
  274. package/lib/typescript/components/HMSPrimaryButton.d.ts.map +1 -1
  275. package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
  276. package/lib/typescript/components/HMSSecondaryButton.d.ts +15 -0
  277. package/lib/typescript/components/HMSSecondaryButton.d.ts.map +1 -0
  278. package/lib/typescript/components/Meeting.d.ts.map +1 -1
  279. package/lib/typescript/components/OverlayContainer.d.ts +5 -1
  280. package/lib/typescript/components/OverlayContainer.d.ts.map +1 -1
  281. package/lib/typescript/components/OverlayedViews.d.ts +2 -1
  282. package/lib/typescript/components/OverlayedViews.d.ts.map +1 -1
  283. package/lib/typescript/components/PeerVideoTile/HMSPinchGesture.d.ts.map +1 -1
  284. package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -1
  285. package/lib/typescript/components/PollAndQuizQuestionResponseCard.d.ts +13 -0
  286. package/lib/typescript/components/PollAndQuizQuestionResponseCard.d.ts.map +1 -0
  287. package/lib/typescript/components/PollAndQuizVoting.d.ts +6 -0
  288. package/lib/typescript/components/PollAndQuizVoting.d.ts.map +1 -0
  289. package/lib/typescript/components/PollAndQuizzStateLabel.d.ts +7 -0
  290. package/lib/typescript/components/PollAndQuizzStateLabel.d.ts.map +1 -0
  291. package/lib/typescript/components/PollQDeleteConfirmationSheetView.d.ts +6 -0
  292. package/lib/typescript/components/PollQDeleteConfirmationSheetView.d.ts.map +1 -0
  293. package/lib/typescript/components/PollQuestion.d.ts +14 -0
  294. package/lib/typescript/components/PollQuestion.d.ts.map +1 -0
  295. package/lib/typescript/components/PollQuestionDeleteConfirmation.d.ts +6 -0
  296. package/lib/typescript/components/PollQuestionDeleteConfirmation.d.ts.map +1 -0
  297. package/lib/typescript/components/PollQuestions.d.ts +6 -0
  298. package/lib/typescript/components/PollQuestions.d.ts.map +1 -0
  299. package/lib/typescript/components/PollResponseProgressView.d.ts +9 -0
  300. package/lib/typescript/components/PollResponseProgressView.d.ts.map +1 -0
  301. package/lib/typescript/components/PollsAndQuizBottomSheet.d.ts +3 -0
  302. package/lib/typescript/components/PollsAndQuizBottomSheet.d.ts.map +1 -0
  303. package/lib/typescript/components/PollsAndQuizzesCard.d.ts +7 -0
  304. package/lib/typescript/components/PollsAndQuizzesCard.d.ts.map +1 -0
  305. package/lib/typescript/components/PollsAndQuizzesModalContent.d.ts +7 -0
  306. package/lib/typescript/components/PollsAndQuizzesModalContent.d.ts.map +1 -0
  307. package/lib/typescript/components/PollsConfigAndList.d.ts +5 -0
  308. package/lib/typescript/components/PollsConfigAndList.d.ts.map +1 -0
  309. package/lib/typescript/components/PreviousPollsAndQuizzesList.d.ts +5 -0
  310. package/lib/typescript/components/PreviousPollsAndQuizzesList.d.ts.map +1 -0
  311. package/lib/typescript/components/RadioInput.d.ts +9 -0
  312. package/lib/typescript/components/RadioInput.d.ts.map +1 -0
  313. package/lib/typescript/components/RadioInputRow.d.ts +16 -0
  314. package/lib/typescript/components/RadioInputRow.d.ts.map +1 -0
  315. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  316. package/lib/typescript/components/SwitchRow.d.ts +2 -1
  317. package/lib/typescript/components/SwitchRow.d.ts.map +1 -1
  318. package/lib/typescript/components/WebrtcView.d.ts.map +1 -1
  319. package/lib/typescript/hooks-util.d.ts +2 -0
  320. package/lib/typescript/hooks-util.d.ts.map +1 -1
  321. package/lib/typescript/redux/actionTypes.d.ts +161 -0
  322. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  323. package/lib/typescript/redux/actions/index.d.ts +36 -2
  324. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  325. package/lib/typescript/redux/index.d.ts +13 -0
  326. package/lib/typescript/redux/index.d.ts.map +1 -1
  327. package/lib/typescript/redux/reducers/index.d.ts +13 -0
  328. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  329. package/lib/typescript/redux/reducers/polls.d.ts +19 -0
  330. package/lib/typescript/redux/reducers/polls.d.ts.map +1 -0
  331. package/lib/typescript/types.d.ts +3 -1
  332. package/lib/typescript/types.d.ts.map +1 -1
  333. package/lib/typescript/utils/functions.d.ts +2 -0
  334. package/lib/typescript/utils/functions.d.ts.map +1 -1
  335. package/lib/typescript/utils/types.d.ts +1 -0
  336. package/lib/typescript/utils/types.d.ts.map +1 -1
  337. package/package.json +2 -2
  338. package/src/HMSRoomSetup.tsx +61 -0
  339. package/src/Icons/Add/assets/add-circle.png +0 -0
  340. package/src/Icons/Add/assets/add-circle@2x.png +0 -0
  341. package/src/Icons/Add/assets/add-circle@3x.png +0 -0
  342. package/src/Icons/Add/index.tsx +37 -0
  343. package/src/Icons/CheckBox/assets/checkbox-checked.png +0 -0
  344. package/src/Icons/CheckBox/assets/checkbox-checked@2x.png +0 -0
  345. package/src/Icons/CheckBox/assets/checkbox-checked@3x.png +0 -0
  346. package/src/Icons/CheckBox/assets/checkbox.png +0 -0
  347. package/src/Icons/CheckBox/assets/checkbox@2x.png +0 -0
  348. package/src/Icons/CheckBox/assets/checkbox@3x.png +0 -0
  349. package/src/Icons/CheckBox/index.tsx +40 -0
  350. package/src/Icons/Poll/assets/poll.png +0 -0
  351. package/src/Icons/Poll/assets/poll@2x.png +0 -0
  352. package/src/Icons/Poll/assets/poll@3x.png +0 -0
  353. package/src/Icons/Poll/index.tsx +30 -0
  354. package/src/Icons/PollVote/assets/poll-vote.png +0 -0
  355. package/src/Icons/PollVote/assets/poll-vote@2x.png +0 -0
  356. package/src/Icons/PollVote/assets/poll-vote@3x.png +0 -0
  357. package/src/Icons/PollVote/index.tsx +33 -0
  358. package/src/Icons/Quiz/assets/quiz.png +0 -0
  359. package/src/Icons/Quiz/assets/quiz@2x.png +0 -0
  360. package/src/Icons/Quiz/assets/quiz@3x.png +0 -0
  361. package/src/Icons/Quiz/index.tsx +30 -0
  362. package/src/Icons/TrashBin/assets/trash-bin.png +0 -0
  363. package/src/Icons/TrashBin/assets/trash-bin@2x.png +0 -0
  364. package/src/Icons/TrashBin/assets/trash-bin@3x.png +0 -0
  365. package/src/Icons/TrashBin/index.tsx +34 -0
  366. package/src/Icons/index.ts +6 -0
  367. package/src/components/CheckboxInputRow.tsx +68 -0
  368. package/src/components/CreatePoll.tsx +176 -0
  369. package/src/components/Footer.tsx +7 -1
  370. package/src/components/GridView.tsx +14 -5
  371. package/src/components/HLSPlayerEmoticons.tsx +2 -3
  372. package/src/components/HMSBaseButton.tsx +8 -3
  373. package/src/components/HMSNotification.tsx +1 -1
  374. package/src/components/HMSNotifications.tsx +7 -0
  375. package/src/components/HMSPollsQuizzesNotification.tsx +110 -0
  376. package/src/components/HMSPrimaryButton.tsx +1 -1
  377. package/src/components/HMSRoomOptions.tsx +3 -0
  378. package/src/components/HMSSecondaryButton.tsx +72 -0
  379. package/src/components/Meeting.tsx +3 -0
  380. package/src/components/OverlayContainer.tsx +12 -3
  381. package/src/components/OverlayedViews.tsx +7 -3
  382. package/src/components/PeerVideoTile/HMSPinchGesture.tsx +28 -71
  383. package/src/components/PeerVideoTile/PeerVideoTileView.tsx +4 -1
  384. package/src/components/PollAndQuizQuestionResponseCard.tsx +311 -0
  385. package/src/components/PollAndQuizVoting.tsx +157 -0
  386. package/src/components/PollAndQuizzStateLabel.tsx +83 -0
  387. package/src/components/PollQDeleteConfirmationSheetView.tsx +82 -0
  388. package/src/components/PollQuestion.tsx +553 -0
  389. package/src/components/PollQuestionDeleteConfirmation.tsx +110 -0
  390. package/src/components/PollQuestions.tsx +259 -0
  391. package/src/components/PollResponseProgressView.tsx +77 -0
  392. package/src/components/PollsAndQuizBottomSheet.tsx +83 -0
  393. package/src/components/PollsAndQuizzesCard.tsx +111 -0
  394. package/src/components/PollsAndQuizzesModalContent.tsx +198 -0
  395. package/src/components/PollsConfigAndList.tsx +29 -0
  396. package/src/components/PreviousPollsAndQuizzesList.tsx +103 -0
  397. package/src/components/RadioInput.tsx +44 -0
  398. package/src/components/RadioInputRow.tsx +73 -0
  399. package/src/components/RoomSettingsModalContent.tsx +23 -0
  400. package/src/components/SwitchRow.tsx +4 -2
  401. package/src/components/TilesContainer.tsx +1 -1
  402. package/src/components/WebrtcView.tsx +27 -9
  403. package/src/hooks-util.ts +54 -0
  404. package/src/redux/actionTypes.ts +221 -0
  405. package/src/redux/actions/index.ts +218 -1
  406. package/src/redux/reducers/index.ts +2 -0
  407. package/src/redux/reducers/polls.ts +328 -0
  408. package/src/types.ts +2 -0
  409. package/src/utils/functions.ts +14 -0
  410. package/src/utils/types.ts +1 -0
@@ -0,0 +1,311 @@
1
+ import * as React from 'react';
2
+ import { View, Text, StyleSheet } from 'react-native';
3
+ import type { StyleProp, ViewStyle } from 'react-native';
4
+ import { HMSPollQuestionType, HMSPollState } from '@100mslive/react-native-hms';
5
+ import type {
6
+ HMSPoll,
7
+ HMSPollQuestion,
8
+ HMSPollQuestionOption,
9
+ } from '@100mslive/react-native-hms';
10
+
11
+ import {
12
+ useHMSInstance,
13
+ useHMSRoomColorPalette,
14
+ useHMSRoomStyleSheet,
15
+ } from '../hooks-util';
16
+ import { RadioInputRow } from './RadioInputRow';
17
+ import { HMSPrimaryButton } from './HMSPrimaryButton';
18
+ import { HMSBaseButton } from './HMSBaseButton';
19
+ import { useDispatch, useSelector } from 'react-redux';
20
+ import type { RootState } from 'src/redux';
21
+ import {
22
+ addPollQuestionResponse,
23
+ removePollQuestionResponse,
24
+ setPollQuestionResponse,
25
+ } from '../redux/actions';
26
+ import { PollResponseProgressView } from './PollResponseProgressView';
27
+ import { CheckboxInputRow } from './CheckboxInputRow';
28
+
29
+ export interface PollAndQuizQuestionResponseCardProps {
30
+ pollId: HMSPoll['pollId'];
31
+ pollState: HMSPoll['state'];
32
+ totalQuestions: number;
33
+ pollQuestion: HMSPollQuestion;
34
+ containerStyle?: StyleProp<ViewStyle>;
35
+ onSubmit?: (d: any) => void;
36
+ }
37
+
38
+ export const PollAndQuizQuestionResponseCard: React.FC<
39
+ PollAndQuizQuestionResponseCardProps
40
+ > = ({
41
+ pollState,
42
+ totalQuestions,
43
+ pollId,
44
+ pollQuestion,
45
+ containerStyle,
46
+ onSubmit,
47
+ }) => {
48
+ const {
49
+ primary_bright: primaryBrightColor,
50
+ on_surface_low: onSurfaceLowColor,
51
+ } = useHMSRoomColorPalette();
52
+
53
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme, typography) => ({
54
+ container: {
55
+ backgroundColor: theme.palette.surface_default,
56
+ },
57
+ surfaceLowSemiBoldText: {
58
+ color: theme.palette.on_surface_low,
59
+ fontFamily: `${typography.font_family}-SemiBold`,
60
+ },
61
+ surfaceHighRegularText: {
62
+ color: theme.palette.on_surface_high,
63
+ fontFamily: `${typography.font_family}-Regular`,
64
+ },
65
+
66
+ skipButton: {
67
+ borderColor: theme.palette.border_bright,
68
+ borderWidth: 1,
69
+ marginRight: 16,
70
+ },
71
+ skipButtonText: {
72
+ color: theme.palette.on_surface_high,
73
+ fontFamily: `${typography.font_family}-SemiBold`,
74
+ },
75
+ }));
76
+
77
+ const hmsInstance = useHMSInstance();
78
+ const dispatch = useDispatch();
79
+
80
+ const selectedOptions = useSelector(
81
+ (state: RootState) =>
82
+ state.polls.pollsResponses[pollId]?.[pollQuestion.index] ?? null
83
+ );
84
+
85
+ const canViewPollResponse = useSelector((state: RootState) => {
86
+ const localPeerRole = state.hmsStates.localPeer?.role;
87
+ const rolesThatCanViewResponses =
88
+ state.polls.polls[pollId]?.rolesThatCanViewResponses;
89
+
90
+ return Array.isArray(rolesThatCanViewResponses) &&
91
+ rolesThatCanViewResponses.length > 0
92
+ ? localPeerRole &&
93
+ rolesThatCanViewResponses.findIndex(
94
+ (role) => role.name === localPeerRole.name
95
+ ) !== -1
96
+ : true;
97
+ });
98
+
99
+ const handleOptionSelection = (
100
+ selected: boolean,
101
+ option: HMSPollQuestionOption
102
+ ) => {
103
+ if (pollQuestion.type === HMSPollQuestionType.singleChoice) {
104
+ dispatch(
105
+ setPollQuestionResponse(pollId, pollQuestion.index, option.index)
106
+ );
107
+ } else {
108
+ if (selected) {
109
+ dispatch(
110
+ addPollQuestionResponse(pollId, pollQuestion.index, option.index)
111
+ );
112
+ } else {
113
+ dispatch(
114
+ removePollQuestionResponse(pollId, pollQuestion.index, option.index)
115
+ );
116
+ }
117
+ }
118
+ };
119
+
120
+ const handleVotePress = async (e: any) => {
121
+ if (!selectedOptions) {
122
+ return;
123
+ }
124
+ onSubmit?.(e);
125
+ const result = await hmsInstance.interactivityCenter.add({
126
+ pollId,
127
+ pollQuestionIndex: pollQuestion.index,
128
+ responses: {
129
+ options: Array.isArray(selectedOptions)
130
+ ? selectedOptions
131
+ : [selectedOptions],
132
+ },
133
+ });
134
+ console.log(JSON.stringify(result, null, 4));
135
+ };
136
+
137
+ const handleSkipPress = async (e: any) => {
138
+ onSubmit?.(e);
139
+ // TODO: Implement skip API
140
+ };
141
+
142
+ const anyOptionSelected = Array.isArray(selectedOptions)
143
+ ? selectedOptions.length > 0
144
+ : selectedOptions !== null;
145
+ const isVoted = pollQuestion.myResponses.length > 0;
146
+ const InputComponent =
147
+ pollQuestion.type === HMSPollQuestionType.singleChoice
148
+ ? RadioInputRow
149
+ : pollQuestion.type === HMSPollQuestionType.multipleChoice
150
+ ? CheckboxInputRow
151
+ : null;
152
+
153
+ return (
154
+ <View style={[hmsRoomStyles.container, styles.container, containerStyle]}>
155
+ <Text
156
+ style={[
157
+ styles.tinyText,
158
+ hmsRoomStyles.surfaceLowSemiBoldText,
159
+ styles.uppercaseContent,
160
+ ]}
161
+ >
162
+ Question {pollQuestion.index} of {totalQuestions}:{' '}
163
+ {getLabelFromPollQuestionType(pollQuestion.type)}
164
+ </Text>
165
+
166
+ <Text
167
+ style={[
168
+ hmsRoomStyles.surfaceHighRegularText,
169
+ styles.regularText,
170
+ styles.verticalNormalSpacer,
171
+ ]}
172
+ >
173
+ {pollQuestion.text}
174
+ </Text>
175
+
176
+ {!InputComponent ? null : (
177
+ <>
178
+ {canViewPollResponse &&
179
+ (pollQuestion.myResponses.length > 0 ||
180
+ pollState === HMSPollState.stopped) ? (
181
+ <>
182
+ {pollQuestion.options
183
+ ?.sort((a, b) => a.index - b.index)
184
+ .map((option, _, arr) => {
185
+ return (
186
+ <PollResponseProgressView
187
+ key={option.index}
188
+ option={option}
189
+ totalVotes={arr.reduce((acc, curr) => {
190
+ return acc + curr.voteCount;
191
+ }, 0)}
192
+ />
193
+ );
194
+ })}
195
+ </>
196
+ ) : (
197
+ <>
198
+ {pollQuestion.options
199
+ ?.sort((a, b) => a.index - b.index)
200
+ .map((option) => {
201
+ const isSelected =
202
+ pollQuestion.myResponses.length > 0
203
+ ? pollQuestion.type === HMSPollQuestionType.singleChoice
204
+ ? !!pollQuestion.myResponses.find(
205
+ (r) => r.option === option.index
206
+ )
207
+ : !!pollQuestion.myResponses.find((r) =>
208
+ r.options ? r.options.includes(option.index) : false
209
+ )
210
+ : Array.isArray(selectedOptions)
211
+ ? selectedOptions.includes(option.index)
212
+ : selectedOptions === option.index;
213
+
214
+ return (
215
+ <InputComponent
216
+ key={option.index}
217
+ disabled={isVoted}
218
+ selected={isSelected}
219
+ radioColor={
220
+ isVoted
221
+ ? isSelected
222
+ ? primaryBrightColor
223
+ : onSurfaceLowColor
224
+ : undefined
225
+ }
226
+ onChange={(selected) =>
227
+ handleOptionSelection(selected, option)
228
+ }
229
+ text={option.text}
230
+ containerStyle={{ marginBottom: 16 }}
231
+ />
232
+ );
233
+ })}
234
+ </>
235
+ )}
236
+ </>
237
+ )}
238
+
239
+ {isVoted ? (
240
+ <Text
241
+ style={[
242
+ styles.regularText,
243
+ styles.votedLabel,
244
+ hmsRoomStyles.surfaceLowSemiBoldText,
245
+ ]}
246
+ >
247
+ Voted
248
+ </Text>
249
+ ) : pollState === HMSPollState.started ? (
250
+ <View style={{ alignSelf: 'flex-end', flexDirection: 'row' }}>
251
+ {pollQuestion.skippable ? (
252
+ <HMSBaseButton
253
+ loading={false}
254
+ onPress={handleSkipPress}
255
+ title="Skip"
256
+ style={hmsRoomStyles.skipButton}
257
+ textStyle={hmsRoomStyles.skipButtonText}
258
+ useTouchableOpacity={true}
259
+ />
260
+ ) : null}
261
+
262
+ <HMSPrimaryButton
263
+ loading={false}
264
+ disabled={!anyOptionSelected}
265
+ onPress={handleVotePress}
266
+ title="Vote"
267
+ />
268
+ </View>
269
+ ) : null}
270
+ </View>
271
+ );
272
+ };
273
+
274
+ const styles = StyleSheet.create({
275
+ container: {
276
+ padding: 16,
277
+ borderRadius: 8,
278
+ },
279
+ tinyText: {
280
+ fontSize: 10,
281
+ lineHeight: 16,
282
+ letterSpacing: 1.5,
283
+ },
284
+ regularText: {
285
+ fontSize: 16,
286
+ lineHeight: 24,
287
+ },
288
+ verticalNormalSpacer: {
289
+ marginVertical: 16,
290
+ },
291
+ votedLabel: {
292
+ paddingVertical: 8,
293
+ alignSelf: 'flex-end',
294
+ },
295
+ uppercaseContent: {
296
+ textTransform: 'uppercase',
297
+ },
298
+ });
299
+
300
+ function getLabelFromPollQuestionType(type: HMSPollQuestionType): string {
301
+ switch (type) {
302
+ case HMSPollQuestionType.singleChoice:
303
+ return 'Single Choice';
304
+ case HMSPollQuestionType.multipleChoice:
305
+ return 'Multiple Choice';
306
+ case HMSPollQuestionType.longAnswer:
307
+ return 'Long Answer';
308
+ case HMSPollQuestionType.shortAnswer:
309
+ return 'Short Answer';
310
+ }
311
+ }
@@ -0,0 +1,157 @@
1
+ import * as React from 'react';
2
+ import {
3
+ Text,
4
+ StyleSheet,
5
+ ScrollView,
6
+ findNodeHandle,
7
+ UIManager,
8
+ } from 'react-native';
9
+ import { useSelector } from 'react-redux';
10
+ import { HMSPollState } from '@100mslive/react-native-hms';
11
+
12
+ import { useHMSInstance, useHMSRoomStyleSheet } from '../hooks-util';
13
+ import type { RootState } from '../redux';
14
+ import { PollAndQuizQuestionResponseCard } from './PollAndQuizQuestionResponseCard';
15
+ import { HMSDangerButton } from './HMSDangerButton';
16
+
17
+ export interface PollAndQuizVotingProps {
18
+ dismissModal(): void;
19
+ }
20
+
21
+ export const PollAndQuizVoting: React.FC<PollAndQuizVotingProps> = () => {
22
+ const scrollViewRef = React.useRef<ScrollView>(null);
23
+ const hmsInstance = useHMSInstance();
24
+ const selectedPoll = useSelector((state: RootState) => {
25
+ const pollsData = state.polls;
26
+ if (pollsData.selectedPollId !== null) {
27
+ return pollsData.polls[pollsData.selectedPollId] || null;
28
+ }
29
+ return null;
30
+ });
31
+ const canCreateOrEndPoll = useSelector((state: RootState) => {
32
+ const permissions = state.hmsStates.localPeer?.role?.permissions;
33
+ return permissions?.pollWrite;
34
+ });
35
+
36
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme, typography) => ({
37
+ regularMediumText: {
38
+ color: theme.palette.on_surface_medium,
39
+ fontFamily: `${typography.font_family}-Regular`,
40
+ },
41
+ semiBoldMediumText: {
42
+ color: theme.palette.on_surface_medium,
43
+ fontFamily: `${typography.font_family}-SemiBold`,
44
+ },
45
+ }));
46
+
47
+ const endPoll = async () => {
48
+ if (!selectedPoll || !canCreateOrEndPoll) {
49
+ return;
50
+ }
51
+ const result = await hmsInstance.interactivityCenter.stop(
52
+ selectedPoll.pollId
53
+ );
54
+ console.log('Poll ended', result);
55
+ };
56
+
57
+ const handleVote = (e: any) => {
58
+ const handle = findNodeHandle(e.nativeEvent.target);
59
+ const scrollHandle = findNodeHandle(scrollViewRef.current);
60
+ if (!handle) {
61
+ return;
62
+ }
63
+ if (scrollHandle === null) {
64
+ return;
65
+ }
66
+ UIManager.measureLayout(
67
+ handle,
68
+ scrollHandle,
69
+ () => {
70
+ console.log('Failed', e);
71
+ },
72
+ (_left, top, _width, _height) => {
73
+ scrollViewRef.current?.scrollTo({
74
+ y: top + 400,
75
+ animated: true,
76
+ });
77
+ }
78
+ );
79
+ };
80
+
81
+ return (
82
+ <ScrollView
83
+ ref={scrollViewRef}
84
+ style={styles.contentContainer}
85
+ contentContainerStyle={{ paddingVertical: 24 }}
86
+ >
87
+ <Text style={[styles.normalText, hmsRoomStyles.semiBoldMediumText]}>
88
+ {selectedPoll?.createdBy?.name} started a Poll
89
+ </Text>
90
+
91
+ {selectedPoll?.questions
92
+ ?.sort((a, b) => a.index - b.index)
93
+ .map((question, _, arr) => (
94
+ <PollAndQuizQuestionResponseCard
95
+ key={question.index}
96
+ pollState={selectedPoll.state}
97
+ pollId={selectedPoll.pollId}
98
+ totalQuestions={arr.length}
99
+ pollQuestion={question}
100
+ containerStyle={{ marginBottom: 16 }}
101
+ onSubmit={handleVote}
102
+ />
103
+ ))}
104
+
105
+ {selectedPoll &&
106
+ selectedPoll.state === HMSPollState.started &&
107
+ canCreateOrEndPoll ? (
108
+ <HMSDangerButton
109
+ disabled={!selectedPoll}
110
+ title="End Poll"
111
+ loading={false}
112
+ onPress={endPoll}
113
+ style={{ marginTop: 16, marginBottom: 16, alignSelf: 'flex-end' }}
114
+ />
115
+ ) : null}
116
+ </ScrollView>
117
+ );
118
+ };
119
+
120
+ const styles = StyleSheet.create({
121
+ smallText: {
122
+ fontSize: 14,
123
+ lineHeight: 20,
124
+ },
125
+ normalText: {
126
+ fontSize: 16,
127
+ lineHeight: 24,
128
+ marginBottom: 16,
129
+ },
130
+ contentContainer: {
131
+ paddingHorizontal: 24,
132
+ },
133
+ typeSelectionLabel: {
134
+ fontSize: 12,
135
+ lineHeight: 16,
136
+ },
137
+ pollNameLabel: {
138
+ fontSize: 14,
139
+ lineHeight: 20,
140
+ marginBottom: 8,
141
+ },
142
+ textInput: {
143
+ flex: undefined,
144
+ },
145
+
146
+ addOptionWrapper: {
147
+ alignSelf: 'flex-start',
148
+ },
149
+ addOptionContainer: {
150
+ flexDirection: 'row',
151
+ alignItems: 'center',
152
+ },
153
+ addOptionIconWrapper: {
154
+ marginRight: 8,
155
+ padding: 8,
156
+ },
157
+ });
@@ -0,0 +1,83 @@
1
+ import * as React from 'react';
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+ import { HMSPollState } from '@100mslive/react-native-hms';
4
+
5
+ import { useHMSRoomStyleSheet } from '../hooks-util';
6
+
7
+ export interface PollAndQuizzStateLabelProps {
8
+ state: HMSPollState;
9
+ }
10
+
11
+ export const PollAndQuizzStateLabel: React.FC<PollAndQuizzStateLabelProps> = ({
12
+ state,
13
+ }) => {
14
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme, typography) => ({
15
+ surfaceHighSemiBoldText: {
16
+ color: theme.palette.on_surface_high,
17
+ fontFamily: `${typography.font_family}-SemiBold`,
18
+ },
19
+ container: {
20
+ backgroundColor: theme.palette.surface_default,
21
+ },
22
+ liveStateLabelWrapper: {
23
+ backgroundColor: theme.palette.alert_error_default,
24
+ },
25
+ stateLabelWrapper: {
26
+ backgroundColor: theme.palette.surface_brighter,
27
+ },
28
+ }));
29
+
30
+ return (
31
+ <View
32
+ style={[
33
+ styles.stateLabelWrapper,
34
+ state === HMSPollState.started
35
+ ? hmsRoomStyles.liveStateLabelWrapper
36
+ : hmsRoomStyles.stateLabelWrapper,
37
+ ]}
38
+ >
39
+ <Text style={[styles.stateLabel, hmsRoomStyles.surfaceHighSemiBoldText]}>
40
+ {state === HMSPollState.started
41
+ ? 'LIVE'
42
+ : state === HMSPollState.stopped
43
+ ? 'ENDED'
44
+ : 'DRAFT'}
45
+ </Text>
46
+ </View>
47
+ );
48
+ };
49
+
50
+ const styles = StyleSheet.create({
51
+ container: {
52
+ padding: 16,
53
+ borderRadius: 8,
54
+ marginBottom: 24,
55
+ },
56
+ spacer: {
57
+ height: 16,
58
+ },
59
+ row: {
60
+ flexDirection: 'row',
61
+ alignItems: 'center',
62
+ justifyContent: 'space-between',
63
+ },
64
+ rightRow: {
65
+ flexDirection: 'row',
66
+ justifyContent: 'flex-end',
67
+ },
68
+ pollTitle: {
69
+ fontSize: 16,
70
+ lineHeight: 24,
71
+ letterSpacing: 0.15,
72
+ },
73
+ stateLabelWrapper: {
74
+ paddingVertical: 4,
75
+ paddingHorizontal: 8,
76
+ borderRadius: 4,
77
+ },
78
+ stateLabel: {
79
+ fontSize: 10,
80
+ lineHeight: 16,
81
+ letterSpacing: 1.5,
82
+ },
83
+ });
@@ -0,0 +1,82 @@
1
+ import * as React from 'react';
2
+ import { Pressable, StyleSheet, View } from 'react-native';
3
+ import { useDispatch, useSelector } from 'react-redux';
4
+ import Animated, { SlideInDown, SlideOutDown } from 'react-native-reanimated';
5
+
6
+ import { hexToRgbA } from '../utils/theme';
7
+ import { useHMSRoomStyleSheet } from '../hooks-util';
8
+ import type { RootState } from '../redux';
9
+ import { setPollQDeleteConfirmationVisible } from '../redux/actions';
10
+ import { PollQuestionDeleteConfirmation } from './PollQuestionDeleteConfirmation';
11
+
12
+ interface PollQDeleteConfirmationSheetViewProps {}
13
+
14
+ const _PollQDeleteConfirmationSheetView: React.FC<
15
+ PollQDeleteConfirmationSheetViewProps
16
+ > = ({}) => {
17
+ const dispatch = useDispatch();
18
+ const deleteConfirmationVisible = useSelector(
19
+ (state: RootState) => state.polls.deleteConfirmationVisible
20
+ );
21
+
22
+ const hmsRoomStyles = useHMSRoomStyleSheet((theme) => ({
23
+ backdrop: {
24
+ backgroundColor:
25
+ theme.palette.background_dim &&
26
+ hexToRgbA(theme.palette.background_dim, 0.1),
27
+ },
28
+ contentContainer: {
29
+ backgroundColor: theme.palette.surface_dim,
30
+ },
31
+ }));
32
+
33
+ const closeBottomSheet = () => {
34
+ dispatch(setPollQDeleteConfirmationVisible(false));
35
+ };
36
+
37
+ if (!deleteConfirmationVisible) {
38
+ return null;
39
+ }
40
+
41
+ return (
42
+ <View style={styles.container}>
43
+ <Pressable
44
+ onPress={closeBottomSheet}
45
+ style={[styles.backdrop, hmsRoomStyles.backdrop]}
46
+ />
47
+
48
+ <Animated.View
49
+ entering={SlideInDown}
50
+ exiting={SlideOutDown}
51
+ style={[styles.contentContainer, hmsRoomStyles.contentContainer]}
52
+ >
53
+ <PollQuestionDeleteConfirmation dismissModal={closeBottomSheet} />
54
+ </Animated.View>
55
+ </View>
56
+ );
57
+ };
58
+
59
+ const styles = StyleSheet.create({
60
+ container: {
61
+ position: 'absolute',
62
+ width: '100%',
63
+ height: '100%',
64
+ zIndex: 1,
65
+ justifyContent: 'flex-end',
66
+ alignSelf: 'center',
67
+ },
68
+ backdrop: {
69
+ position: 'absolute',
70
+ width: '100%',
71
+ height: '100%',
72
+ },
73
+ contentContainer: {
74
+ width: '100%',
75
+ borderTopLeftRadius: 16,
76
+ borderTopRightRadius: 16,
77
+ },
78
+ });
79
+
80
+ export const PollQDeleteConfirmationSheetView = React.memo(
81
+ _PollQDeleteConfirmationSheetView
82
+ );