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