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