@sendbird/uikit-react 3.0.0-alpha.1 → 3.0.0-beta.2

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 (614) hide show
  1. package/App.js +305 -0
  2. package/App.js.map +1 -0
  3. package/CHANGELOG.md +50 -0
  4. package/Channel/components/ChannelHeader.js +117 -0
  5. package/Channel/components/ChannelHeader.js.map +1 -0
  6. package/Channel/components/ChannelUI.js +179 -0
  7. package/Channel/components/ChannelUI.js.map +1 -0
  8. package/Channel/components/FileViewer.js +151 -0
  9. package/Channel/components/FileViewer.js.map +1 -0
  10. package/Channel/components/FrozenNotification.js +20 -0
  11. package/Channel/components/FrozenNotification.js.map +1 -0
  12. package/Channel/components/Message.js +348 -0
  13. package/Channel/components/Message.js.map +1 -0
  14. package/Channel/components/MessageInput.js +202 -0
  15. package/Channel/components/MessageInput.js.map +1 -0
  16. package/Channel/components/MessageList.js +239 -0
  17. package/Channel/components/MessageList.js.map +1 -0
  18. package/Channel/components/RemoveMessageModal.js +53 -0
  19. package/Channel/components/RemoveMessageModal.js.map +1 -0
  20. package/Channel/components/SuggestedMentionList.js +250 -0
  21. package/Channel/components/SuggestedMentionList.js.map +1 -0
  22. package/Channel/components/TypingIndicator.js +98 -0
  23. package/Channel/components/TypingIndicator.js.map +1 -0
  24. package/Channel/components/UnreadCount.js +41 -0
  25. package/Channel/components/UnreadCount.js.map +1 -0
  26. package/Channel/context.js +24 -0
  27. package/Channel/context.js.map +1 -0
  28. package/Channel.js +106 -0
  29. package/Channel.js.map +1 -0
  30. package/ChannelList/components/AddChannel.js +70 -0
  31. package/ChannelList/components/AddChannel.js.map +1 -0
  32. package/ChannelList/components/ChannelListHeader.js +62 -0
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -0
  34. package/ChannelList/components/ChannelListUI.js +214 -0
  35. package/ChannelList/components/ChannelListUI.js.map +1 -0
  36. package/ChannelList/components/ChannelPreview.js +181 -0
  37. package/ChannelList/components/ChannelPreview.js.map +1 -0
  38. package/ChannelList/components/ChannelPreviewAction.js +131 -0
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -0
  40. package/ChannelList/context.js +13 -0
  41. package/ChannelList/context.js.map +1 -0
  42. package/ChannelList.js +81 -0
  43. package/ChannelList.js.map +1 -0
  44. package/ChannelListProvider-7c351968.js +861 -0
  45. package/ChannelListProvider-7c351968.js.map +1 -0
  46. package/ChannelProvider-d5126903.js +2114 -0
  47. package/ChannelProvider-d5126903.js.map +1 -0
  48. package/ChannelSettings/components/AdminPanel.js +905 -0
  49. package/ChannelSettings/components/AdminPanel.js.map +1 -0
  50. package/ChannelSettings/components/ChannelProfile.js +102 -0
  51. package/ChannelSettings/components/ChannelProfile.js.map +1 -0
  52. package/ChannelSettings/components/ChannelSettingsUI.js +152 -0
  53. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -0
  54. package/ChannelSettings/components/EditDetailsModal.js +154 -0
  55. package/ChannelSettings/components/EditDetailsModal.js.map +1 -0
  56. package/ChannelSettings/components/LeaveChannel.js +53 -0
  57. package/ChannelSettings/components/LeaveChannel.js.map +1 -0
  58. package/ChannelSettings/components/UserListItem.js +105 -0
  59. package/ChannelSettings/components/UserListItem.js.map +1 -0
  60. package/ChannelSettings/components/UserPanel.js +79 -0
  61. package/ChannelSettings/components/UserPanel.js.map +1 -0
  62. package/ChannelSettings/context.js +93 -0
  63. package/ChannelSettings/context.js.map +1 -0
  64. package/ChannelSettings.js +71 -0
  65. package/ChannelSettings.js.map +1 -0
  66. package/CreateChannel/components/CreateChannelUI.js +53 -0
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -0
  68. package/CreateChannel/components/InviteMembers.js +184 -0
  69. package/CreateChannel/components/InviteMembers.js.map +1 -0
  70. package/CreateChannel/components/SelectChannelType.js +131 -0
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -0
  72. package/CreateChannel/context.js +8 -0
  73. package/CreateChannel/context.js.map +1 -0
  74. package/CreateChannel.js +53 -0
  75. package/CreateChannel.js.map +1 -0
  76. package/CreateChannelProvider-ddfd92e6.js +53 -0
  77. package/CreateChannelProvider-ddfd92e6.js.map +1 -0
  78. package/EditUserProfile/components/EditUserProfileUI.js +26 -0
  79. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -0
  80. package/EditUserProfile/context.js +27 -0
  81. package/EditUserProfile/context.js.map +1 -0
  82. package/EditUserProfile.js +39 -0
  83. package/EditUserProfile.js.map +1 -0
  84. package/LocalizationContext-b021af8f.js +22 -0
  85. package/LocalizationContext-b021af8f.js.map +1 -0
  86. package/MemberList-323e7517.js +425 -0
  87. package/MemberList-323e7517.js.map +1 -0
  88. package/MessageSearch/components/MessageSearchUI.js +151 -0
  89. package/MessageSearch/components/MessageSearchUI.js.map +1 -0
  90. package/MessageSearch/context.js +392 -0
  91. package/MessageSearch/context.js.map +1 -0
  92. package/MessageSearch.js +146 -0
  93. package/MessageSearch.js.map +1 -0
  94. package/OpenChannel/components/FrozenChannelNotification.js +20 -0
  95. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -0
  96. package/OpenChannel/components/OpenChannelHeader.js +78 -0
  97. package/OpenChannel/components/OpenChannelHeader.js.map +1 -0
  98. package/OpenChannel/components/OpenChannelInput.js +56 -0
  99. package/OpenChannel/components/OpenChannelInput.js.map +1 -0
  100. package/OpenChannel/components/OpenChannelMessage.js +282 -0
  101. package/OpenChannel/components/OpenChannelMessage.js.map +1 -0
  102. package/OpenChannel/components/OpenChannelMessageList.js +157 -0
  103. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -0
  104. package/OpenChannel/components/OpenChannelUI.js +109 -0
  105. package/OpenChannel/components/OpenChannelUI.js.map +1 -0
  106. package/OpenChannel/context.js +14 -0
  107. package/OpenChannel/context.js.map +1 -0
  108. package/OpenChannel.js +80 -0
  109. package/OpenChannel.js.map +1 -0
  110. package/OpenChannelProvider-abc4ab98.js +2011 -0
  111. package/OpenChannelProvider-abc4ab98.js.map +1 -0
  112. package/OpenChannelSettings/components/EditDetailsModal.js +149 -0
  113. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -0
  114. package/OpenChannelSettings/components/OpenChannelProfile.js +81 -0
  115. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -0
  116. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +104 -0
  117. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -0
  118. package/OpenChannelSettings/components/OperatorUI.js +184 -0
  119. package/OpenChannelSettings/components/OperatorUI.js.map +1 -0
  120. package/OpenChannelSettings/components/ParticipantUI.js +172 -0
  121. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -0
  122. package/OpenChannelSettings/context.js +64 -0
  123. package/OpenChannelSettings/context.js.map +1 -0
  124. package/OpenChannelSettings.js +64 -0
  125. package/OpenChannelSettings.js.map +1 -0
  126. package/README.md +111 -0
  127. package/SendbirdProvider.js +754 -0
  128. package/SendbirdProvider.js.map +1 -0
  129. package/UserProfileContext-daa99f9b.js +38 -0
  130. package/UserProfileContext-daa99f9b.js.map +1 -0
  131. package/_rollupPluginBabelHelpers-8e4fae98.js +233 -0
  132. package/_rollupPluginBabelHelpers-8e4fae98.js.map +1 -0
  133. package/actionTypes-189daf51.js +6 -0
  134. package/actionTypes-189daf51.js.map +1 -0
  135. package/cjs/App.js +312 -0
  136. package/cjs/App.js.map +1 -0
  137. package/cjs/Channel/components/ChannelHeader.js +123 -0
  138. package/cjs/Channel/components/ChannelHeader.js.map +1 -0
  139. package/cjs/Channel/components/ChannelUI.js +185 -0
  140. package/cjs/Channel/components/ChannelUI.js.map +1 -0
  141. package/cjs/Channel/components/FileViewer.js +160 -0
  142. package/cjs/Channel/components/FileViewer.js.map +1 -0
  143. package/cjs/Channel/components/FrozenNotification.js +26 -0
  144. package/cjs/Channel/components/FrozenNotification.js.map +1 -0
  145. package/cjs/Channel/components/Message.js +354 -0
  146. package/cjs/Channel/components/Message.js.map +1 -0
  147. package/cjs/Channel/components/MessageInput.js +208 -0
  148. package/cjs/Channel/components/MessageInput.js.map +1 -0
  149. package/cjs/Channel/components/MessageList.js +245 -0
  150. package/cjs/Channel/components/MessageList.js.map +1 -0
  151. package/cjs/Channel/components/RemoveMessageModal.js +59 -0
  152. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -0
  153. package/cjs/Channel/components/SuggestedMentionList.js +256 -0
  154. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -0
  155. package/cjs/Channel/components/TypingIndicator.js +104 -0
  156. package/cjs/Channel/components/TypingIndicator.js.map +1 -0
  157. package/cjs/Channel/components/UnreadCount.js +47 -0
  158. package/cjs/Channel/components/UnreadCount.js.map +1 -0
  159. package/cjs/Channel/context.js +33 -0
  160. package/cjs/Channel/context.js.map +1 -0
  161. package/cjs/Channel.js +112 -0
  162. package/cjs/Channel.js.map +1 -0
  163. package/cjs/ChannelList/components/AddChannel.js +79 -0
  164. package/cjs/ChannelList/components/AddChannel.js.map +1 -0
  165. package/cjs/ChannelList/components/ChannelListHeader.js +68 -0
  166. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -0
  167. package/cjs/ChannelList/components/ChannelListUI.js +220 -0
  168. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -0
  169. package/cjs/ChannelList/components/ChannelPreview.js +187 -0
  170. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -0
  171. package/cjs/ChannelList/components/ChannelPreviewAction.js +138 -0
  172. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -0
  173. package/cjs/ChannelList/context.js +22 -0
  174. package/cjs/ChannelList/context.js.map +1 -0
  175. package/cjs/ChannelList.js +87 -0
  176. package/cjs/ChannelList.js.map +1 -0
  177. package/cjs/ChannelListProvider-44dde549.js +873 -0
  178. package/cjs/ChannelListProvider-44dde549.js.map +1 -0
  179. package/cjs/ChannelProvider-e0aaab26.js +2127 -0
  180. package/cjs/ChannelProvider-e0aaab26.js.map +1 -0
  181. package/cjs/ChannelSettings/components/AdminPanel.js +911 -0
  182. package/cjs/ChannelSettings/components/AdminPanel.js.map +1 -0
  183. package/cjs/ChannelSettings/components/ChannelProfile.js +108 -0
  184. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -0
  185. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +158 -0
  186. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -0
  187. package/cjs/ChannelSettings/components/EditDetailsModal.js +160 -0
  188. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -0
  189. package/cjs/ChannelSettings/components/LeaveChannel.js +59 -0
  190. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -0
  191. package/cjs/ChannelSettings/components/UserListItem.js +111 -0
  192. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -0
  193. package/cjs/ChannelSettings/components/UserPanel.js +85 -0
  194. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -0
  195. package/cjs/ChannelSettings/context.js +102 -0
  196. package/cjs/ChannelSettings/context.js.map +1 -0
  197. package/cjs/ChannelSettings.js +77 -0
  198. package/cjs/ChannelSettings.js.map +1 -0
  199. package/cjs/CreateChannel/components/CreateChannelUI.js +59 -0
  200. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -0
  201. package/cjs/CreateChannel/components/InviteMembers.js +190 -0
  202. package/cjs/CreateChannel/components/InviteMembers.js.map +1 -0
  203. package/cjs/CreateChannel/components/SelectChannelType.js +137 -0
  204. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -0
  205. package/cjs/CreateChannel/context.js +17 -0
  206. package/cjs/CreateChannel/context.js.map +1 -0
  207. package/cjs/CreateChannel.js +59 -0
  208. package/cjs/CreateChannel.js.map +1 -0
  209. package/cjs/CreateChannelProvider-bdf9c39b.js +60 -0
  210. package/cjs/CreateChannelProvider-bdf9c39b.js.map +1 -0
  211. package/cjs/EditUserProfile/components/EditUserProfileUI.js +32 -0
  212. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -0
  213. package/cjs/EditUserProfile/context.js +36 -0
  214. package/cjs/EditUserProfile/context.js.map +1 -0
  215. package/cjs/EditUserProfile.js +45 -0
  216. package/cjs/EditUserProfile.js.map +1 -0
  217. package/cjs/LocalizationContext-3b5ce8ae.js +30 -0
  218. package/cjs/LocalizationContext-3b5ce8ae.js.map +1 -0
  219. package/cjs/MemberList-ef9e43c3.js +431 -0
  220. package/cjs/MemberList-ef9e43c3.js.map +1 -0
  221. package/cjs/MessageSearch/components/MessageSearchUI.js +160 -0
  222. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -0
  223. package/cjs/MessageSearch/context.js +401 -0
  224. package/cjs/MessageSearch/context.js.map +1 -0
  225. package/cjs/MessageSearch.js +152 -0
  226. package/cjs/MessageSearch.js.map +1 -0
  227. package/cjs/OpenChannel/components/FrozenChannelNotification.js +26 -0
  228. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -0
  229. package/cjs/OpenChannel/components/OpenChannelHeader.js +84 -0
  230. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -0
  231. package/cjs/OpenChannel/components/OpenChannelInput.js +62 -0
  232. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -0
  233. package/cjs/OpenChannel/components/OpenChannelMessage.js +288 -0
  234. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -0
  235. package/cjs/OpenChannel/components/OpenChannelMessageList.js +163 -0
  236. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -0
  237. package/cjs/OpenChannel/components/OpenChannelUI.js +115 -0
  238. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -0
  239. package/cjs/OpenChannel/context.js +23 -0
  240. package/cjs/OpenChannel/context.js.map +1 -0
  241. package/cjs/OpenChannel.js +86 -0
  242. package/cjs/OpenChannel.js.map +1 -0
  243. package/cjs/OpenChannelProvider-9ce7c998.js +2020 -0
  244. package/cjs/OpenChannelProvider-9ce7c998.js.map +1 -0
  245. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +155 -0
  246. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -0
  247. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +87 -0
  248. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -0
  249. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +110 -0
  250. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -0
  251. package/cjs/OpenChannelSettings/components/OperatorUI.js +194 -0
  252. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -0
  253. package/cjs/OpenChannelSettings/components/ParticipantUI.js +178 -0
  254. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -0
  255. package/cjs/OpenChannelSettings/context.js +73 -0
  256. package/cjs/OpenChannelSettings/context.js.map +1 -0
  257. package/cjs/OpenChannelSettings.js +70 -0
  258. package/cjs/OpenChannelSettings.js.map +1 -0
  259. package/cjs/SendbirdProvider.js +763 -0
  260. package/cjs/SendbirdProvider.js.map +1 -0
  261. package/cjs/UserProfileContext-f0bdfbb8.js +46 -0
  262. package/cjs/UserProfileContext-f0bdfbb8.js.map +1 -0
  263. package/cjs/_rollupPluginBabelHelpers-e54d2387.js +243 -0
  264. package/cjs/_rollupPluginBabelHelpers-e54d2387.js.map +1 -0
  265. package/cjs/actionTypes-267d4c79.js +10 -0
  266. package/cjs/actionTypes-267d4c79.js.map +1 -0
  267. package/cjs/color-0f078673.js +42 -0
  268. package/cjs/color-0f078673.js.map +1 -0
  269. package/cjs/compareIds-176a582b.js +20 -0
  270. package/cjs/compareIds-176a582b.js.map +1 -0
  271. package/cjs/const-4bf0e8b4.js +22 -0
  272. package/cjs/const-4bf0e8b4.js.map +1 -0
  273. package/cjs/const-ccf192c5.js +14 -0
  274. package/cjs/const-ccf192c5.js.map +1 -0
  275. package/cjs/context-0cbe196d.js +19 -0
  276. package/cjs/context-0cbe196d.js.map +1 -0
  277. package/cjs/index-002a349d.js +722 -0
  278. package/cjs/index-002a349d.js.map +1 -0
  279. package/cjs/index-0159bc57.js +1880 -0
  280. package/cjs/index-0159bc57.js.map +1 -0
  281. package/cjs/index-081c9614.js +175 -0
  282. package/cjs/index-081c9614.js.map +1 -0
  283. package/cjs/index-21f31180.js +142 -0
  284. package/cjs/index-21f31180.js.map +1 -0
  285. package/cjs/index-22f07209.js +97 -0
  286. package/cjs/index-22f07209.js.map +1 -0
  287. package/cjs/index-46522cf0.js +284 -0
  288. package/cjs/index-46522cf0.js.map +1 -0
  289. package/cjs/index-723733db.js +54 -0
  290. package/cjs/index-723733db.js.map +1 -0
  291. package/cjs/index-c0693be4.js +67 -0
  292. package/cjs/index-c0693be4.js.map +1 -0
  293. package/cjs/index-d4f42e73.js +130 -0
  294. package/cjs/index-d4f42e73.js.map +1 -0
  295. package/cjs/index-d9439e95.js +514 -0
  296. package/cjs/index-d9439e95.js.map +1 -0
  297. package/cjs/index-ed053e45.js +9 -0
  298. package/cjs/index-ed053e45.js.map +1 -0
  299. package/cjs/index.css +4461 -0
  300. package/cjs/index.css.map +1 -0
  301. package/cjs/index.js +162 -0
  302. package/cjs/index.js.map +1 -0
  303. package/cjs/openChannelUtils-cecaf987.js +92 -0
  304. package/cjs/openChannelUtils-cecaf987.js.map +1 -0
  305. package/cjs/sendBirdSelectors.js +741 -0
  306. package/cjs/sendBirdSelectors.js.map +1 -0
  307. package/cjs/stringSet-f4da182b.js +118 -0
  308. package/cjs/stringSet-f4da182b.js.map +1 -0
  309. package/cjs/topics-c2c30f09.js +18 -0
  310. package/cjs/topics-c2c30f09.js.map +1 -0
  311. package/cjs/tslib.es6-d7d0a427.js +40 -0
  312. package/cjs/tslib.es6-d7d0a427.js.map +1 -0
  313. package/cjs/ui/Accordion.js +74 -0
  314. package/cjs/ui/Accordion.js.map +1 -0
  315. package/cjs/ui/AccordionGroup.js +32 -0
  316. package/cjs/ui/AccordionGroup.js.map +1 -0
  317. package/cjs/ui/AdminMessage.js +44 -0
  318. package/cjs/ui/AdminMessage.js.map +1 -0
  319. package/cjs/ui/Avatar.js +226 -0
  320. package/cjs/ui/Avatar.js.map +1 -0
  321. package/cjs/ui/Badge.js +45 -0
  322. package/cjs/ui/Badge.js.map +1 -0
  323. package/cjs/ui/Button.js +17 -0
  324. package/cjs/ui/Button.js.map +1 -0
  325. package/cjs/ui/ChannelAvatar.js +59 -0
  326. package/cjs/ui/ChannelAvatar.js.map +1 -0
  327. package/cjs/ui/ChannelPreview.js +201 -0
  328. package/cjs/ui/ChannelPreview.js.map +1 -0
  329. package/cjs/ui/ChatHeader.js +145 -0
  330. package/cjs/ui/ChatHeader.js.map +1 -0
  331. package/cjs/ui/Checkbox.js +49 -0
  332. package/cjs/ui/Checkbox.js.map +1 -0
  333. package/cjs/ui/ConnectionStatus.js +34 -0
  334. package/cjs/ui/ConnectionStatus.js.map +1 -0
  335. package/cjs/ui/ContextMenu.js +431 -0
  336. package/cjs/ui/ContextMenu.js.map +1 -0
  337. package/cjs/ui/DateSeparator.js +44 -0
  338. package/cjs/ui/DateSeparator.js.map +1 -0
  339. package/cjs/ui/Dropdown.js +107 -0
  340. package/cjs/ui/Dropdown.js.map +1 -0
  341. package/cjs/ui/EmojiReactions.js +127 -0
  342. package/cjs/ui/EmojiReactions.js.map +1 -0
  343. package/cjs/ui/FileMessageItemBody.js +57 -0
  344. package/cjs/ui/FileMessageItemBody.js.map +1 -0
  345. package/cjs/ui/FileViewer.js +174 -0
  346. package/cjs/ui/FileViewer.js.map +1 -0
  347. package/cjs/ui/Icon.js +1462 -0
  348. package/cjs/ui/Icon.js.map +1 -0
  349. package/cjs/ui/IconButton.js +83 -0
  350. package/cjs/ui/IconButton.js.map +1 -0
  351. package/cjs/ui/ImageRenderer.js +138 -0
  352. package/cjs/ui/ImageRenderer.js.map +1 -0
  353. package/cjs/ui/Input.js +74 -0
  354. package/cjs/ui/Input.js.map +1 -0
  355. package/cjs/ui/Label.js +17 -0
  356. package/cjs/ui/Label.js.map +1 -0
  357. package/cjs/ui/LinkLabel.js +51 -0
  358. package/cjs/ui/LinkLabel.js.map +1 -0
  359. package/cjs/ui/Loader.js +44 -0
  360. package/cjs/ui/Loader.js.map +1 -0
  361. package/cjs/ui/MentionUserLabel.js +25 -0
  362. package/cjs/ui/MentionUserLabel.js.map +1 -0
  363. package/cjs/ui/MessageContent.js +291 -0
  364. package/cjs/ui/MessageContent.js.map +1 -0
  365. package/cjs/ui/MessageInput.js +5048 -0
  366. package/cjs/ui/MessageInput.js.map +1 -0
  367. package/cjs/ui/MessageItemMenu.js +141 -0
  368. package/cjs/ui/MessageItemMenu.js.map +1 -0
  369. package/cjs/ui/MessageItemReactionMenu.js +112 -0
  370. package/cjs/ui/MessageItemReactionMenu.js.map +1 -0
  371. package/cjs/ui/MessageSearchFileItem.js +130 -0
  372. package/cjs/ui/MessageSearchFileItem.js.map +1 -0
  373. package/cjs/ui/MessageSearchItem.js +93 -0
  374. package/cjs/ui/MessageSearchItem.js.map +1 -0
  375. package/cjs/ui/MessageStatus.js +66 -0
  376. package/cjs/ui/MessageStatus.js.map +1 -0
  377. package/cjs/ui/Modal.js +140 -0
  378. package/cjs/ui/Modal.js.map +1 -0
  379. package/cjs/ui/MutedAvatarOverlay.js +40 -0
  380. package/cjs/ui/MutedAvatarOverlay.js.map +1 -0
  381. package/cjs/ui/OGMessageItemBody.js +107 -0
  382. package/cjs/ui/OGMessageItemBody.js.map +1 -0
  383. package/cjs/ui/OpenChannelAdminMessage.js +27 -0
  384. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -0
  385. package/cjs/ui/OpenChannelAvatar.js +41 -0
  386. package/cjs/ui/OpenChannelAvatar.js.map +1 -0
  387. package/cjs/ui/OpenChannelMessageContent.js +14 -0
  388. package/cjs/ui/OpenChannelMessageContent.js.map +1 -0
  389. package/cjs/ui/OpenchannelConversationHeader.js +73 -0
  390. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -0
  391. package/cjs/ui/OpenchannelFileMessage.js +230 -0
  392. package/cjs/ui/OpenchannelFileMessage.js.map +1 -0
  393. package/cjs/ui/OpenchannelOGMessage.js +345 -0
  394. package/cjs/ui/OpenchannelOGMessage.js.map +1 -0
  395. package/cjs/ui/OpenchannelThumbnailMessage.js +305 -0
  396. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -0
  397. package/cjs/ui/OpenchannelUserMessage.js +264 -0
  398. package/cjs/ui/OpenchannelUserMessage.js.map +1 -0
  399. package/cjs/ui/PlaceHolder.js +20 -0
  400. package/cjs/ui/PlaceHolder.js.map +1 -0
  401. package/cjs/ui/QuoteMessage.js +131 -0
  402. package/cjs/ui/QuoteMessage.js.map +1 -0
  403. package/cjs/ui/QuoteMessageInput.js +99 -0
  404. package/cjs/ui/QuoteMessageInput.js.map +1 -0
  405. package/cjs/ui/ReactionBadge.js +68 -0
  406. package/cjs/ui/ReactionBadge.js.map +1 -0
  407. package/cjs/ui/ReactionButton.js +55 -0
  408. package/cjs/ui/ReactionButton.js.map +1 -0
  409. package/cjs/ui/SortByRow.js +57 -0
  410. package/cjs/ui/SortByRow.js.map +1 -0
  411. package/cjs/ui/TextButton.js +45 -0
  412. package/cjs/ui/TextButton.js.map +1 -0
  413. package/cjs/ui/TextMessageItemBody.js +62 -0
  414. package/cjs/ui/TextMessageItemBody.js.map +1 -0
  415. package/cjs/ui/ThumbnailMessageItemBody.js +82 -0
  416. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -0
  417. package/cjs/ui/Tooltip.js +35 -0
  418. package/cjs/ui/Tooltip.js.map +1 -0
  419. package/cjs/ui/TooltipWrapper.js +65 -0
  420. package/cjs/ui/TooltipWrapper.js.map +1 -0
  421. package/cjs/ui/UnknownMessageItemBody.js +41 -0
  422. package/cjs/ui/UnknownMessageItemBody.js.map +1 -0
  423. package/cjs/ui/UserListItem.js +158 -0
  424. package/cjs/ui/UserListItem.js.map +1 -0
  425. package/cjs/ui/UserProfile.js +87 -0
  426. package/cjs/ui/UserProfile.js.map +1 -0
  427. package/cjs/useSendbirdStateContext.js +22 -0
  428. package/cjs/useSendbirdStateContext.js.map +1 -0
  429. package/cjs/utils-3e73a146.js +32 -0
  430. package/cjs/utils-3e73a146.js.map +1 -0
  431. package/cjs/utils-b95288a8.js +38 -0
  432. package/cjs/utils-b95288a8.js.map +1 -0
  433. package/cjs/utils-c55d20dc.js +6 -0
  434. package/cjs/utils-c55d20dc.js.map +1 -0
  435. package/cjs/uuid-ba6cc3c5.js +19 -0
  436. package/cjs/uuid-ba6cc3c5.js.map +1 -0
  437. package/cjs/withSendBird.js +35 -0
  438. package/cjs/withSendBird.js.map +1 -0
  439. package/color-2863fbbe.js +39 -0
  440. package/color-2863fbbe.js.map +1 -0
  441. package/compareIds-48d87cc5.js +18 -0
  442. package/compareIds-48d87cc5.js.map +1 -0
  443. package/const-09c22c50.js +18 -0
  444. package/const-09c22c50.js.map +1 -0
  445. package/const-3f63e129.js +8 -0
  446. package/const-3f63e129.js.map +1 -0
  447. package/context-7877e5bb.js +12 -0
  448. package/context-7877e5bb.js.map +1 -0
  449. package/dist/index.css +165 -59
  450. package/dist/index.css.map +1 -1
  451. package/index-1fd114b0.js +7 -0
  452. package/index-1fd114b0.js.map +1 -0
  453. package/index-303a3b6e.js +121 -0
  454. package/index-303a3b6e.js.map +1 -0
  455. package/index-353f13f3.js +512 -0
  456. package/index-353f13f3.js.map +1 -0
  457. package/index-358226c7.js +168 -0
  458. package/index-358226c7.js.map +1 -0
  459. package/index-41a6f4f2.js +87 -0
  460. package/index-41a6f4f2.js.map +1 -0
  461. package/index-4889e530.js +48 -0
  462. package/index-4889e530.js.map +1 -0
  463. package/index-4a59a866.js +1873 -0
  464. package/index-4a59a866.js.map +1 -0
  465. package/index-86b0a341.js +280 -0
  466. package/index-86b0a341.js.map +1 -0
  467. package/index-a611bd38.js +131 -0
  468. package/index-a611bd38.js.map +1 -0
  469. package/index-ad4c9e58.js +682 -0
  470. package/index-ad4c9e58.js.map +1 -0
  471. package/index-f119413c.js +64 -0
  472. package/index-f119413c.js.map +1 -0
  473. package/index.css +4461 -0
  474. package/index.css.map +1 -0
  475. package/index.d.ts +1829 -0
  476. package/index.js +38 -31
  477. package/index.js.map +1 -0
  478. package/openChannelUtils-024b797a.js +81 -0
  479. package/openChannelUtils-024b797a.js.map +1 -0
  480. package/package.json +5 -9
  481. package/sendBirdSelectors.js +713 -0
  482. package/sendBirdSelectors.js.map +1 -0
  483. package/stringSet-91746bf1.js +116 -0
  484. package/stringSet-91746bf1.js.map +1 -0
  485. package/topics-17d99dd6.js +10 -0
  486. package/topics-17d99dd6.js.map +1 -0
  487. package/tslib.es6-83aa13f5.js +38 -0
  488. package/tslib.es6-83aa13f5.js.map +1 -0
  489. package/ui/Accordion.js +65 -0
  490. package/ui/Accordion.js.map +1 -0
  491. package/ui/AccordionGroup.js +26 -0
  492. package/ui/AccordionGroup.js.map +1 -0
  493. package/ui/AdminMessage.js +37 -0
  494. package/ui/AdminMessage.js.map +1 -0
  495. package/ui/Avatar.js +217 -0
  496. package/ui/Avatar.js.map +1 -0
  497. package/ui/Badge.js +38 -0
  498. package/ui/Badge.js.map +1 -0
  499. package/ui/Button.js +7 -0
  500. package/ui/Button.js.map +1 -0
  501. package/ui/ChannelAvatar.js +53 -0
  502. package/ui/ChannelAvatar.js.map +1 -0
  503. package/ui/ChannelPreview.js +194 -0
  504. package/ui/ChannelPreview.js.map +1 -0
  505. package/ui/ChatHeader.js +138 -0
  506. package/ui/ChatHeader.js.map +1 -0
  507. package/ui/Checkbox.js +42 -0
  508. package/ui/Checkbox.js.map +1 -0
  509. package/ui/ConnectionStatus.js +28 -0
  510. package/ui/ConnectionStatus.js.map +1 -0
  511. package/ui/ContextMenu.js +417 -0
  512. package/ui/ContextMenu.js.map +1 -0
  513. package/ui/DateSeparator.js +37 -0
  514. package/ui/DateSeparator.js.map +1 -0
  515. package/ui/Dropdown.js +97 -0
  516. package/ui/Dropdown.js.map +1 -0
  517. package/ui/EmojiReactions.js +121 -0
  518. package/ui/EmojiReactions.js.map +1 -0
  519. package/ui/FileMessageItemBody.js +51 -0
  520. package/ui/FileMessageItemBody.js.map +1 -0
  521. package/ui/FileViewer.js +164 -0
  522. package/ui/FileViewer.js.map +1 -0
  523. package/ui/Icon.js +1432 -0
  524. package/ui/Icon.js.map +1 -0
  525. package/ui/IconButton.js +76 -0
  526. package/ui/IconButton.js.map +1 -0
  527. package/ui/ImageRenderer.js +131 -0
  528. package/ui/ImageRenderer.js.map +1 -0
  529. package/ui/Input.js +64 -0
  530. package/ui/Input.js.map +1 -0
  531. package/ui/Label.js +6 -0
  532. package/ui/Label.js.map +1 -0
  533. package/ui/LinkLabel.js +40 -0
  534. package/ui/LinkLabel.js.map +1 -0
  535. package/ui/Loader.js +37 -0
  536. package/ui/Loader.js.map +1 -0
  537. package/ui/MentionUserLabel.js +19 -0
  538. package/ui/MentionUserLabel.js.map +1 -0
  539. package/ui/MessageContent.js +285 -0
  540. package/ui/MessageContent.js.map +1 -0
  541. package/ui/MessageInput.js +5040 -0
  542. package/ui/MessageInput.js.map +1 -0
  543. package/ui/MessageItemMenu.js +135 -0
  544. package/ui/MessageItemMenu.js.map +1 -0
  545. package/ui/MessageItemReactionMenu.js +106 -0
  546. package/ui/MessageItemReactionMenu.js.map +1 -0
  547. package/ui/MessageSearchFileItem.js +124 -0
  548. package/ui/MessageSearchFileItem.js.map +1 -0
  549. package/ui/MessageSearchItem.js +87 -0
  550. package/ui/MessageSearchItem.js.map +1 -0
  551. package/ui/MessageStatus.js +57 -0
  552. package/ui/MessageStatus.js.map +1 -0
  553. package/ui/Modal.js +128 -0
  554. package/ui/Modal.js.map +1 -0
  555. package/ui/MutedAvatarOverlay.js +34 -0
  556. package/ui/MutedAvatarOverlay.js.map +1 -0
  557. package/ui/OGMessageItemBody.js +101 -0
  558. package/ui/OGMessageItemBody.js.map +1 -0
  559. package/ui/OpenChannelAdminMessage.js +21 -0
  560. package/ui/OpenChannelAdminMessage.js.map +1 -0
  561. package/ui/OpenChannelAvatar.js +35 -0
  562. package/ui/OpenChannelAvatar.js.map +1 -0
  563. package/ui/OpenChannelMessageContent.js +8 -0
  564. package/ui/OpenChannelMessageContent.js.map +1 -0
  565. package/ui/OpenchannelConversationHeader.js +67 -0
  566. package/ui/OpenchannelConversationHeader.js.map +1 -0
  567. package/ui/OpenchannelFileMessage.js +224 -0
  568. package/ui/OpenchannelFileMessage.js.map +1 -0
  569. package/ui/OpenchannelOGMessage.js +339 -0
  570. package/ui/OpenchannelOGMessage.js.map +1 -0
  571. package/ui/OpenchannelThumbnailMessage.js +299 -0
  572. package/ui/OpenchannelThumbnailMessage.js.map +1 -0
  573. package/ui/OpenchannelUserMessage.js +258 -0
  574. package/ui/OpenchannelUserMessage.js.map +1 -0
  575. package/ui/PlaceHolder.js +11 -0
  576. package/ui/PlaceHolder.js.map +1 -0
  577. package/ui/QuoteMessage.js +125 -0
  578. package/ui/QuoteMessage.js.map +1 -0
  579. package/ui/QuoteMessageInput.js +93 -0
  580. package/ui/QuoteMessageInput.js.map +1 -0
  581. package/ui/ReactionBadge.js +61 -0
  582. package/ui/ReactionBadge.js.map +1 -0
  583. package/ui/ReactionButton.js +48 -0
  584. package/ui/ReactionButton.js.map +1 -0
  585. package/ui/SortByRow.js +50 -0
  586. package/ui/SortByRow.js.map +1 -0
  587. package/ui/TextButton.js +38 -0
  588. package/ui/TextButton.js.map +1 -0
  589. package/ui/TextMessageItemBody.js +56 -0
  590. package/ui/TextMessageItemBody.js.map +1 -0
  591. package/ui/ThumbnailMessageItemBody.js +76 -0
  592. package/ui/ThumbnailMessageItemBody.js.map +1 -0
  593. package/ui/Tooltip.js +28 -0
  594. package/ui/Tooltip.js.map +1 -0
  595. package/ui/TooltipWrapper.js +58 -0
  596. package/ui/TooltipWrapper.js.map +1 -0
  597. package/ui/UnknownMessageItemBody.js +35 -0
  598. package/ui/UnknownMessageItemBody.js.map +1 -0
  599. package/ui/UserListItem.js +151 -0
  600. package/ui/UserListItem.js.map +1 -0
  601. package/ui/UserProfile.js +81 -0
  602. package/ui/UserProfile.js.map +1 -0
  603. package/useSendbirdStateContext.js +20 -0
  604. package/useSendbirdStateContext.js.map +1 -0
  605. package/utils-5395ff17.js +30 -0
  606. package/utils-5395ff17.js.map +1 -0
  607. package/utils-7d39b941.js +34 -0
  608. package/utils-7d39b941.js.map +1 -0
  609. package/utils-9ef11656.js +4 -0
  610. package/utils-9ef11656.js.map +1 -0
  611. package/uuid-6d14d007.js +17 -0
  612. package/uuid-6d14d007.js.map +1 -0
  613. package/withSendBird.js +26 -0
  614. package/withSendBird.js.map +1 -0
