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

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