@sendbird/uikit-react 3.6.11-beta.2 → 3.7.0-rc.0

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