@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,2088 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var UserProfileContext = require('./UserProfileContext-17c8f75c.js');
5
+ var useSendbirdStateContext = require('./useSendbirdStateContext.js');
6
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-d984e855.js');
7
+ var index$1 = require('./index-cdcd27bc.js');
8
+ var topics = require('./topics-582e38dc.js');
9
+ var index = require('./index-40d245a3.js');
10
+ var compareIds = require('./compareIds-d8053014.js');
11
+ var _const = require('./const-6aa26f9f.js');
12
+ var groupChannel = require('./groupChannel-e311e26a.js');
13
+ var uuid = require('./uuid-099485ae.js');
14
+ var __bundle7dfccc8c = require('./__bundle-7dfccc8c-c3c55861.js');
15
+ var ui_ContextMenu = require('./ui/ContextMenu.js');
16
+ var ui_ReactionButton = require('./ui/ReactionButton.js');
17
+ var ui_ImageRenderer = require('./ui/ImageRenderer.js');
18
+ var ui_Icon = require('./ui/Icon.js');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
+
24
+ var RESET_MESSAGES = 'RESET_MESSAGES';
25
+ var FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
26
+ var FETCH_INITIAL_MESSAGES_SUCCESS = 'FETCH_INITIAL_MESSAGES_SUCCESS';
27
+ var FETCH_INITIAL_MESSAGES_FAILURE = 'FETCH_INITIAL_MESSAGES_FAILURE';
28
+ var FETCH_PREV_MESSAGES_SUCCESS = 'FETCH_PREV_MESSAGES_SUCCESS';
29
+ var FETCH_PREV_MESSAGES_FAILURE = 'FETCH_PREV_MESSAGES_FAILURE';
30
+ var FETCH_NEXT_MESSAGES_SUCCESS = 'FETCH_NEXT_MESSAGES_SUCCESS';
31
+ var FETCH_NEXT_MESSAGES_FAILURE = 'FETCH_NEXT_MESSAGES_FAILURE';
32
+ var SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';
33
+ var SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';
34
+ var SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';
35
+ var RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';
36
+ var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';
37
+ var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';
38
+ var ON_MESSAGE_THREAD_INFO_UPDATED = 'ON_MESSAGE_THREAD_INFO_UPDATED';
39
+ var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';
40
+ var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';
41
+ var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';
42
+ var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';
43
+ var MARK_AS_READ = 'MARK_AS_READ';
44
+ var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';
45
+ var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';
46
+ var MESSAGE_LIST_PARAMS_CHANGED = 'MESSAGE_LIST_PARAMS_CHANGED';
47
+
48
+ var messageActionTypes = /*#__PURE__*/Object.freeze({
49
+ __proto__: null,
50
+ RESET_MESSAGES: RESET_MESSAGES,
51
+ FETCH_INITIAL_MESSAGES_START: FETCH_INITIAL_MESSAGES_START,
52
+ FETCH_INITIAL_MESSAGES_SUCCESS: FETCH_INITIAL_MESSAGES_SUCCESS,
53
+ FETCH_INITIAL_MESSAGES_FAILURE: FETCH_INITIAL_MESSAGES_FAILURE,
54
+ FETCH_PREV_MESSAGES_SUCCESS: FETCH_PREV_MESSAGES_SUCCESS,
55
+ FETCH_PREV_MESSAGES_FAILURE: FETCH_PREV_MESSAGES_FAILURE,
56
+ FETCH_NEXT_MESSAGES_SUCCESS: FETCH_NEXT_MESSAGES_SUCCESS,
57
+ FETCH_NEXT_MESSAGES_FAILURE: FETCH_NEXT_MESSAGES_FAILURE,
58
+ SEND_MESSAGEGE_START: SEND_MESSAGEGE_START,
59
+ SEND_MESSAGEGE_SUCESS: SEND_MESSAGEGE_SUCESS,
60
+ SEND_MESSAGEGE_FAILURE: SEND_MESSAGEGE_FAILURE,
61
+ RESEND_MESSAGEGE_START: RESEND_MESSAGEGE_START,
62
+ ON_MESSAGE_RECEIVED: ON_MESSAGE_RECEIVED,
63
+ ON_MESSAGE_UPDATED: ON_MESSAGE_UPDATED,
64
+ ON_MESSAGE_THREAD_INFO_UPDATED: ON_MESSAGE_THREAD_INFO_UPDATED,
65
+ ON_MESSAGE_DELETED: ON_MESSAGE_DELETED,
66
+ ON_MESSAGE_DELETED_BY_REQ_ID: ON_MESSAGE_DELETED_BY_REQ_ID,
67
+ SET_CURRENT_CHANNEL: SET_CURRENT_CHANNEL,
68
+ SET_CHANNEL_INVALID: SET_CHANNEL_INVALID,
69
+ MARK_AS_READ: MARK_AS_READ,
70
+ ON_REACTION_UPDATED: ON_REACTION_UPDATED,
71
+ SET_EMOJI_CONTAINER: SET_EMOJI_CONTAINER,
72
+ MESSAGE_LIST_PARAMS_CHANGED: MESSAGE_LIST_PARAMS_CHANGED
73
+ });
74
+
75
+ index.getOutgoingMessageStates();
76
+ var UNDEFINED = 'undefined';
77
+
78
+ var _getSendingMessageSta$1 = index.getSendingMessageStatus(),
79
+ SUCCEEDED$1 = _getSendingMessageSta$1.SUCCEEDED;
80
+ _getSendingMessageSta$1.FAILED;
81
+ var PENDING$1 = _getSendingMessageSta$1.PENDING;
82
+
83
+ var scrollIntoLast = function scrollIntoLast() {
84
+ var intialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
85
+ var MAX_TRIES = 10;
86
+ var currentTry = intialTry;
87
+
88
+ if (currentTry > MAX_TRIES) {
89
+ return;
90
+ }
91
+
92
+ try {
93
+ var scrollDOM = document.querySelector('.sendbird-conversation__messages-padding'); // eslint-disable-next-line no-multi-assign
94
+
95
+ scrollDOM.scrollTop = scrollDOM.scrollHeight;
96
+ } catch (error) {
97
+ setTimeout(function () {
98
+ scrollIntoLast(currentTry + 1);
99
+ }, 500 * currentTry);
100
+ }
101
+ };
102
+ var pubSubHandleRemover = function pubSubHandleRemover(subscriber) {
103
+ subscriber.forEach(function (s) {
104
+ try {
105
+ s.remove();
106
+ } catch (_unused) {//
107
+ }
108
+ });
109
+ };
110
+ var pubSubHandler = function pubSubHandler(channelUrl, pubSub, dispatcher) {
111
+ var subscriber = new Map();
112
+ if (!pubSub || !pubSub.subscribe) return subscriber;
113
+ subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, function (msg) {
114
+ var channel = msg.channel,
115
+ message = msg.message;
116
+ scrollIntoLast();
117
+
118
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
119
+ dispatcher({
120
+ type: SEND_MESSAGEGE_SUCESS,
121
+ payload: message
122
+ });
123
+ }
124
+ }));
125
+ subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, function (msg) {
126
+ var channel = msg.channel,
127
+ message = msg.message;
128
+
129
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
130
+ dispatcher({
131
+ type: SEND_MESSAGEGE_START,
132
+ payload: message
133
+ });
134
+ }
135
+ }));
136
+ subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, function (msg) {
137
+ var channel = msg.channel,
138
+ message = msg.message;
139
+ scrollIntoLast();
140
+
141
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
142
+ dispatcher({
143
+ type: SEND_MESSAGEGE_SUCESS,
144
+ payload: message
145
+ });
146
+ }
147
+ }));
148
+ subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, function (msg) {
149
+ var channel = msg.channel,
150
+ message = msg.message,
151
+ fromSelector = msg.fromSelector;
152
+
153
+ if (fromSelector && channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
154
+ dispatcher({
155
+ type: ON_MESSAGE_UPDATED,
156
+ payload: {
157
+ channel: channel,
158
+ message: message
159
+ }
160
+ });
161
+ }
162
+ }));
163
+ subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, function (msg) {
164
+ var channel = msg.channel,
165
+ messageId = msg.messageId;
166
+
167
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
168
+ dispatcher({
169
+ type: ON_MESSAGE_DELETED,
170
+ payload: messageId
171
+ });
172
+ }
173
+ }));
174
+ return subscriber;
175
+ };
176
+ var isOperator = function isOperator() {
177
+ var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
178
+ var myRole = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.myRole;
179
+ return myRole === 'operator';
180
+ };
181
+ var isDisabledBecauseFrozen = function isDisabledBecauseFrozen() {
182
+ var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
183
+ var isFrozen = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.isFrozen;
184
+ return isFrozen && !isOperator(groupChannel);
185
+ };
186
+ var isDisabledBecauseMuted = function isDisabledBecauseMuted() {
187
+ var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
188
+ var myMutedState = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.myMutedState;
189
+ return myMutedState === 'muted';
190
+ };
191
+ var getAllEmojisFromEmojiContainer = function getAllEmojisFromEmojiContainer() {
192
+ var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
193
+ var _emojiContainer$emoji = emojiContainer.emojiCategories,
194
+ emojiCategories = _emojiContainer$emoji === void 0 ? [] : _emojiContainer$emoji;
195
+ var allEmojis = [];
196
+
197
+ for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
198
+ var emojis = emojiCategories[categoryIndex].emojis;
199
+
200
+ for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
201
+ allEmojis.push(emojis[emojiIndex]);
202
+ }
203
+ }
204
+
205
+ return allEmojis;
206
+ };
207
+ var getAllEmojisMapFromEmojiContainer = function getAllEmojisMapFromEmojiContainer() {
208
+ var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
209
+ var _emojiContainer$emoji2 = emojiContainer.emojiCategories,
210
+ emojiCategories = _emojiContainer$emoji2 === void 0 ? [] : _emojiContainer$emoji2;
211
+ var allEmojisMap = new Map();
212
+
213
+ for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
214
+ var emojis = emojiCategories[categoryIndex].emojis;
215
+
216
+ for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
217
+ var _emojis$emojiIndex = emojis[emojiIndex],
218
+ key = _emojis$emojiIndex.key,
219
+ url = _emojis$emojiIndex.url;
220
+ allEmojisMap.set(key, url);
221
+ }
222
+ }
223
+
224
+ return allEmojisMap;
225
+ };
226
+ var getNicknamesMapFromMembers = function getNicknamesMapFromMembers() {
227
+ var members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
228
+ var nicknamesMap = new Map();
229
+
230
+ for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
231
+ var _members$memberIndex = members[memberIndex],
232
+ userId = _members$memberIndex.userId,
233
+ nickname = _members$memberIndex.nickname;
234
+ nicknamesMap.set(userId, nickname);
235
+ }
236
+
237
+ return nicknamesMap;
238
+ };
239
+ var getMessageCreatedAt = function getMessageCreatedAt(message) {
240
+ return index$1.format(message.createdAt, 'p');
241
+ };
242
+ var isSameGroup = function isSameGroup(message, comparingMessage, currentChannel) {
243
+ var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
244
+
245
+ if (!(message && comparingMessage && message.messageType && message.messageType !== 'admin' && comparingMessage.messageType && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && message !== null && message !== void 0 && message.sender && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.sender && message !== null && message !== void 0 && message.createdAt && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.createdAt && message !== null && message !== void 0 && (_message$sender = message.sender) !== null && _message$sender !== void 0 && _message$sender.userId && comparingMessage !== null && comparingMessage !== void 0 && (_comparingMessage$sen = comparingMessage.sender) !== null && _comparingMessage$sen !== void 0 && _comparingMessage$sen.userId)) {
246
+ return false;
247
+ }
248
+
249
+ return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && (message === null || message === void 0 ? void 0 : (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.userId) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : (_comparingMessage$sen2 = comparingMessage.sender) === null || _comparingMessage$sen2 === void 0 ? void 0 : _comparingMessage$sen2.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage) && index.isReadMessage(currentChannel, message) === index.isReadMessage(currentChannel, comparingMessage);
250
+ };
251
+ var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage, currentChannel) {
252
+ var sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
253
+ var isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
254
+ return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
255
+ };
256
+ var passUnsuccessfullMessages = function passUnsuccessfullMessages(allMessages, newMessage) {
257
+ var _newMessage$sendingSt = newMessage.sendingStatus,
258
+ sendingStatus = _newMessage$sendingSt === void 0 ? UNDEFINED : _newMessage$sendingSt;
259
+
260
+ if (sendingStatus === SUCCEEDED$1 || sendingStatus === PENDING$1) {
261
+ var lastIndexOfSucceededMessage = allMessages.map(function (message) {
262
+ return message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED$1 : UNDEFINED);
263
+ }).lastIndexOf(SUCCEEDED$1);
264
+
265
+ if (lastIndexOfSucceededMessage + 1 < allMessages.length) {
266
+ var messages = _rollupPluginBabelHelpers._toConsumableArray(allMessages);
267
+
268
+ messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);
269
+ return messages;
270
+ }
271
+ }
272
+
273
+ return [].concat(_rollupPluginBabelHelpers._toConsumableArray(allMessages), [newMessage]);
274
+ };
275
+ var pxToNumber = function pxToNumber(px) {
276
+ if (typeof px === 'number') {
277
+ return px;
278
+ }
279
+
280
+ if (typeof px === 'string') {
281
+ var parsed = Number.parseFloat(px);
282
+
283
+ if (!Number.isNaN(parsed)) {
284
+ return parsed;
285
+ }
286
+ }
287
+
288
+ return null;
289
+ };
290
+ var isAboutSame = function isAboutSame(a, b, px) {
291
+ return Math.abs(a - b) <= px;
292
+ };
293
+
294
+ var messagesInitialState = {
295
+ initialized: false,
296
+ loading: false,
297
+ allMessages: [],
298
+ currentGroupChannel: {
299
+ members: []
300
+ },
301
+ // for scrollup
302
+ hasMorePrev: false,
303
+ oldestMessageTimeStamp: 0,
304
+ // for scroll down
305
+ // onScrollDownCallback is added for navigation to different timestamps on messageSearch
306
+ // hasMorePrev, onScrollCallback -> scroll up(default behavior)
307
+ // hasMoreNext, onScrollDownCallback -> scroll down
308
+ hasMoreNext: false,
309
+ latestMessageTimeStamp: 0,
310
+ emojiContainer: {},
311
+ unreadSince: null,
312
+ isInvalid: false,
313
+ messageListParams: null
314
+ };
315
+
316
+ var _getSendingMessageSta = index.getSendingMessageStatus(),
317
+ SUCCEEDED = _getSendingMessageSta.SUCCEEDED,
318
+ FAILED = _getSendingMessageSta.FAILED,
319
+ PENDING = _getSendingMessageSta.PENDING;
320
+
321
+ var getOldestMessageTimeStamp = function getOldestMessageTimeStamp() {
322
+ var messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
323
+ var oldestMessage = messages[0];
324
+ return oldestMessage && oldestMessage.createdAt || null;
325
+ };
326
+
327
+ var getLatestMessageTimeStamp = function getLatestMessageTimeStamp() {
328
+ var messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
329
+ var latestMessage = messages[messages.length - 1];
330
+ return latestMessage && latestMessage.createdAt || null;
331
+ };
332
+
333
+ function reducer(state, action) {
334
+ var _state$currentGroupCh8, _action$payload7, _action$payload7$chan;
335
+
336
+ switch (action.type) {
337
+ case RESET_MESSAGES:
338
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
339
+ // when user switches channel, if the previous channel `hasMorePrev`
340
+ // the onScroll gets called twice, setting hasMorePrev false prevents this
341
+ hasMorePrev: false,
342
+ hasMoreNext: false,
343
+ allMessages: []
344
+ });
345
+
346
+ case FETCH_INITIAL_MESSAGES_START:
347
+ {
348
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
349
+ loading: true,
350
+ allMessages: _rollupPluginBabelHelpers._toConsumableArray(state.allMessages.filter(function (m) {
351
+ return m.sendingStatus !== SUCCEEDED;
352
+ }))
353
+ });
354
+ }
355
+
356
+ case FETCH_INITIAL_MESSAGES_SUCCESS:
357
+ {
358
+ var _state$currentGroupCh;
359
+
360
+ var _action$payload = action.payload,
361
+ currentGroupChannel = _action$payload.currentGroupChannel,
362
+ messages = _action$payload.messages;
363
+
364
+ if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh = state.currentGroupChannel) === null || _state$currentGroupCh === void 0 ? void 0 : _state$currentGroupCh.url))) {
365
+ return state;
366
+ }
367
+
368
+ var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
369
+ var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
370
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
371
+ loading: false,
372
+ initialized: true,
373
+ hasMorePrev: true,
374
+ hasMoreNext: true,
375
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
376
+ latestMessageTimeStamp: latestMessageTimeStamp,
377
+ allMessages: _rollupPluginBabelHelpers._toConsumableArray(messages)
378
+ });
379
+ }
380
+
381
+ case FETCH_PREV_MESSAGES_SUCCESS:
382
+ {
383
+ var _state$currentGroupCh2;
384
+
385
+ var _action$payload2 = action.payload,
386
+ _currentGroupChannel = _action$payload2.currentGroupChannel,
387
+ _messages = _action$payload2.messages;
388
+
389
+ if (!((_currentGroupChannel === null || _currentGroupChannel === void 0 ? void 0 : _currentGroupChannel.url) === ((_state$currentGroupCh2 = state.currentGroupChannel) === null || _state$currentGroupCh2 === void 0 ? void 0 : _state$currentGroupCh2.url))) {
390
+ return state;
391
+ }
392
+
393
+ var hasMorePrev = _messages && _messages.length === _const.PREV_RESULT_SIZE + 1;
394
+
395
+ var _oldestMessageTimeStamp = getOldestMessageTimeStamp(_messages); // Remove duplicated messages
396
+
397
+
398
+ var duplicatedMessageIds = [];
399
+ var updatedOldMessages = state.allMessages.map(function (msg) {
400
+ var duplicatedMessage = _messages.find(function (_ref) {
401
+ var messageId = _ref.messageId;
402
+ return compareIds.compareIds(messageId, msg.messageId);
403
+ });
404
+
405
+ if (!duplicatedMessage) {
406
+ return msg;
407
+ }
408
+
409
+ duplicatedMessageIds.push(duplicatedMessage.messageId);
410
+ return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
411
+ });
412
+ var filteredNewMessages = duplicatedMessageIds.length > 0 ? _messages.filter(function (msg) {
413
+ return !duplicatedMessageIds.find(function (messageId) {
414
+ return compareIds.compareIds(messageId, msg.messageId);
415
+ });
416
+ }) : _messages;
417
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
418
+ hasMorePrev: hasMorePrev,
419
+ oldestMessageTimeStamp: _oldestMessageTimeStamp,
420
+ allMessages: [].concat(_rollupPluginBabelHelpers._toConsumableArray(filteredNewMessages), _rollupPluginBabelHelpers._toConsumableArray(updatedOldMessages))
421
+ });
422
+ }
423
+
424
+ case FETCH_NEXT_MESSAGES_SUCCESS:
425
+ {
426
+ var _state$currentGroupCh3;
427
+
428
+ var _action$payload3 = action.payload,
429
+ _currentGroupChannel2 = _action$payload3.currentGroupChannel,
430
+ _messages2 = _action$payload3.messages;
431
+
432
+ if (!((_currentGroupChannel2 === null || _currentGroupChannel2 === void 0 ? void 0 : _currentGroupChannel2.url) === ((_state$currentGroupCh3 = state.currentGroupChannel) === null || _state$currentGroupCh3 === void 0 ? void 0 : _state$currentGroupCh3.url))) {
433
+ return state;
434
+ }
435
+
436
+ var hasMoreNext = _messages2 && _messages2.length === _const.NEXT_RESULT_SIZE + 1;
437
+
438
+ var _latestMessageTimeStamp = getLatestMessageTimeStamp(_messages2); // Remove duplicated messages
439
+
440
+
441
+ var _duplicatedMessageIds = [];
442
+
443
+ var _updatedOldMessages = state.allMessages.map(function (msg) {
444
+ var duplicatedMessage = _messages2.find(function (_ref2) {
445
+ var messageId = _ref2.messageId;
446
+ return compareIds.compareIds(messageId, msg.messageId);
447
+ });
448
+
449
+ if (!duplicatedMessage) {
450
+ return msg;
451
+ }
452
+
453
+ _duplicatedMessageIds.push(duplicatedMessage.messageId);
454
+
455
+ return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
456
+ });
457
+
458
+ var _filteredNewMessages = _duplicatedMessageIds.length > 0 ? _messages2.filter(function (msg) {
459
+ return !_duplicatedMessageIds.find(function (messageId) {
460
+ return compareIds.compareIds(messageId, msg.messageId);
461
+ });
462
+ }) : _messages2;
463
+
464
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
465
+ hasMoreNext: hasMoreNext,
466
+ latestMessageTimeStamp: _latestMessageTimeStamp,
467
+ allMessages: [].concat(_rollupPluginBabelHelpers._toConsumableArray(_updatedOldMessages), _rollupPluginBabelHelpers._toConsumableArray(_filteredNewMessages))
468
+ });
469
+ }
470
+
471
+ case FETCH_INITIAL_MESSAGES_FAILURE:
472
+ case FETCH_PREV_MESSAGES_FAILURE:
473
+ case FETCH_NEXT_MESSAGES_FAILURE:
474
+ {
475
+ var _state$currentGroupCh4;
476
+
477
+ var _currentGroupChannel3 = action.payload.currentGroupChannel;
478
+
479
+ if ((_currentGroupChannel3 === null || _currentGroupChannel3 === void 0 ? void 0 : _currentGroupChannel3.url) !== (state === null || state === void 0 ? void 0 : (_state$currentGroupCh4 = state.currentGroupChannel) === null || _state$currentGroupCh4 === void 0 ? void 0 : _state$currentGroupCh4.url)) {
480
+ return state;
481
+ }
482
+
483
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
484
+ loading: false,
485
+ initialized: false,
486
+ allMessages: [],
487
+ hasMorePrev: false,
488
+ hasMoreNext: false,
489
+ oldestMessageTimeStamp: null,
490
+ latestMessageTimeStamp: null
491
+ });
492
+ }
493
+
494
+ case SEND_MESSAGEGE_START:
495
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
496
+ allMessages: [].concat(_rollupPluginBabelHelpers._toConsumableArray(state.allMessages), [_rollupPluginBabelHelpers._objectSpread2({}, action.payload)])
497
+ });
498
+
499
+ case SEND_MESSAGEGE_SUCESS:
500
+ {
501
+ var newMessages = state.allMessages.map(function (m) {
502
+ return compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m;
503
+ });
504
+
505
+ _rollupPluginBabelHelpers._toConsumableArray(newMessages).sort(function (a, b) {
506
+ return a.sendingStatus && b.sendingStatus && a.sendingStatus === SUCCEEDED && (b.sendingStatus === PENDING || b.sendingStatus === FAILED) ? -1 : 1;
507
+ });
508
+
509
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
510
+ allMessages: newMessages
511
+ });
512
+ }
513
+
514
+ case SEND_MESSAGEGE_FAILURE:
515
+ {
516
+ // eslint-disable-next-line no-param-reassign
517
+ action.payload.failed = true;
518
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
519
+ allMessages: state.allMessages.map(function (m) {
520
+ return compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m;
521
+ })
522
+ });
523
+ }
524
+
525
+ case SET_CURRENT_CHANNEL:
526
+ {
527
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
528
+ currentGroupChannel: action.payload,
529
+ isInvalid: false
530
+ });
531
+ }
532
+
533
+ case SET_CHANNEL_INVALID:
534
+ {
535
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
536
+ isInvalid: true
537
+ });
538
+ }
539
+
540
+ case ON_MESSAGE_RECEIVED:
541
+ {
542
+ var _action$payload4 = action.payload,
543
+ channel = _action$payload4.channel,
544
+ message = _action$payload4.message;
545
+ var members = channel.members;
546
+ var sender = message.sender;
547
+
548
+ var _state$currentGroupCh5 = state.currentGroupChannel,
549
+ _currentGroupChannel4 = _state$currentGroupCh5 === void 0 ? {} : _state$currentGroupCh5,
550
+ unreadSince = state.unreadSince;
551
+
552
+ var currentGroupChannelUrl = _currentGroupChannel4 === null || _currentGroupChannel4 === void 0 ? void 0 : _currentGroupChannel4.url;
553
+
554
+ if (!compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
555
+ return state;
556
+ } // Excluded overlapping messages
557
+
558
+
559
+ if (state.allMessages.some(function (msg) {
560
+ return msg.messageId === message.messageId;
561
+ })) {
562
+ return state;
563
+ } // Filter by userFilledQuery
564
+
565
+
566
+ if (state.messageListParams && !index.filterMessageListParams(state.messageListParams, message)) {
567
+ return state;
568
+ }
569
+
570
+ if (message.isAdminMessage && message.isAdminMessage()) {
571
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
572
+ allMessages: passUnsuccessfullMessages(state.allMessages, message)
573
+ });
574
+ } // Update members when sender profileUrl, nickname, friendName has been changed
575
+
576
+
577
+ var senderMember = members === null || members === void 0 ? void 0 : members.find(function (m) {
578
+ return (m === null || m === void 0 ? void 0 : m.userId) === (sender === null || sender === void 0 ? void 0 : sender.userId);
579
+ });
580
+
581
+ if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
582
+ channel.members = members.map(function (member) {
583
+ if (member.userId === sender.userId) {
584
+ return sender;
585
+ }
586
+
587
+ return member;
588
+ });
589
+ }
590
+
591
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
592
+ currentGroupChannel: channel,
593
+ unreadSince: state !== null && state !== void 0 && state.unreadSince ? unreadSince : index$1.format(new Date(), 'p MMM dd'),
594
+ allMessages: passUnsuccessfullMessages(state.allMessages, message)
595
+ });
596
+ }
597
+
598
+ case ON_MESSAGE_UPDATED:
599
+ {
600
+ var _state$currentGroupCh6;
601
+
602
+ var _action$payload5 = action.payload,
603
+ _channel = _action$payload5.channel,
604
+ _message = _action$payload5.message;
605
+
606
+ var _currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh6 = state.currentGroupChannel) === null || _state$currentGroupCh6 === void 0 ? void 0 : _state$currentGroupCh6.url) || '';
607
+
608
+ if (!compareIds.compareIds(_channel === null || _channel === void 0 ? void 0 : _channel.url, _currentGroupChannelUrl)) {
609
+ return state; // Ignore event when it is not for the current channel
610
+ }
611
+
612
+ if (state.messageListParams && !index.filterMessageListParams(state.messageListParams, _message)) {
613
+ // Delete the message if it doesn't match to the params anymore
614
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
615
+ allMessages: state.allMessages.filter(function (m) {
616
+ return !compareIds.compareIds(m.messageId, _message === null || _message === void 0 ? void 0 : _message.messageId);
617
+ })
618
+ });
619
+ }
620
+
621
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
622
+ allMessages: state.allMessages.map(function (m) {
623
+ if (compareIds.compareIds(m.messageId, _message.messageId)) {
624
+ return _message;
625
+ }
626
+
627
+ if (compareIds.compareIds(m.parentMessageId, _message.messageId)) {
628
+ m.parentMessage = _message; // eslint-disable-line no-param-reassign
629
+ }
630
+
631
+ return m;
632
+ })
633
+ });
634
+ }
635
+
636
+ case ON_MESSAGE_THREAD_INFO_UPDATED:
637
+ {
638
+ var _state$currentGroupCh7;
639
+
640
+ var _action$payload6 = action.payload,
641
+ _channel2 = _action$payload6.channel,
642
+ event = _action$payload6.event;
643
+ var channelUrl = event.channelUrl,
644
+ threadInfo = event.threadInfo,
645
+ targetMessageId = event.targetMessageId;
646
+
647
+ var _currentGroupChannelUrl2 = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh7 = state.currentGroupChannel) === null || _state$currentGroupCh7 === void 0 ? void 0 : _state$currentGroupCh7.url) || '';
648
+
649
+ if (!compareIds.compareIds(_channel2 === null || _channel2 === void 0 ? void 0 : _channel2.url, _currentGroupChannelUrl2) || !compareIds.compareIds(_channel2 === null || _channel2 === void 0 ? void 0 : _channel2.url, channelUrl)) {
650
+ return state; // Ignore event when it is not for the current channel
651
+ }
652
+
653
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
654
+ allMessages: state.allMessages.map(function (m) {
655
+ if (compareIds.compareIds(m.messageId, targetMessageId)) {
656
+ // eslint-disable-next-line no-param-reassign
657
+ m.threadInfo = threadInfo; // Upsert threadInfo to the target message
658
+ }
659
+
660
+ return m;
661
+ })
662
+ });
663
+ }
664
+
665
+ case RESEND_MESSAGEGE_START:
666
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
667
+ allMessages: state.allMessages.map(function (m) {
668
+ return compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m;
669
+ })
670
+ });
671
+
672
+ case MARK_AS_READ:
673
+ if (((_state$currentGroupCh8 = state.currentGroupChannel) === null || _state$currentGroupCh8 === void 0 ? void 0 : _state$currentGroupCh8.url) !== ((_action$payload7 = action.payload) === null || _action$payload7 === void 0 ? void 0 : (_action$payload7$chan = _action$payload7.channel) === null || _action$payload7$chan === void 0 ? void 0 : _action$payload7$chan.url)) {
674
+ return state;
675
+ }
676
+
677
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
678
+ unreadSince: null
679
+ });
680
+
681
+ case ON_MESSAGE_DELETED:
682
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
683
+ allMessages: state.allMessages.filter(function (m) {
684
+ return !compareIds.compareIds(m.messageId, action.payload);
685
+ })
686
+ });
687
+
688
+ case ON_MESSAGE_DELETED_BY_REQ_ID:
689
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
690
+ allMessages: state.allMessages.filter(function (m) {
691
+ return !compareIds.compareIds(m.reqId, action.payload);
692
+ })
693
+ });
694
+
695
+ case SET_EMOJI_CONTAINER:
696
+ {
697
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
698
+ emojiContainer: action.payload
699
+ });
700
+ }
701
+
702
+ case ON_REACTION_UPDATED:
703
+ {
704
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
705
+ allMessages: state.allMessages.map(function (m) {
706
+ if (compareIds.compareIds(m.messageId, action.payload.messageId)) {
707
+ if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {
708
+ m.applyReactionEvent(action.payload);
709
+ }
710
+
711
+ return m;
712
+ }
713
+
714
+ return m;
715
+ })
716
+ });
717
+ }
718
+
719
+ case MESSAGE_LIST_PARAMS_CHANGED:
720
+ {
721
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
722
+ messageListParams: action.payload
723
+ });
724
+ }
725
+
726
+ default:
727
+ return state;
728
+ }
729
+ }
730
+
731
+ function useHandleChannelEvents(_a, _b) {
732
+ var sdkInit = _a.sdkInit,
733
+ hasMoreNext = _a.hasMoreNext,
734
+ currentGroupChannel = _a.currentGroupChannel;
735
+ var sdk = _b.sdk,
736
+ logger = _b.logger,
737
+ scrollRef = _b.scrollRef,
738
+ setQuoteMessage = _b.setQuoteMessage,
739
+ messagesDispatcher = _b.messagesDispatcher;
740
+ React.useEffect(function () {
741
+ var _a;
742
+
743
+ var channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
744
+ var channelHandlerId = uuid.uuidv4();
745
+
746
+ if (channelUrl && sdkInit) {
747
+ var channelHandler = {
748
+ onMessageReceived: function onMessageReceived(channel, message) {
749
+ // Do not update when hasMoreNext
750
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && !hasMoreNext) {
751
+ var scrollToEnd = false;
752
+
753
+ try {
754
+ var current = scrollRef.current;
755
+ scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight;
756
+ } catch (error) {//
757
+ }
758
+
759
+ logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
760
+ messagesDispatcher({
761
+ type: ON_MESSAGE_RECEIVED,
762
+ payload: {
763
+ channel: channel,
764
+ message: message
765
+ }
766
+ });
767
+
768
+ if (scrollToEnd) {
769
+ try {
770
+ setTimeout(function () {
771
+ var _a;
772
+
773
+ (_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
774
+ scrollIntoLast();
775
+ });
776
+ } catch (error) {
777
+ logger.warning('Channel | onMessageReceived | scroll to end failed');
778
+ }
779
+ }
780
+ }
781
+ },
782
+ onUnreadMemberStatusUpdated: function onUnreadMemberStatusUpdated(channel) {
783
+ logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
784
+
785
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
786
+ messagesDispatcher({
787
+ type: SET_CURRENT_CHANNEL,
788
+ payload: channel
789
+ });
790
+ }
791
+ },
792
+ // before(onDeliveryReceiptUpdated)
793
+ onUndeliveredMemberStatusUpdated: function onUndeliveredMemberStatusUpdated(channel) {
794
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
795
+ logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
796
+ messagesDispatcher({
797
+ type: SET_CURRENT_CHANNEL,
798
+ payload: channel
799
+ });
800
+ }
801
+ },
802
+ onMessageUpdated: function onMessageUpdated(channel, message) {
803
+ logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
804
+ messagesDispatcher({
805
+ type: ON_MESSAGE_UPDATED,
806
+ payload: {
807
+ channel: channel,
808
+ message: message
809
+ }
810
+ });
811
+ },
812
+ onThreadInfoUpdated: function onThreadInfoUpdated(channel, threadInfoUpdateEvent) {
813
+ logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', {
814
+ channel: channel,
815
+ threadInfoUpdateEvent: threadInfoUpdateEvent
816
+ });
817
+ messagesDispatcher({
818
+ type: ON_MESSAGE_THREAD_INFO_UPDATED,
819
+ payload: {
820
+ channel: channel,
821
+ event: threadInfoUpdateEvent
822
+ }
823
+ });
824
+ },
825
+ onMessageDeleted: function onMessageDeleted(channel, messageId) {
826
+ logger.info('Channel | useHandleChannelEvents: onMessageDeleted', {
827
+ channel: channel,
828
+ messageId: messageId
829
+ });
830
+ setQuoteMessage(null);
831
+ messagesDispatcher({
832
+ type: ON_MESSAGE_DELETED,
833
+ payload: messageId
834
+ });
835
+ },
836
+ onReactionUpdated: function onReactionUpdated(channel, reactionEvent) {
837
+ logger.info('Channel | useHandleChannelEvents: onReactionUpdated', {
838
+ channel: channel,
839
+ reactionEvent: reactionEvent
840
+ });
841
+ messagesDispatcher({
842
+ type: ON_REACTION_UPDATED,
843
+ payload: reactionEvent
844
+ });
845
+ },
846
+ onChannelChanged: function onChannelChanged(channel) {
847
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
848
+ logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
849
+ messagesDispatcher({
850
+ type: SET_CURRENT_CHANNEL,
851
+ payload: channel
852
+ });
853
+ }
854
+ },
855
+ onChannelFrozen: function onChannelFrozen(channel) {
856
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
857
+ logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
858
+ messagesDispatcher({
859
+ type: SET_CURRENT_CHANNEL,
860
+ payload: channel
861
+ });
862
+ }
863
+ },
864
+ onChannelUnfrozen: function onChannelUnfrozen(channel) {
865
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
866
+ logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
867
+ messagesDispatcher({
868
+ type: SET_CURRENT_CHANNEL,
869
+ payload: channel
870
+ });
871
+ }
872
+ },
873
+ onUserMuted: function onUserMuted(channel, user) {
874
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
875
+ logger.info('Channel | useHandleChannelEvents: onUserMuted', {
876
+ channel: channel,
877
+ user: user
878
+ });
879
+ messagesDispatcher({
880
+ type: SET_CURRENT_CHANNEL,
881
+ payload: channel
882
+ });
883
+ }
884
+ },
885
+ onUserUnmuted: function onUserUnmuted(channel, user) {
886
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
887
+ logger.info('Channel | useHandleChannelEvents: onUserUnmuted', {
888
+ channel: channel,
889
+ user: user
890
+ });
891
+ messagesDispatcher({
892
+ type: SET_CURRENT_CHANNEL,
893
+ payload: channel
894
+ });
895
+ }
896
+ },
897
+ onUserBanned: function onUserBanned(channel, user) {
898
+ var _a;
899
+
900
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (user === null || user === void 0 ? void 0 : user.userId) === ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.currentUser) === null || _a === void 0 ? void 0 : _a.userId)) {
901
+ logger.info('Channel | useHandleChannelEvents: onUserBanned', {
902
+ channel: channel,
903
+ user: user
904
+ });
905
+ messagesDispatcher({
906
+ type: SET_CURRENT_CHANNEL,
907
+ payload: null
908
+ });
909
+ }
910
+ },
911
+ onOperatorUpdated: function onOperatorUpdated(channel, users) {
912
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
913
+ logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', {
914
+ channel: channel,
915
+ users: users
916
+ });
917
+ messagesDispatcher({
918
+ type: SET_CURRENT_CHANNEL,
919
+ payload: channel
920
+ });
921
+ }
922
+ }
923
+ };
924
+ logger.info('Channel | useHandleChannelEvents: Setup event handler', channelHandlerId); // Add this group channel handler to the Sendbird chat instance
925
+
926
+ (_a = sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler(channelHandlerId, new groupChannel.Yr(channelHandler));
927
+ }
928
+
929
+ return function () {
930
+ var _a;
931
+
932
+ if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
933
+ logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
934
+ sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
935
+ } else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
936
+ logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
937
+ }
938
+ };
939
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, sdkInit]);
940
+ }
941
+
942
+ function useSetChannel(_ref, _ref2) {
943
+ var channelUrl = _ref.channelUrl,
944
+ sdkInit = _ref.sdkInit;
945
+ var messagesDispatcher = _ref2.messagesDispatcher,
946
+ sdk = _ref2.sdk,
947
+ logger = _ref2.logger;
948
+ React.useEffect(function () {
949
+ if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
950
+ logger.info('Channel | useSetChannel fetching channel', channelUrl);
951
+ sdk.groupChannel.getChannel(channelUrl).then(function (groupChannel) {
952
+ logger.info('Channel | useSetChannel fetched channel', groupChannel);
953
+ messagesDispatcher({
954
+ type: SET_CURRENT_CHANNEL,
955
+ payload: groupChannel
956
+ });
957
+ logger.info('Channel: Mark as read', groupChannel); // this order is important - this mark as read should update the event handler up above
958
+
959
+ groupChannel.markAsRead();
960
+ }).catch(function (e) {
961
+ logger.warning('Channel | useSetChannel fetch channel failed', {
962
+ channelUrl: channelUrl,
963
+ e: e
964
+ });
965
+ messagesDispatcher({
966
+ type: SET_CHANNEL_INVALID
967
+ });
968
+ });
969
+ sdk.getAllEmoji().then(function (emojiContainer_) {
970
+ logger.info('Channel: Getting emojis success', emojiContainer_);
971
+ messagesDispatcher({
972
+ type: SET_EMOJI_CONTAINER,
973
+ payload: emojiContainer_
974
+ });
975
+ }).catch(function (err) {
976
+ logger.error('Channel: Getting emojis failed', err);
977
+ });
978
+ sdk.getAllEmoji();
979
+ }
980
+ }, [channelUrl, sdkInit]);
981
+ }
982
+
983
+ function useInitialMessagesFetch(_ref, _ref2) {
984
+ var currentGroupChannel = _ref.currentGroupChannel,
985
+ userFilledMessageListQuery = _ref.userFilledMessageListQuery,
986
+ initialTimeStamp = _ref.initialTimeStamp,
987
+ replyType = _ref.replyType;
988
+ var logger = _ref2.logger,
989
+ messagesDispatcher = _ref2.messagesDispatcher;
990
+ var channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
991
+ React.useEffect(function () {
992
+ logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);
993
+ messagesDispatcher({
994
+ type: RESET_MESSAGES,
995
+ payload: null
996
+ });
997
+
998
+ if (currentGroupChannel && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.getMessagesByTimestamp) {
999
+ var messageListParams = {};
1000
+ messageListParams.prevResultSize = _const.PREV_RESULT_SIZE;
1001
+
1002
+ if (initialTimeStamp) {
1003
+ messageListParams.nextResultSize = _const.NEXT_RESULT_SIZE;
1004
+ }
1005
+
1006
+ messageListParams.isInclusive = true;
1007
+ messageListParams.includeReactions = true;
1008
+
1009
+ if (replyType && replyType === 'QUOTE_REPLY') {
1010
+ messageListParams.includeThreadInfo = true;
1011
+ messageListParams.includeParentMessageInfo = true;
1012
+ messageListParams.replyType = __bundle7dfccc8c.ue.ONLY_REPLY_TO_CHANNEL;
1013
+ }
1014
+
1015
+ if (userFilledMessageListQuery) {
1016
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
1017
+ messageListParams[key] = userFilledMessageListQuery[key];
1018
+ });
1019
+ }
1020
+
1021
+ if (replyType && replyType === 'QUOTE_REPLY' || userFilledMessageListQuery) {
1022
+ logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);
1023
+ messagesDispatcher({
1024
+ type: MESSAGE_LIST_PARAMS_CHANGED,
1025
+ payload: messageListParams
1026
+ });
1027
+ }
1028
+
1029
+ logger.info('Channel: Fetching messages', {
1030
+ currentGroupChannel: currentGroupChannel,
1031
+ userFilledMessageListQuery: userFilledMessageListQuery
1032
+ });
1033
+ messagesDispatcher({
1034
+ type: FETCH_INITIAL_MESSAGES_START,
1035
+ payload: null
1036
+ });
1037
+ currentGroupChannel.getMessagesByTimestamp(initialTimeStamp || new Date().getTime(), messageListParams).then(function (messages) {
1038
+ messagesDispatcher({
1039
+ type: FETCH_INITIAL_MESSAGES_SUCCESS,
1040
+ payload: {
1041
+ currentGroupChannel: currentGroupChannel,
1042
+ messages: messages
1043
+ }
1044
+ });
1045
+ }).catch(function (error) {
1046
+ logger.error('Channel: Fetching messages failed', error);
1047
+ messagesDispatcher({
1048
+ type: FETCH_INITIAL_MESSAGES_FAILURE,
1049
+ payload: {
1050
+ currentGroupChannel: currentGroupChannel
1051
+ }
1052
+ });
1053
+ }).finally(function () {
1054
+ if (!initialTimeStamp) {
1055
+ setTimeout(function () {
1056
+ return scrollIntoLast();
1057
+ });
1058
+ }
1059
+ });
1060
+ }
1061
+ }, [channelUrl, userFilledMessageListQuery, initialTimeStamp]);
1062
+ /**
1063
+ * Note - useEffect(() => {}, [currentGroupChannel])
1064
+ * was buggy, that is why we did
1065
+ * const channelUrl = currentGroupChannel && currentGroupChannel.url;
1066
+ * useEffect(() => {}, [channelUrl])
1067
+ * Again, this hook is supposed to execute when currentGroupChannel changes
1068
+ * The 'channelUrl' here is not the same memory reference from Conversation.props
1069
+ */
1070
+ }
1071
+
1072
+ function useHandleReconnect(_a, _b) {
1073
+ var isOnline = _a.isOnline,
1074
+ replyType = _a.replyType;
1075
+ var logger = _b.logger,
1076
+ sdk = _b.sdk,
1077
+ currentGroupChannel = _b.currentGroupChannel,
1078
+ messagesDispatcher = _b.messagesDispatcher,
1079
+ userFilledMessageListQuery = _b.userFilledMessageListQuery;
1080
+ React.useEffect(function () {
1081
+ var wasOffline = !isOnline;
1082
+ return function () {
1083
+ var _a, _b; // state changed from offline to online
1084
+
1085
+
1086
+ if (wasOffline && (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url)) {
1087
+ logger.info('Refreshing conversation state');
1088
+ var isReactionEnabled = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) || false;
1089
+ var messageListParams_1 = {
1090
+ prevResultSize: _const.PREV_RESULT_SIZE,
1091
+ isInclusive: true,
1092
+ includeReactions: isReactionEnabled,
1093
+ nextResultSize: _const.NEXT_RESULT_SIZE
1094
+ };
1095
+
1096
+ if (replyType && replyType === 'QUOTE_REPLY') {
1097
+ messageListParams_1.includeThreadInfo = true;
1098
+ messageListParams_1.includeParentMessageInfo = true;
1099
+ messageListParams_1.replyType = __bundle7dfccc8c.ue.ONLY_REPLY_TO_CHANNEL;
1100
+ }
1101
+
1102
+ if (userFilledMessageListQuery) {
1103
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
1104
+ messageListParams_1[key] = userFilledMessageListQuery[key];
1105
+ });
1106
+ }
1107
+
1108
+ logger.info('Channel: Fetching messages', {
1109
+ currentGroupChannel: currentGroupChannel,
1110
+ userFilledMessageListQuery: userFilledMessageListQuery
1111
+ });
1112
+ messagesDispatcher({
1113
+ type: FETCH_INITIAL_MESSAGES_START,
1114
+ payload: null
1115
+ });
1116
+ (_b = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _b === void 0 ? void 0 : _b.getChannel(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url).then(function (groupChannel) {
1117
+ var lastMessageTime = new Date().getTime();
1118
+ groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1).then(function (messages) {
1119
+ messagesDispatcher({
1120
+ type: FETCH_INITIAL_MESSAGES_SUCCESS,
1121
+ payload: {
1122
+ currentGroupChannel: currentGroupChannel,
1123
+ messages: messages
1124
+ }
1125
+ });
1126
+ setTimeout(function () {
1127
+ return scrollIntoLast();
1128
+ });
1129
+ }).catch(function (error) {
1130
+ logger.error('Channel: Fetching messages failed', error);
1131
+ messagesDispatcher({
1132
+ type: FETCH_INITIAL_MESSAGES_FAILURE,
1133
+ payload: {
1134
+ currentGroupChannel: currentGroupChannel
1135
+ }
1136
+ });
1137
+ }).finally(function () {
1138
+ var _a;
1139
+
1140
+ (_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
1141
+ });
1142
+ });
1143
+ }
1144
+ };
1145
+ }, [isOnline, replyType]);
1146
+ }
1147
+
1148
+ function useScrollCallback(_ref, _ref2) {
1149
+ var currentGroupChannel = _ref.currentGroupChannel,
1150
+ oldestMessageTimeStamp = _ref.oldestMessageTimeStamp,
1151
+ userFilledMessageListQuery = _ref.userFilledMessageListQuery,
1152
+ replyType = _ref.replyType;
1153
+ var hasMorePrev = _ref2.hasMorePrev,
1154
+ logger = _ref2.logger,
1155
+ messagesDispatcher = _ref2.messagesDispatcher,
1156
+ sdk = _ref2.sdk;
1157
+ return React.useCallback(function (cb) {
1158
+ if (!hasMorePrev) {
1159
+ return;
1160
+ }
1161
+
1162
+ var _sdk$appInfo = sdk.appInfo,
1163
+ appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo;
1164
+ var isReactionEnabled = appInfo.useReaction || false;
1165
+ var messageListParams = {
1166
+ prevResultSize: _const.PREV_RESULT_SIZE,
1167
+ isInclusive: true,
1168
+ includeReactions: isReactionEnabled
1169
+ };
1170
+
1171
+ if (replyType && replyType === 'QUOTE_REPLY') {
1172
+ messageListParams.includeThreadInfo = true;
1173
+ messageListParams.includeParentMessageInfo = true;
1174
+ messageListParams.replyType = __bundle7dfccc8c.ue.ONLY_REPLY_TO_CHANNEL;
1175
+ }
1176
+
1177
+ if (userFilledMessageListQuery) {
1178
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
1179
+ messageListParams[key] = userFilledMessageListQuery[key];
1180
+ });
1181
+ }
1182
+
1183
+ logger.info('Channel: Fetching messages', {
1184
+ currentGroupChannel: currentGroupChannel,
1185
+ userFilledMessageListQuery: userFilledMessageListQuery
1186
+ });
1187
+ currentGroupChannel.getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) {
1188
+ messagesDispatcher({
1189
+ type: FETCH_PREV_MESSAGES_SUCCESS,
1190
+ payload: {
1191
+ currentGroupChannel: currentGroupChannel,
1192
+ messages: messages
1193
+ }
1194
+ });
1195
+ cb([messages, null]);
1196
+ }).catch(function (error) {
1197
+ logger.error('Channel: Fetching messages failed', error);
1198
+ messagesDispatcher({
1199
+ type: FETCH_PREV_MESSAGES_FAILURE,
1200
+ payload: {
1201
+ currentGroupChannel: currentGroupChannel
1202
+ }
1203
+ });
1204
+ cb([null, error]);
1205
+ });
1206
+ }, [currentGroupChannel, oldestMessageTimeStamp, replyType]);
1207
+ }
1208
+
1209
+ function useScrollDownCallback(_ref, _ref2) {
1210
+ var currentGroupChannel = _ref.currentGroupChannel,
1211
+ latestMessageTimeStamp = _ref.latestMessageTimeStamp,
1212
+ userFilledMessageListQuery = _ref.userFilledMessageListQuery,
1213
+ hasMoreNext = _ref.hasMoreNext,
1214
+ replyType = _ref.replyType;
1215
+ var logger = _ref2.logger,
1216
+ messagesDispatcher = _ref2.messagesDispatcher,
1217
+ sdk = _ref2.sdk;
1218
+ return React.useCallback(function (cb) {
1219
+ if (!hasMoreNext) {
1220
+ return;
1221
+ }
1222
+
1223
+ var _sdk$appInfo = sdk.appInfo,
1224
+ appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo;
1225
+ var isReactionEnabled = appInfo.useReaction || false;
1226
+ var messageListParams = {
1227
+ nextResultSize: _const.NEXT_RESULT_SIZE,
1228
+ isInclusive: true,
1229
+ includeReactions: isReactionEnabled
1230
+ };
1231
+
1232
+ if (replyType && replyType === 'QUOTE_REPLY') {
1233
+ messageListParams.includeThreadInfo = true;
1234
+ messageListParams.includeParentMessageInfo = true;
1235
+ messageListParams.replyType = __bundle7dfccc8c.ue.ONLY_REPLY_TO_CHANNEL;
1236
+ }
1237
+
1238
+ if (userFilledMessageListQuery) {
1239
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
1240
+ messageListParams[key] = userFilledMessageListQuery[key];
1241
+ });
1242
+ }
1243
+
1244
+ logger.info('Channel: Fetching later messages', {
1245
+ currentGroupChannel: currentGroupChannel,
1246
+ userFilledMessageListQuery: userFilledMessageListQuery
1247
+ });
1248
+ currentGroupChannel.getMessagesByTimestamp(latestMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) {
1249
+ messagesDispatcher({
1250
+ type: FETCH_NEXT_MESSAGES_SUCCESS,
1251
+ payload: {
1252
+ currentGroupChannel: currentGroupChannel,
1253
+ messages: messages
1254
+ }
1255
+ });
1256
+ cb([messages, null]);
1257
+ }).catch(function (error) {
1258
+ logger.error('Channel: Fetching later messages failed', error);
1259
+ messagesDispatcher({
1260
+ type: FETCH_NEXT_MESSAGES_FAILURE,
1261
+ payload: {
1262
+ currentGroupChannel: currentGroupChannel
1263
+ }
1264
+ });
1265
+ cb([null, error]);
1266
+ });
1267
+ }, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);
1268
+ }
1269
+
1270
+ function useDeleteMessageCallback(_ref, _ref2) {
1271
+ var currentGroupChannel = _ref.currentGroupChannel,
1272
+ messagesDispatcher = _ref.messagesDispatcher;
1273
+ var logger = _ref2.logger;
1274
+ return React.useCallback(function (message) {
1275
+ logger.info('Channel | useDeleteMessageCallback: Deleting message', message);
1276
+ var requestState = message.requestState;
1277
+ return new Promise(function (resolve, reject) {
1278
+ logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local
1279
+
1280
+ if (requestState === 'failed' || requestState === 'pending') {
1281
+ logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
1282
+ messagesDispatcher({
1283
+ type: ON_MESSAGE_DELETED_BY_REQ_ID,
1284
+ payload: message.reqId
1285
+ });
1286
+ resolve(message);
1287
+ }
1288
+
1289
+ logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);
1290
+ currentGroupChannel.deleteMessage(message).then(function () {
1291
+ logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
1292
+ messagesDispatcher({
1293
+ type: ON_MESSAGE_DELETED,
1294
+ payload: message.messageId
1295
+ });
1296
+ resolve(message);
1297
+ }).catch(function (err) {
1298
+ logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);
1299
+ reject(err);
1300
+ });
1301
+ });
1302
+ }, [currentGroupChannel, messagesDispatcher]);
1303
+ }
1304
+
1305
+ function useUpdateMessageCallback(_ref, _ref2) {
1306
+ var currentGroupChannel = _ref.currentGroupChannel,
1307
+ messagesDispatcher = _ref.messagesDispatcher,
1308
+ onBeforeUpdateUserMessage = _ref.onBeforeUpdateUserMessage,
1309
+ isMentionEnabled = _ref.isMentionEnabled;
1310
+ var logger = _ref2.logger,
1311
+ pubSub = _ref2.pubSub;
1312
+ return React.useCallback(function (props, callback) {
1313
+ var messageId = props.messageId,
1314
+ message = props.message,
1315
+ mentionedUsers = props.mentionedUsers,
1316
+ mentionTemplate = props.mentionTemplate;
1317
+
1318
+ var createParamsDefault = function createParamsDefault() {
1319
+ var params = {};
1320
+ params.message = message;
1321
+
1322
+ if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1323
+ params.mentionedUsers = mentionedUsers;
1324
+ }
1325
+
1326
+ if (isMentionEnabled && mentionTemplate) {
1327
+ params.mentionedMessageTemplate = mentionTemplate;
1328
+ } else {
1329
+ params.mentionedMessageTemplate = message;
1330
+ }
1331
+
1332
+ return params;
1333
+ };
1334
+
1335
+ var createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
1336
+
1337
+ if (createCustomPrams) {
1338
+ logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
1339
+ }
1340
+
1341
+ var params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(message) : createParamsDefault();
1342
+ logger.info('Channel: Updating message!', params);
1343
+ currentGroupChannel.updateUserMessage(messageId, params).then(function (msg, err) {
1344
+ if (callback) {
1345
+ callback(err, msg);
1346
+ }
1347
+
1348
+ logger.info('Channel: Updating message success!', msg);
1349
+ messagesDispatcher({
1350
+ type: ON_MESSAGE_UPDATED,
1351
+ payload: {
1352
+ channel: currentGroupChannel,
1353
+ message: msg
1354
+ }
1355
+ });
1356
+ pubSub.publish(topics.UPDATE_USER_MESSAGE, {
1357
+ message: msg,
1358
+ channel: currentGroupChannel
1359
+ });
1360
+ });
1361
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);
1362
+ }
1363
+
1364
+ function useResendMessageCallback(_ref, _ref2) {
1365
+ var currentGroupChannel = _ref.currentGroupChannel,
1366
+ messagesDispatcher = _ref.messagesDispatcher;
1367
+ var logger = _ref2.logger;
1368
+ return React.useCallback(function (failedMessage) {
1369
+ logger.info('Channel: Resending message has started', failedMessage);
1370
+ var messageType = failedMessage.messageType,
1371
+ file = failedMessage.file;
1372
+
1373
+ if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {
1374
+ // Move the logic setting sendingStatus to pending into the reducer
1375
+ // eslint-disable-next-line no-param-reassign
1376
+ failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1377
+
1378
+ failedMessage.sendingStatus = 'pending';
1379
+ messagesDispatcher({
1380
+ type: RESEND_MESSAGEGE_START,
1381
+ payload: failedMessage
1382
+ }); // userMessage
1383
+
1384
+ if (messageType === 'user') {
1385
+ currentGroupChannel.resendUserMessage(failedMessage).then(function (message) {
1386
+ logger.info('Channel: Resending message success!', message);
1387
+ messagesDispatcher({
1388
+ type: SEND_MESSAGEGE_SUCESS,
1389
+ payload: message
1390
+ });
1391
+ }).catch(function (e) {
1392
+ logger.warning('Channel: Resending message failed!', e); // eslint-disable-next-line no-param-reassign
1393
+
1394
+ failedMessage.requestState = 'failed'; // eslint-disable-next-line no-param-reassign
1395
+
1396
+ failedMessage.sendingStatus = 'failed';
1397
+ messagesDispatcher({
1398
+ type: SEND_MESSAGEGE_FAILURE,
1399
+ payload: failedMessage
1400
+ });
1401
+ }); // eslint-disable-next-line no-param-reassign
1402
+
1403
+ failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1404
+
1405
+ failedMessage.sendingStatus = 'pending';
1406
+ messagesDispatcher({
1407
+ type: RESEND_MESSAGEGE_START,
1408
+ payload: failedMessage
1409
+ });
1410
+ return;
1411
+ }
1412
+
1413
+ if (messageType === 'file') {
1414
+ currentGroupChannel.resendFileMessage(failedMessage, file).then(function (message) {
1415
+ logger.info('Channel: Resending file message success!', message);
1416
+ messagesDispatcher({
1417
+ type: SEND_MESSAGEGE_SUCESS,
1418
+ payload: message
1419
+ });
1420
+ }).catch(function (e) {
1421
+ logger.warning('Channel: Resending file message failed!', e); // eslint-disable-next-line no-param-reassign
1422
+
1423
+ failedMessage.requestState = 'failed'; // eslint-disable-next-line no-param-reassign
1424
+
1425
+ failedMessage.sendingStatus = 'failed';
1426
+ messagesDispatcher({
1427
+ type: SEND_MESSAGEGE_FAILURE,
1428
+ payload: failedMessage
1429
+ });
1430
+ }); // eslint-disable-next-line no-param-reassign
1431
+
1432
+ failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1433
+
1434
+ failedMessage.sendingStatus = 'pending';
1435
+ messagesDispatcher({
1436
+ type: RESEND_MESSAGEGE_START,
1437
+ payload: failedMessage
1438
+ });
1439
+ }
1440
+ } else {
1441
+ // to alert user on console
1442
+ // eslint-disable-next-line no-console
1443
+ console.error('Message is not resendable');
1444
+ logger.warning('Message is not resendable', failedMessage);
1445
+ }
1446
+ }, [currentGroupChannel, messagesDispatcher]);
1447
+ }
1448
+
1449
+ function useSendMessageCallback(_ref, _ref2) {
1450
+ var isMentionEnabled = _ref.isMentionEnabled,
1451
+ currentGroupChannel = _ref.currentGroupChannel,
1452
+ onBeforeSendUserMessage = _ref.onBeforeSendUserMessage;
1453
+ var logger = _ref2.logger,
1454
+ pubSub = _ref2.pubSub,
1455
+ messagesDispatcher = _ref2.messagesDispatcher;
1456
+ var messageInputRef = React.useRef(null);
1457
+ var sendMessage = React.useCallback(function (props) {
1458
+ var _props$quoteMessage = props.quoteMessage,
1459
+ quoteMessage = _props$quoteMessage === void 0 ? null : _props$quoteMessage,
1460
+ message = props.message,
1461
+ mentionTemplate = props.mentionTemplate,
1462
+ mentionedUsers = props.mentionedUsers;
1463
+
1464
+ var createParamsDefault = function createParamsDefault() {
1465
+ var params = {};
1466
+ params.message = (message === null || message === void 0 ? void 0 : message.trim()) || message; // if (isMentionEnabled && mentionedUserIds?.length > 0) {
1467
+
1468
+ if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1469
+ // params.mentionedUserIds = mentionedUserIds;
1470
+ params.mentionedUsers = mentionedUsers;
1471
+ } // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
1472
+
1473
+
1474
+ if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1475
+ params.mentionedMessageTemplate = (mentionTemplate === null || mentionTemplate === void 0 ? void 0 : mentionTemplate.trim()) || mentionTemplate;
1476
+ }
1477
+
1478
+ if (quoteMessage) {
1479
+ params.isReplyToChannel = true;
1480
+ params.parentMessageId = quoteMessage.messageId;
1481
+ }
1482
+
1483
+ return params;
1484
+ };
1485
+
1486
+ var createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
1487
+
1488
+ if (createCustomPrams) {
1489
+ logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
1490
+ }
1491
+
1492
+ var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
1493
+ logger.info('Channel: Sending message has started', params);
1494
+ currentGroupChannel.sendUserMessage(params).onPending(function (pendingMsg) {
1495
+ pubSub.publish(topics.SEND_MESSAGE_START, {
1496
+ /* pubSub is used instead of messagesDispatcher
1497
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1498
+ message: pendingMsg,
1499
+ channel: currentGroupChannel
1500
+ });
1501
+ setTimeout(function () {
1502
+ return scrollIntoLast();
1503
+ });
1504
+ }).onFailed(function (err, msg) {
1505
+ logger.warning('Channel: Sending message failed!', {
1506
+ message: msg,
1507
+ error: err
1508
+ });
1509
+ messagesDispatcher({
1510
+ type: SEND_MESSAGEGE_FAILURE,
1511
+ payload: msg
1512
+ });
1513
+ }).onSucceeded(function (msg) {
1514
+ logger.info('Channel: Sending message success!', msg);
1515
+ messagesDispatcher({
1516
+ type: SEND_MESSAGEGE_SUCESS,
1517
+ payload: msg
1518
+ });
1519
+ });
1520
+ }, [currentGroupChannel, onBeforeSendUserMessage]);
1521
+ return [messageInputRef, sendMessage];
1522
+ }
1523
+
1524
+ function useSendFileMessageCallback(_ref, _ref2) {
1525
+ var currentGroupChannel = _ref.currentGroupChannel,
1526
+ onBeforeSendFileMessage = _ref.onBeforeSendFileMessage,
1527
+ _ref$imageCompression = _ref.imageCompression,
1528
+ imageCompression = _ref$imageCompression === void 0 ? {} : _ref$imageCompression;
1529
+ var logger = _ref2.logger,
1530
+ pubSub = _ref2.pubSub,
1531
+ messagesDispatcher = _ref2.messagesDispatcher;
1532
+ var sendMessage = React.useCallback(function (file) {
1533
+ var quoteMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1534
+ var compressionRate = imageCompression.compressionRate,
1535
+ resizingWidth = imageCompression.resizingWidth,
1536
+ resizingHeight = imageCompression.resizingHeight;
1537
+ var createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
1538
+ var compressibleFileType = file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg';
1539
+ var compressibleRatio = compressionRate > 0 && compressionRate < 1; // pxToNumber returns null if values are invalid
1540
+
1541
+ var compressibleDiamensions = pxToNumber(resizingWidth) || pxToNumber(resizingHeight);
1542
+ var canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);
1543
+
1544
+ var createParamsDefault = function createParamsDefault(file_) {
1545
+ var params = {};
1546
+ params.file = file_;
1547
+
1548
+ if (quoteMessage) {
1549
+ params.isReplyToChannel = true;
1550
+ params.parentMessageId = quoteMessage.messageId;
1551
+ }
1552
+
1553
+ return params;
1554
+ };
1555
+
1556
+ if (canCompressImage) {
1557
+ // Using image compression
1558
+ try {
1559
+ var image = document.createElement('img');
1560
+ image.src = URL.createObjectURL(file);
1561
+
1562
+ image.onload = function () {
1563
+ URL.revokeObjectURL(image.src);
1564
+ var canvas = document.createElement('canvas');
1565
+ var imageWdith = image.naturalWidth || image.width;
1566
+ var imageHeight = image.naturalHeight || image.height;
1567
+ var targetWidth = pxToNumber(resizingWidth) || imageWdith;
1568
+ var targetHeight = pxToNumber(resizingHeight) || imageHeight; // In canvas.toBlob(callback, mimeType, qualityArgument)
1569
+ // qualityArgument doesnt work
1570
+ // so in case compressibleDiamensions are not present, we use ratio
1571
+
1572
+ if (file.type === 'image/png' && !compressibleDiamensions) {
1573
+ targetWidth *= compressionRate;
1574
+ targetHeight *= compressionRate;
1575
+ }
1576
+
1577
+ canvas.width = targetWidth;
1578
+ canvas.height = targetHeight;
1579
+ var context = canvas.getContext('2d');
1580
+ context.drawImage(image, 0, 0, targetWidth, targetHeight);
1581
+ context.canvas.toBlob(function (newImageBlob) {
1582
+ var compressedFile = new File([newImageBlob], file.name, {
1583
+ type: file.type
1584
+ });
1585
+
1586
+ if (createCustomParams) {
1587
+ logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1588
+ }
1589
+
1590
+ var params = createCustomParams ? onBeforeSendFileMessage(compressedFile, quoteMessage) : createParamsDefault(compressedFile);
1591
+ logger.info('Channel: Uploading file message start!', params);
1592
+ currentGroupChannel.sendFileMessage(params).onPending(function (pendingMessage) {
1593
+ pubSub.publish(topics.SEND_MESSAGE_START, {
1594
+ /* pubSub is used instead of messagesDispatcher
1595
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1596
+ message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMessage), {}, {
1597
+ url: URL.createObjectURL(compressedFile),
1598
+ // pending thumbnail message seems to be failed
1599
+ requestState: 'pending'
1600
+ }),
1601
+ channel: currentGroupChannel
1602
+ });
1603
+ setTimeout(function () {
1604
+ return scrollIntoLast();
1605
+ }, 1000);
1606
+ }).onFailed(function (err, failedMessage) {
1607
+ logger.error('Channel: Sending file message failed!', {
1608
+ failedMessage: failedMessage,
1609
+ err: err
1610
+ }); // eslint-disable-next-line no-param-reassign
1611
+
1612
+ failedMessage.localUrl = URL.createObjectURL(compressedFile); // eslint-disable-next-line no-param-reassign
1613
+
1614
+ failedMessage.file = compressedFile;
1615
+ messagesDispatcher({
1616
+ type: SEND_MESSAGEGE_FAILURE,
1617
+ payload: failedMessage
1618
+ });
1619
+ }).onSucceeded(function (succeededMessage) {
1620
+ logger.info('Channel: Sending file message success!', succeededMessage);
1621
+ messagesDispatcher({
1622
+ type: SEND_MESSAGEGE_SUCESS,
1623
+ payload: succeededMessage
1624
+ });
1625
+ });
1626
+ }, file.type, compressionRate);
1627
+ };
1628
+ } catch (error) {
1629
+ logger.error('Channel: Sending file message failed!', error);
1630
+ }
1631
+ } else {
1632
+ // Not using image compression
1633
+ if (createCustomParams) {
1634
+ logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1635
+ }
1636
+
1637
+ var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file, quoteMessage) : createParamsDefault(file);
1638
+ logger.info('Channel: Uploading file message start!', params);
1639
+ currentGroupChannel.sendFileMessage(params).onPending(function (pendingMsg) {
1640
+ pubSub.publish(topics.SEND_MESSAGE_START, {
1641
+ /* pubSub is used instead of messagesDispatcher
1642
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1643
+ message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMsg), {}, {
1644
+ url: URL.createObjectURL(file),
1645
+ // pending thumbnail message seems to be failed
1646
+ requestState: 'pending'
1647
+ }),
1648
+ channel: currentGroupChannel
1649
+ });
1650
+ setTimeout(function () {
1651
+ return scrollIntoLast();
1652
+ }, 1000);
1653
+ }).onFailed(function (error, message) {
1654
+ logger.error('Channel: Sending file message failed!', {
1655
+ message: message,
1656
+ error: error
1657
+ }); // eslint-disable-next-line no-param-reassign
1658
+
1659
+ message.localUrl = URL.createObjectURL(file); // eslint-disable-next-line no-param-reassign
1660
+
1661
+ message.file = file;
1662
+ messagesDispatcher({
1663
+ type: SEND_MESSAGEGE_FAILURE,
1664
+ payload: message
1665
+ });
1666
+ }).onSucceeded(function (message) {
1667
+ logger.info('Channel: Sending message success!', message);
1668
+ messagesDispatcher({
1669
+ type: SEND_MESSAGEGE_SUCESS,
1670
+ payload: message
1671
+ });
1672
+ });
1673
+ }
1674
+ }, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);
1675
+ return [sendMessage];
1676
+ }
1677
+
1678
+ function useMemoizedEmojiListItems(_ref, _ref2) {
1679
+ var emojiContainer = _ref.emojiContainer,
1680
+ toggleReaction = _ref.toggleReaction;
1681
+ var isReactionEnabled = _ref2.isReactionEnabled,
1682
+ logger = _ref2.logger,
1683
+ userId = _ref2.userId,
1684
+ emojiAllList = _ref2.emojiAllList;
1685
+
1686
+ /* eslint-disable react/prop-types */
1687
+ return React.useMemo(function () {
1688
+ return function (_ref3) {
1689
+ var parentRef = _ref3.parentRef,
1690
+ parentContainRef = _ref3.parentContainRef,
1691
+ message = _ref3.message,
1692
+ closeDropdown = _ref3.closeDropdown,
1693
+ _ref3$spaceFromTrigge = _ref3.spaceFromTrigger,
1694
+ spaceFromTrigger = _ref3$spaceFromTrigge === void 0 ? {} : _ref3$spaceFromTrigge;
1695
+
1696
+ if (!isReactionEnabled || !(parentRef || parentContainRef || message || closeDropdown)) {
1697
+ logger.warning('Channel: Invalid Params in memoizedEmojiListItems');
1698
+ return null;
1699
+ }
1700
+
1701
+ return /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.EmojiListItems, {
1702
+ parentRef: parentRef,
1703
+ parentContainRef: parentContainRef,
1704
+ closeDropdown: closeDropdown,
1705
+ spaceFromTrigger: spaceFromTrigger
1706
+ }, emojiAllList.map(function (emoji) {
1707
+ var reactedReaction = message.reactions.filter(function (reaction) {
1708
+ return reaction.key === emoji.key;
1709
+ })[0];
1710
+ var isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false;
1711
+ return /*#__PURE__*/React__default["default"].createElement(ui_ReactionButton, {
1712
+ key: emoji.key,
1713
+ width: "36px",
1714
+ height: "36px",
1715
+ selected: isReacted,
1716
+ onClick: function onClick() {
1717
+ closeDropdown();
1718
+ toggleReaction(message, emoji.key, isReacted);
1719
+ }
1720
+ }, /*#__PURE__*/React__default["default"].createElement(ui_ImageRenderer, {
1721
+ url: emoji.url,
1722
+ width: "28px",
1723
+ height: "28px",
1724
+ defaultComponent: /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
1725
+ width: "28px",
1726
+ height: "28px",
1727
+ type: ui_Icon.IconTypes.QUESTION
1728
+ })
1729
+ }));
1730
+ }));
1731
+ };
1732
+ }, [emojiContainer, toggleReaction]);
1733
+ }
1734
+
1735
+ function useToggleReactionCallback(_ref, _ref2) {
1736
+ var currentGroupChannel = _ref.currentGroupChannel;
1737
+ var logger = _ref2.logger;
1738
+ return React.useCallback(function (message, key, isReacted) {
1739
+ if (isReacted) {
1740
+ currentGroupChannel.deleteReaction(message, key).then(function (res) {
1741
+ logger.info('Delete reaction success', res);
1742
+ }).catch(function (err) {
1743
+ logger.warning('Delete reaction failed', err);
1744
+ });
1745
+ return;
1746
+ }
1747
+
1748
+ currentGroupChannel.addReaction(message, key).then(function (res) {
1749
+ logger.info('Add reaction success', res);
1750
+ }).catch(function (err) {
1751
+ logger.warning('Add reaction failed', err);
1752
+ });
1753
+ }, [currentGroupChannel]);
1754
+ }
1755
+
1756
+ function useScrollToMessage(_a, _b) {
1757
+ var setInitialTimeStamp = _a.setInitialTimeStamp,
1758
+ setAnimatedMessageId = _a.setAnimatedMessageId,
1759
+ allMessages = _a.allMessages;
1760
+ var logger = _b.logger;
1761
+ return React.useCallback(function (createdAt, messageId) {
1762
+ var isPresent = allMessages.find(function (m) {
1763
+ return m.messageId === messageId;
1764
+ });
1765
+ setAnimatedMessageId(null);
1766
+ setTimeout(function () {
1767
+ if (isPresent) {
1768
+ logger.info('Channel: scroll to message - message is present');
1769
+ setAnimatedMessageId(messageId);
1770
+ } else {
1771
+ logger.info('Channel: scroll to message - fetching older messages');
1772
+ setInitialTimeStamp(null);
1773
+ setInitialTimeStamp(createdAt);
1774
+ setAnimatedMessageId(messageId);
1775
+ }
1776
+ });
1777
+ }, [setInitialTimeStamp, setAnimatedMessageId, allMessages]);
1778
+ }
1779
+
1780
+ var ChannelContext = /*#__PURE__*/React__default["default"].createContext(undefined);
1781
+
1782
+ var ChannelProvider = function ChannelProvider(props) {
1783
+ var _a, _b, _c, _d;
1784
+
1785
+ var channelUrl = props.channelUrl,
1786
+ children = props.children,
1787
+ isReactionEnabled = props.isReactionEnabled,
1788
+ isMessageGroupingEnabled = props.isMessageGroupingEnabled,
1789
+ showSearchIcon = props.showSearchIcon,
1790
+ highlightedMessage = props.highlightedMessage,
1791
+ startingPoint = props.startingPoint,
1792
+ onBeforeSendUserMessage = props.onBeforeSendUserMessage,
1793
+ onBeforeSendFileMessage = props.onBeforeSendFileMessage,
1794
+ onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage,
1795
+ onChatHeaderActionClick = props.onChatHeaderActionClick,
1796
+ onSearchClick = props.onSearchClick,
1797
+ replyType = props.replyType,
1798
+ queries = props.queries;
1799
+ var globalStore = useSendbirdStateContext();
1800
+ var config = globalStore.config;
1801
+ var pubSub = config.pubSub,
1802
+ logger = config.logger,
1803
+ userId = config.userId,
1804
+ isOnline = config.isOnline,
1805
+ imageCompression = config.imageCompression,
1806
+ isMentionEnabled = config.isMentionEnabled;
1807
+ 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;
1808
+ 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;
1809
+
1810
+ var _e = React.useState(startingPoint),
1811
+ initialTimeStamp = _e[0],
1812
+ setInitialTimeStamp = _e[1];
1813
+
1814
+ React.useEffect(function () {
1815
+ setInitialTimeStamp(startingPoint);
1816
+ }, [startingPoint, channelUrl]);
1817
+
1818
+ var _f = React.useState(null),
1819
+ animatedMessageId = _f[0],
1820
+ setAnimatedMessageId = _f[1];
1821
+
1822
+ var _g = React.useState(highlightedMessage),
1823
+ highLightedMessageId = _g[0],
1824
+ setHighLightedMessageId = _g[1];
1825
+
1826
+ React.useEffect(function () {
1827
+ setHighLightedMessageId(highlightedMessage);
1828
+ }, [highlightedMessage]);
1829
+ var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1830
+
1831
+ var _h = React.useState(null),
1832
+ quoteMessage = _h[0],
1833
+ setQuoteMessage = _h[1];
1834
+
1835
+ var _j = React.useReducer(reducer, messagesInitialState),
1836
+ messagesStore = _j[0],
1837
+ messagesDispatcher = _j[1];
1838
+
1839
+ var scrollRef = React.useRef(null);
1840
+ var allMessages = messagesStore.allMessages,
1841
+ loading = messagesStore.loading,
1842
+ initialized = messagesStore.initialized,
1843
+ unreadSince = messagesStore.unreadSince,
1844
+ isInvalid = messagesStore.isInvalid,
1845
+ currentGroupChannel = messagesStore.currentGroupChannel,
1846
+ hasMorePrev = messagesStore.hasMorePrev,
1847
+ oldestMessageTimeStamp = messagesStore.oldestMessageTimeStamp,
1848
+ hasMoreNext = messagesStore.hasMoreNext,
1849
+ latestMessageTimeStamp = messagesStore.latestMessageTimeStamp,
1850
+ emojiContainer = messagesStore.emojiContainer,
1851
+ readStatus = messagesStore.readStatus;
1852
+ var isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
1853
+ var isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
1854
+ var appInfo = sdk.appInfo;
1855
+ var usingReaction = (appInfo === null || appInfo === void 0 ? void 0 : appInfo.useReaction) && !isBroadcast && !isSuper && isReactionEnabled // TODO: Make isReactionEnabled independent from appInfo.useReaction
1856
+ ;
1857
+ var emojiAllMap = React.useMemo(function () {
1858
+ return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map();
1859
+ }, [emojiContainer]);
1860
+ var emojiAllList = React.useMemo(function () {
1861
+ return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : [];
1862
+ }, [emojiContainer]);
1863
+ var nicknamesMap = React.useMemo(function () {
1864
+ return usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map();
1865
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]); // Scrollup is default scroll for channel
1866
+
1867
+ var onScrollCallback = useScrollCallback({
1868
+ currentGroupChannel: currentGroupChannel,
1869
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
1870
+ userFilledMessageListQuery: userFilledMessageListQuery,
1871
+ replyType: replyType
1872
+ }, {
1873
+ hasMorePrev: hasMorePrev,
1874
+ logger: logger,
1875
+ messagesDispatcher: messagesDispatcher,
1876
+ sdk: sdk
1877
+ });
1878
+ var scrollToMessage = useScrollToMessage({
1879
+ setInitialTimeStamp: setInitialTimeStamp,
1880
+ setAnimatedMessageId: setAnimatedMessageId,
1881
+ allMessages: allMessages
1882
+ }, {
1883
+ logger: logger
1884
+ }); // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1885
+ // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1886
+ // hasMoreNext, onScrollDownCallback -> scroll down
1887
+
1888
+ var onScrollDownCallback = useScrollDownCallback({
1889
+ currentGroupChannel: currentGroupChannel,
1890
+ latestMessageTimeStamp: latestMessageTimeStamp,
1891
+ userFilledMessageListQuery: userFilledMessageListQuery,
1892
+ hasMoreNext: hasMoreNext,
1893
+ replyType: replyType
1894
+ }, {
1895
+ logger: logger,
1896
+ messagesDispatcher: messagesDispatcher,
1897
+ sdk: sdk
1898
+ });
1899
+ var toggleReaction = useToggleReactionCallback({
1900
+ currentGroupChannel: currentGroupChannel
1901
+ }, {
1902
+ logger: logger
1903
+ });
1904
+ var memoizedEmojiListItems = useMemoizedEmojiListItems({
1905
+ emojiContainer: emojiContainer,
1906
+ toggleReaction: toggleReaction
1907
+ }, {
1908
+ isReactionEnabled: usingReaction,
1909
+ logger: logger,
1910
+ userId: userId,
1911
+ emojiAllList: emojiAllList
1912
+ }); // to create message-datasource
1913
+ // this hook sets currentGroupChannel asynchronously
1914
+
1915
+ useSetChannel({
1916
+ channelUrl: channelUrl,
1917
+ sdkInit: sdkInit
1918
+ }, {
1919
+ messagesDispatcher: messagesDispatcher,
1920
+ sdk: sdk,
1921
+ logger: logger
1922
+ }); // to set quote message as null
1923
+
1924
+ React.useEffect(function () {
1925
+ setQuoteMessage(null);
1926
+ }, [channelUrl]); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1927
+
1928
+ useHandleChannelEvents({
1929
+ currentGroupChannel: currentGroupChannel,
1930
+ sdkInit: sdkInit,
1931
+ hasMoreNext: hasMoreNext
1932
+ }, {
1933
+ messagesDispatcher: messagesDispatcher,
1934
+ sdk: sdk,
1935
+ logger: logger,
1936
+ scrollRef: scrollRef,
1937
+ setQuoteMessage: setQuoteMessage
1938
+ }); // hook that fetches messages when channel changes
1939
+ // to be clear here useGetChannel sets currentGroupChannel
1940
+ // and useInitialMessagesFetch executes when currentGroupChannel changes
1941
+ // p.s This one executes on initialTimeStamp change too
1942
+
1943
+ useInitialMessagesFetch({
1944
+ currentGroupChannel: currentGroupChannel,
1945
+ userFilledMessageListQuery: userFilledMessageListQuery,
1946
+ initialTimeStamp: initialTimeStamp,
1947
+ latestMessageTimeStamp: latestMessageTimeStamp,
1948
+ replyType: replyType
1949
+ }, {
1950
+ logger: logger,
1951
+ messagesDispatcher: messagesDispatcher
1952
+ }); // handles API calls from withSendbird
1953
+
1954
+ React.useEffect(function () {
1955
+ var subScriber = pubSubHandler(channelUrl, pubSub, messagesDispatcher);
1956
+ return function () {
1957
+ pubSubHandleRemover(subScriber);
1958
+ };
1959
+ }, [channelUrl, sdkInit]); // handling connection breaks
1960
+
1961
+ useHandleReconnect({
1962
+ isOnline: isOnline,
1963
+ replyType: replyType
1964
+ }, {
1965
+ logger: logger,
1966
+ sdk: sdk,
1967
+ currentGroupChannel: currentGroupChannel,
1968
+ messagesDispatcher: messagesDispatcher,
1969
+ userFilledMessageListQuery: userFilledMessageListQuery
1970
+ }); // callbacks for Message CURD actions
1971
+
1972
+ var deleteMessage = useDeleteMessageCallback({
1973
+ currentGroupChannel: currentGroupChannel,
1974
+ messagesDispatcher: messagesDispatcher
1975
+ }, {
1976
+ logger: logger
1977
+ });
1978
+ var updateMessage = useUpdateMessageCallback({
1979
+ currentGroupChannel: currentGroupChannel,
1980
+ messagesDispatcher: messagesDispatcher,
1981
+ onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
1982
+ isMentionEnabled: isMentionEnabled
1983
+ }, {
1984
+ logger: logger,
1985
+ pubSub: pubSub
1986
+ });
1987
+ var resendMessage = useResendMessageCallback({
1988
+ currentGroupChannel: currentGroupChannel,
1989
+ messagesDispatcher: messagesDispatcher
1990
+ }, {
1991
+ logger: logger
1992
+ });
1993
+
1994
+ var _k = useSendMessageCallback({
1995
+ currentGroupChannel: currentGroupChannel,
1996
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1997
+ isMentionEnabled: isMentionEnabled
1998
+ }, {
1999
+ logger: logger,
2000
+ pubSub: pubSub,
2001
+ messagesDispatcher: messagesDispatcher
2002
+ }),
2003
+ messageInputRef = _k[0],
2004
+ sendMessage = _k[1];
2005
+
2006
+ var sendFileMessage = useSendFileMessageCallback({
2007
+ currentGroupChannel: currentGroupChannel,
2008
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
2009
+ imageCompression: imageCompression
2010
+ }, {
2011
+ logger: logger,
2012
+ pubSub: pubSub,
2013
+ messagesDispatcher: messagesDispatcher
2014
+ })[0];
2015
+ return /*#__PURE__*/React__default["default"].createElement(ChannelContext.Provider, {
2016
+ value: {
2017
+ // props
2018
+ channelUrl: channelUrl,
2019
+ isReactionEnabled: usingReaction,
2020
+ isMessageGroupingEnabled: isMessageGroupingEnabled,
2021
+ showSearchIcon: showSearchIcon,
2022
+ highlightedMessage: highlightedMessage,
2023
+ startingPoint: startingPoint,
2024
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
2025
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
2026
+ onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
2027
+ onChatHeaderActionClick: onChatHeaderActionClick,
2028
+ onSearchClick: onSearchClick,
2029
+ replyType: replyType,
2030
+ queries: queries,
2031
+ // messagesStore
2032
+ allMessages: allMessages,
2033
+ loading: loading,
2034
+ initialized: initialized,
2035
+ unreadSince: unreadSince,
2036
+ isInvalid: isInvalid,
2037
+ currentGroupChannel: currentGroupChannel,
2038
+ hasMorePrev: hasMorePrev,
2039
+ hasMoreNext: hasMoreNext,
2040
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
2041
+ latestMessageTimeStamp: latestMessageTimeStamp,
2042
+ emojiContainer: emojiContainer,
2043
+ readStatus: readStatus,
2044
+ // utils
2045
+ scrollToMessage: scrollToMessage,
2046
+ quoteMessage: quoteMessage,
2047
+ setQuoteMessage: setQuoteMessage,
2048
+ deleteMessage: deleteMessage,
2049
+ updateMessage: updateMessage,
2050
+ resendMessage: resendMessage,
2051
+ messageInputRef: messageInputRef,
2052
+ sendMessage: sendMessage,
2053
+ sendFileMessage: sendFileMessage,
2054
+ initialTimeStamp: initialTimeStamp,
2055
+ messageActionTypes: messageActionTypes,
2056
+ messagesDispatcher: messagesDispatcher,
2057
+ setInitialTimeStamp: setInitialTimeStamp,
2058
+ setAnimatedMessageId: setAnimatedMessageId,
2059
+ setHighLightedMessageId: setHighLightedMessageId,
2060
+ animatedMessageId: animatedMessageId,
2061
+ highLightedMessageId: highLightedMessageId,
2062
+ nicknamesMap: nicknamesMap,
2063
+ emojiAllMap: emojiAllMap,
2064
+ onScrollCallback: onScrollCallback,
2065
+ onScrollDownCallback: onScrollDownCallback,
2066
+ memoizedEmojiListItems: memoizedEmojiListItems,
2067
+ scrollRef: scrollRef,
2068
+ toggleReaction: toggleReaction
2069
+ }
2070
+ }, /*#__PURE__*/React__default["default"].createElement(UserProfileContext.UserProfileProvider, {
2071
+ disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile,
2072
+ renderUserProfile: props === null || props === void 0 ? void 0 : props.renderUserProfile
2073
+ }, children));
2074
+ };
2075
+
2076
+ var useChannelContext = function useChannelContext() {
2077
+ return React__default["default"].useContext(ChannelContext);
2078
+ };
2079
+
2080
+ exports.ChannelProvider = ChannelProvider;
2081
+ exports.MARK_AS_READ = MARK_AS_READ;
2082
+ exports.compareMessagesForGrouping = compareMessagesForGrouping;
2083
+ exports.isAboutSame = isAboutSame;
2084
+ exports.isDisabledBecauseFrozen = isDisabledBecauseFrozen;
2085
+ exports.isDisabledBecauseMuted = isDisabledBecauseMuted;
2086
+ exports.isOperator = isOperator;
2087
+ exports.useChannelContext = useChannelContext;
2088
+ //# sourceMappingURL=ChannelProvider-a3ec5a56.js.map