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