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