@sendbird/uikit-react 3.0.0-beta.4 → 3.0.0-rc.0

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