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