@@ -0,0 +1,2020 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var index = require('./index-0159bc57.js');
5
+ var UserProfileContext = require('./UserProfileContext-f0bdfbb8.js');
6
+ var tslib_es6 = require('./tslib.es6-d7d0a427.js');
7
+ var compareIds = require('./compareIds-176a582b.js');
8
+ var topics = require('./topics-c2c30f09.js');
9
+ var uuid = require('./uuid-ba6cc3c5.js');
10
+ var useSendbirdStateContext = require('./useSendbirdStateContext.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ var getMessageCreatedAt = function getMessageCreatedAt(message) {
17
+ return index.format(message.createdAt, 'p');
18
+ };
19
+ var shouldFetchMore = function shouldFetchMore(messageLength, maxMessages) {
20
+ if (typeof maxMessages !== 'number') {
21
+ return true;
22
+ }
23
+
24
+ if (typeof maxMessages === 'number' && maxMessages > messageLength) {
25
+ return true;
26
+ }
27
+
28
+ return false;
29
+ };
30
+ var scrollIntoLast = function scrollIntoLast(intialTry) {
31
+ if (intialTry === void 0) {
32
+ intialTry = 0;
33
+ }
34
+
35
+ var MAX_TRIES = 10;
36
+ var currentTry = intialTry;
37
+
38
+ if (currentTry > MAX_TRIES) {
39
+ return;
40
+ }
41
+
42
+ try {
43
+ var scrollDOM = document.querySelector('.sendbird-openchannel-conversation-scroll'); // eslint-disable-next-line no-multi-assign
44
+
45
+ scrollDOM.scrollTop = scrollDOM.scrollHeight;
46
+ } catch (error) {
47
+ setTimeout(function () {
48
+ scrollIntoLast(currentTry + 1);
49
+ }, 500 * currentTry);
50
+ }
51
+ };
52
+ var isSameGroup = function isSameGroup(message, comparingMessage) {
53
+ var _a, _b, _c, _d;
54
+
55
+ if (!(message && comparingMessage && (message === null || message === void 0 ? void 0 : message.messageType) !== 'admin' && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && (message === null || message === void 0 ? void 0 : message.sender) && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) && (message === null || message === void 0 ? void 0 : message.createdAt) && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.createdAt) && ((_a = message === null || message === void 0 ? void 0 : message.sender) === null || _a === void 0 ? void 0 : _a.userId) && ((_b = comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) === null || _b === void 0 ? void 0 : _b.userId))) {
56
+ return false;
57
+ }
58
+
59
+ return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && ((_c = message === null || message === void 0 ? void 0 : message.sender) === null || _c === void 0 ? void 0 : _c.userId) === ((_d = comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) === null || _d === void 0 ? void 0 : _d.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage);
60
+ };
61
+ var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) {
62
+ return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)];
63
+ };
64
+ var kFormatter = function kFormatter(num) {
65
+ if (Math.abs(num) > 999999) {
66
+ return (Math.abs(num) / 1000000).toFixed(1) + "M";
67
+ }
68
+
69
+ if (Math.abs(num) > 999) {
70
+ return (Math.abs(num) / 1000).toFixed(1) + "K";
71
+ }
72
+
73
+ return "" + num;
74
+ };
75
+ var isOperator = function isOperator(openChannel, userId) {
76
+ var operators = openChannel.operators;
77
+
78
+ if (operators.map(function (operator) {
79
+ return operator.userId;
80
+ }).indexOf(userId) < 0) {
81
+ return false;
82
+ }
83
+
84
+ return true;
85
+ };
86
+ var isDisabledBecauseFrozen = function isDisabledBecauseFrozen(openChannel, userId) {
87
+ var isFrozen = openChannel.isFrozen;
88
+ return isFrozen && !isOperator(openChannel, userId);
89
+ };
90
+ var isDisabledBecauseMuted = function isDisabledBecauseMuted(mutedParticipantIds, userId) {
91
+ return mutedParticipantIds.indexOf(userId) > -1;
92
+ };
93
+ var fetchWithListQuery = function fetchWithListQuery(listQuery, logger, eachQueryNextCallback) {
94
+ var fetchList = function fetchList(query) {
95
+ var hasNext = query.hasNext;
96
+
97
+ if (hasNext) {
98
+ query.next(function (error, users) {
99
+ if (!error) {
100
+ eachQueryNextCallback(users);
101
+ fetchList(query);
102
+ } else {
103
+ logger.warning('OpenChannel | FetchUserList failed', error);
104
+ }
105
+ });
106
+ } else {
107
+ logger.info('OpenChannel | FetchUserList finished');
108
+ }
109
+ };
110
+
111
+ logger.info('OpenChannel | FetchUserList start', listQuery);
112
+ fetchList(listQuery);
113
+ };
114
+ var pxToNumber = function pxToNumber(px) {
115
+ if (typeof px === 'number') {
116
+ return px;
117
+ }
118
+
119
+ if (typeof px === 'string') {
120
+ var parsed = Number.parseFloat(px);
121
+
122
+ if (!Number.isNaN(parsed)) {
123
+ return parsed;
124
+ }
125
+ }
126
+
127
+ return null;
128
+ };
129
+
130
+ var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';
131
+ var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';
132
+ var RESET_MESSAGES = 'RESET_MESSAGES';
133
+ var GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';
134
+ var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';
135
+ var GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';
136
+ var SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';
137
+ var SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';
138
+ var SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';
139
+ var RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';
140
+ var FETCH_PARTICIPANT_LIST = 'FETCH_PARTICIPANT_LIST';
141
+ var FETCH_BANNED_USER_LIST = 'FETCH_BANNED_USER_LIST';
142
+ var FETCH_MUTED_USER_LIST = 'FETCH_MUTED_USER_LIST';
143
+ var TRIM_MESSAGE_LIST = 'TRIM_MESSAGE_LIST'; // event handlers
144
+
145
+ var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';
146
+ var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';
147
+ var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';
148
+ var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';
149
+ var ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';
150
+ var ON_USER_ENTERED = 'ON_USER_ENTERED';
151
+ var ON_USER_EXITED = 'ON_USER_EXITED';
152
+ var ON_USER_MUTED = 'ON_USER_MUTED';
153
+ var ON_USER_UNMUTED = 'ON_USER_UNMUTED';
154
+ var ON_USER_BANNED = 'ON_USER_BANNED';
155
+ var ON_USER_UNBANNED = 'ON_USER_UNBANNED';
156
+ var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';
157
+ var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';
158
+ var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';
159
+ var ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';
160
+ var ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';
161
+ var ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';
162
+ var ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';
163
+ var ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';
164
+ var ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';
165
+ var ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';
166
+
167
+ function reducer(state, action) {
168
+ var _a;
169
+
170
+ switch (action.type) {
171
+ case RESET_MESSAGES:
172
+ {
173
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
174
+ allMessages: []
175
+ });
176
+ }
177
+
178
+ case SET_CURRENT_CHANNEL:
179
+ {
180
+ var gottenChannel = action.payload;
181
+ var operators = gottenChannel.operators;
182
+
183
+ if (!state.isInvalid && state.currentOpenChannel && state.currentOpenChannel.url && state.currentOpenChannel.url === gottenChannel.url) {
184
+ return state;
185
+ }
186
+
187
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
188
+ currentOpenChannel: gottenChannel,
189
+ isInvalid: false,
190
+ operators: operators,
191
+ participants: operators,
192
+ bannedParticipantIds: [],
193
+ mutedParticipantIds: []
194
+ });
195
+ }
196
+
197
+ case SET_CHANNEL_INVALID:
198
+ {
199
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
200
+ isInvalid: true
201
+ });
202
+ }
203
+
204
+ case GET_PREV_MESSAGES_START:
205
+ {
206
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
207
+ loading: true
208
+ });
209
+ }
210
+
211
+ case GET_PREV_MESSAGES_SUCESS:
212
+ case GET_PREV_MESSAGES_FAIL:
213
+ {
214
+ var isFailed = action.type === GET_PREV_MESSAGES_FAIL;
215
+ var _b = action.payload,
216
+ _c = _b.currentOpenChannel,
217
+ currentOpenChannel = _c === void 0 ? {} : _c,
218
+ _d = _b.messages,
219
+ messages = _d === void 0 ? [] : _d,
220
+ hasMore = _b.hasMore,
221
+ lastMessageTimestamp = _b.lastMessageTimestamp;
222
+ var actionChannelUrl = currentOpenChannel.url;
223
+ var receivedMessages_1 = isFailed ? [] : messages;
224
+
225
+ var _hasMore = isFailed ? false : hasMore;
226
+
227
+ var _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;
228
+
229
+ var stateChannel = state.currentOpenChannel;
230
+ var stateChannelUrl = stateChannel.url;
231
+
232
+ if (actionChannelUrl !== stateChannelUrl) {
233
+ return state;
234
+ }
235
+
236
+ var filteredAllMessages = state.allMessages.filter(function (message) {
237
+ return !receivedMessages_1.find(function (_a) {
238
+ var messageId = _a.messageId;
239
+ return compareIds.compareIds(messageId, message.messageId);
240
+ });
241
+ });
242
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
243
+ loading: false,
244
+ initialized: true,
245
+ hasMore: _hasMore,
246
+ lastMessageTimestamp: _lastMessageTimestamp,
247
+ allMessages: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], receivedMessages_1, true), filteredAllMessages, true)
248
+ });
249
+ }
250
+
251
+ case SENDING_MESSAGE_START:
252
+ {
253
+ var _e = action.payload,
254
+ message_1 = _e.message,
255
+ channel = _e.channel;
256
+
257
+ if (channel.url !== state.currentOpenChannel.url || state.allMessages.some(function (m) {
258
+ return m.reqId === message_1.reqId;
259
+ }) // Handing failed first than sending start issue
260
+ ) {
261
+ return state;
262
+ }
263
+
264
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
265
+ allMessages: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.allMessages, true), [message_1], false)
266
+ });
267
+ }
268
+
269
+ case SENDING_MESSAGE_SUCCEEDED:
270
+ {
271
+ var sentMessage_1 = action.payload;
272
+ var newMessages = state.allMessages.map(function (m) {
273
+ return compareIds.compareIds(m.reqId, sentMessage_1.reqId) ? sentMessage_1 : m;
274
+ });
275
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
276
+ allMessages: newMessages
277
+ });
278
+ }
279
+
280
+ case SENDING_MESSAGE_FAILED:
281
+ {
282
+ var sentMessage_2 = action.payload;
283
+
284
+ if (!state.allMessages.some(function (m) {
285
+ return m.reqId === sentMessage_2.reqId;
286
+ })) {
287
+ // Handling failed first than sending start issue
288
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
289
+ allMessages: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.allMessages.filter(function (m) {
290
+ return !compareIds.compareIds(m.reqId, sentMessage_2);
291
+ }), true), [sentMessage_2], false)
292
+ });
293
+ } else {
294
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
295
+ allMessages: state.allMessages.map(function (m) {
296
+ return compareIds.compareIds(m.reqId, sentMessage_2.reqId) ? sentMessage_2 : m;
297
+ })
298
+ });
299
+ }
300
+ }
301
+
302
+ case TRIM_MESSAGE_LIST:
303
+ {
304
+ var allMessages = state.allMessages;
305
+ var messageLimit = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.messageLimit;
306
+
307
+ if (messageLimit && messageLimit > 0 && (allMessages === null || allMessages === void 0 ? void 0 : allMessages.length) > messageLimit) {
308
+ var sliceAt = allMessages.length - messageLimit;
309
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
310
+ allMessages: allMessages.slice(sliceAt)
311
+ });
312
+ }
313
+
314
+ return state;
315
+ }
316
+
317
+ case RESENDING_MESSAGE_START:
318
+ {
319
+ var eventedChannel = action.payload.channel;
320
+ var resentMessage_1 = action.payload.message;
321
+
322
+ if (eventedChannel.url !== state.currentOpenChannel.url) {
323
+ return state;
324
+ }
325
+
326
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
327
+ allMessages: state.allMessages.map(function (m) {
328
+ return compareIds.compareIds(m.reqId, resentMessage_1.reqId) ? resentMessage_1 : m;
329
+ })
330
+ });
331
+ }
332
+
333
+ case FETCH_PARTICIPANT_LIST:
334
+ {
335
+ var eventedChannel = action.payload.channel;
336
+ var fetchedParticipantList = action.payload.users;
337
+
338
+ if (eventedChannel.url !== state.currentOpenChannel.url) {
339
+ return state;
340
+ }
341
+
342
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
343
+ participants: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.participants, true), fetchedParticipantList, true)
344
+ });
345
+ }
346
+
347
+ case FETCH_BANNED_USER_LIST:
348
+ {
349
+ var eventedChannel = action.payload.channel;
350
+ var fetchedBannedUserList = action.payload.users;
351
+
352
+ if (eventedChannel.url !== state.currentOpenChannel.url || !fetchedBannedUserList.every(function (user) {
353
+ return typeof user.userId === 'string';
354
+ })) {
355
+ return state;
356
+ }
357
+
358
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
359
+ bannedParticipantIds: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.bannedParticipantIds, true), fetchedBannedUserList.map(function (user) {
360
+ return user.userId;
361
+ }), true)
362
+ });
363
+ }
364
+
365
+ case FETCH_MUTED_USER_LIST:
366
+ {
367
+ var eventedChannel = action.payload.channel;
368
+ var fetchedMutedUserList = action.payload.users;
369
+
370
+ if (eventedChannel.url !== state.currentOpenChannel.url || !fetchedMutedUserList.every(function (user) {
371
+ return typeof user.userId === 'string';
372
+ })) {
373
+ return state;
374
+ }
375
+
376
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
377
+ mutedParticipantIds: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.mutedParticipantIds, true), fetchedMutedUserList.map(function (user) {
378
+ return user.userId;
379
+ }), true)
380
+ });
381
+ }
382
+ // events
383
+
384
+ case ON_MESSAGE_RECEIVED:
385
+ {
386
+ var eventedChannel = action.payload.channel;
387
+ var receivedMessage = action.payload.message;
388
+ var currentOpenChannel = state.currentOpenChannel;
389
+
390
+ if (!compareIds.compareIds(eventedChannel.url, currentOpenChannel.url) || !(state.allMessages.map(function (message) {
391
+ return message.messageId;
392
+ }).indexOf(receivedMessage.messageId) < 0)) {
393
+ return state;
394
+ }
395
+
396
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
397
+ allMessages: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.allMessages, true), [receivedMessage], false)
398
+ });
399
+ }
400
+
401
+ case ON_MESSAGE_UPDATED:
402
+ {
403
+ var eventedChannel = action.payload.channel;
404
+ var updatedMessage_1 = action.payload.message;
405
+ var currentChannel = state.currentOpenChannel;
406
+
407
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) {
408
+ return state;
409
+ }
410
+
411
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
412
+ allMessages: state.allMessages.map(function (message) {
413
+ return message.isIdentical(updatedMessage_1) ? updatedMessage_1 : message;
414
+ })
415
+ });
416
+ }
417
+
418
+ case ON_MESSAGE_DELETED:
419
+ {
420
+ var eventedChannel = action.payload.channel;
421
+ var deletedMessageId_1 = action.payload.messageId;
422
+ var currentChannel = state.currentOpenChannel;
423
+
424
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) {
425
+ return state;
426
+ }
427
+
428
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
429
+ allMessages: state.allMessages.filter(function (message) {
430
+ return !compareIds.compareIds(message.messageId, deletedMessageId_1);
431
+ })
432
+ });
433
+ }
434
+
435
+ case ON_MESSAGE_DELETED_BY_REQ_ID:
436
+ {
437
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
438
+ allMessages: state.allMessages.filter(function (m) {
439
+ return !compareIds.compareIds(m.reqId, action.payload);
440
+ })
441
+ });
442
+ }
443
+
444
+ case ON_OPERATOR_UPDATED:
445
+ {
446
+ var eventedChannel = action.payload.channel;
447
+ var updatedOperators = action.payload.operators;
448
+ var currentChannel = state.currentOpenChannel;
449
+
450
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) {
451
+ return state;
452
+ }
453
+
454
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
455
+ currentOpenChannel: tslib_es6.__assign(tslib_es6.__assign({}, state.currentOpenChannel), {
456
+ operators: updatedOperators
457
+ }),
458
+ operators: updatedOperators
459
+ });
460
+ }
461
+
462
+ case ON_USER_ENTERED:
463
+ {
464
+ var eventedChannel = action.payload.channel;
465
+ var enteredUser = action.payload.user;
466
+ var currentChannel = state.currentOpenChannel;
467
+
468
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) {
469
+ return state;
470
+ }
471
+
472
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
473
+ participants: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.participants, true), [enteredUser], false)
474
+ });
475
+ }
476
+
477
+ case ON_USER_EXITED:
478
+ {
479
+ var eventedChannel = action.payload.channel;
480
+ var exitedUser_1 = action.payload.user;
481
+ var currentChannel = state.currentOpenChannel;
482
+
483
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) {
484
+ return state;
485
+ }
486
+
487
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
488
+ participants: state.participants.filter(function (participant) {
489
+ return !compareIds.compareIds(participant.userId, exitedUser_1.userId);
490
+ })
491
+ });
492
+ }
493
+
494
+ case ON_USER_MUTED:
495
+ {
496
+ var eventedChannel = action.payload.channel;
497
+ var mutedUser = action.payload.user;
498
+ var currentChannel = state.currentOpenChannel;
499
+
500
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url || state.mutedParticipantIds.indexOf(mutedUser.userId) >= 0) {
501
+ return state;
502
+ }
503
+
504
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
505
+ mutedParticipantIds: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.mutedParticipantIds, true), [mutedUser.userId], false)
506
+ });
507
+ }
508
+
509
+ case ON_USER_UNMUTED:
510
+ {
511
+ var eventedChannel = action.payload.channel;
512
+ var unmutedUser_1 = action.payload.user;
513
+ var currentChannel = state.currentOpenChannel;
514
+
515
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url || state.mutedParticipantIds.indexOf(unmutedUser_1.userId) < 0) {
516
+ return state;
517
+ }
518
+
519
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
520
+ mutedParticipantIds: state.mutedParticipantIds.filter(function (userId) {
521
+ return userId !== unmutedUser_1.userId;
522
+ })
523
+ });
524
+ }
525
+
526
+ case ON_USER_BANNED:
527
+ {
528
+ var eventedChannel = action.payload.channel;
529
+ var bannedUser = action.payload.user;
530
+ var currentChannel = state.currentOpenChannel;
531
+
532
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url || state.bannedParticipantIds.indexOf(bannedUser.userId) >= 0) {
533
+ return state;
534
+ }
535
+
536
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
537
+ bannedParticipantIds: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], state.bannedParticipantIds, true), [bannedUser.userId], false)
538
+ });
539
+ }
540
+
541
+ case ON_USER_UNBANNED:
542
+ {
543
+ var eventedChannel = action.payload.channel;
544
+ var unbannedUser_1 = action.payload.user;
545
+ var currentChannel = state.currentOpenChannel;
546
+
547
+ if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url || state.bannedParticipantIds.indexOf(unbannedUser_1.userId) < 0) {
548
+ return state;
549
+ }
550
+
551
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
552
+ bannedParticipantIds: state.bannedParticipantIds.filter(function (userId) {
553
+ return userId !== unbannedUser_1.userId;
554
+ })
555
+ });
556
+ }
557
+
558
+ case ON_CHANNEL_FROZEN:
559
+ {
560
+ var frozenChannel = action.payload;
561
+ var currentChannel = state.currentOpenChannel;
562
+
563
+ if (!currentChannel || currentChannel.url && currentChannel.url !== frozenChannel.url) {
564
+ return state;
565
+ }
566
+
567
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
568
+ frozen: true
569
+ });
570
+ }
571
+
572
+ case ON_CHANNEL_UNFROZEN:
573
+ {
574
+ var unfrozenChannel = action.payload;
575
+ var currentChannel = state.currentOpenChannel;
576
+
577
+ if (!currentChannel || currentChannel.url && currentChannel.url !== unfrozenChannel.url) {
578
+ return state;
579
+ }
580
+
581
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
582
+ frozen: false
583
+ });
584
+ }
585
+
586
+ case ON_CHANNEL_CHANGED:
587
+ {
588
+ var changedChannel = action.payload;
589
+ var currentChannel = state.currentOpenChannel;
590
+
591
+ if (!currentChannel || currentChannel.url && currentChannel.url !== changedChannel.url) {
592
+ return state;
593
+ }
594
+
595
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
596
+ currentOpenChannel: changedChannel
597
+ });
598
+ }
599
+
600
+ case ON_META_DATA_CREATED:
601
+ {
602
+ // const eventedChannel = action.payload.channel;
603
+ // const createdMetaData = action.payload.metaData;
604
+ // return {
605
+ // ...state
606
+ // };
607
+ return state;
608
+ }
609
+
610
+ case ON_META_DATA_UPDATED:
611
+ {
612
+ // const eventedChannel = action.payload.channel;
613
+ // const updatedMetaData = action.payload.metaData;
614
+ // return {
615
+ // ...state
616
+ // };
617
+ return state;
618
+ }
619
+
620
+ case ON_META_DATA_DELETED:
621
+ {
622
+ // const eventedChannel = action.payload.channel;
623
+ // const deletedMetaDataKeys = action.payload.metaDataKeys;
624
+ // return {
625
+ // ...state
626
+ // };
627
+ return state;
628
+ }
629
+
630
+ case ON_META_COUNTERS_CREATED:
631
+ {
632
+ // const eventedChannel = action.payload.channel;
633
+ // const createdMetaCounter = action.payload.metaCounter;
634
+ // return {
635
+ // ...state
636
+ // };
637
+ return state;
638
+ }
639
+
640
+ case ON_META_COUNTERS_UPDATED:
641
+ {
642
+ // const eventedChannel = action.payload.channel;
643
+ // const updatedMetaCounter = action.payload.metaCounter;
644
+ // return {
645
+ // ...state
646
+ // };
647
+ return state;
648
+ }
649
+
650
+ case ON_META_COUNTERS_DELETED:
651
+ {
652
+ // const eventedChannel = action.payload.channel;
653
+ // const deletedMetaCounterKeys = action.payload.metaCounterKeys;
654
+ // return {
655
+ // ...state
656
+ // };
657
+ return state;
658
+ }
659
+
660
+ case ON_MENTION_RECEIVED:
661
+ {
662
+ // const eventedChannel = action.payload.channel;
663
+ // const mentionedMessage = action.payload.message;
664
+ // return {
665
+ // ...state
666
+ // };
667
+ return state;
668
+ }
669
+
670
+ default:
671
+ return state;
672
+ }
673
+ }
674
+
675
+ var initialState = {
676
+ allMessages: [],
677
+ loading: false,
678
+ initialized: false,
679
+ currentOpenChannel: null,
680
+ isInvalid: false,
681
+ hasMore: false,
682
+ lastMessageTimestamp: 0,
683
+ frozen: false,
684
+ operators: [],
685
+ participants: [],
686
+ bannedParticipantIds: [],
687
+ mutedParticipantIds: []
688
+ };
689
+
690
+ function useSetChannel(_a, _b) {
691
+ var channelUrl = _a.channelUrl,
692
+ sdkInit = _a.sdkInit,
693
+ fetchingParticipants = _a.fetchingParticipants,
694
+ userId = _a.userId;
695
+ var sdk = _b.sdk,
696
+ logger = _b.logger,
697
+ messagesDispatcher = _b.messagesDispatcher;
698
+ React.useEffect(function () {
699
+ if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {
700
+ logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);
701
+ sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) {
702
+ if (!error) {
703
+ logger.info('OpenChannel | useSetChannel fetched channel', openChannel);
704
+ messagesDispatcher({
705
+ type: SET_CURRENT_CHANNEL,
706
+ payload: openChannel
707
+ });
708
+ openChannel.enter(function (_, error) {
709
+ if (error) {
710
+ logger.warning('OpenChannel | useSetChannel enter channel failed', {
711
+ channelUrl: channelUrl,
712
+ error: error
713
+ });
714
+ messagesDispatcher({
715
+ type: SET_CHANNEL_INVALID,
716
+ payload: null
717
+ });
718
+ }
719
+
720
+ if (openChannel.isOperatorWithUserId(userId)) {
721
+ // only operator has a permission to fetch these list
722
+ var bannedParticipantListQuery = openChannel.createBannedUserListQuery();
723
+ var mutedParticipantListQuery = openChannel.createMutedUserListQuery();
724
+ fetchWithListQuery(bannedParticipantListQuery, logger, function (users) {
725
+ messagesDispatcher({
726
+ type: FETCH_BANNED_USER_LIST,
727
+ payload: {
728
+ channel: openChannel,
729
+ users: users
730
+ }
731
+ });
732
+ });
733
+ fetchWithListQuery(mutedParticipantListQuery, logger, function (users) {
734
+ messagesDispatcher({
735
+ type: FETCH_MUTED_USER_LIST,
736
+ payload: {
737
+ channel: openChannel,
738
+ users: users
739
+ }
740
+ });
741
+ });
742
+ }
743
+
744
+ if (fetchingParticipants) {
745
+ // fetch participants list
746
+ var participantListQuery = openChannel.createParticipantListQuery();
747
+ fetchWithListQuery(participantListQuery, logger, function (users) {
748
+ messagesDispatcher({
749
+ type: FETCH_PARTICIPANT_LIST,
750
+ payload: {
751
+ channel: openChannel,
752
+ users: users
753
+ }
754
+ });
755
+ });
756
+ }
757
+ });
758
+ } else {
759
+ logger.warning('OpenChannel | useSetChannel fetching channel failed', {
760
+ channelUrl: channelUrl,
761
+ error: error
762
+ });
763
+ messagesDispatcher({
764
+ type: SET_CHANNEL_INVALID,
765
+ payload: null
766
+ });
767
+ }
768
+ }); // .then((openChannel) => {
769
+ // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);
770
+ // messagesDispatcher({
771
+ // type: messageActionTypes.SET_CURRENT_CHANNEL,
772
+ // payload: openChannel,
773
+ // });
774
+ // openChannel.enter((_, error) => {
775
+ // if (error) {
776
+ // logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });
777
+ // messagesDispatcher({
778
+ // type: messageActionTypes.SET_CHANNEL_INVALID,
779
+ // });
780
+ // }
781
+ // if (fetchingParticipants) {
782
+ // // fetch participants, banned participantIds, muted participantIds
783
+ // const participantListQuery = openChannel.createParticipantListQuery();
784
+ // const bannedParticipantListQuery = openChannel.createBannedUserListQuery();
785
+ // const mutedParticipantListQuery = openChannel.createMutedUserListQuery();
786
+ // utils.fetchWithListQuery(
787
+ // participantListQuery,
788
+ // logger,
789
+ // (users) => {
790
+ // messagesDispatcher({
791
+ // type: messageActionTypes.FETCH_PARTICIPANT_LIST,
792
+ // payload: {
793
+ // channel: openChannel,
794
+ // users,
795
+ // },
796
+ // });
797
+ // },
798
+ // );
799
+ // utils.fetchWithListQuery(
800
+ // bannedParticipantListQuery,
801
+ // logger,
802
+ // (users) => {
803
+ // messagesDispatcher({
804
+ // type: messageActionTypes.FETCH_BANNED_USER_LIST,
805
+ // payload: {
806
+ // channel: openChannel,
807
+ // users,
808
+ // },
809
+ // });
810
+ // },
811
+ // );
812
+ // utils.fetchWithListQuery(
813
+ // mutedParticipantListQuery,
814
+ // logger,
815
+ // (users) => {
816
+ // messagesDispatcher({
817
+ // type: messageActionTypes.FETCH_MUTED_USER_LIST,
818
+ // payload: {
819
+ // channel: openChannel,
820
+ // users,
821
+ // },
822
+ // });
823
+ // },
824
+ // );
825
+ // }
826
+ // });
827
+ // })
828
+ // .catch((error) => {
829
+ // logger.warning('OpenChannel | useSetChannel fetching channel failed', { channelUrl, error });
830
+ // messagesDispatcher({
831
+ // type: messageActionTypes.SET_CHANNEL_INVALID,
832
+ // });
833
+ // });
834
+ }
835
+ }, [channelUrl, sdkInit, fetchingParticipants]);
836
+ }
837
+
838
+ function useHandleChannelEvents(_a, _b) {
839
+ var currentOpenChannel = _a.currentOpenChannel,
840
+ checkScrollBottom = _a.checkScrollBottom;
841
+ var sdk = _b.sdk,
842
+ logger = _b.logger,
843
+ messagesDispatcher = _b.messagesDispatcher;
844
+ React.useEffect(function () {
845
+ var messageReceiverId = uuid.uuidv4();
846
+
847
+ if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {
848
+ var ChannelHandler = new sdk.ChannelHandler();
849
+ logger.info('OpenChannel | useHandleChannelEvents: Setup evnet handler', messageReceiverId);
850
+
851
+ ChannelHandler.onMessageReceived = function (channel, message) {
852
+ var scrollToEnd = checkScrollBottom();
853
+ var channelUrl = channel.url;
854
+ logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', {
855
+ channelUrl: channelUrl,
856
+ message: message
857
+ });
858
+ messagesDispatcher({
859
+ type: ON_MESSAGE_RECEIVED,
860
+ payload: {
861
+ channel: channel,
862
+ message: message
863
+ }
864
+ });
865
+
866
+ if (scrollToEnd) {
867
+ try {
868
+ setTimeout(function () {
869
+ scrollIntoLast();
870
+ });
871
+ } catch (error) {
872
+ logger.warning('OpenChannel | onMessageReceived | scroll to end failed');
873
+ }
874
+ }
875
+ };
876
+
877
+ ChannelHandler.onMessageUpdated = function (channel, message) {
878
+ var channelUrl = channel.url;
879
+ logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', {
880
+ channelUrl: channelUrl,
881
+ message: message
882
+ });
883
+ messagesDispatcher({
884
+ type: ON_MESSAGE_UPDATED,
885
+ payload: {
886
+ channel: channel,
887
+ message: message
888
+ }
889
+ });
890
+ };
891
+
892
+ ChannelHandler.onMessageDeleted = function (channel, messageId) {
893
+ var channelUrl = channel.url;
894
+ logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', {
895
+ channelUrl: channelUrl,
896
+ messageId: messageId
897
+ });
898
+ messagesDispatcher({
899
+ type: ON_MESSAGE_DELETED,
900
+ payload: {
901
+ channel: channel,
902
+ messageId: messageId
903
+ }
904
+ });
905
+ };
906
+
907
+ ChannelHandler.onOperatorUpdated = function (channel, operators) {
908
+ var channelUrl = channel.url;
909
+ logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', {
910
+ channelUrl: channelUrl,
911
+ operators: operators
912
+ });
913
+ messagesDispatcher({
914
+ type: ON_OPERATOR_UPDATED,
915
+ payload: {
916
+ channel: channel,
917
+ operators: operators
918
+ }
919
+ });
920
+ };
921
+
922
+ ChannelHandler.onUserEntered = function (channel, user) {
923
+ var channelUrl = channel.url;
924
+ logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', {
925
+ channelUrl: channelUrl,
926
+ user: user
927
+ });
928
+ messagesDispatcher({
929
+ type: ON_USER_ENTERED,
930
+ payload: {
931
+ channel: channel,
932
+ user: user
933
+ }
934
+ });
935
+ };
936
+
937
+ ChannelHandler.onUserExited = function (channel, user) {
938
+ var channelUrl = channel.url;
939
+ logger.info('OpenChannel | useHandleChannelEvents: onUserExited', {
940
+ channelUrl: channelUrl,
941
+ user: user
942
+ });
943
+ messagesDispatcher({
944
+ type: ON_USER_EXITED,
945
+ payload: {
946
+ channel: channel,
947
+ user: user
948
+ }
949
+ });
950
+ };
951
+
952
+ ChannelHandler.onUserMuted = function (channel, user) {
953
+ var channelUrl = channel.url;
954
+ logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', {
955
+ channelUrl: channelUrl,
956
+ user: user
957
+ });
958
+ messagesDispatcher({
959
+ type: ON_USER_MUTED,
960
+ payload: {
961
+ channel: channel,
962
+ user: user
963
+ }
964
+ });
965
+ };
966
+
967
+ ChannelHandler.onUserUnmuted = function (channel, user) {
968
+ var channelUrl = channel.url;
969
+ logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', {
970
+ channelUrl: channelUrl,
971
+ user: user
972
+ });
973
+ messagesDispatcher({
974
+ type: ON_USER_UNMUTED,
975
+ payload: {
976
+ channel: channel,
977
+ user: user
978
+ }
979
+ });
980
+ };
981
+
982
+ ChannelHandler.onUserBanned = function (channel, user) {
983
+ var channelUrl = channel.url;
984
+ logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', {
985
+ channelUrl: channelUrl,
986
+ user: user
987
+ });
988
+ messagesDispatcher({
989
+ type: ON_USER_BANNED,
990
+ payload: {
991
+ channel: channel,
992
+ user: user
993
+ }
994
+ });
995
+ };
996
+
997
+ ChannelHandler.onUserUnbanned = function (channel, user) {
998
+ var channelUrl = channel.url;
999
+ logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', {
1000
+ channelUrl: channelUrl,
1001
+ user: user
1002
+ });
1003
+ messagesDispatcher({
1004
+ type: ON_USER_UNBANNED,
1005
+ payload: {
1006
+ channel: channel,
1007
+ user: user
1008
+ }
1009
+ });
1010
+ };
1011
+
1012
+ ChannelHandler.onChannelFrozen = function (channel) {
1013
+ logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);
1014
+ messagesDispatcher({
1015
+ type: ON_CHANNEL_FROZEN,
1016
+ payload: channel
1017
+ });
1018
+ };
1019
+
1020
+ ChannelHandler.onChannelUnfrozen = function (channel) {
1021
+ logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);
1022
+ messagesDispatcher({
1023
+ type: ON_CHANNEL_UNFROZEN,
1024
+ payload: channel
1025
+ });
1026
+ };
1027
+
1028
+ ChannelHandler.onChannelChanged = function (channel) {
1029
+ logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);
1030
+ messagesDispatcher({
1031
+ type: ON_CHANNEL_CHANGED,
1032
+ payload: channel
1033
+ });
1034
+ };
1035
+
1036
+ ChannelHandler.onMetaDataCreated = function (channel, metaData) {
1037
+ var channelUrl = channel.url;
1038
+ logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', {
1039
+ channelUrl: channelUrl,
1040
+ metaData: metaData
1041
+ });
1042
+ messagesDispatcher({
1043
+ type: ON_META_DATA_CREATED,
1044
+ payload: {
1045
+ channel: channel,
1046
+ metaData: metaData
1047
+ }
1048
+ });
1049
+ };
1050
+
1051
+ ChannelHandler.onMetaDataUpdated = function (channel, metaData) {
1052
+ var channelUrl = channel.url;
1053
+ logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', {
1054
+ channelUrl: channelUrl,
1055
+ metaData: metaData
1056
+ });
1057
+ messagesDispatcher({
1058
+ type: ON_META_DATA_UPDATED,
1059
+ payload: {
1060
+ channel: channel,
1061
+ metaData: metaData
1062
+ }
1063
+ });
1064
+ };
1065
+
1066
+ ChannelHandler.onMetaDataDeleted = function (channel, metaDataKeys) {
1067
+ var channelUrl = channel.url;
1068
+ logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', {
1069
+ channelUrl: channelUrl,
1070
+ metaDataKeys: metaDataKeys
1071
+ });
1072
+ messagesDispatcher({
1073
+ type: ON_META_DATA_DELETED,
1074
+ payload: {
1075
+ channel: channel,
1076
+ metaDataKeys: metaDataKeys
1077
+ }
1078
+ });
1079
+ };
1080
+
1081
+ ChannelHandler.onMetaCountersCreated = function (channel, metaCounter) {
1082
+ var channelUrl = channel.url;
1083
+ logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', {
1084
+ channelUrl: channelUrl,
1085
+ metaCounter: metaCounter
1086
+ });
1087
+ messagesDispatcher({
1088
+ type: ON_META_COUNTERS_CREATED,
1089
+ payload: {
1090
+ channel: channel,
1091
+ metaCounter: metaCounter
1092
+ }
1093
+ });
1094
+ };
1095
+
1096
+ ChannelHandler.onMetaCountersUpdated = function (channel, metaCounter) {
1097
+ var channelUrl = channel.url;
1098
+ logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', {
1099
+ channelUrl: channelUrl,
1100
+ metaCounter: metaCounter
1101
+ });
1102
+ messagesDispatcher({
1103
+ type: ON_META_COUNTERS_UPDATED,
1104
+ payload: {
1105
+ channel: channel,
1106
+ metaCounter: metaCounter
1107
+ }
1108
+ });
1109
+ };
1110
+
1111
+ ChannelHandler.onMetaCountersDeleted = function (channel, metaCounterKeys) {
1112
+ var channelUrl = channel.url;
1113
+ logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', {
1114
+ channelUrl: channelUrl,
1115
+ metaCounterKeys: metaCounterKeys
1116
+ });
1117
+ messagesDispatcher({
1118
+ type: ON_META_COUNTERS_DELETED,
1119
+ payload: {
1120
+ channel: channel,
1121
+ metaCounterKeys: metaCounterKeys
1122
+ }
1123
+ });
1124
+ };
1125
+
1126
+ ChannelHandler.onMentionReceived = function (channel, message) {
1127
+ var channelUrl = channel.url;
1128
+ logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', {
1129
+ channelUrl: channelUrl,
1130
+ message: message
1131
+ });
1132
+ messagesDispatcher({
1133
+ type: ON_MENTION_RECEIVED,
1134
+ payload: {
1135
+ channel: channel,
1136
+ message: message
1137
+ }
1138
+ });
1139
+ };
1140
+
1141
+ sdk.addChannelHandler(messageReceiverId, ChannelHandler);
1142
+ }
1143
+
1144
+ return function () {
1145
+ if (sdk && sdk.removeChannelHandler) {
1146
+ logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);
1147
+ sdk.removeChannelHandler(messageReceiverId);
1148
+ }
1149
+ };
1150
+ }, [currentOpenChannel]);
1151
+ }
1152
+
1153
+ function useInitialMessagesFetch(_a, _b) {
1154
+ var currentOpenChannel = _a.currentOpenChannel,
1155
+ userFilledMessageListParams = _a.userFilledMessageListParams;
1156
+ var sdk = _b.sdk,
1157
+ logger = _b.logger,
1158
+ messagesDispatcher = _b.messagesDispatcher;
1159
+ React.useEffect(function () {
1160
+ logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);
1161
+ messagesDispatcher({
1162
+ type: RESET_MESSAGES,
1163
+ payload: null
1164
+ });
1165
+
1166
+ if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {
1167
+ var messageListParams_1 = new sdk.MessageListParams();
1168
+ messageListParams_1.prevResultSize = 30;
1169
+ messageListParams_1.isInclusive = true;
1170
+ messageListParams_1.includeReplies = false;
1171
+ messageListParams_1.includeReactions = false;
1172
+
1173
+ if (userFilledMessageListParams) {
1174
+ Object.keys(userFilledMessageListParams).forEach(function (key) {
1175
+ messageListParams_1[key] = userFilledMessageListParams[key];
1176
+ });
1177
+ logger.info('OpenChannel | useInitialMessagesFetch: Used customizedMessageListParams');
1178
+ }
1179
+
1180
+ logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages', {
1181
+ currentOpenChannel: currentOpenChannel,
1182
+ messageListParams: messageListParams_1
1183
+ });
1184
+ messagesDispatcher({
1185
+ type: GET_PREV_MESSAGES_START,
1186
+ payload: null
1187
+ });
1188
+ currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams_1, function (messages, error) {
1189
+ if (!error) {
1190
+ logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages succeeded', messages);
1191
+ var hasMore = messages && messages.length > 0;
1192
+ var lastMessageTimestamp = hasMore ? messages[0].createdAt : null;
1193
+ messagesDispatcher({
1194
+ type: GET_PREV_MESSAGES_SUCESS,
1195
+ payload: {
1196
+ currentOpenChannel: currentOpenChannel,
1197
+ messages: messages,
1198
+ hasMore: hasMore,
1199
+ lastMessageTimestamp: lastMessageTimestamp
1200
+ }
1201
+ });
1202
+ setTimeout(function () {
1203
+ scrollIntoLast();
1204
+ });
1205
+ } else {
1206
+ logger.error('OpenChannel | useInitialMessagesFetch: Fetching messages failed', error);
1207
+ messagesDispatcher({
1208
+ type: GET_PREV_MESSAGES_FAIL,
1209
+ payload: {
1210
+ currentOpenChannel: currentOpenChannel,
1211
+ messages: [],
1212
+ hasMore: false,
1213
+ lastMessageTimestamp: 0
1214
+ }
1215
+ });
1216
+ }
1217
+ });
1218
+ }
1219
+ }, [currentOpenChannel, userFilledMessageListParams]);
1220
+ }
1221
+
1222
+ function useScrollCallback(_a, _b) {
1223
+ var currentOpenChannel = _a.currentOpenChannel,
1224
+ lastMessageTimestamp = _a.lastMessageTimestamp,
1225
+ fetchMore = _a.fetchMore;
1226
+ var sdk = _b.sdk,
1227
+ logger = _b.logger,
1228
+ messagesDispatcher = _b.messagesDispatcher,
1229
+ hasMore = _b.hasMore,
1230
+ userFilledMessageListParams = _b.userFilledMessageListParams;
1231
+ return React.useCallback(function (callback) {
1232
+ if (fetchMore && hasMore && sdk && sdk.MessageListParams) {
1233
+ logger.info('OpenChannel | useScrollCallback: start');
1234
+ var messageListParams_1 = new sdk.MessageListParams();
1235
+ messageListParams_1.prevResultSize = 30;
1236
+ messageListParams_1.includeReplies = false;
1237
+ messageListParams_1.includeReactions = false;
1238
+
1239
+ if (userFilledMessageListParams) {
1240
+ Object.keys(userFilledMessageListParams).forEach(function (key) {
1241
+ messageListParams_1[key] = userFilledMessageListParams[key];
1242
+ });
1243
+ logger.info('OpenChannel | useScrollCallback: Used userFilledMessageListParams', userFilledMessageListParams);
1244
+ }
1245
+
1246
+ logger.info('OpenChannel | useScrollCallback: Fetching messages', {
1247
+ currentOpenChannel: currentOpenChannel,
1248
+ messageListParams: messageListParams_1
1249
+ });
1250
+ currentOpenChannel.getMessagesByTimestamp(lastMessageTimestamp || new Date().getTime(), messageListParams_1, function (messages, error) {
1251
+ if (!error) {
1252
+ logger.info('OpenChannel | useScrollCallback: Fetching messages succeeded', messages);
1253
+ var hasMore_1 = messages && messages.length > 0;
1254
+ var lastMessageTimestamp_1 = hasMore_1 ? messages[0].createdAt : null;
1255
+ messagesDispatcher({
1256
+ type: GET_PREV_MESSAGES_SUCESS,
1257
+ payload: {
1258
+ currentOpenChannel: currentOpenChannel,
1259
+ messages: messages,
1260
+ hasMore: hasMore_1,
1261
+ lastMessageTimestamp: lastMessageTimestamp_1
1262
+ }
1263
+ });
1264
+ setTimeout(function () {
1265
+ callback();
1266
+ });
1267
+ } else {
1268
+ logger.error('OpenChannel | useScrollCallback: Fetching messages failed', error);
1269
+ messagesDispatcher({
1270
+ type: GET_PREV_MESSAGES_FAIL,
1271
+ payload: {
1272
+ currentOpenChannel: currentOpenChannel,
1273
+ messages: [],
1274
+ hasMore: false,
1275
+ lastMessageTimestamp: 0
1276
+ }
1277
+ });
1278
+ }
1279
+ });
1280
+ }
1281
+ }, [currentOpenChannel, lastMessageTimestamp, fetchMore]);
1282
+ }
1283
+
1284
+ function useCheckScrollBottom(_a, _b) {
1285
+ var conversationScrollRef = _a.conversationScrollRef;
1286
+ var logger = _b.logger;
1287
+ return React.useCallback(function () {
1288
+ var isBottom = true;
1289
+
1290
+ if (conversationScrollRef && (conversationScrollRef === null || conversationScrollRef === void 0 ? void 0 : conversationScrollRef.current)) {
1291
+ try {
1292
+ var conversationScroll = conversationScrollRef.current;
1293
+ isBottom = conversationScroll.scrollHeight <= conversationScroll.scrollTop + conversationScroll.clientHeight;
1294
+ } catch (error) {
1295
+ logger.error('OpenChannel | useCheckScrollBottom', error);
1296
+ }
1297
+ }
1298
+
1299
+ return isBottom;
1300
+ }, [conversationScrollRef]);
1301
+ }
1302
+
1303
+ function useSendMessageCallback(_a, _b) {
1304
+ var currentOpenChannel = _a.currentOpenChannel,
1305
+ onBeforeSendUserMessage = _a.onBeforeSendUserMessage,
1306
+ checkScrollBottom = _a.checkScrollBottom,
1307
+ messageInputRef = _a.messageInputRef;
1308
+ var sdk = _b.sdk,
1309
+ logger = _b.logger,
1310
+ messagesDispatcher = _b.messagesDispatcher;
1311
+ return React.useCallback(function () {
1312
+ if (sdk && sdk.UserMessageParams) {
1313
+ var text = messageInputRef.current.value;
1314
+
1315
+ var createParamsDefault = function createParamsDefault(txt) {
1316
+ var message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();
1317
+ var params = new sdk.UserMessageParams();
1318
+ params.message = message;
1319
+ return params;
1320
+ };
1321
+
1322
+ var createCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
1323
+
1324
+ if (createCustomParams) {
1325
+ logger.info('OpenChannel | useSendMessageCallback: Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
1326
+ }
1327
+
1328
+ var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);
1329
+ logger.info('OpenChannel | useSendMessageCallback: Sending message has started', params);
1330
+ var isBottom_1 = checkScrollBottom();
1331
+ var pendingMessage = currentOpenChannel.sendUserMessage(params, function (message, error) {
1332
+ if (!error) {
1333
+ logger.info('OpenChannel | useSendMessageCallback: Sending message succeeded', message);
1334
+ messagesDispatcher({
1335
+ type: SENDING_MESSAGE_SUCCEEDED,
1336
+ payload: message
1337
+ });
1338
+
1339
+ if (isBottom_1) {
1340
+ setTimeout(function () {
1341
+ scrollIntoLast();
1342
+ });
1343
+ }
1344
+ } else {
1345
+ logger.warning('OpenChannel | useSendMessageCallback: Sending message failed', error);
1346
+ messagesDispatcher({
1347
+ type: SENDING_MESSAGE_FAILED,
1348
+ payload: message
1349
+ }); // https://sendbird.com/docs/chat/v3/javascript/guides/error-codes#2-server-error-codes
1350
+ // TODO: Do we need to handle the error cases?
1351
+
1352
+ if ((error === null || error === void 0 ? void 0 : error.code) === 900041) {
1353
+ messagesDispatcher({
1354
+ type: ON_USER_MUTED,
1355
+ payload: {
1356
+ channel: currentOpenChannel,
1357
+ user: sdk.currentUser
1358
+ }
1359
+ });
1360
+ }
1361
+ }
1362
+ });
1363
+ messagesDispatcher({
1364
+ type: SENDING_MESSAGE_START,
1365
+ payload: {
1366
+ message: pendingMessage,
1367
+ channel: currentOpenChannel
1368
+ }
1369
+ });
1370
+ }
1371
+ }, [currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef]);
1372
+ }
1373
+
1374
+ function useFileUploadCallback(_a, _b) {
1375
+ var currentOpenChannel = _a.currentOpenChannel,
1376
+ checkScrollBottom = _a.checkScrollBottom,
1377
+ _c = _a.imageCompression,
1378
+ imageCompression = _c === void 0 ? {} : _c,
1379
+ onBeforeSendFileMessage = _a.onBeforeSendFileMessage;
1380
+ var sdk = _b.sdk,
1381
+ logger = _b.logger,
1382
+ messagesDispatcher = _b.messagesDispatcher;
1383
+ return React.useCallback(function (file) {
1384
+ if (sdk && sdk.FileMessageParams) {
1385
+ var compressionRate_1 = imageCompression.compressionRate,
1386
+ resizingWidth_1 = imageCompression.resizingWidth,
1387
+ resizingHeight_1 = imageCompression.resizingHeight;
1388
+ var createCustomParams_1 = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
1389
+ var compressibleFileType = file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg';
1390
+ var compressibleRatio = compressionRate_1 > 0 && compressionRate_1 < 1; // pxToNumber returns null if values are invalid
1391
+
1392
+ var compressibleDiamensions_1 = pxToNumber(resizingWidth_1) || pxToNumber(resizingHeight_1);
1393
+ var canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions_1);
1394
+
1395
+ var createParamsDefault_1 = function createParamsDefault_1(file_) {
1396
+ var params = new sdk.FileMessageParams();
1397
+ params.file = file_;
1398
+ return params;
1399
+ };
1400
+
1401
+ if (canCompressImage) {
1402
+ // Using image compression
1403
+ try {
1404
+ var image_1 = document.createElement('img');
1405
+ image_1.src = URL.createObjectURL(file);
1406
+
1407
+ image_1.onload = function () {
1408
+ URL.revokeObjectURL(image_1.src);
1409
+ var canvas = document.createElement('canvas');
1410
+ var imageWidth = image_1.naturalWidth || image_1.width;
1411
+ var imageHeight = image_1.naturalHeight || image_1.height;
1412
+ var targetWidth = pxToNumber(resizingWidth_1) || imageWidth;
1413
+ var targetHeight = pxToNumber(resizingHeight_1) || imageHeight; // In canvas.toBlob(callback, mimeType, qualityArgument)
1414
+ // qualityArgument doesnt work
1415
+ // so in case compressibleDiamensions are not present, we use ratio
1416
+
1417
+ if (file.type === 'image/png' && !compressibleDiamensions_1) {
1418
+ targetWidth *= compressionRate_1;
1419
+ targetHeight *= compressionRate_1;
1420
+ }
1421
+
1422
+ canvas.width = targetWidth;
1423
+ canvas.height = targetHeight;
1424
+ var context = canvas.getContext('2d');
1425
+ context.drawImage(image_1, 0, 0, targetWidth, targetHeight);
1426
+ context.canvas.toBlob(function (newImageBlob) {
1427
+ var compressedFile = new File([newImageBlob], file.name, {
1428
+ type: file.type
1429
+ });
1430
+
1431
+ if (createCustomParams_1) {
1432
+ logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1433
+ }
1434
+
1435
+ var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(compressedFile) : createParamsDefault_1(compressedFile);
1436
+ logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);
1437
+ var isBottom = checkScrollBottom();
1438
+ var pendingMessage = currentOpenChannel.sendFileMessage(params, function (message, error) {
1439
+ if (!error) {
1440
+ logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);
1441
+ messagesDispatcher({
1442
+ type: SENDING_MESSAGE_SUCCEEDED,
1443
+ payload: message
1444
+ });
1445
+
1446
+ if (isBottom) {
1447
+ setTimeout(function () {
1448
+ scrollIntoLast();
1449
+ });
1450
+ }
1451
+ } else {
1452
+ logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', {
1453
+ message: message,
1454
+ error: error
1455
+ });
1456
+ message.localUrl = URL.createObjectURL(file);
1457
+ message.file = file;
1458
+ messagesDispatcher({
1459
+ type: SENDING_MESSAGE_FAILED,
1460
+ payload: message
1461
+ });
1462
+ }
1463
+ });
1464
+ messagesDispatcher({
1465
+ type: SENDING_MESSAGE_START,
1466
+ payload: {
1467
+ message: tslib_es6.__assign(tslib_es6.__assign({}, pendingMessage), {
1468
+ url: URL.createObjectURL(file),
1469
+ // pending thumbnail message seems to be failed
1470
+ requestState: 'pending'
1471
+ }),
1472
+ channel: currentOpenChannel
1473
+ }
1474
+ });
1475
+ }, file.type, compressionRate_1);
1476
+ };
1477
+ } catch (error) {
1478
+ logger.warning('OpenChannel | useFileUploadCallback: Sending file message with image compression failed', error);
1479
+ }
1480
+ } else {
1481
+ // Not using image compression
1482
+ if (createCustomParams_1) {
1483
+ logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1484
+ }
1485
+
1486
+ var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault_1(file);
1487
+ logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);
1488
+ var isBottom_1 = checkScrollBottom();
1489
+ var pendingMessage = currentOpenChannel.sendFileMessage(params, function (message, error) {
1490
+ if (!error) {
1491
+ logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);
1492
+ messagesDispatcher({
1493
+ type: SENDING_MESSAGE_SUCCEEDED,
1494
+ payload: message
1495
+ });
1496
+
1497
+ if (isBottom_1) {
1498
+ setTimeout(function () {
1499
+ scrollIntoLast();
1500
+ });
1501
+ }
1502
+ } else {
1503
+ logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', {
1504
+ message: message,
1505
+ error: error
1506
+ });
1507
+ message.localUrl = URL.createObjectURL(file);
1508
+ message.file = file;
1509
+ messagesDispatcher({
1510
+ type: SENDING_MESSAGE_FAILED,
1511
+ payload: message
1512
+ });
1513
+ }
1514
+ });
1515
+ messagesDispatcher({
1516
+ type: SENDING_MESSAGE_START,
1517
+ payload: {
1518
+ message: tslib_es6.__assign(tslib_es6.__assign({}, pendingMessage), {
1519
+ url: URL.createObjectURL(file),
1520
+ // pending thumbnail message seems to be failed
1521
+ requestState: 'pending'
1522
+ }),
1523
+ channel: currentOpenChannel
1524
+ }
1525
+ });
1526
+ }
1527
+ }
1528
+ }, [currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression]);
1529
+ }
1530
+
1531
+ function useUpdateMessageCallback(_a, _b) {
1532
+ var currentOpenChannel = _a.currentOpenChannel,
1533
+ onBeforeSendUserMessage = _a.onBeforeSendUserMessage;
1534
+ var sdk = _b.sdk,
1535
+ logger = _b.logger,
1536
+ messagesDispatcher = _b.messagesDispatcher;
1537
+ return React.useCallback(function (messageId, text, callback) {
1538
+ var createParamsDefault = function createParamsDefault(txt) {
1539
+ var params = new sdk.UserMessageParams();
1540
+ params.message = txt;
1541
+ return params;
1542
+ };
1543
+
1544
+ if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {
1545
+ logger.info('OpenChannel | useUpdateMessageCallback: Creating params using onBeforeUpdateUserMessage');
1546
+ }
1547
+
1548
+ var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);
1549
+ currentOpenChannel.updateUserMessage(messageId, params, function (message, error) {
1550
+ if (callback) {
1551
+ callback();
1552
+ }
1553
+
1554
+ if (!error) {
1555
+ logger.info('OpenChannel | useUpdateMessageCallback: Updating message succeeded', {
1556
+ message: message,
1557
+ params: params
1558
+ });
1559
+ messagesDispatcher({
1560
+ type: ON_MESSAGE_UPDATED,
1561
+ payload: {
1562
+ channel: currentOpenChannel,
1563
+ message: message
1564
+ }
1565
+ });
1566
+ } else {
1567
+ logger.warning('OpenChannel | useUpdateMessageCallback: Updating message failed', error);
1568
+ }
1569
+ });
1570
+ }, [currentOpenChannel, onBeforeSendUserMessage]);
1571
+ }
1572
+
1573
+ function useDeleteMessageCallback(_a, _b) {
1574
+ var currentOpenChannel = _a.currentOpenChannel;
1575
+ var logger = _b.logger,
1576
+ messagesDispatcher = _b.messagesDispatcher;
1577
+ return React.useCallback(function (message, callback) {
1578
+ logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);
1579
+ var sendingStatus = message.sendingStatus;
1580
+ logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState', sendingStatus);
1581
+
1582
+ if (sendingStatus === 'failed' || sendingStatus === 'pending') {
1583
+ logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local', message);
1584
+ messagesDispatcher({
1585
+ type: ON_MESSAGE_DELETED_BY_REQ_ID,
1586
+ payload: message.reqId
1587
+ });
1588
+
1589
+ if (callback) {
1590
+ callback();
1591
+ }
1592
+ } else {
1593
+ if (!(message.messageType === 'file' || message.messageType === 'user')) {
1594
+ return;
1595
+ }
1596
+
1597
+ var messageToDelete = message;
1598
+ currentOpenChannel.deleteMessage(messageToDelete, function (error) {
1599
+ logger.info('OpenChannel | useDeleteMessageCallback: Deleting message on server', sendingStatus);
1600
+
1601
+ if (callback) {
1602
+ callback();
1603
+ }
1604
+
1605
+ if (!error) {
1606
+ logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);
1607
+ messagesDispatcher({
1608
+ type: ON_MESSAGE_DELETED,
1609
+ payload: {
1610
+ channel: currentOpenChannel,
1611
+ messageId: message.messageId
1612
+ }
1613
+ });
1614
+ } else {
1615
+ logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);
1616
+ }
1617
+ });
1618
+ }
1619
+ }, [currentOpenChannel]);
1620
+ }
1621
+
1622
+ function useResendMessageCallback(_a, _b) {
1623
+ var currentOpenChannel = _a.currentOpenChannel;
1624
+ var logger = _b.logger,
1625
+ messagesDispatcher = _b.messagesDispatcher;
1626
+ return React.useCallback(function (failedMessage) {
1627
+ logger.info('OpenChannel | useResendMessageCallback: Resending message has started', failedMessage);
1628
+ var messageType = failedMessage.messageType,
1629
+ file = failedMessage.file;
1630
+
1631
+ if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {
1632
+ // eslint-disable-next-line no-param-reassign
1633
+ failedMessage.requestState = 'pending';
1634
+ messagesDispatcher({
1635
+ type: RESENDING_MESSAGE_START,
1636
+ payload: {
1637
+ channel: currentOpenChannel,
1638
+ message: failedMessage
1639
+ }
1640
+ }); // userMessage
1641
+
1642
+ if (messageType === 'user' && failedMessage.messageType === 'user') {
1643
+ currentOpenChannel.resendUserMessage(failedMessage, function (message, error) {
1644
+ if (!error) {
1645
+ logger.info('OpenChannel | useResendMessageCallback: Reseding message succeeded', message);
1646
+ messagesDispatcher({
1647
+ type: SENDING_MESSAGE_SUCCEEDED,
1648
+ payload: message
1649
+ });
1650
+ } else {
1651
+ logger.warning('OpenChannel | useResendMessageCallback: Resending message failed', error); // eslint-disable-next-line no-param-reassign
1652
+
1653
+ failedMessage.requestState = 'failed';
1654
+ messagesDispatcher({
1655
+ type: SENDING_MESSAGE_FAILED,
1656
+ payload: failedMessage
1657
+ });
1658
+ }
1659
+ });
1660
+ return;
1661
+ } // fileMessage
1662
+
1663
+
1664
+ if (messageType === 'file' && failedMessage.messageType === 'file') {
1665
+ currentOpenChannel.resendFileMessage(failedMessage, file, function (message, error) {
1666
+ if (!error) {
1667
+ logger.info('OpenChannel | useResendMessageCallback: Resending file message succeeded', message);
1668
+ messagesDispatcher({
1669
+ type: SENDING_MESSAGE_SUCCEEDED,
1670
+ payload: message
1671
+ });
1672
+ } else {
1673
+ logger.warning('OpenChannel | useResendMessageCallback: Resending file message failed', error); // eslint-disable-next-line no-param-reassign
1674
+
1675
+ failedMessage.requestState = 'failed';
1676
+ messagesDispatcher({
1677
+ type: SENDING_MESSAGE_FAILED,
1678
+ payload: failedMessage
1679
+ });
1680
+ }
1681
+ });
1682
+ }
1683
+ } else {
1684
+ // to alert user on console
1685
+ // eslint-disable-next-line no-console
1686
+ console.error('OpenChannel | useResendMessageCallback: Message is not resendable');
1687
+ logger.warning('OpenChannel | useResendMessageCallback: Message is not resendable', failedMessage);
1688
+ }
1689
+ }, [currentOpenChannel]);
1690
+ }
1691
+
1692
+ var THROTTLE_TIMER = 5000; // to trim message list so that we wont keep thousands of messages in memory
1693
+ // We are throttling here; not debouncing
1694
+ // it will be called once very 5 sec if messagesLength, messageLimit changes
1695
+ // we check if messagesLength > messageLimit before dispatching action
1696
+
1697
+ function useTrimMessageList(_a, _b) {
1698
+ var messagesLength = _a.messagesLength,
1699
+ messageLimit = _a.messageLimit;
1700
+ var messagesDispatcher = _b.messagesDispatcher,
1701
+ logger = _b.logger;
1702
+
1703
+ var _c = React.useState(false),
1704
+ inProgress = _c[0],
1705
+ setInProgress = _c[1];
1706
+
1707
+ React.useEffect(function () {
1708
+ if (inProgress) {
1709
+ return;
1710
+ }
1711
+
1712
+ if (typeof messagesLength === 'number' && messagesLength > messageLimit) {
1713
+ logger.info('Trimming MessageList');
1714
+ messagesDispatcher({
1715
+ type: TRIM_MESSAGE_LIST,
1716
+ payload: {
1717
+ messageLimit: messageLimit
1718
+ }
1719
+ });
1720
+ }
1721
+
1722
+ setInProgress(true);
1723
+ setTimeout(function () {
1724
+ setInProgress(false);
1725
+ }, THROTTLE_TIMER);
1726
+ }, [messagesLength, messageLimit]);
1727
+ }
1728
+
1729
+ var OpenChannelContext = /*#__PURE__*/React__default["default"].createContext(undefined);
1730
+
1731
+ var OpenChannelProvider = function OpenChannelProvider(props) {
1732
+ var _a, _b, _c, _d, _e, _f;
1733
+
1734
+ var channelUrl = props.channelUrl,
1735
+ children = props.children,
1736
+ useMessageGrouping = props.useMessageGrouping,
1737
+ queries = props.queries,
1738
+ onBeforeSendUserMessage = props.onBeforeSendUserMessage,
1739
+ messageLimit = props.messageLimit,
1740
+ onBeforeSendFileMessage = props.onBeforeSendFileMessage,
1741
+ onChatHeaderActionClick = props.onChatHeaderActionClick; // We didn't decide to support fetching participant list
1742
+
1743
+ var fetchingParticipants = false;
1744
+ var globalStore = useSendbirdStateContext();
1745
+ var sdk = (_b = (_a = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _a === void 0 ? void 0 : _a.sdkStore) === null || _b === void 0 ? void 0 : _b.sdk;
1746
+ var sdkInit = (_d = (_c = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _c === void 0 ? void 0 : _c.sdkStore) === null || _d === void 0 ? void 0 : _d.initialized;
1747
+ var user = (_f = (_e = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _e === void 0 ? void 0 : _e.userStore) === null || _f === void 0 ? void 0 : _f.user;
1748
+ var config = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
1749
+ var userId = config.userId,
1750
+ isOnline = config.isOnline,
1751
+ logger = config.logger,
1752
+ pubSub = config.pubSub,
1753
+ imageCompression = config.imageCompression; // hook variables
1754
+
1755
+ var _g = React.useReducer(reducer, initialState),
1756
+ messagesStore = _g[0],
1757
+ messagesDispatcher = _g[1];
1758
+
1759
+ var allMessages = messagesStore.allMessages,
1760
+ loading = messagesStore.loading,
1761
+ initialized = messagesStore.initialized,
1762
+ currentOpenChannel = messagesStore.currentOpenChannel,
1763
+ isInvalid = messagesStore.isInvalid,
1764
+ hasMore = messagesStore.hasMore,
1765
+ lastMessageTimestamp = messagesStore.lastMessageTimestamp,
1766
+ operators = messagesStore.operators,
1767
+ bannedParticipantIds = messagesStore.bannedParticipantIds,
1768
+ mutedParticipantIds = messagesStore.mutedParticipantIds; // ref
1769
+
1770
+ var messageInputRef = React.useRef(null); // useSendMessageCallback
1771
+
1772
+ var conversationScrollRef = React.useRef(null); // useScrollAfterSendMessageCallback
1773
+ // const
1774
+
1775
+ var userFilledMessageListParams = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1776
+ var disabled = !initialized || !isOnline || isDisabledBecauseFrozen(currentOpenChannel, userId) || isDisabledBecauseMuted(mutedParticipantIds, userId); // useMemo
1777
+
1778
+ var amIBanned = React.useMemo(function () {
1779
+ return bannedParticipantIds.indexOf(user.userId) >= 0;
1780
+ }, [channelUrl, bannedParticipantIds, user]);
1781
+ var amIMuted = React.useMemo(function () {
1782
+ return mutedParticipantIds.indexOf(user.userId) >= 0;
1783
+ }, [channelUrl, mutedParticipantIds, user]);
1784
+ var amIOperator = React.useMemo(function () {
1785
+ return operators.map(function (operator) {
1786
+ return operator.userId;
1787
+ }).indexOf(user.userId) >= 0;
1788
+ }, [channelUrl, operators, user]); // use hooks
1789
+
1790
+ useSetChannel({
1791
+ channelUrl: channelUrl,
1792
+ sdkInit: sdkInit,
1793
+ fetchingParticipants: fetchingParticipants,
1794
+ userId: userId
1795
+ }, {
1796
+ sdk: sdk,
1797
+ logger: logger,
1798
+ messagesDispatcher: messagesDispatcher
1799
+ });
1800
+ var checkScrollBottom = useCheckScrollBottom({
1801
+ conversationScrollRef: conversationScrollRef
1802
+ }, {
1803
+ logger: logger
1804
+ });
1805
+ useHandleChannelEvents({
1806
+ currentOpenChannel: currentOpenChannel,
1807
+ checkScrollBottom: checkScrollBottom
1808
+ }, {
1809
+ sdk: sdk,
1810
+ logger: logger,
1811
+ messagesDispatcher: messagesDispatcher
1812
+ });
1813
+ useInitialMessagesFetch({
1814
+ currentOpenChannel: currentOpenChannel,
1815
+ userFilledMessageListParams: userFilledMessageListParams
1816
+ }, {
1817
+ sdk: sdk,
1818
+ logger: logger,
1819
+ messagesDispatcher: messagesDispatcher
1820
+ });
1821
+ var fetchMore = shouldFetchMore(allMessages === null || allMessages === void 0 ? void 0 : allMessages.length, messageLimit); // donot fetch more for streaming
1822
+
1823
+ var onScroll = useScrollCallback({
1824
+ currentOpenChannel: currentOpenChannel,
1825
+ lastMessageTimestamp: lastMessageTimestamp,
1826
+ fetchMore: fetchMore
1827
+ }, {
1828
+ sdk: sdk,
1829
+ logger: logger,
1830
+ messagesDispatcher: messagesDispatcher,
1831
+ hasMore: hasMore,
1832
+ userFilledMessageListParams: userFilledMessageListParams
1833
+ });
1834
+ var handleSendMessage = useSendMessageCallback({
1835
+ currentOpenChannel: currentOpenChannel,
1836
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1837
+ checkScrollBottom: checkScrollBottom,
1838
+ messageInputRef: messageInputRef
1839
+ }, {
1840
+ sdk: sdk,
1841
+ logger: logger,
1842
+ messagesDispatcher: messagesDispatcher
1843
+ });
1844
+ var handleFileUpload = useFileUploadCallback({
1845
+ currentOpenChannel: currentOpenChannel,
1846
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
1847
+ checkScrollBottom: checkScrollBottom,
1848
+ imageCompression: imageCompression
1849
+ }, {
1850
+ sdk: sdk,
1851
+ logger: logger,
1852
+ messagesDispatcher: messagesDispatcher
1853
+ });
1854
+ var updateMessage = useUpdateMessageCallback({
1855
+ currentOpenChannel: currentOpenChannel,
1856
+ onBeforeSendUserMessage: onBeforeSendUserMessage
1857
+ }, {
1858
+ sdk: sdk,
1859
+ logger: logger,
1860
+ messagesDispatcher: messagesDispatcher
1861
+ });
1862
+ var deleteMessage = useDeleteMessageCallback({
1863
+ currentOpenChannel: currentOpenChannel
1864
+ }, {
1865
+ logger: logger,
1866
+ messagesDispatcher: messagesDispatcher
1867
+ });
1868
+ var resendMessage = useResendMessageCallback({
1869
+ currentOpenChannel: currentOpenChannel
1870
+ }, {
1871
+ logger: logger,
1872
+ messagesDispatcher: messagesDispatcher
1873
+ });
1874
+ useTrimMessageList({
1875
+ messagesLength: allMessages === null || allMessages === void 0 ? void 0 : allMessages.length,
1876
+ messageLimit: messageLimit
1877
+ }, {
1878
+ messagesDispatcher: messagesDispatcher,
1879
+ logger: logger
1880
+ }); // handle API calls from withSendbird
1881
+
1882
+ React.useEffect(function () {
1883
+ var subscriber = new Map();
1884
+
1885
+ if (!pubSub || !pubSub.subscribe) {
1886
+ return;
1887
+ }
1888
+
1889
+ subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, function (msg) {
1890
+ var channel = msg.channel,
1891
+ message = msg.message;
1892
+ scrollIntoLast();
1893
+
1894
+ if (channel && channelUrl === channel.url) {
1895
+ messagesDispatcher({
1896
+ type: SENDING_MESSAGE_SUCCEEDED,
1897
+ payload: message
1898
+ });
1899
+ }
1900
+ }));
1901
+ subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, function (msg) {
1902
+ var channel = msg.channel,
1903
+ message = msg.message;
1904
+
1905
+ if (channel && channelUrl === channel.url) {
1906
+ messagesDispatcher({
1907
+ type: SENDING_MESSAGE_START,
1908
+ payload: {
1909
+ message: message,
1910
+ channel: channel
1911
+ }
1912
+ });
1913
+ }
1914
+ }));
1915
+ subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, function (msg) {
1916
+ var channel = msg.channel,
1917
+ message = msg.message;
1918
+ scrollIntoLast();
1919
+
1920
+ if (channel && channelUrl === channel.url) {
1921
+ messagesDispatcher({
1922
+ type: SENDING_MESSAGE_SUCCEEDED,
1923
+ payload: {
1924
+ message: message,
1925
+ channel: channel
1926
+ }
1927
+ });
1928
+ }
1929
+ }));
1930
+ subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, function (msg) {
1931
+ var channel = msg.channel,
1932
+ message = msg.message,
1933
+ fromSelector = msg.fromSelector;
1934
+
1935
+ if (fromSelector && channel && channelUrl === channel.url) {
1936
+ messagesDispatcher({
1937
+ type: ON_MESSAGE_UPDATED,
1938
+ payload: {
1939
+ channel: channel,
1940
+ message: message
1941
+ }
1942
+ });
1943
+ }
1944
+ }));
1945
+ subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, function (msg) {
1946
+ var channel = msg.channel,
1947
+ messageId = msg.messageId;
1948
+
1949
+ if (channel && channelUrl === channel.url) {
1950
+ messagesDispatcher({
1951
+ type: ON_MESSAGE_DELETED,
1952
+ payload: messageId
1953
+ });
1954
+ }
1955
+ }));
1956
+ return function () {
1957
+ if (subscriber) {
1958
+ subscriber.forEach(function (s) {
1959
+ try {
1960
+ s.remove();
1961
+ } catch (_a) {//
1962
+ }
1963
+ });
1964
+ }
1965
+ };
1966
+ }, [channelUrl, sdkInit]);
1967
+ return /*#__PURE__*/React__default["default"].createElement(OpenChannelContext.Provider, {
1968
+ value: {
1969
+ // props
1970
+ channelUrl: channelUrl,
1971
+ children: children,
1972
+ useMessageGrouping: useMessageGrouping,
1973
+ queries: queries,
1974
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1975
+ messageLimit: messageLimit,
1976
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
1977
+ onChatHeaderActionClick: onChatHeaderActionClick,
1978
+ // store
1979
+ allMessages: allMessages,
1980
+ loading: loading,
1981
+ initialized: initialized,
1982
+ currentOpenChannel: currentOpenChannel,
1983
+ isInvalid: isInvalid,
1984
+ hasMore: hasMore,
1985
+ lastMessageTimestamp: lastMessageTimestamp,
1986
+ operators: operators,
1987
+ bannedParticipantIds: bannedParticipantIds,
1988
+ mutedParticipantIds: mutedParticipantIds,
1989
+ // derived/utils
1990
+ messageInputRef: messageInputRef,
1991
+ conversationScrollRef: conversationScrollRef,
1992
+ disabled: disabled,
1993
+ amIBanned: amIBanned,
1994
+ amIMuted: amIMuted,
1995
+ amIOperator: amIOperator,
1996
+ checkScrollBottom: checkScrollBottom,
1997
+ fetchMore: fetchMore,
1998
+ onScroll: onScroll,
1999
+ handleSendMessage: handleSendMessage,
2000
+ handleFileUpload: handleFileUpload,
2001
+ updateMessage: updateMessage,
2002
+ deleteMessage: deleteMessage,
2003
+ resendMessage: resendMessage
2004
+ }
2005
+ }, /*#__PURE__*/React__default["default"].createElement(UserProfileContext.UserProfileProvider, {
2006
+ isOpenChannel: true,
2007
+ renderUserProfile: props === null || props === void 0 ? void 0 : props.renderUserProfile,
2008
+ disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile
2009
+ }, children));
2010
+ };
2011
+
2012
+ var useOpenChannel = function useOpenChannel() {
2013
+ return React__default["default"].useContext(OpenChannelContext);
2014
+ };
2015
+
2016
+ exports.OpenChannelProvider = OpenChannelProvider;
2017
+ exports.compareMessagesForGrouping = compareMessagesForGrouping;
2018
+ exports.kFormatter = kFormatter;
2019
+ exports.useOpenChannel = useOpenChannel;
2020
+ //# sourceMappingURL=OpenChannelProvider-9ce7c998.js.map