@sendbird/uikit-react 3.7.0-rc.1 → 3.7.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 (528) hide show
  1. package/App.js +52 -52
  2. package/Channel/components/ChannelHeader.js +22 -22
  3. package/Channel/components/ChannelUI.js +46 -46
  4. package/Channel/components/FileViewer.js +19 -19
  5. package/Channel/components/FrozenNotification.js +4 -4
  6. package/Channel/components/Message.js +42 -42
  7. package/Channel/components/MessageInput.js +33 -33
  8. package/Channel/components/MessageList.js +42 -42
  9. package/Channel/components/RemoveMessageModal.js +23 -23
  10. package/Channel/components/SuggestedMentionList.js +19 -19
  11. package/Channel/components/TypingIndicator.js +18 -18
  12. package/Channel/components/UnreadCount.js +4 -4
  13. package/Channel/context.js +15 -15
  14. package/Channel/utils/compareMessagesForGrouping.js +6 -6
  15. package/Channel/utils/getMessagePartsInfo.js +7 -7
  16. package/Channel.js +46 -46
  17. package/ChannelList/components/AddChannel.js +16 -16
  18. package/ChannelList/components/ChannelListHeader.js +6 -6
  19. package/ChannelList/components/ChannelListUI.js +32 -32
  20. package/ChannelList/components/ChannelPreview.js +30 -30
  21. package/ChannelList/components/ChannelPreviewAction.js +15 -15
  22. package/ChannelList/context.js +8 -8
  23. package/ChannelList.js +32 -32
  24. package/{ChannelListProvider-63aa89ac.js → ChannelListProvider-eccd99c6.js} +8 -8
  25. package/{ChannelListProvider-63aa89ac.js.map → ChannelListProvider-eccd99c6.js.map} +1 -1
  26. package/{ChannelProvider-08534eaa.js → ChannelProvider-9ba5893a.js} +14 -14
  27. package/{ChannelProvider-08534eaa.js.map → ChannelProvider-9ba5893a.js.map} +1 -1
  28. package/ChannelSettings/components/ChannelProfile.js +14 -14
  29. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  30. package/ChannelSettings/components/EditDetailsModal.js +14 -14
  31. package/ChannelSettings/components/LeaveChannel.js +13 -13
  32. package/ChannelSettings/components/ModerationPanel.js +15 -15
  33. package/ChannelSettings/components/UserListItem.js +11 -11
  34. package/ChannelSettings/components/UserPanel.js +14 -14
  35. package/ChannelSettings/context.js +3 -3
  36. package/ChannelSettings.js +17 -17
  37. package/CreateChannel/components/CreateChannelUI.js +14 -14
  38. package/CreateChannel/components/InviteUsers.js +14 -14
  39. package/CreateChannel/components/SelectChannelType.js +11 -11
  40. package/CreateChannel/context.js +3 -3
  41. package/CreateChannel.js +14 -14
  42. package/{CreateChannelProvider-7aa5bcd3.js → CreateChannelProvider-a2885972.js} +1 -1
  43. package/{CreateChannelProvider-7aa5bcd3.js.map → CreateChannelProvider-a2885972.js.map} +1 -1
  44. package/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -12
  45. package/CreateOpenChannel/context.js +1 -1
  46. package/CreateOpenChannel.js +12 -12
  47. package/EditUserProfile/components/EditUserProfileUI.js +13 -13
  48. package/EditUserProfile.js +13 -13
  49. package/{LocalizationContext-3dd8dd71.js → LocalizationContext-287ee149.js} +3 -3
  50. package/{LocalizationContext-3dd8dd71.js.map → LocalizationContext-287ee149.js.map} +1 -1
  51. package/{MediaQueryContext-e7425227.js → MediaQueryContext-114ca049.js} +1 -1
  52. package/{MediaQueryContext-e7425227.js.map → MediaQueryContext-114ca049.js.map} +1 -1
  53. package/{MemberList-5f00f0af.js → MemberList-4e71a841.js} +7 -7
  54. package/{MemberList-5f00f0af.js.map → MemberList-4e71a841.js.map} +1 -1
  55. package/MessageSearch/components/MessageSearchUI.js +12 -12
  56. package/MessageSearch/context.js +1 -1
  57. package/MessageSearch.js +12 -12
  58. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  59. package/OpenChannel/components/OpenChannelHeader.js +11 -11
  60. package/OpenChannel/components/OpenChannelInput.js +21 -21
  61. package/OpenChannel/components/OpenChannelMessage.js +32 -32
  62. package/OpenChannel/components/OpenChannelMessageList.js +34 -34
  63. package/OpenChannel/components/OpenChannelUI.js +34 -34
  64. package/OpenChannel/context.js +7 -7
  65. package/OpenChannel.js +34 -34
  66. package/OpenChannelList/components/OpenChannelListUI.js +14 -14
  67. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  68. package/OpenChannelList/context.js +2 -2
  69. package/OpenChannelList.js +14 -14
  70. package/{OpenChannelListProvider-d318c26b.js → OpenChannelListProvider-45d4ab54.js} +2 -2
  71. package/{OpenChannelListProvider-d318c26b.js.map → OpenChannelListProvider-45d4ab54.js.map} +1 -1
  72. package/{OpenChannelProvider-95f0d098.js → OpenChannelProvider-9818f9ed.js} +6 -6
  73. package/{OpenChannelProvider-95f0d098.js.map → OpenChannelProvider-9818f9ed.js.map} +1 -1
  74. package/OpenChannelSettings/components/EditDetailsModal.js +14 -14
  75. package/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
  76. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  77. package/OpenChannelSettings/components/OperatorUI.js +17 -17
  78. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  79. package/OpenChannelSettings/context.js +3 -3
  80. package/OpenChannelSettings.js +17 -17
  81. package/{RemoveMessageModal-16417a53.js → RemoveMessageModal-007c2f04.js} +6 -6
  82. package/{RemoveMessageModal-16417a53.js.map → RemoveMessageModal-007c2f04.js.map} +1 -1
  83. package/SendbirdProvider.js +18 -18
  84. package/SendbirdProvider.js.map +1 -1
  85. package/Thread/components/ParentMessageInfo.js +38 -38
  86. package/Thread/components/ParentMessageInfoItem.js +25 -25
  87. package/Thread/components/ThreadHeader.js +6 -6
  88. package/Thread/components/ThreadList.js +42 -42
  89. package/Thread/components/ThreadListItem.js +42 -42
  90. package/Thread/components/ThreadMessageInput.js +33 -33
  91. package/Thread/components/ThreadUI.js +45 -45
  92. package/Thread/context.js +10 -10
  93. package/Thread.js +45 -45
  94. package/{UserProfileContext-a70aa041.js → UserProfileContext-2001a468.js} +1 -1
  95. package/{UserProfileContext-a70aa041.js.map → UserProfileContext-2001a468.js.map} +1 -1
  96. package/VoicePlayer/context.js +3 -3
  97. package/VoicePlayer/useVoicePlayer.js +12 -12
  98. package/VoiceRecorder/context.js +12 -12
  99. package/VoiceRecorder/useVoiceRecorder.js +11 -11
  100. package/{WebAudioUtils-10cc2346.js → WebAudioUtils-31f7c8eb.js} +2 -2
  101. package/{WebAudioUtils-10cc2346.js.map → WebAudioUtils-31f7c8eb.js.map} +1 -1
  102. package/{_rollupPluginBabelHelpers-bb4003a4.js → _rollupPluginBabelHelpers-e92eb032.js} +1 -1
  103. package/_rollupPluginBabelHelpers-e92eb032.js.map +1 -0
  104. package/{actionTypes-fd447faf.js → actionTypes-324495ed.js} +1 -1
  105. package/{actionTypes-fd447faf.js.map → actionTypes-324495ed.js.map} +1 -1
  106. package/cjs/App.js +52 -52
  107. package/cjs/Channel/components/ChannelHeader.js +22 -22
  108. package/cjs/Channel/components/ChannelUI.js +46 -46
  109. package/cjs/Channel/components/FileViewer.js +19 -19
  110. package/cjs/Channel/components/FrozenNotification.js +4 -4
  111. package/cjs/Channel/components/Message.js +42 -42
  112. package/cjs/Channel/components/MessageInput.js +33 -33
  113. package/cjs/Channel/components/MessageList.js +42 -42
  114. package/cjs/Channel/components/RemoveMessageModal.js +23 -23
  115. package/cjs/Channel/components/SuggestedMentionList.js +19 -19
  116. package/cjs/Channel/components/TypingIndicator.js +18 -18
  117. package/cjs/Channel/components/UnreadCount.js +4 -4
  118. package/cjs/Channel/context.js +15 -15
  119. package/cjs/Channel/utils/compareMessagesForGrouping.js +6 -6
  120. package/cjs/Channel/utils/getMessagePartsInfo.js +7 -7
  121. package/cjs/Channel.js +46 -46
  122. package/cjs/ChannelList/components/AddChannel.js +16 -16
  123. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  124. package/cjs/ChannelList/components/ChannelListUI.js +32 -32
  125. package/cjs/ChannelList/components/ChannelPreview.js +30 -30
  126. package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -15
  127. package/cjs/ChannelList/context.js +8 -8
  128. package/cjs/ChannelList.js +32 -32
  129. package/cjs/{ChannelListProvider-c35c3937.js → ChannelListProvider-d0ad5a84.js} +8 -8
  130. package/cjs/{ChannelListProvider-c35c3937.js.map → ChannelListProvider-d0ad5a84.js.map} +1 -1
  131. package/cjs/{ChannelProvider-95309057.js → ChannelProvider-fc111e5f.js} +14 -14
  132. package/cjs/{ChannelProvider-95309057.js.map → ChannelProvider-fc111e5f.js.map} +1 -1
  133. package/cjs/ChannelSettings/components/ChannelProfile.js +14 -14
  134. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  135. package/cjs/ChannelSettings/components/EditDetailsModal.js +14 -14
  136. package/cjs/ChannelSettings/components/LeaveChannel.js +13 -13
  137. package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
  138. package/cjs/ChannelSettings/components/UserListItem.js +11 -11
  139. package/cjs/ChannelSettings/components/UserPanel.js +14 -14
  140. package/cjs/ChannelSettings/context.js +3 -3
  141. package/cjs/ChannelSettings.js +17 -17
  142. package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
  143. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  144. package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
  145. package/cjs/CreateChannel/context.js +3 -3
  146. package/cjs/CreateChannel.js +14 -14
  147. package/cjs/{CreateChannelProvider-4d70701b.js → CreateChannelProvider-c3c843e4.js} +1 -1
  148. package/cjs/{CreateChannelProvider-4d70701b.js.map → CreateChannelProvider-c3c843e4.js.map} +1 -1
  149. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -12
  150. package/cjs/CreateOpenChannel/context.js +1 -1
  151. package/cjs/CreateOpenChannel.js +12 -12
  152. package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
  153. package/cjs/EditUserProfile.js +13 -13
  154. package/cjs/{LocalizationContext-e12e7229.js → LocalizationContext-58b6ed7c.js} +3 -3
  155. package/cjs/{LocalizationContext-e12e7229.js.map → LocalizationContext-58b6ed7c.js.map} +1 -1
  156. package/cjs/{MediaQueryContext-77316b55.js → MediaQueryContext-6141d955.js} +1 -1
  157. package/cjs/{MediaQueryContext-77316b55.js.map → MediaQueryContext-6141d955.js.map} +1 -1
  158. package/cjs/{MemberList-5442a043.js → MemberList-2bd3db33.js} +7 -7
  159. package/cjs/{MemberList-5442a043.js.map → MemberList-2bd3db33.js.map} +1 -1
  160. package/cjs/MessageSearch/components/MessageSearchUI.js +12 -12
  161. package/cjs/MessageSearch/context.js +1 -1
  162. package/cjs/MessageSearch.js +12 -12
  163. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  164. package/cjs/OpenChannel/components/OpenChannelHeader.js +11 -11
  165. package/cjs/OpenChannel/components/OpenChannelInput.js +21 -21
  166. package/cjs/OpenChannel/components/OpenChannelMessage.js +32 -32
  167. package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -34
  168. package/cjs/OpenChannel/components/OpenChannelUI.js +34 -34
  169. package/cjs/OpenChannel/context.js +7 -7
  170. package/cjs/OpenChannel.js +34 -34
  171. package/cjs/OpenChannelList/components/OpenChannelListUI.js +14 -14
  172. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  173. package/cjs/OpenChannelList/context.js +2 -2
  174. package/cjs/OpenChannelList.js +14 -14
  175. package/cjs/{OpenChannelListProvider-0eb92240.js → OpenChannelListProvider-a8560978.js} +2 -2
  176. package/cjs/{OpenChannelListProvider-0eb92240.js.map → OpenChannelListProvider-a8560978.js.map} +1 -1
  177. package/cjs/{OpenChannelProvider-5e9198f9.js → OpenChannelProvider-39f13647.js} +6 -6
  178. package/cjs/{OpenChannelProvider-5e9198f9.js.map → OpenChannelProvider-39f13647.js.map} +1 -1
  179. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -14
  180. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
  181. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  182. package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
  183. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  184. package/cjs/OpenChannelSettings/context.js +3 -3
  185. package/cjs/OpenChannelSettings.js +17 -17
  186. package/cjs/{RemoveMessageModal-300aff21.js → RemoveMessageModal-afc3e268.js} +6 -6
  187. package/cjs/{RemoveMessageModal-300aff21.js.map → RemoveMessageModal-afc3e268.js.map} +1 -1
  188. package/cjs/SendbirdProvider.js +18 -18
  189. package/cjs/SendbirdProvider.js.map +1 -1
  190. package/cjs/Thread/components/ParentMessageInfo.js +38 -38
  191. package/cjs/Thread/components/ParentMessageInfoItem.js +25 -25
  192. package/cjs/Thread/components/ThreadHeader.js +6 -6
  193. package/cjs/Thread/components/ThreadList.js +42 -42
  194. package/cjs/Thread/components/ThreadListItem.js +42 -42
  195. package/cjs/Thread/components/ThreadMessageInput.js +33 -33
  196. package/cjs/Thread/components/ThreadUI.js +45 -45
  197. package/cjs/Thread/context.js +10 -10
  198. package/cjs/Thread.js +45 -45
  199. package/cjs/{UserProfileContext-712f02b1.js → UserProfileContext-c6d7abb7.js} +1 -1
  200. package/cjs/{UserProfileContext-712f02b1.js.map → UserProfileContext-c6d7abb7.js.map} +1 -1
  201. package/cjs/VoicePlayer/context.js +3 -3
  202. package/cjs/VoicePlayer/useVoicePlayer.js +12 -12
  203. package/cjs/VoiceRecorder/context.js +12 -12
  204. package/cjs/VoiceRecorder/useVoiceRecorder.js +11 -11
  205. package/cjs/{WebAudioUtils-cc296e5f.js → WebAudioUtils-36803ab2.js} +2 -2
  206. package/cjs/{WebAudioUtils-cc296e5f.js.map → WebAudioUtils-36803ab2.js.map} +1 -1
  207. package/cjs/{_rollupPluginBabelHelpers-b21be8d6.js → _rollupPluginBabelHelpers-f5b0dfb9.js} +1 -1
  208. package/cjs/_rollupPluginBabelHelpers-f5b0dfb9.js.map +1 -0
  209. package/cjs/{actionTypes-c1bf54bc.js → actionTypes-327123b5.js} +1 -1
  210. package/cjs/{actionTypes-c1bf54bc.js.map → actionTypes-327123b5.js.map} +1 -1
  211. package/cjs/{color-45578eb6.js → color-5bf5a8f5.js} +1 -1
  212. package/cjs/{color-45578eb6.js.map → color-5bf5a8f5.js.map} +1 -1
  213. package/cjs/{compareIds-6d33d98c.js → compareIds-28c6af62.js} +1 -1
  214. package/cjs/{compareIds-6d33d98c.js.map → compareIds-28c6af62.js.map} +1 -1
  215. package/cjs/{const-9692feaf.js → const-876980e8.js} +1 -1
  216. package/cjs/{const-9692feaf.js.map → const-876980e8.js.map} +1 -1
  217. package/cjs/{const-ea1110b8.js → const-c9e7a340.js} +1 -1
  218. package/cjs/{const-ea1110b8.js.map → const-c9e7a340.js.map} +1 -1
  219. package/cjs/{consts-2425b1dc.js → consts-61d83828.js} +1 -1
  220. package/cjs/{consts-2425b1dc.js.map → consts-61d83828.js.map} +1 -1
  221. package/cjs/{consts-4ddf1e9d.js → consts-b3c4f548.js} +1 -1
  222. package/cjs/{consts-4ddf1e9d.js.map → consts-b3c4f548.js.map} +1 -1
  223. package/cjs/{consts-39b0df2d.js → consts-b711321c.js} +1 -1
  224. package/cjs/{consts-39b0df2d.js.map → consts-b711321c.js.map} +1 -1
  225. package/cjs/{consts-838d8c0a.js → consts-f54b15c2.js} +1 -1
  226. package/cjs/{consts-838d8c0a.js.map → consts-f54b15c2.js.map} +1 -1
  227. package/cjs/{context-b0c281ea.js → context-6684538e.js} +2 -2
  228. package/cjs/{context-b0c281ea.js.map → context-6684538e.js.map} +1 -1
  229. package/cjs/dist/index.css +55 -55
  230. package/cjs/dist/index.css.map +1 -1
  231. package/cjs/hooks/useModal.js +11 -11
  232. package/cjs/{index-2a618f4d.js → index-134e9852.js} +2 -2
  233. package/cjs/{index-2a618f4d.js.map → index-134e9852.js.map} +1 -1
  234. package/cjs/{index-ab04f4c1.js → index-3448df64.js} +2 -2
  235. package/cjs/{index-ab04f4c1.js.map → index-3448df64.js.map} +1 -1
  236. package/cjs/{index-2c02d236.js → index-45933be9.js} +2 -2
  237. package/cjs/{index-2c02d236.js.map → index-45933be9.js.map} +1 -1
  238. package/cjs/{index-be4197e2.js → index-4c378655.js} +4 -4
  239. package/cjs/{index-be4197e2.js.map → index-4c378655.js.map} +1 -1
  240. package/cjs/{index-cb8e0d3b.js → index-4e939c26.js} +9 -9
  241. package/cjs/{index-cb8e0d3b.js.map → index-4e939c26.js.map} +1 -1
  242. package/cjs/{index-c0e391a9.js → index-520e12b8.js} +7 -7
  243. package/cjs/{index-c0e391a9.js.map → index-520e12b8.js.map} +1 -1
  244. package/cjs/{index-d0d79864.js → index-54279ec2.js} +1 -1
  245. package/cjs/{index-d0d79864.js.map → index-54279ec2.js.map} +1 -1
  246. package/cjs/{index-8c79fc87.js → index-692ea6aa.js} +2 -2
  247. package/cjs/{index-8c79fc87.js.map → index-692ea6aa.js.map} +1 -1
  248. package/cjs/{index-e61f36ff.js → index-7627b546.js} +3 -3
  249. package/cjs/{index-e61f36ff.js.map → index-7627b546.js.map} +1 -1
  250. package/cjs/{index-1c49b970.js → index-a95c4ab4.js} +3 -3
  251. package/cjs/{index-1c49b970.js.map → index-a95c4ab4.js.map} +1 -1
  252. package/cjs/{index-6f4ca5cf.js → index-b5a9b4b7.js} +2 -2
  253. package/cjs/{index-6f4ca5cf.js.map → index-b5a9b4b7.js.map} +1 -1
  254. package/cjs/{index-6fdf155b.js → index-b8ba4548.js} +1 -1
  255. package/cjs/{index-6fdf155b.js.map → index-b8ba4548.js.map} +1 -1
  256. package/cjs/{index-6b215583.js → index-bc6623d7.js} +11 -11
  257. package/cjs/{index-6b215583.js.map → index-bc6623d7.js.map} +1 -1
  258. package/cjs/{index-35a2f604.js → index-cc2e05a4.js} +5 -5
  259. package/cjs/{index-35a2f604.js.map → index-cc2e05a4.js.map} +1 -1
  260. package/cjs/{index-dfe39552.js → index-ce07a2a3.js} +4 -4
  261. package/cjs/{index-dfe39552.js.map → index-ce07a2a3.js.map} +1 -1
  262. package/cjs/{index-23d284a0.js → index-dbe8dd84.js} +3 -3
  263. package/cjs/{index-23d284a0.js.map → index-dbe8dd84.js.map} +1 -1
  264. package/cjs/{index-b1e163b7.js → index-e5e6d9b0.js} +4 -4
  265. package/cjs/{index-b1e163b7.js.map → index-e5e6d9b0.js.map} +1 -1
  266. package/cjs/{index-94db47de.js → index-e8928da6.js} +1 -1
  267. package/cjs/{index-94db47de.js.map → index-e8928da6.js.map} +1 -1
  268. package/cjs/index.js +56 -56
  269. package/cjs/{resolvedReplyType-e4155c81.js → resolvedReplyType-c4564ebe.js} +1 -1
  270. package/cjs/{resolvedReplyType-e4155c81.js.map → resolvedReplyType-c4564ebe.js.map} +1 -1
  271. package/cjs/sendbirdSelectors.js +1 -1
  272. package/cjs/{stringFormatterUtils-db5c0b13.js → stringFormatterUtils-92dbef3c.js} +3 -3
  273. package/cjs/{stringFormatterUtils-db5c0b13.js.map → stringFormatterUtils-92dbef3c.js.map} +1 -1
  274. package/cjs/{stringSet-f086c338.js → stringSet-1539ac47.js} +1 -1
  275. package/cjs/{stringSet-f086c338.js.map → stringSet-1539ac47.js.map} +1 -1
  276. package/cjs/{tokenize-db0fb550.js → tokenize-d5286fa8.js} +3 -3
  277. package/cjs/{tokenize-db0fb550.js.map → tokenize-d5286fa8.js.map} +1 -1
  278. package/cjs/{tslib.es6-b66710d0.js → tslib.es6-c74b513f.js} +1 -1
  279. package/cjs/{tslib.es6-b66710d0.js.map → tslib.es6-c74b513f.js.map} +1 -1
  280. package/cjs/{types-949e3eb4.js → types-d0d770c3.js} +1 -1
  281. package/cjs/{types-949e3eb4.js.map → types-d0d770c3.js.map} +1 -1
  282. package/cjs/{types-6edcfd89.js → types-feda9656.js} +1 -1
  283. package/cjs/{types-6edcfd89.js.map → types-feda9656.js.map} +1 -1
  284. package/cjs/ui/Accordion.js +3 -3
  285. package/cjs/ui/AccordionGroup.js +2 -2
  286. package/cjs/ui/AdminMessage.js +3 -3
  287. package/cjs/ui/Avatar.js +2 -2
  288. package/cjs/ui/Badge.js +5 -5
  289. package/cjs/ui/BottomSheet.js +6 -6
  290. package/cjs/ui/Button.js +4 -4
  291. package/cjs/ui/ChannelAvatar.js +3 -3
  292. package/cjs/ui/ConnectionStatus.js +4 -4
  293. package/cjs/ui/ContextMenu.js +6 -6
  294. package/cjs/ui/DateSeparator.js +4 -4
  295. package/cjs/ui/EmojiReactions.js +15 -15
  296. package/cjs/ui/FileMessageItemBody.js +7 -7
  297. package/cjs/ui/FileViewer.js +14 -14
  298. package/cjs/ui/IconButton.js +1 -1
  299. package/cjs/ui/ImageRenderer.js +1 -1
  300. package/cjs/ui/Input.js +2 -2
  301. package/cjs/ui/Label.js +2 -2
  302. package/cjs/ui/LinkLabel.js +2 -2
  303. package/cjs/ui/Loader.js +1 -1
  304. package/cjs/ui/MentionLabel.js +11 -11
  305. package/cjs/ui/MentionUserLabel.js +1 -1
  306. package/cjs/ui/MessageContent.js +37 -37
  307. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -5
  308. package/cjs/ui/MessageInput.js +16 -16
  309. package/cjs/ui/MessageItemMenu.js +19 -19
  310. package/cjs/ui/MessageItemReactionMenu.js +10 -10
  311. package/cjs/ui/MessageSearchFileItem.js +12 -12
  312. package/cjs/ui/MessageSearchItem.js +9 -9
  313. package/cjs/ui/MessageStatus.js +11 -11
  314. package/cjs/ui/Modal.js +10 -10
  315. package/cjs/ui/OGMessageItemBody.js +14 -14
  316. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  317. package/cjs/ui/OpenChannelAvatar.js +6 -6
  318. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  319. package/cjs/ui/OpenchannelFileMessage.js +17 -17
  320. package/cjs/ui/OpenchannelOGMessage.js +19 -19
  321. package/cjs/ui/OpenchannelThumbnailMessage.js +16 -16
  322. package/cjs/ui/OpenchannelUserMessage.js +17 -17
  323. package/cjs/ui/PlaceHolder.js +5 -5
  324. package/cjs/ui/PlaybackTime.js +2 -2
  325. package/cjs/ui/QuoteMessage.js +8 -8
  326. package/cjs/ui/QuoteMessageInput.js +8 -8
  327. package/cjs/ui/ReactionBadge.js +3 -3
  328. package/cjs/ui/ReactionButton.js +5 -5
  329. package/cjs/ui/SortByRow.js +2 -2
  330. package/cjs/ui/TextButton.js +2 -2
  331. package/cjs/ui/TextMessageItemBody.js +14 -14
  332. package/cjs/ui/ThreadReplies.js +6 -6
  333. package/cjs/ui/ThumbnailMessageItemBody.js +8 -8
  334. package/cjs/ui/Toggle.js +1 -1
  335. package/cjs/ui/Tooltip.js +3 -3
  336. package/cjs/ui/TooltipWrapper.js +1 -1
  337. package/cjs/ui/UnknownMessageItemBody.js +7 -7
  338. package/cjs/ui/UserListItem.js +11 -11
  339. package/cjs/ui/UserProfile.js +9 -9
  340. package/cjs/ui/VoiceMessageItemBody.js +12 -12
  341. package/cjs/ui/VoiceMessgeInput.js +8 -8
  342. package/cjs/ui/Word.js +11 -11
  343. package/cjs/{useHandleUploadFiles-51f534ef.js → useHandleUploadFiles-39e8d107.js} +11 -11
  344. package/cjs/{useHandleUploadFiles-51f534ef.js.map → useHandleUploadFiles-39e8d107.js.map} +1 -1
  345. package/cjs/{useLongPress-d5d1f4da.js → useLongPress-18b7af79.js} +3 -3
  346. package/cjs/{useLongPress-d5d1f4da.js.map → useLongPress-18b7af79.js.map} +1 -1
  347. package/cjs/{useSendMultipleFilesMessage-a050e482.js → useSendMultipleFilesMessage-d6a3d5cf.js} +3 -3
  348. package/cjs/{useSendMultipleFilesMessage-a050e482.js.map → useSendMultipleFilesMessage-d6a3d5cf.js.map} +1 -1
  349. package/cjs/useSendbirdStateContext.js +1 -1
  350. package/cjs/{useStatefulFileInfoList-aa28d0cd.js → useStatefulFileInfoList-c510792f.js} +4 -4
  351. package/cjs/{useStatefulFileInfoList-aa28d0cd.js.map → useStatefulFileInfoList-c510792f.js.map} +1 -1
  352. package/cjs/utils/message/isVoiceMessage.js +3 -3
  353. package/cjs/{utils-c0bb692b.js → utils-1d0f1e0c.js} +1 -1
  354. package/cjs/{utils-c0bb692b.js.map → utils-1d0f1e0c.js.map} +1 -1
  355. package/cjs/{utils-ef688ff7.js → utils-9193a195.js} +4 -4
  356. package/cjs/{utils-ef688ff7.js.map → utils-9193a195.js.map} +1 -1
  357. package/cjs/{utils-20fdce6e.js → utils-93ca9d57.js} +3 -3
  358. package/cjs/{utils-20fdce6e.js.map → utils-93ca9d57.js.map} +1 -1
  359. package/cjs/{utils-cd9f6cd1.js → utils-98441ba6.js} +1 -1
  360. package/cjs/{utils-cd9f6cd1.js.map → utils-98441ba6.js.map} +1 -1
  361. package/cjs/{utils-fbdee0b3.js → utils-e6c4b2b0.js} +2 -2
  362. package/cjs/{utils-fbdee0b3.js.map → utils-e6c4b2b0.js.map} +1 -1
  363. package/cjs/{utils-de8b30fe.js → utils-eb6d90e0.js} +1 -1
  364. package/cjs/{utils-de8b30fe.js.map → utils-eb6d90e0.js.map} +1 -1
  365. package/cjs/{uuid-121cea7a.js → uuid-9a117e16.js} +1 -1
  366. package/cjs/{uuid-121cea7a.js.map → uuid-9a117e16.js.map} +1 -1
  367. package/cjs/withSendbird.js +1 -1
  368. package/{color-e1c45ba1.js → color-57373b4c.js} +1 -1
  369. package/{color-e1c45ba1.js.map → color-57373b4c.js.map} +1 -1
  370. package/{compareIds-6a90b7d0.js → compareIds-7e517404.js} +1 -1
  371. package/{compareIds-6a90b7d0.js.map → compareIds-7e517404.js.map} +1 -1
  372. package/{const-818ac95b.js → const-73db0277.js} +1 -1
  373. package/{const-818ac95b.js.map → const-73db0277.js.map} +1 -1
  374. package/{const-7e1bef20.js → const-93731a4c.js} +1 -1
  375. package/{const-7e1bef20.js.map → const-93731a4c.js.map} +1 -1
  376. package/{consts-99975d63.js → consts-4ec7d640.js} +1 -1
  377. package/{consts-99975d63.js.map → consts-4ec7d640.js.map} +1 -1
  378. package/{consts-893be876.js → consts-57c888b9.js} +1 -1
  379. package/{consts-893be876.js.map → consts-57c888b9.js.map} +1 -1
  380. package/{consts-96ddd57a.js → consts-be37687e.js} +1 -1
  381. package/{consts-96ddd57a.js.map → consts-be37687e.js.map} +1 -1
  382. package/{consts-9a7169ff.js → consts-d9c5f25a.js} +1 -1
  383. package/{consts-9a7169ff.js.map → consts-d9c5f25a.js.map} +1 -1
  384. package/{context-bbbcf8c7.js → context-729493c4.js} +2 -2
  385. package/{context-bbbcf8c7.js.map → context-729493c4.js.map} +1 -1
  386. package/dist/index.css +55 -55
  387. package/dist/index.css.map +1 -1
  388. package/hooks/useModal.js +11 -11
  389. package/{index-7c8bbc47.js → index-04bd1a59.js} +1 -1
  390. package/{index-7c8bbc47.js.map → index-04bd1a59.js.map} +1 -1
  391. package/{index-4ff8441f.js → index-09847c0f.js} +1 -1
  392. package/{index-4ff8441f.js.map → index-09847c0f.js.map} +1 -1
  393. package/{index-6b269462.js → index-0f017704.js} +11 -11
  394. package/{index-6b269462.js.map → index-0f017704.js.map} +1 -1
  395. package/{index-26bafa8f.js → index-2d27aeef.js} +2 -2
  396. package/{index-26bafa8f.js.map → index-2d27aeef.js.map} +1 -1
  397. package/{index-f4577c1b.js → index-493689bd.js} +4 -4
  398. package/{index-f4577c1b.js.map → index-493689bd.js.map} +1 -1
  399. package/{index-bb6d2c32.js → index-494f9e79.js} +2 -2
  400. package/{index-bb6d2c32.js.map → index-494f9e79.js.map} +1 -1
  401. package/{index-446afac4.js → index-4b4e9682.js} +7 -7
  402. package/{index-446afac4.js.map → index-4b4e9682.js.map} +1 -1
  403. package/{index-aa3fb70f.js → index-62d5f020.js} +9 -9
  404. package/{index-aa3fb70f.js.map → index-62d5f020.js.map} +1 -1
  405. package/{index-e2e20fad.js → index-682a192c.js} +2 -2
  406. package/{index-e2e20fad.js.map → index-682a192c.js.map} +1 -1
  407. package/{index-8b8c7344.js → index-686a551d.js} +2 -2
  408. package/{index-8b8c7344.js.map → index-686a551d.js.map} +1 -1
  409. package/{index-d6c3b3a4.js → index-6b3b1eca.js} +5 -5
  410. package/{index-d6c3b3a4.js.map → index-6b3b1eca.js.map} +1 -1
  411. package/{index-a6cfd784.js → index-776554c0.js} +3 -3
  412. package/{index-a6cfd784.js.map → index-776554c0.js.map} +1 -1
  413. package/{index-72a8436a.js → index-92741c7e.js} +2 -2
  414. package/{index-72a8436a.js.map → index-92741c7e.js.map} +1 -1
  415. package/{index-02a91ddb.js → index-a0638563.js} +4 -4
  416. package/{index-02a91ddb.js.map → index-a0638563.js.map} +1 -1
  417. package/{index-e0e44e8a.js → index-c22e4772.js} +4 -4
  418. package/{index-e0e44e8a.js.map → index-c22e4772.js.map} +1 -1
  419. package/{index-a3b1c2f0.js → index-e04159fe.js} +3 -3
  420. package/{index-a3b1c2f0.js.map → index-e04159fe.js.map} +1 -1
  421. package/{index-de4364e8.js → index-e4277f9c.js} +1 -1
  422. package/{index-de4364e8.js.map → index-e4277f9c.js.map} +1 -1
  423. package/{index-c3d24a1e.js → index-f8a9cb51.js} +3 -3
  424. package/{index-c3d24a1e.js.map → index-f8a9cb51.js.map} +1 -1
  425. package/index.d.ts +1 -1
  426. package/index.js +56 -56
  427. package/package.json +1 -1
  428. package/{resolvedReplyType-1880de12.js → resolvedReplyType-fb987595.js} +1 -1
  429. package/{resolvedReplyType-1880de12.js.map → resolvedReplyType-fb987595.js.map} +1 -1
  430. package/sendbirdSelectors.js +1 -1
  431. package/{stringFormatterUtils-c5516210.js → stringFormatterUtils-abbe70ba.js} +3 -3
  432. package/{stringFormatterUtils-c5516210.js.map → stringFormatterUtils-abbe70ba.js.map} +1 -1
  433. package/{stringSet-82c00996.js → stringSet-6422c6b9.js} +1 -1
  434. package/{stringSet-82c00996.js.map → stringSet-6422c6b9.js.map} +1 -1
  435. package/{tokenize-d54187ef.js → tokenize-eae44765.js} +3 -3
  436. package/{tokenize-d54187ef.js.map → tokenize-eae44765.js.map} +1 -1
  437. package/{tslib.es6-353b1a8e.js → tslib.es6-c2fb729e.js} +1 -1
  438. package/{tslib.es6-353b1a8e.js.map → tslib.es6-c2fb729e.js.map} +1 -1
  439. package/{types-afb18a4f.js → types-781e0bab.js} +1 -1
  440. package/{types-afb18a4f.js.map → types-781e0bab.js.map} +1 -1
  441. package/{types-9a224810.js → types-9d43ac6e.js} +1 -1
  442. package/{types-9a224810.js.map → types-9d43ac6e.js.map} +1 -1
  443. package/ui/Accordion.js +3 -3
  444. package/ui/AccordionGroup.js +2 -2
  445. package/ui/AdminMessage.js +3 -3
  446. package/ui/Avatar.js +2 -2
  447. package/ui/Badge.js +5 -5
  448. package/ui/BottomSheet.js +6 -6
  449. package/ui/Button.js +5 -5
  450. package/ui/ChannelAvatar.js +3 -3
  451. package/ui/ConnectionStatus.js +4 -4
  452. package/ui/ContextMenu.js +6 -6
  453. package/ui/DateSeparator.js +4 -4
  454. package/ui/EmojiReactions.js +15 -15
  455. package/ui/FileMessageItemBody.js +7 -7
  456. package/ui/FileViewer.js +14 -14
  457. package/ui/IconButton.js +1 -1
  458. package/ui/ImageRenderer.js +1 -1
  459. package/ui/Input.js +2 -2
  460. package/ui/Label.js +2 -2
  461. package/ui/LinkLabel.js +2 -2
  462. package/ui/Loader.js +1 -1
  463. package/ui/MentionLabel.js +11 -11
  464. package/ui/MentionUserLabel.js +1 -1
  465. package/ui/MessageContent.js +37 -37
  466. package/ui/MessageInput/hooks/usePaste.js +5 -5
  467. package/ui/MessageInput.js +16 -16
  468. package/ui/MessageItemMenu.js +19 -19
  469. package/ui/MessageItemReactionMenu.js +10 -10
  470. package/ui/MessageSearchFileItem.js +12 -12
  471. package/ui/MessageSearchItem.js +9 -9
  472. package/ui/MessageStatus.js +11 -11
  473. package/ui/Modal.js +10 -10
  474. package/ui/OGMessageItemBody.js +14 -14
  475. package/ui/OpenChannelAdminMessage.js +3 -3
  476. package/ui/OpenChannelAvatar.js +6 -6
  477. package/ui/OpenchannelConversationHeader.js +6 -6
  478. package/ui/OpenchannelFileMessage.js +17 -17
  479. package/ui/OpenchannelOGMessage.js +19 -19
  480. package/ui/OpenchannelThumbnailMessage.js +16 -16
  481. package/ui/OpenchannelUserMessage.js +17 -17
  482. package/ui/PlaceHolder.js +5 -5
  483. package/ui/PlaybackTime.js +2 -2
  484. package/ui/QuoteMessage.js +8 -8
  485. package/ui/QuoteMessageInput.js +8 -8
  486. package/ui/ReactionBadge.js +3 -3
  487. package/ui/ReactionButton.js +5 -5
  488. package/ui/SortByRow.js +2 -2
  489. package/ui/TextButton.js +2 -2
  490. package/ui/TextMessageItemBody.js +14 -14
  491. package/ui/ThreadReplies.js +6 -6
  492. package/ui/ThumbnailMessageItemBody.js +8 -8
  493. package/ui/Toggle.js +1 -1
  494. package/ui/Tooltip.js +3 -3
  495. package/ui/TooltipWrapper.js +1 -1
  496. package/ui/UnknownMessageItemBody.js +7 -7
  497. package/ui/UserListItem.js +11 -11
  498. package/ui/UserProfile.js +9 -9
  499. package/ui/VoiceMessageItemBody.js +12 -12
  500. package/ui/VoiceMessgeInput.js +8 -8
  501. package/ui/Word.js +11 -11
  502. package/{useHandleUploadFiles-cdb22bbb.js → useHandleUploadFiles-5ede1bfe.js} +11 -11
  503. package/{useHandleUploadFiles-cdb22bbb.js.map → useHandleUploadFiles-5ede1bfe.js.map} +1 -1
  504. package/{useLongPress-3c3dbc28.js → useLongPress-f8655a14.js} +3 -3
  505. package/{useLongPress-3c3dbc28.js.map → useLongPress-f8655a14.js.map} +1 -1
  506. package/{useSendMultipleFilesMessage-16db4948.js → useSendMultipleFilesMessage-b8256698.js} +3 -3
  507. package/{useSendMultipleFilesMessage-16db4948.js.map → useSendMultipleFilesMessage-b8256698.js.map} +1 -1
  508. package/useSendbirdStateContext.js +1 -1
  509. package/{useStatefulFileInfoList-1bf95209.js → useStatefulFileInfoList-5e68b93f.js} +4 -4
  510. package/{useStatefulFileInfoList-1bf95209.js.map → useStatefulFileInfoList-5e68b93f.js.map} +1 -1
  511. package/utils/message/isVoiceMessage.js +3 -3
  512. package/{utils-f00fcb05.js → utils-2c1f072b.js} +1 -1
  513. package/{utils-f00fcb05.js.map → utils-2c1f072b.js.map} +1 -1
  514. package/{utils-dc677a86.js → utils-6c50a6d1.js} +1 -1
  515. package/{utils-dc677a86.js.map → utils-6c50a6d1.js.map} +1 -1
  516. package/{utils-d5f10fce.js → utils-aa4086dc.js} +4 -4
  517. package/{utils-d5f10fce.js.map → utils-aa4086dc.js.map} +1 -1
  518. package/{utils-d15efa15.js → utils-bfc0ab3b.js} +3 -3
  519. package/{utils-d15efa15.js.map → utils-bfc0ab3b.js.map} +1 -1
  520. package/{utils-e3ab3759.js → utils-fa321757.js} +1 -1
  521. package/{utils-e3ab3759.js.map → utils-fa321757.js.map} +1 -1
  522. package/{utils-a5eff3c4.js → utils-fc1f5aa0.js} +2 -2
  523. package/{utils-a5eff3c4.js.map → utils-fc1f5aa0.js.map} +1 -1
  524. package/{uuid-a9b18b52.js → uuid-c15b8b3b.js} +1 -1
  525. package/{uuid-a9b18b52.js.map → uuid-c15b8b3b.js.map} +1 -1
  526. package/withSendbird.js +1 -1
  527. package/_rollupPluginBabelHelpers-bb4003a4.js.map +0 -1
  528. package/cjs/_rollupPluginBabelHelpers-b21be8d6.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OpenChannelProvider-5e9198f9.js","sources":["../../src/modules/OpenChannel/context/utils.ts","../../src/modules/OpenChannel/context/dux/actionTypes.ts","../../src/modules/OpenChannel/context/dux/reducers.ts","../../src/modules/OpenChannel/context/dux/initialState.ts","../../src/modules/OpenChannel/context/hooks/useSetChannel.ts","../../src/modules/OpenChannel/context/hooks/useHandleChannelEvents.ts","../../src/modules/OpenChannel/context/hooks/useInitialMessagesFetch.ts","../../src/modules/OpenChannel/context/hooks/useScrollCallback.ts","../../src/modules/OpenChannel/context/hooks/useCheckScrollBottom.ts","../../src/modules/OpenChannel/context/hooks/useSendMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useFileUploadCallback.ts","../../src/modules/OpenChannel/context/hooks/useUpdateMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useDeleteMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useResendMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useTrimMessageList.ts","../../src/modules/OpenChannel/context/OpenChannelProvider.tsx"],"sourcesContent":["import type React from 'react';\nimport type { User } from '@sendbird/chat';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel, ParticipantListQuery } from '@sendbird/chat/openChannel';\nimport format from 'date-fns/format';\n\nimport { Logger } from '../../../lib/SendbirdState';\nimport { CoreMessageType, SendableMessageType } from '../../../utils';\n\nexport const getMessageCreatedAt = (message: SendableMessageType): string => format(message.createdAt, 'p');\n\nexport const shouldFetchMore = (messageLength: number, maxMessages: number): boolean => {\n if (typeof maxMessages !== 'number') {\n return true;\n }\n\n if (typeof maxMessages === 'number'\n && maxMessages > messageLength\n ) {\n return true;\n }\n return false;\n};\n\n/* eslint-disable default-param-last */\nexport const scrollIntoLast = (initialTry = 0, scrollRef: React.RefObject<HTMLElement>): void => {\n const MAX_TRIES = 10;\n const currentTry = initialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const scrollDOM = scrollRef?.current || document.querySelector('.sendbird-openchannel-conversation-scroll__container__item-container');\n // eslint-disable-next-line no-multi-assign\n scrollDOM.scrollTop = scrollDOM.scrollHeight;\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(currentTry + 1, scrollRef);\n }, 500 * currentTry);\n }\n};\n\nexport const isSameGroup = (\n message: CoreMessageType,\n comparingMessage: CoreMessageType,\n): boolean => {\n if (!(\n message\n && comparingMessage\n && message?.messageType\n && message.messageType !== 'admin'\n && comparingMessage?.messageType\n && comparingMessage.messageType !== 'admin'\n && (message as SendableMessageType)?.sender\n && (comparingMessage as SendableMessageType)?.sender\n && message?.createdAt\n && comparingMessage?.createdAt\n && (message as SendableMessageType)?.sender?.userId\n && (comparingMessage as SendableMessageType)?.sender?.userId\n )) {\n return false;\n }\n // to fix typecasting\n const message_ = message as UserMessage;\n const comparingMessage_ = comparingMessage as UserMessage;\n return (\n message_?.sendingStatus === comparingMessage_?.sendingStatus\n && message_?.sender?.userId === comparingMessage_?.sender?.userId\n && (\n getMessageCreatedAt(message as SendableMessageType) === getMessageCreatedAt(comparingMessage as SendableMessageType)\n )\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: CoreMessageType,\n currMessage: CoreMessageType,\n nextMessage: CoreMessageType,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: OpenChannel, userId: string): boolean => {\n const operators = openChannel?.operators;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: OpenChannel, userId: string): boolean => {\n const isFrozen = openChannel?.isFrozen;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: Array<string>, userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) > -1;\n};\n\nexport const fetchWithListQuery = (\n listQuery: ParticipantListQuery,\n logger: Logger,\n eachQueryNextCallback: (users: Array<User>) => void,\n): void => {\n const fetchList = (query: ParticipantListQuery) => {\n const { hasNext } = query;\n if (hasNext) {\n query.next().then((users) => {\n eachQueryNextCallback(users);\n fetchList(query);\n }).catch((error) => {\n logger.warning('OpenChannel | FetchUserList failed', error);\n });\n } else {\n logger.info('OpenChannel | FetchUserList finished');\n }\n };\n logger.info('OpenChannel | FetchUserList start', listQuery);\n fetchList(listQuery);\n};\n\nexport const pxToNumber = (px: string | number): number | void => {\n if (typeof px === 'number') {\n return px;\n }\n if (typeof px === 'string') {\n const parsed = Number.parseFloat(px);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return null;\n};\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const EXIT_CURRENT_CHANNEL = 'EXIT_CURRENT_CHANNEL';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\nexport const FETCH_PARTICIPANT_LIST = 'FETCH_PARTICIPANT_LIST';\nexport const FETCH_BANNED_USER_LIST = 'FETCH_BANNED_USER_LIST';\nexport const FETCH_MUTED_USER_LIST = 'FETCH_MUTED_USER_LIST';\nexport const TRIM_MESSAGE_LIST = 'TRIM_MESSAGE_LIST';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../../utils/compareIds';\nimport { SendableMessageType } from '../../../../utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n case actionTypes.EXIT_CURRENT_CHANNEL: {\n if (action.payload?.url === state.currentOpenChannel?.url) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n }\n return state;\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n const gottenChannel = action.payload;\n const operators = gottenChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === gottenChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: gottenChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n bannedParticipantIds: [],\n mutedParticipantIds: [],\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_START: {\n return {\n ...state,\n loading: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel?.url !== state.currentOpenChannel.url\n || state.allMessages.some((m) => (m as SendableMessageType).reqId === message.reqId)\n // Handing failed first than sending start issue\n ) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n message,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds((m as SendableMessageType).reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n sentMessage.sendingStatus = 'failed';\n if (!(state.allMessages.some((m) => (m as SendableMessageType)?.reqId === sentMessage?.reqId))) {\n // Handling failed first than sending start issue\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => !compareIds((m as SendableMessageType).reqId, sentMessage)),\n sentMessage,\n ],\n };\n } else {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds((m as SendableMessageType).reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n }\n case actionTypes.TRIM_MESSAGE_LIST: {\n const { allMessages } = state;\n const messageLimit = action.payload?.messageLimit;\n if (messageLimit\n && messageLimit > 0\n && allMessages?.length > messageLimit\n ) {\n const sliceAt = allMessages.length - messageLimit;\n return {\n ...state,\n allMessages: allMessages.slice(sliceAt),\n };\n }\n return state;\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds((m as SendableMessageType).reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.FETCH_PARTICIPANT_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedParticipantList = action.payload.users;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, ...fetchedParticipantList],\n // Should check duplication\n };\n }\n case actionTypes.FETCH_BANNED_USER_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedBannedUserList = action.payload.users;\n if (\n (eventedChannel.url !== state.currentOpenChannel.url)\n || !(fetchedBannedUserList.every(user => typeof user.userId === 'string'))\n ) {\n return state;\n }\n return {\n ...state,\n bannedParticipantIds: [\n ...state.bannedParticipantIds,\n ...fetchedBannedUserList.map(user => user.userId),\n ],\n // Should check duplication\n };\n }\n case actionTypes.FETCH_MUTED_USER_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedMutedUserList = action.payload.users;\n if (\n (eventedChannel.url !== state.currentOpenChannel.url)\n || !(fetchedMutedUserList.every(user => typeof user.userId === 'string'))\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: [\n ...state.mutedParticipantIds,\n ...fetchedMutedUserList.map(user => user.userId),\n ],\n // Should check duplication\n };\n }\n // events\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n\n const {\n currentOpenChannel,\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds((m as SendableMessageType).reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: eventedChannel,\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n const eventedChannel = action.payload.channel;\n const mutedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (\n !currentChannel\n || (currentChannel.url && (currentChannel.url !== eventedChannel.url))\n || state.mutedParticipantIds.indexOf(mutedUser.userId) >= 0\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: [...state.mutedParticipantIds, mutedUser.userId],\n };\n }\n case actionTypes.ON_USER_UNMUTED: {\n const eventedChannel = action.payload.channel;\n const unmutedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (\n !currentChannel\n || (currentChannel.url && (currentChannel.url !== eventedChannel.url))\n || state.mutedParticipantIds.indexOf(unmutedUser.userId) < 0\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: state.mutedParticipantIds.filter(userId => userId !== unmutedUser.userId),\n };\n }\n case actionTypes.ON_USER_BANNED: {\n const eventedChannel = action.payload.channel;\n const bannedUser = action.payload.user;\n const currentUser = action.payload.currentUser;\n const currentChannel = state.currentOpenChannel;\n if (currentChannel?.url === eventedChannel?.url && bannedUser?.userId === currentUser?.userId) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n } else if (currentChannel?.url === eventedChannel?.url) {\n return {\n ...state,\n bannedParticipantIds: [...state.bannedParticipantIds, bannedUser.userId],\n };\n }\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n const eventedChannel = action.payload.channel;\n const unbannedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (currentChannel?.url === eventedChannel?.url) {\n return {\n ...state,\n bannedParticipantIds: state.bannedParticipantIds.filter((userId) => userId !== unbannedUser.userId),\n };\n }\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_CHANNEL_DELETED: {\n const deletedChannelUrl = action.payload;\n const currentChannel = state?.currentOpenChannel;\n if (currentChannel?.url === deletedChannelUrl) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n }\n return state;\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import type { User } from '@sendbird/chat';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { CoreMessageType } from '../../../../utils';\n\nexport interface State {\n allMessages: Array<CoreMessageType>;\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Array<User>;\n participants: Array<User>;\n bannedParticipantIds: Array<string>;\n mutedParticipantIds: Array<string>;\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n bannedParticipantIds: [],\n mutedParticipantIds: [],\n};\n\nexport default initialState;\n","import type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport { useEffect } from 'react';\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n channelUrl: string;\n sdkInit: boolean;\n fetchingParticipants: boolean;\n userId: string;\n currentOpenChannel: OpenChannel;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: ({ type, payload }: { type: string, payload: any }) => void;\n}\n\nfunction useSetChannel(\n { channelUrl, sdkInit, fetchingParticipants, userId, currentOpenChannel }: DynamicParams,\n { sdk, logger, messagesDispatcher }: StaticParams,\n): void {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk?.openChannel) {\n if (currentOpenChannel && currentOpenChannel?.exit) {\n currentOpenChannel.exit?.().then(() => {\n logger.info('OpenChannel | useSetChannel: Exit from the previous open channel', currentOpenChannel?.url);\n messagesDispatcher({\n type: messageActionTypes.EXIT_CURRENT_CHANNEL,\n payload: currentOpenChannel,\n });\n });\n }\n logger.info('OpenChannel | useSetChannel: Fetching channel', channelUrl);\n sdk.openChannel.getChannel(channelUrl).then((openChannel) => {\n logger.info('OpenChannel | useSetChannel: Succeeded to fetch channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter().then(() => {\n if (openChannel.isOperator(userId)) { // only operator has a permission to fetch these list\n const bannedParticipantListQuery = openChannel.createBannedUserListQuery();\n const mutedParticipantListQuery = openChannel.createMutedUserListQuery();\n utils.fetchWithListQuery(\n bannedParticipantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_BANNED_USER_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n utils.fetchWithListQuery(\n mutedParticipantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_MUTED_USER_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n } else {\n openChannel.getMyMutedInfo()\n .then((mutedInfo) => {\n if (mutedInfo?.isMuted) {\n messagesDispatcher({\n type: messageActionTypes.FETCH_MUTED_USER_LIST,\n payload: {\n channel: openChannel,\n users: [sdk?.currentUser],\n },\n });\n }\n });\n }\n if (fetchingParticipants) {\n // fetch participants list\n const participantListQuery = openChannel.createParticipantListQuery({\n limit: openChannel.participantCount,\n });\n utils.fetchWithListQuery(\n participantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_PARTICIPANT_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n }\n }).catch((error) => {\n logger.warning('OpenChannel | useSetChannel: Failed to enter channel', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n payload: null,\n });\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useSetChannel: Failed to fetch channel', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n payload: null,\n });\n });\n }\n }, [channelUrl, sdkInit, fetchingParticipants]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\nimport { ChannelType } from '@sendbird/chat';\nimport { OpenChannel, OpenChannelHandler, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport uuidv4 from '../../../../utils/uuid';\nimport { scrollIntoLast } from '../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ntype MessagesDispatcherType = {\n type: string, payload: any,\n};\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n checkScrollBottom: () => boolean;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n scrollRef: React.RefObject<HTMLElement>;\n messagesDispatcher: (props: MessagesDispatcherType) => void;\n}\n\nfunction useHandleChannelEvents(\n { currentOpenChannel, checkScrollBottom }: DynamicParams,\n { sdk, logger, messagesDispatcher, scrollRef }: StaticParams,\n): void {\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk?.openChannel?.addOpenChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Setup evnet handler', messageReceiverId);\n const channelHandlerParams: OpenChannelHandler = {\n onMessageReceived: (channel, message) => {\n const scrollToEnd = checkScrollBottom();\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n if (scrollToEnd) {\n try {\n setTimeout(() => {\n scrollIntoLast(0, scrollRef);\n });\n } catch (error) {\n logger.warning('OpenChannel | onMessageReceived | scroll to end failed');\n }\n }\n },\n onMessageUpdated: (channel, message) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n },\n onMessageDeleted: (channel, messageId) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n },\n onOperatorUpdated: (channel, operators) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n },\n onUserEntered: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n },\n onUserExited: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n },\n onUserMuted: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n },\n onUserUnmuted: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n },\n onUserBanned: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user, currentUser: sdk?.currentUser },\n });\n },\n onUserUnbanned: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n },\n onChannelFrozen: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n },\n onChannelUnfrozen: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n },\n onChannelChanged: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n },\n onMetaDataCreated: (channel, metaData) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n },\n onMetaDataUpdated: (channel, metaData) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n },\n onMetaDataDeleted: (channel, metaDataKeys) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n },\n onMetaCounterCreated: (channel, metaCounter) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n },\n onMetaCounterUpdated: (channel, metaCounter) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n },\n onMetaCounterDeleted: (channel, metaCounterKeys) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n },\n onMentionReceived: (channel, message) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n },\n onChannelDeleted: (channelUrl, channelType) => {\n if (channelType === ChannelType.OPEN && currentOpenChannel?.url === channelUrl) {\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n }\n },\n };\n\n const ChannelHandler = new OpenChannelHandler(channelHandlerParams);\n\n sdk?.openChannel?.addOpenChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk?.openChannel?.removeOpenChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.openChannel.removeOpenChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n}\n\nexport default useHandleChannelEvents;\n","import { MessageListParams } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport React, { useEffect } from 'react';\n\nimport type { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { scrollIntoLast } from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n userFilledMessageListParams?: Record<string, any>;\n}\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: CustomUseReducerDispatcher;\n scrollRef: React.RefObject<HTMLElement>;\n}\n\nfunction useInitialMessagesFetch(\n { currentOpenChannel, userFilledMessageListParams }: DynamicParams,\n { logger, messagesDispatcher, scrollRef }: StaticParams,\n): void {\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n payload: null,\n });\n\n if (currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams: MessageListParams = {\n nextResultSize: 0,\n prevResultSize: 30,\n isInclusive: true,\n includeReactions: false,\n };\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach((key) => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | useInitialMessagesFetch: Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages', { currentOpenChannel, messageListParams });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n payload: null,\n });\n currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then((messages) => {\n logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => { scrollIntoLast(0, scrollRef); });\n }).catch((error) => {\n logger.error('OpenChannel | useInitialMessagesFetch: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n });\n }\n }, [currentOpenChannel, userFilledMessageListParams]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useCallback } from 'react';\nimport type { MessageListParams } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport type { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n lastMessageTimestamp: number;\n fetchMore?: boolean;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: CustomUseReducerDispatcher;\n hasMore: boolean;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n userFilledMessageListParams?: Record<string, any>;\n}\ntype CallbackReturn = (callback: () => void) => void;\n\nfunction useScrollCallback(\n { currentOpenChannel, lastMessageTimestamp, fetchMore }: DynamicParams,\n { sdk, logger, messagesDispatcher, hasMore, userFilledMessageListParams }: StaticParams,\n): CallbackReturn {\n return useCallback((callback) => {\n if (fetchMore && hasMore) {\n logger.info('OpenChannel | useScrollCallback: start');\n const messageListParams: MessageListParams = {\n prevResultSize: 30,\n includeReactions: false,\n nextResultSize: 0,\n };\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach((key) => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | useScrollCallback: Used userFilledMessageListParams', userFilledMessageListParams);\n }\n\n logger.info('OpenChannel | useScrollCallback: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(lastMessageTimestamp || new Date().getTime(), messageListParams).then((messages) => {\n logger.info('OpenChannel | useScrollCallback: Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n }).catch((error) => {\n logger.error('OpenChannel | useScrollCallback: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n });\n }\n }, [currentOpenChannel, lastMessageTimestamp, fetchMore, sdk]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\nimport { Logger } from '../../../..';\n\ninterface DynamicParams {\n conversationScrollRef: React.RefObject<HTMLDivElement>;\n}\ninterface StaticParams {\n logger: Logger;\n}\n\nfunction useCheckScrollBottom(\n { conversationScrollRef }: DynamicParams,\n { logger }: StaticParams,\n): () => boolean {\n return useCallback(() => {\n let isBottom = true;\n if (conversationScrollRef && conversationScrollRef?.current) {\n try {\n const conversationScroll = conversationScrollRef.current;\n isBottom = conversationScroll.scrollHeight <= conversationScroll.scrollTop + conversationScroll.clientHeight;\n } catch (error) {\n logger.error('OpenChannel | useCheckScrollBottom', error);\n }\n }\n return isBottom;\n }, [conversationScrollRef]);\n}\n\nexport default useCheckScrollBottom;\n","import type { UserMessageCreateParams } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport React, { useCallback } from 'react';\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendUserMessage: (text: string) => UserMessageCreateParams;\n checkScrollBottom: () => boolean;\n messageInputRef: React.RefObject<HTMLInputElement>;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: (props: { type: string, payload: any }) => void;\n scrollRef: React.RefObject<HTMLElement>;\n}\n\nfunction useSendMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef }: DynamicParams,\n { sdk, logger, messagesDispatcher, scrollRef }: StaticParams,\n): () => void {\n return useCallback(() => {\n if (sdk) {\n const text = messageInputRef.current.innerText;\n const createParamsDefault = (txt: string | number): UserMessageCreateParams => {\n const message = txt as string;\n const params: UserMessageCreateParams = {\n message: message,\n };\n return params;\n };\n const createCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';\n if (createCustomParams) {\n logger.info('OpenChannel | useSendMessageCallback: Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);\n logger.info('OpenChannel | useSendMessageCallback: Sending message has started', params);\n\n const isBottom = checkScrollBottom();\n let pendingMsg = null;\n currentOpenChannel.sendUserMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n pendingMsg = pendingMessage;\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useSendMessageCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast(0, scrollRef);\n });\n }\n })\n .onFailed((error) => {\n logger.warning('OpenChannel | useSendMessageCallback: Sending message failed', error);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: pendingMsg,\n });\n // https://sendbird.com/docs/chat/v3/javascript/guides/error-codes#2-server-error-codes\n // TODO: Do we need to handle the error cases?\n // @ts-ignore\n if (error?.code === 900041) {\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: {\n channel: currentOpenChannel,\n user: sdk.currentUser,\n },\n });\n }\n });\n }\n }, [currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef]);\n}\n\nexport default useSendMessageCallback;\n","import { useCallback } from 'react';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport type { FileMessageCreateParams } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendFileMessage: (file: File) => FileMessageCreateParams;\n checkScrollBottom: () => boolean;\n imageCompression?: {\n compressionRate?: number,\n resizingWidth?: number | string,\n resizingHeight?: number | string,\n };\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: (props: { type: string, payload: any }) => void;\n}\n\ntype CallbackReturn = (files: Array<File> | File) => void;\n\nfunction useFileUploadCallback({\n currentOpenChannel,\n checkScrollBottom,\n imageCompression = {},\n onBeforeSendFileMessage,\n}: DynamicParams,\n{ sdk, logger, messagesDispatcher, scrollRef }: StaticParams,\n): CallbackReturn {\n return useCallback((files) => {\n if (sdk) {\n /**\n * OpenChannel does not currently support file lists.\n * However, this change is made to maintain interface consistency with group channels.\n */\n const file = Array.isArray(files) ? files[0] : files;\n const {\n compressionRate,\n resizingWidth,\n resizingHeight,\n } = imageCompression;\n const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';\n\n const compressibleFileType = (file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg');\n const compressibleRatio = (compressionRate > 0) && (compressionRate < 1);\n // pxToNumber returns null if values are invalid\n const compressibleDiamensions = utils.pxToNumber(resizingWidth)\n || utils.pxToNumber(resizingHeight);\n\n const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);\n\n const createParamsDefault = (file_): FileMessageCreateParams => {\n const params: FileMessageCreateParams = {};\n params.file = file_;\n return params;\n };\n\n if (canCompressImage) { // Using image compression\n try {\n const image: HTMLImageElement = document.createElement('img');\n image.src = URL.createObjectURL(file);\n image.onload = () => {\n URL.revokeObjectURL(image.src);\n const canvas = document.createElement('canvas');\n const imageWidth = image.naturalWidth || image.width;\n const imageHeight = image.naturalHeight || image.height;\n let targetWidth = utils.pxToNumber(resizingWidth) || imageWidth;\n let targetHeight = utils.pxToNumber(resizingHeight) || imageHeight;\n\n // In canvas.toBlob(callback, mimeType, qualityArgument)\n // qualityArgument doesnt work\n // so in case compressibleDiamensions are not present, we use ratio\n if (file.type === 'image/png' && !compressibleDiamensions) {\n targetWidth *= compressionRate;\n targetHeight *= compressionRate;\n }\n\n canvas.width = targetWidth;\n canvas.height = targetHeight;\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, targetWidth, targetHeight);\n context.canvas.toBlob(\n (newImageBlob) => {\n const compressedFile = new File([newImageBlob], file.name, { type: file.type });\n if (createCustomParams) {\n logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(compressedFile) : createParamsDefault(compressedFile);\n logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);\n\n const isBottom = checkScrollBottom();\n currentOpenChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n },\n });\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast(0, scrollRef);\n });\n }\n })\n .onFailed((error, message) => {\n logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', { message, error });\n // @ts-ignore\n message.localUrl = URL.createObjectURL(file);\n // @ts-ignore\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n });\n },\n file.type,\n compressionRate,\n );\n };\n } catch (error) {\n logger.warning('OpenChannel | useFileUploadCallback: Sending file message with image compression failed', error);\n }\n } else { // Not using image compression\n if (createCustomParams) {\n logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file);\n logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);\n\n const isBottom = checkScrollBottom();\n currentOpenChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n },\n });\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast(0, scrollRef);\n });\n }\n })\n .onFailed((error, message) => {\n logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', { message, error });\n // @ts-ignore\n message.localUrl = URL.createObjectURL(file);\n // @ts-ignore\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n });\n }\n }\n }, [currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression]);\n}\n\nexport default useFileUploadCallback;\n","import type { UserMessageUpdateParams } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendUserMessage?: (text) => UserMessageUpdateParams;\n}\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (props: { type: string, payload :any }) => void;\n}\ntype CallbackReturn = (messageId, text, callback) => void;\n\nfunction useUpdateMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((messageId, text, callback) => {\n const createParamsDefault = (txt) => {\n const params = {\n message: txt,\n };\n return params;\n };\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | useUpdateMessageCallback: Creating params using onBeforeUpdateUserMessage');\n }\n const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);\n currentOpenChannel.updateUserMessage(messageId, params)\n .then((message) => {\n if (callback) {\n callback();\n }\n logger.info('OpenChannel | useUpdateMessageCallback: Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import type { UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { SendableMessageType } from '../../../../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n}\n\ntype MessagesDispatcherType = {\n type: string, payload: any,\n};\n\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n}\n\ntype CallbackReturn = (\n message: SendableMessageType,\n callback?: () => void,\n) => void;\n\nfunction useDeleteMessageCallback(\n { currentOpenChannel }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((message, callback) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { sendingStatus } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState', sendingStatus);\n\n if (sendingStatus === 'failed' || sendingStatus === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n } else {\n if (!(message.messageType === 'file' || message.messageType === 'user')) {\n return;\n }\n const messageToDelete = message as UserMessage;\n currentOpenChannel.deleteMessage(messageToDelete).then(() => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message on server', sendingStatus);\n if (callback) {\n callback();\n }\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n });\n }\n }, [currentOpenChannel]);\n}\n\nexport default useDeleteMessageCallback;\n","import type { FileMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { SendableMessageType } from '../../../../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n}\n\ntype MessagesDispatcherType = { type: string, payload: any };\n\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n}\ntype CallbackReturn = (failedMessage: SendableMessageType) => void;\n\nfunction useResendMessageCallback(\n { currentOpenChannel }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((failedMessage) => {\n logger.info('OpenChannel | useResendMessageCallback: Resending message has started', failedMessage);\n // eslint-disable-next-line no-param-reassign\n const { messageType, file } = failedMessage as FileMessage;\n if (typeof failedMessage?.isResendable === 'boolean' && failedMessage.isResendable) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage).then((message) => {\n logger.info('OpenChannel | useResendMessageCallback: Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useResendMessageCallback: Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n });\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file).then((message) => {\n logger.info('OpenChannel | useResendMessageCallback: Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useResendMessageCallback: Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | useResendMessageCallback: Message is not resendable');\n logger.warning('OpenChannel | useResendMessageCallback: Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel]);\n}\n\nexport default useResendMessageCallback;\n","import { useEffect, useState } from 'react';\nimport { Logger } from '../../../..';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n messagesLength: number;\n messageLimit: number;\n}\n\ntype MessagesDispatcherType = {\n type: string,\n payload: { messageLimit: number }\n};\n\ninterface StaticParams {\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n logger: Logger;\n}\n\nconst THROTTLE_TIMER = 5000;\n\n// to trim message list so that we wont keep thousands of messages in memory\n// We are throttling here; not debouncing\n// it will be called once very 5 sec if messagesLength, messageLimit changes\n// we check if messagesLength > messageLimit before dispatching action\nfunction useTrimMessageList(\n { messagesLength, messageLimit }: DynamicParams,\n { messagesDispatcher, logger }: StaticParams,\n): void {\n const [inProgress, setInProgress] = useState(false);\n useEffect(() => {\n if (inProgress) {\n return;\n }\n if (typeof messagesLength === 'number' && messagesLength > messageLimit) {\n logger.info('Trimming MessageList');\n messagesDispatcher({\n type: messageActionTypes.TRIM_MESSAGE_LIST,\n payload: { messageLimit },\n });\n }\n setInProgress(true);\n setTimeout(() => { setInProgress(false); }, THROTTLE_TIMER);\n }, [messagesLength, messageLimit]);\n}\n\nexport default useTrimMessageList;\n","import React, {\n useRef,\n useEffect,\n useReducer,\n useMemo,\n} from 'react';\nimport type { FileMessageCreateParams, UserMessageCreateParams } from '@sendbird/chat/message';\nimport type { SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport * as utils from './utils';\nimport { UserProfileProvider } from '../../../lib/UserProfileContext';\nimport { RenderUserProfileProps } from '../../../types';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState, {\n State as MessageStoreState,\n} from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport { scrollIntoLast } from './utils';\nimport topics from '../../../lib/pubSub/topics';\n\n// hooks\nimport useSetChannel from './hooks/useSetChannel';\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useCheckScrollBottom from './hooks/useCheckScrollBottom';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useFileUploadCallback from './hooks/useFileUploadCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useTrimMessageList from './hooks/useTrimMessageList';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\n\ntype OpenChannelQueries = {\n // https://sendbird.github.io/core-sdk-javascript/module-model_params_messageListParams-MessageListParams.html\n messageListParams?: {\n replyType?: string,\n messageType?: string,\n prevResultSize?: number,\n nextResultSize?: number,\n reverse?: boolean,\n isInclusive?: boolean,\n includeMetaArray?: boolean,\n // UIKit doesn't support emoji reaction in OpenChannel\n // includeReactions?: boolean,\n // UIKit doesn't support message threading in OpenChannel\n // includeThreadInfo?: boolean,\n includeParentMessageInfo?: boolean,\n showSubchannelMessagesOnly?: boolean,\n customTypes?: Array<string>,\n senderUserIds?: Array<string>,\n },\n};\n\nexport interface OpenChannelProviderProps {\n channelUrl: string;\n children?: React.ReactElement;\n isMessageGroupingEnabled?: boolean;\n queries?: OpenChannelQueries;\n messageLimit?: number;\n onBeforeSendUserMessage?(text: string): UserMessageCreateParams;\n onBeforeSendFileMessage?(file_: File): FileMessageCreateParams;\n onChatHeaderActionClick?(): void;\n onBackClick?(): void;\n disableUserProfile?: boolean;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactElement;\n}\n\ninterface OpenChannelInterface extends OpenChannelProviderProps, MessageStoreState {\n // derived/utils\n messageInputRef: React.RefObject<HTMLInputElement>;\n conversationScrollRef: React.RefObject<HTMLDivElement>;\n disabled: boolean;\n amIBanned: boolean;\n amIMuted: boolean;\n amIOperator: boolean;\n fetchMore: boolean;\n checkScrollBottom: () => boolean;\n onScroll: (callback: () => void) => void;\n handleSendMessage: any;\n handleFileUpload: any;\n updateMessage: any;\n deleteMessage: any;\n resendMessage: any;\n}\n\nconst OpenChannelContext = React.createContext<OpenChannelInterface | null>(undefined);\n\nconst OpenChannelProvider: React.FC<OpenChannelProviderProps> = (props: OpenChannelProviderProps) => {\n const {\n channelUrl,\n children,\n isMessageGroupingEnabled = true,\n queries,\n onBeforeSendUserMessage,\n messageLimit,\n onBeforeSendFileMessage,\n onChatHeaderActionClick,\n onBackClick,\n } = props;\n\n // We didn't decide to support fetching participant list\n const fetchingParticipants = false;\n const globalStore = useSendbirdStateContext();\n\n const sdk = globalStore?.stores?.sdkStore?.sdk as SendbirdOpenChat;\n const sdkInit = globalStore?.stores?.sdkStore?.initialized;\n const user = globalStore?.stores?.userStore?.user;\n const config = globalStore?.config;\n const {\n userId,\n isOnline,\n logger,\n pubSub,\n imageCompression,\n } = config;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n operators,\n bannedParticipantIds,\n mutedParticipantIds,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const conversationScrollRef = useRef(null); // useScrollAfterSendMessageCallback\n\n // const\n const userFilledMessageListParams = queries?.messageListParams;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId)\n || utils.isDisabledBecauseMuted(mutedParticipantIds, userId);\n\n // useMemo\n const amIBanned = useMemo(() => {\n return bannedParticipantIds.indexOf(user.userId) >= 0;\n }, [channelUrl, bannedParticipantIds, user]);\n const amIMuted = useMemo(() => {\n return mutedParticipantIds.indexOf(user.userId) >= 0;\n }, [channelUrl, mutedParticipantIds, user]);\n const amIOperator = useMemo(() => {\n return operators.map(operator => operator.userId).indexOf(user.userId) >= 0;\n }, [channelUrl, operators, user]);\n\n // use hooks\n useSetChannel(\n { channelUrl, sdkInit, fetchingParticipants, userId, currentOpenChannel },\n { sdk, logger, messagesDispatcher },\n );\n\n const checkScrollBottom = useCheckScrollBottom(\n { conversationScrollRef },\n { logger },\n );\n useHandleChannelEvents(\n { currentOpenChannel, checkScrollBottom },\n { sdk, logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n useInitialMessagesFetch(\n { currentOpenChannel, userFilledMessageListParams },\n { logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n\n const fetchMore: boolean = utils.shouldFetchMore(allMessages?.length, messageLimit);\n // donot fetch more for streaming\n const onScroll = useScrollCallback(\n { currentOpenChannel, lastMessageTimestamp, fetchMore },\n { sdk, logger, messagesDispatcher, hasMore, userFilledMessageListParams },\n );\n const handleSendMessage = useSendMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef },\n { sdk, logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n const handleFileUpload = useFileUploadCallback(\n { currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression },\n { sdk, logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n const updateMessage = useUpdateMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage },\n { logger, messagesDispatcher },\n );\n const deleteMessage = useDeleteMessageCallback(\n { currentOpenChannel },\n { logger, messagesDispatcher },\n );\n const resendMessage = useResendMessageCallback(\n { currentOpenChannel },\n { logger, messagesDispatcher },\n );\n\n useTrimMessageList(\n { messagesLength: allMessages?.length, messageLimit },\n { messagesDispatcher, logger },\n );\n\n // handle API calls from withSendbird\n useEffect(() => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) {\n return;\n }\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast(0, conversationScrollRef);\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: { message, channel },\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast(0, conversationScrollRef);\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: { message, channel },\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return () => {\n if (subscriber) {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n }\n };\n }, [channelUrl, sdkInit]);\n\n return (\n <OpenChannelContext.Provider value={{\n // props\n channelUrl,\n children,\n isMessageGroupingEnabled,\n queries,\n onBeforeSendUserMessage,\n messageLimit,\n onBeforeSendFileMessage,\n onChatHeaderActionClick,\n onBackClick,\n // store\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n operators,\n bannedParticipantIds,\n mutedParticipantIds,\n // derived/utils\n messageInputRef,\n conversationScrollRef,\n disabled,\n amIBanned,\n amIMuted,\n amIOperator,\n checkScrollBottom,\n fetchMore,\n onScroll,\n handleSendMessage,\n handleFileUpload,\n updateMessage,\n deleteMessage,\n resendMessage,\n }}>\n <UserProfileProvider\n isOpenChannel\n renderUserProfile={props?.renderUserProfile}\n disableUserProfile={props?.disableUserProfile ?? config?.disableUserProfile}\n >\n {children}\n </UserProfileProvider>\n </OpenChannelContext.Provider>\n );\n};\n\nexport type UseOpenChannelType = () => OpenChannelInterface;\nconst useOpenChannelContext: UseOpenChannelType = () => React.useContext(OpenChannelContext);\n\nexport {\n OpenChannelProvider,\n useOpenChannelContext,\n};\n"],"names":["getMessageCreatedAt","message","format","createdAt","shouldFetchMore","messageLength","maxMessages","scrollIntoLast","initialTry","scrollRef","MAX_TRIES","currentTry","scrollDOM","current","document","querySelector","scrollTop","scrollHeight","error","setTimeout","isSameGroup","comparingMessage","messageType","sender","_a","userId","_b","message_","comparingMessage_","sendingStatus","_c","_d","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","concat","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","mutedParticipantIds","fetchWithListQuery","listQuery","logger","eachQueryNextCallback","fetchList","query","hasNext","next","then","users","catch","warning","info","pxToNumber","px","parsed","Number","parseFloat","isNaN","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","EXIT_CURRENT_CHANNEL","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","FETCH_PARTICIPANT_LIST","FETCH_BANNED_USER_LIST","FETCH_MUTED_USER_LIST","TRIM_MESSAGE_LIST","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_CHANNEL_DELETED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","type","actionTypes","__assign","allMessages","payload","url","currentOpenChannel","gottenChannel","isInvalid","participants","bannedParticipantIds","loading","isFailed","_e","_f","messages","hasMore","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","messageId","compareIds","initialized","__spreadArray","_g","message_1","channel","some","m","reqId","sentMessage_1","newMessages","sentMessage_2","messageLimit","length","sliceAt","slice","eventedChannel","resentMessage_1","fetchedParticipantList","fetchedBannedUserList","every","user","fetchedMutedUserList","receivedMessage","updatedMessage_1","currentChannel","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","mutedUser","unmutedUser_1","bannedUser","currentUser","unbannedUser_1","frozenChannel","frozen","unfrozenChannel","changedChannel","deletedChannelUrl","initialState","useSetChannel","channelUrl","sdkInit","fetchingParticipants","sdk","messagesDispatcher","useEffect","exit","call","messageActionTypes","getChannel","enter","bannedParticipantListQuery","createBannedUserListQuery","mutedParticipantListQuery","createMutedUserListQuery","utils","getMyMutedInfo","mutedInfo","isMuted","participantListQuery","createParticipantListQuery","limit","participantCount","useHandleChannelEvents","checkScrollBottom","messageReceiverId","uuidv4","addOpenChannelHandler","channelHandlerParams","onMessageReceived","scrollToEnd","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCounterCreated","metaCounter","onMetaCounterUpdated","onMetaCounterDeleted","metaCounterKeys","onMentionReceived","onChannelDeleted","channelType","ChannelType","OPEN","ChannelHandler","OpenChannelHandler","removeOpenChannelHandler","useInitialMessagesFetch","userFilledMessageListParams","getMessagesByTimestamp","messageListParams_1","nextResultSize","prevResultSize","isInclusive","includeReactions","Object","keys","forEach","key","messageListParams","Date","getTime","useScrollCallback","fetchMore","useCallback","callback","useCheckScrollBottom","conversationScrollRef","isBottom","conversationScroll","clientHeight","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","text","innerText","createParamsDefault","txt","params","createCustomParams","isBottom_1","pendingMsg_1","sendUserMessage","onPending","pendingMessage","onSucceeded","onFailed","code","useFileUploadCallback","imageCompression","onBeforeSendFileMessage","files","file_1","Array","isArray","compressionRate_1","compressionRate","resizingWidth_1","resizingWidth","resizingHeight_1","createCustomParams_1","compressibleFileType","compressibleRatio","compressibleDiamensions_1","canCompressImage","createParamsDefault_1","file_","file","image_1","createElement","src","URL","createObjectURL","onload","revokeObjectURL","canvas","imageWidth","naturalWidth","width","imageHeight","naturalHeight","height","targetWidth","targetHeight","context","getContext","drawImage","toBlob","newImageBlob","compressedFile","File","name","sendFileMessage","requestState","localUrl","useUpdateMessageCallback","updateUserMessage","useDeleteMessageCallback","messageToDelete","deleteMessage","useResendMessageCallback","failedMessage","isResendable","resendUserMessage","resendFileMessage","console","THROTTLE_TIMER","useTrimMessageList","messagesLength","useState","inProgress","setInProgress","OpenChannelContext","React","createContext","undefined","OpenChannelProvider","props","children","_h","isMessageGroupingEnabled","queries","onChatHeaderActionClick","onBackClick","globalStore","useSendbirdStateContext","stores","sdkStore","userStore","config","isOnline","pubSub","_j","useReducer","messagesReducer","messagesInitialState","messagesStore","useRef","disabled","amIBanned","useMemo","amIMuted","amIOperator","onScroll","handleSendMessage","handleFileUpload","updateMessage","resendMessage","subscriber","Map","subscribe","set","topics","SEND_USER_MESSAGE","msg","SEND_MESSAGE_START","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","fromSelector","DELETE_MESSAGE","s","remove","Provider","value","UserProfileProvider","isOpenChannel","renderUserProfile","disableUserProfile","useOpenChannelContext","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"OpenChannelProvider-39f13647.js","sources":["../../src/modules/OpenChannel/context/utils.ts","../../src/modules/OpenChannel/context/dux/actionTypes.ts","../../src/modules/OpenChannel/context/dux/reducers.ts","../../src/modules/OpenChannel/context/dux/initialState.ts","../../src/modules/OpenChannel/context/hooks/useSetChannel.ts","../../src/modules/OpenChannel/context/hooks/useHandleChannelEvents.ts","../../src/modules/OpenChannel/context/hooks/useInitialMessagesFetch.ts","../../src/modules/OpenChannel/context/hooks/useScrollCallback.ts","../../src/modules/OpenChannel/context/hooks/useCheckScrollBottom.ts","../../src/modules/OpenChannel/context/hooks/useSendMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useFileUploadCallback.ts","../../src/modules/OpenChannel/context/hooks/useUpdateMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useDeleteMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useResendMessageCallback.ts","../../src/modules/OpenChannel/context/hooks/useTrimMessageList.ts","../../src/modules/OpenChannel/context/OpenChannelProvider.tsx"],"sourcesContent":["import type React from 'react';\nimport type { User } from '@sendbird/chat';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel, ParticipantListQuery } from '@sendbird/chat/openChannel';\nimport format from 'date-fns/format';\n\nimport { Logger } from '../../../lib/SendbirdState';\nimport { CoreMessageType, SendableMessageType } from '../../../utils';\n\nexport const getMessageCreatedAt = (message: SendableMessageType): string => format(message.createdAt, 'p');\n\nexport const shouldFetchMore = (messageLength: number, maxMessages: number): boolean => {\n if (typeof maxMessages !== 'number') {\n return true;\n }\n\n if (typeof maxMessages === 'number'\n && maxMessages > messageLength\n ) {\n return true;\n }\n return false;\n};\n\n/* eslint-disable default-param-last */\nexport const scrollIntoLast = (initialTry = 0, scrollRef: React.RefObject<HTMLElement>): void => {\n const MAX_TRIES = 10;\n const currentTry = initialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const scrollDOM = scrollRef?.current || document.querySelector('.sendbird-openchannel-conversation-scroll__container__item-container');\n // eslint-disable-next-line no-multi-assign\n scrollDOM.scrollTop = scrollDOM.scrollHeight;\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(currentTry + 1, scrollRef);\n }, 500 * currentTry);\n }\n};\n\nexport const isSameGroup = (\n message: CoreMessageType,\n comparingMessage: CoreMessageType,\n): boolean => {\n if (!(\n message\n && comparingMessage\n && message?.messageType\n && message.messageType !== 'admin'\n && comparingMessage?.messageType\n && comparingMessage.messageType !== 'admin'\n && (message as SendableMessageType)?.sender\n && (comparingMessage as SendableMessageType)?.sender\n && message?.createdAt\n && comparingMessage?.createdAt\n && (message as SendableMessageType)?.sender?.userId\n && (comparingMessage as SendableMessageType)?.sender?.userId\n )) {\n return false;\n }\n // to fix typecasting\n const message_ = message as UserMessage;\n const comparingMessage_ = comparingMessage as UserMessage;\n return (\n message_?.sendingStatus === comparingMessage_?.sendingStatus\n && message_?.sender?.userId === comparingMessage_?.sender?.userId\n && (\n getMessageCreatedAt(message as SendableMessageType) === getMessageCreatedAt(comparingMessage as SendableMessageType)\n )\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: CoreMessageType,\n currMessage: CoreMessageType,\n nextMessage: CoreMessageType,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: OpenChannel, userId: string): boolean => {\n const operators = openChannel?.operators;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: OpenChannel, userId: string): boolean => {\n const isFrozen = openChannel?.isFrozen;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: Array<string>, userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) > -1;\n};\n\nexport const fetchWithListQuery = (\n listQuery: ParticipantListQuery,\n logger: Logger,\n eachQueryNextCallback: (users: Array<User>) => void,\n): void => {\n const fetchList = (query: ParticipantListQuery) => {\n const { hasNext } = query;\n if (hasNext) {\n query.next().then((users) => {\n eachQueryNextCallback(users);\n fetchList(query);\n }).catch((error) => {\n logger.warning('OpenChannel | FetchUserList failed', error);\n });\n } else {\n logger.info('OpenChannel | FetchUserList finished');\n }\n };\n logger.info('OpenChannel | FetchUserList start', listQuery);\n fetchList(listQuery);\n};\n\nexport const pxToNumber = (px: string | number): number | void => {\n if (typeof px === 'number') {\n return px;\n }\n if (typeof px === 'string') {\n const parsed = Number.parseFloat(px);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return null;\n};\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const EXIT_CURRENT_CHANNEL = 'EXIT_CURRENT_CHANNEL';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\nexport const FETCH_PARTICIPANT_LIST = 'FETCH_PARTICIPANT_LIST';\nexport const FETCH_BANNED_USER_LIST = 'FETCH_BANNED_USER_LIST';\nexport const FETCH_MUTED_USER_LIST = 'FETCH_MUTED_USER_LIST';\nexport const TRIM_MESSAGE_LIST = 'TRIM_MESSAGE_LIST';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../../utils/compareIds';\nimport { SendableMessageType } from '../../../../utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n case actionTypes.EXIT_CURRENT_CHANNEL: {\n if (action.payload?.url === state.currentOpenChannel?.url) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n }\n return state;\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n const gottenChannel = action.payload;\n const operators = gottenChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === gottenChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: gottenChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n bannedParticipantIds: [],\n mutedParticipantIds: [],\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_START: {\n return {\n ...state,\n loading: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel?.url !== state.currentOpenChannel.url\n || state.allMessages.some((m) => (m as SendableMessageType).reqId === message.reqId)\n // Handing failed first than sending start issue\n ) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n message,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds((m as SendableMessageType).reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n sentMessage.sendingStatus = 'failed';\n if (!(state.allMessages.some((m) => (m as SendableMessageType)?.reqId === sentMessage?.reqId))) {\n // Handling failed first than sending start issue\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => !compareIds((m as SendableMessageType).reqId, sentMessage)),\n sentMessage,\n ],\n };\n } else {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds((m as SendableMessageType).reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n }\n case actionTypes.TRIM_MESSAGE_LIST: {\n const { allMessages } = state;\n const messageLimit = action.payload?.messageLimit;\n if (messageLimit\n && messageLimit > 0\n && allMessages?.length > messageLimit\n ) {\n const sliceAt = allMessages.length - messageLimit;\n return {\n ...state,\n allMessages: allMessages.slice(sliceAt),\n };\n }\n return state;\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds((m as SendableMessageType).reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.FETCH_PARTICIPANT_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedParticipantList = action.payload.users;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, ...fetchedParticipantList],\n // Should check duplication\n };\n }\n case actionTypes.FETCH_BANNED_USER_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedBannedUserList = action.payload.users;\n if (\n (eventedChannel.url !== state.currentOpenChannel.url)\n || !(fetchedBannedUserList.every(user => typeof user.userId === 'string'))\n ) {\n return state;\n }\n return {\n ...state,\n bannedParticipantIds: [\n ...state.bannedParticipantIds,\n ...fetchedBannedUserList.map(user => user.userId),\n ],\n // Should check duplication\n };\n }\n case actionTypes.FETCH_MUTED_USER_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedMutedUserList = action.payload.users;\n if (\n (eventedChannel.url !== state.currentOpenChannel.url)\n || !(fetchedMutedUserList.every(user => typeof user.userId === 'string'))\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: [\n ...state.mutedParticipantIds,\n ...fetchedMutedUserList.map(user => user.userId),\n ],\n // Should check duplication\n };\n }\n // events\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n\n const {\n currentOpenChannel,\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds((m as SendableMessageType).reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: eventedChannel,\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n const eventedChannel = action.payload.channel;\n const mutedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (\n !currentChannel\n || (currentChannel.url && (currentChannel.url !== eventedChannel.url))\n || state.mutedParticipantIds.indexOf(mutedUser.userId) >= 0\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: [...state.mutedParticipantIds, mutedUser.userId],\n };\n }\n case actionTypes.ON_USER_UNMUTED: {\n const eventedChannel = action.payload.channel;\n const unmutedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (\n !currentChannel\n || (currentChannel.url && (currentChannel.url !== eventedChannel.url))\n || state.mutedParticipantIds.indexOf(unmutedUser.userId) < 0\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: state.mutedParticipantIds.filter(userId => userId !== unmutedUser.userId),\n };\n }\n case actionTypes.ON_USER_BANNED: {\n const eventedChannel = action.payload.channel;\n const bannedUser = action.payload.user;\n const currentUser = action.payload.currentUser;\n const currentChannel = state.currentOpenChannel;\n if (currentChannel?.url === eventedChannel?.url && bannedUser?.userId === currentUser?.userId) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n } else if (currentChannel?.url === eventedChannel?.url) {\n return {\n ...state,\n bannedParticipantIds: [...state.bannedParticipantIds, bannedUser.userId],\n };\n }\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n const eventedChannel = action.payload.channel;\n const unbannedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (currentChannel?.url === eventedChannel?.url) {\n return {\n ...state,\n bannedParticipantIds: state.bannedParticipantIds.filter((userId) => userId !== unbannedUser.userId),\n };\n }\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_CHANNEL_DELETED: {\n const deletedChannelUrl = action.payload;\n const currentChannel = state?.currentOpenChannel;\n if (currentChannel?.url === deletedChannelUrl) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n }\n return state;\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import type { User } from '@sendbird/chat';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { CoreMessageType } from '../../../../utils';\n\nexport interface State {\n allMessages: Array<CoreMessageType>;\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Array<User>;\n participants: Array<User>;\n bannedParticipantIds: Array<string>;\n mutedParticipantIds: Array<string>;\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n bannedParticipantIds: [],\n mutedParticipantIds: [],\n};\n\nexport default initialState;\n","import type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport { useEffect } from 'react';\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n channelUrl: string;\n sdkInit: boolean;\n fetchingParticipants: boolean;\n userId: string;\n currentOpenChannel: OpenChannel;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: ({ type, payload }: { type: string, payload: any }) => void;\n}\n\nfunction useSetChannel(\n { channelUrl, sdkInit, fetchingParticipants, userId, currentOpenChannel }: DynamicParams,\n { sdk, logger, messagesDispatcher }: StaticParams,\n): void {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk?.openChannel) {\n if (currentOpenChannel && currentOpenChannel?.exit) {\n currentOpenChannel.exit?.().then(() => {\n logger.info('OpenChannel | useSetChannel: Exit from the previous open channel', currentOpenChannel?.url);\n messagesDispatcher({\n type: messageActionTypes.EXIT_CURRENT_CHANNEL,\n payload: currentOpenChannel,\n });\n });\n }\n logger.info('OpenChannel | useSetChannel: Fetching channel', channelUrl);\n sdk.openChannel.getChannel(channelUrl).then((openChannel) => {\n logger.info('OpenChannel | useSetChannel: Succeeded to fetch channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter().then(() => {\n if (openChannel.isOperator(userId)) { // only operator has a permission to fetch these list\n const bannedParticipantListQuery = openChannel.createBannedUserListQuery();\n const mutedParticipantListQuery = openChannel.createMutedUserListQuery();\n utils.fetchWithListQuery(\n bannedParticipantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_BANNED_USER_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n utils.fetchWithListQuery(\n mutedParticipantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_MUTED_USER_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n } else {\n openChannel.getMyMutedInfo()\n .then((mutedInfo) => {\n if (mutedInfo?.isMuted) {\n messagesDispatcher({\n type: messageActionTypes.FETCH_MUTED_USER_LIST,\n payload: {\n channel: openChannel,\n users: [sdk?.currentUser],\n },\n });\n }\n });\n }\n if (fetchingParticipants) {\n // fetch participants list\n const participantListQuery = openChannel.createParticipantListQuery({\n limit: openChannel.participantCount,\n });\n utils.fetchWithListQuery(\n participantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_PARTICIPANT_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n }\n }).catch((error) => {\n logger.warning('OpenChannel | useSetChannel: Failed to enter channel', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n payload: null,\n });\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useSetChannel: Failed to fetch channel', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n payload: null,\n });\n });\n }\n }, [channelUrl, sdkInit, fetchingParticipants]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\nimport { ChannelType } from '@sendbird/chat';\nimport { OpenChannel, OpenChannelHandler, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport uuidv4 from '../../../../utils/uuid';\nimport { scrollIntoLast } from '../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ntype MessagesDispatcherType = {\n type: string, payload: any,\n};\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n checkScrollBottom: () => boolean;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n scrollRef: React.RefObject<HTMLElement>;\n messagesDispatcher: (props: MessagesDispatcherType) => void;\n}\n\nfunction useHandleChannelEvents(\n { currentOpenChannel, checkScrollBottom }: DynamicParams,\n { sdk, logger, messagesDispatcher, scrollRef }: StaticParams,\n): void {\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk?.openChannel?.addOpenChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Setup evnet handler', messageReceiverId);\n const channelHandlerParams: OpenChannelHandler = {\n onMessageReceived: (channel, message) => {\n const scrollToEnd = checkScrollBottom();\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n if (scrollToEnd) {\n try {\n setTimeout(() => {\n scrollIntoLast(0, scrollRef);\n });\n } catch (error) {\n logger.warning('OpenChannel | onMessageReceived | scroll to end failed');\n }\n }\n },\n onMessageUpdated: (channel, message) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n },\n onMessageDeleted: (channel, messageId) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n },\n onOperatorUpdated: (channel, operators) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n },\n onUserEntered: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n },\n onUserExited: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n },\n onUserMuted: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n },\n onUserUnmuted: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n },\n onUserBanned: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user, currentUser: sdk?.currentUser },\n });\n },\n onUserUnbanned: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n },\n onChannelFrozen: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n },\n onChannelUnfrozen: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n },\n onChannelChanged: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n },\n onMetaDataCreated: (channel, metaData) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n },\n onMetaDataUpdated: (channel, metaData) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n },\n onMetaDataDeleted: (channel, metaDataKeys) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n },\n onMetaCounterCreated: (channel, metaCounter) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n },\n onMetaCounterUpdated: (channel, metaCounter) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n },\n onMetaCounterDeleted: (channel, metaCounterKeys) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n },\n onMentionReceived: (channel, message) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n },\n onChannelDeleted: (channelUrl, channelType) => {\n if (channelType === ChannelType.OPEN && currentOpenChannel?.url === channelUrl) {\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n }\n },\n };\n\n const ChannelHandler = new OpenChannelHandler(channelHandlerParams);\n\n sdk?.openChannel?.addOpenChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk?.openChannel?.removeOpenChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.openChannel.removeOpenChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n}\n\nexport default useHandleChannelEvents;\n","import { MessageListParams } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport React, { useEffect } from 'react';\n\nimport type { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { scrollIntoLast } from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n userFilledMessageListParams?: Record<string, any>;\n}\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: CustomUseReducerDispatcher;\n scrollRef: React.RefObject<HTMLElement>;\n}\n\nfunction useInitialMessagesFetch(\n { currentOpenChannel, userFilledMessageListParams }: DynamicParams,\n { logger, messagesDispatcher, scrollRef }: StaticParams,\n): void {\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n payload: null,\n });\n\n if (currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams: MessageListParams = {\n nextResultSize: 0,\n prevResultSize: 30,\n isInclusive: true,\n includeReactions: false,\n };\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach((key) => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | useInitialMessagesFetch: Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages', { currentOpenChannel, messageListParams });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n payload: null,\n });\n currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then((messages) => {\n logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => { scrollIntoLast(0, scrollRef); });\n }).catch((error) => {\n logger.error('OpenChannel | useInitialMessagesFetch: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n });\n }\n }, [currentOpenChannel, userFilledMessageListParams]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useCallback } from 'react';\nimport type { MessageListParams } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport type { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n lastMessageTimestamp: number;\n fetchMore?: boolean;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: CustomUseReducerDispatcher;\n hasMore: boolean;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n userFilledMessageListParams?: Record<string, any>;\n}\ntype CallbackReturn = (callback: () => void) => void;\n\nfunction useScrollCallback(\n { currentOpenChannel, lastMessageTimestamp, fetchMore }: DynamicParams,\n { sdk, logger, messagesDispatcher, hasMore, userFilledMessageListParams }: StaticParams,\n): CallbackReturn {\n return useCallback((callback) => {\n if (fetchMore && hasMore) {\n logger.info('OpenChannel | useScrollCallback: start');\n const messageListParams: MessageListParams = {\n prevResultSize: 30,\n includeReactions: false,\n nextResultSize: 0,\n };\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach((key) => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | useScrollCallback: Used userFilledMessageListParams', userFilledMessageListParams);\n }\n\n logger.info('OpenChannel | useScrollCallback: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(lastMessageTimestamp || new Date().getTime(), messageListParams).then((messages) => {\n logger.info('OpenChannel | useScrollCallback: Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n }).catch((error) => {\n logger.error('OpenChannel | useScrollCallback: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n });\n }\n }, [currentOpenChannel, lastMessageTimestamp, fetchMore, sdk]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\nimport { Logger } from '../../../..';\n\ninterface DynamicParams {\n conversationScrollRef: React.RefObject<HTMLDivElement>;\n}\ninterface StaticParams {\n logger: Logger;\n}\n\nfunction useCheckScrollBottom(\n { conversationScrollRef }: DynamicParams,\n { logger }: StaticParams,\n): () => boolean {\n return useCallback(() => {\n let isBottom = true;\n if (conversationScrollRef && conversationScrollRef?.current) {\n try {\n const conversationScroll = conversationScrollRef.current;\n isBottom = conversationScroll.scrollHeight <= conversationScroll.scrollTop + conversationScroll.clientHeight;\n } catch (error) {\n logger.error('OpenChannel | useCheckScrollBottom', error);\n }\n }\n return isBottom;\n }, [conversationScrollRef]);\n}\n\nexport default useCheckScrollBottom;\n","import type { UserMessageCreateParams } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport React, { useCallback } from 'react';\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendUserMessage: (text: string) => UserMessageCreateParams;\n checkScrollBottom: () => boolean;\n messageInputRef: React.RefObject<HTMLInputElement>;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: (props: { type: string, payload: any }) => void;\n scrollRef: React.RefObject<HTMLElement>;\n}\n\nfunction useSendMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef }: DynamicParams,\n { sdk, logger, messagesDispatcher, scrollRef }: StaticParams,\n): () => void {\n return useCallback(() => {\n if (sdk) {\n const text = messageInputRef.current.innerText;\n const createParamsDefault = (txt: string | number): UserMessageCreateParams => {\n const message = txt as string;\n const params: UserMessageCreateParams = {\n message: message,\n };\n return params;\n };\n const createCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';\n if (createCustomParams) {\n logger.info('OpenChannel | useSendMessageCallback: Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);\n logger.info('OpenChannel | useSendMessageCallback: Sending message has started', params);\n\n const isBottom = checkScrollBottom();\n let pendingMsg = null;\n currentOpenChannel.sendUserMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n pendingMsg = pendingMessage;\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useSendMessageCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast(0, scrollRef);\n });\n }\n })\n .onFailed((error) => {\n logger.warning('OpenChannel | useSendMessageCallback: Sending message failed', error);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: pendingMsg,\n });\n // https://sendbird.com/docs/chat/v3/javascript/guides/error-codes#2-server-error-codes\n // TODO: Do we need to handle the error cases?\n // @ts-ignore\n if (error?.code === 900041) {\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: {\n channel: currentOpenChannel,\n user: sdk.currentUser,\n },\n });\n }\n });\n }\n }, [currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef]);\n}\n\nexport default useSendMessageCallback;\n","import { useCallback } from 'react';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport type { FileMessageCreateParams } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendFileMessage: (file: File) => FileMessageCreateParams;\n checkScrollBottom: () => boolean;\n imageCompression?: {\n compressionRate?: number,\n resizingWidth?: number | string,\n resizingHeight?: number | string,\n };\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: (props: { type: string, payload: any }) => void;\n}\n\ntype CallbackReturn = (files: Array<File> | File) => void;\n\nfunction useFileUploadCallback({\n currentOpenChannel,\n checkScrollBottom,\n imageCompression = {},\n onBeforeSendFileMessage,\n}: DynamicParams,\n{ sdk, logger, messagesDispatcher, scrollRef }: StaticParams,\n): CallbackReturn {\n return useCallback((files) => {\n if (sdk) {\n /**\n * OpenChannel does not currently support file lists.\n * However, this change is made to maintain interface consistency with group channels.\n */\n const file = Array.isArray(files) ? files[0] : files;\n const {\n compressionRate,\n resizingWidth,\n resizingHeight,\n } = imageCompression;\n const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';\n\n const compressibleFileType = (file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg');\n const compressibleRatio = (compressionRate > 0) && (compressionRate < 1);\n // pxToNumber returns null if values are invalid\n const compressibleDiamensions = utils.pxToNumber(resizingWidth)\n || utils.pxToNumber(resizingHeight);\n\n const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);\n\n const createParamsDefault = (file_): FileMessageCreateParams => {\n const params: FileMessageCreateParams = {};\n params.file = file_;\n return params;\n };\n\n if (canCompressImage) { // Using image compression\n try {\n const image: HTMLImageElement = document.createElement('img');\n image.src = URL.createObjectURL(file);\n image.onload = () => {\n URL.revokeObjectURL(image.src);\n const canvas = document.createElement('canvas');\n const imageWidth = image.naturalWidth || image.width;\n const imageHeight = image.naturalHeight || image.height;\n let targetWidth = utils.pxToNumber(resizingWidth) || imageWidth;\n let targetHeight = utils.pxToNumber(resizingHeight) || imageHeight;\n\n // In canvas.toBlob(callback, mimeType, qualityArgument)\n // qualityArgument doesnt work\n // so in case compressibleDiamensions are not present, we use ratio\n if (file.type === 'image/png' && !compressibleDiamensions) {\n targetWidth *= compressionRate;\n targetHeight *= compressionRate;\n }\n\n canvas.width = targetWidth;\n canvas.height = targetHeight;\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, targetWidth, targetHeight);\n context.canvas.toBlob(\n (newImageBlob) => {\n const compressedFile = new File([newImageBlob], file.name, { type: file.type });\n if (createCustomParams) {\n logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(compressedFile) : createParamsDefault(compressedFile);\n logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);\n\n const isBottom = checkScrollBottom();\n currentOpenChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n },\n });\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast(0, scrollRef);\n });\n }\n })\n .onFailed((error, message) => {\n logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', { message, error });\n // @ts-ignore\n message.localUrl = URL.createObjectURL(file);\n // @ts-ignore\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n });\n },\n file.type,\n compressionRate,\n );\n };\n } catch (error) {\n logger.warning('OpenChannel | useFileUploadCallback: Sending file message with image compression failed', error);\n }\n } else { // Not using image compression\n if (createCustomParams) {\n logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file);\n logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);\n\n const isBottom = checkScrollBottom();\n currentOpenChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n },\n });\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast(0, scrollRef);\n });\n }\n })\n .onFailed((error, message) => {\n logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', { message, error });\n // @ts-ignore\n message.localUrl = URL.createObjectURL(file);\n // @ts-ignore\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n });\n }\n }\n }, [currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression]);\n}\n\nexport default useFileUploadCallback;\n","import type { UserMessageUpdateParams } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendUserMessage?: (text) => UserMessageUpdateParams;\n}\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (props: { type: string, payload :any }) => void;\n}\ntype CallbackReturn = (messageId, text, callback) => void;\n\nfunction useUpdateMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((messageId, text, callback) => {\n const createParamsDefault = (txt) => {\n const params = {\n message: txt,\n };\n return params;\n };\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | useUpdateMessageCallback: Creating params using onBeforeUpdateUserMessage');\n }\n const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);\n currentOpenChannel.updateUserMessage(messageId, params)\n .then((message) => {\n if (callback) {\n callback();\n }\n logger.info('OpenChannel | useUpdateMessageCallback: Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import type { UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { SendableMessageType } from '../../../../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n}\n\ntype MessagesDispatcherType = {\n type: string, payload: any,\n};\n\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n}\n\ntype CallbackReturn = (\n message: SendableMessageType,\n callback?: () => void,\n) => void;\n\nfunction useDeleteMessageCallback(\n { currentOpenChannel }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((message, callback) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { sendingStatus } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState', sendingStatus);\n\n if (sendingStatus === 'failed' || sendingStatus === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n } else {\n if (!(message.messageType === 'file' || message.messageType === 'user')) {\n return;\n }\n const messageToDelete = message as UserMessage;\n currentOpenChannel.deleteMessage(messageToDelete).then(() => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message on server', sendingStatus);\n if (callback) {\n callback();\n }\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n });\n }\n }, [currentOpenChannel]);\n}\n\nexport default useDeleteMessageCallback;\n","import type { FileMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { SendableMessageType } from '../../../../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n}\n\ntype MessagesDispatcherType = { type: string, payload: any };\n\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n}\ntype CallbackReturn = (failedMessage: SendableMessageType) => void;\n\nfunction useResendMessageCallback(\n { currentOpenChannel }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((failedMessage) => {\n logger.info('OpenChannel | useResendMessageCallback: Resending message has started', failedMessage);\n // eslint-disable-next-line no-param-reassign\n const { messageType, file } = failedMessage as FileMessage;\n if (typeof failedMessage?.isResendable === 'boolean' && failedMessage.isResendable) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage).then((message) => {\n logger.info('OpenChannel | useResendMessageCallback: Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useResendMessageCallback: Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n });\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file).then((message) => {\n logger.info('OpenChannel | useResendMessageCallback: Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useResendMessageCallback: Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | useResendMessageCallback: Message is not resendable');\n logger.warning('OpenChannel | useResendMessageCallback: Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel]);\n}\n\nexport default useResendMessageCallback;\n","import { useEffect, useState } from 'react';\nimport { Logger } from '../../../..';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n messagesLength: number;\n messageLimit: number;\n}\n\ntype MessagesDispatcherType = {\n type: string,\n payload: { messageLimit: number }\n};\n\ninterface StaticParams {\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n logger: Logger;\n}\n\nconst THROTTLE_TIMER = 5000;\n\n// to trim message list so that we wont keep thousands of messages in memory\n// We are throttling here; not debouncing\n// it will be called once very 5 sec if messagesLength, messageLimit changes\n// we check if messagesLength > messageLimit before dispatching action\nfunction useTrimMessageList(\n { messagesLength, messageLimit }: DynamicParams,\n { messagesDispatcher, logger }: StaticParams,\n): void {\n const [inProgress, setInProgress] = useState(false);\n useEffect(() => {\n if (inProgress) {\n return;\n }\n if (typeof messagesLength === 'number' && messagesLength > messageLimit) {\n logger.info('Trimming MessageList');\n messagesDispatcher({\n type: messageActionTypes.TRIM_MESSAGE_LIST,\n payload: { messageLimit },\n });\n }\n setInProgress(true);\n setTimeout(() => { setInProgress(false); }, THROTTLE_TIMER);\n }, [messagesLength, messageLimit]);\n}\n\nexport default useTrimMessageList;\n","import React, {\n useRef,\n useEffect,\n useReducer,\n useMemo,\n} from 'react';\nimport type { FileMessageCreateParams, UserMessageCreateParams } from '@sendbird/chat/message';\nimport type { SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport * as utils from './utils';\nimport { UserProfileProvider } from '../../../lib/UserProfileContext';\nimport { RenderUserProfileProps } from '../../../types';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState, {\n State as MessageStoreState,\n} from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport { scrollIntoLast } from './utils';\nimport topics from '../../../lib/pubSub/topics';\n\n// hooks\nimport useSetChannel from './hooks/useSetChannel';\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useCheckScrollBottom from './hooks/useCheckScrollBottom';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useFileUploadCallback from './hooks/useFileUploadCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useTrimMessageList from './hooks/useTrimMessageList';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\n\ntype OpenChannelQueries = {\n // https://sendbird.github.io/core-sdk-javascript/module-model_params_messageListParams-MessageListParams.html\n messageListParams?: {\n replyType?: string,\n messageType?: string,\n prevResultSize?: number,\n nextResultSize?: number,\n reverse?: boolean,\n isInclusive?: boolean,\n includeMetaArray?: boolean,\n // UIKit doesn't support emoji reaction in OpenChannel\n // includeReactions?: boolean,\n // UIKit doesn't support message threading in OpenChannel\n // includeThreadInfo?: boolean,\n includeParentMessageInfo?: boolean,\n showSubchannelMessagesOnly?: boolean,\n customTypes?: Array<string>,\n senderUserIds?: Array<string>,\n },\n};\n\nexport interface OpenChannelProviderProps {\n channelUrl: string;\n children?: React.ReactElement;\n isMessageGroupingEnabled?: boolean;\n queries?: OpenChannelQueries;\n messageLimit?: number;\n onBeforeSendUserMessage?(text: string): UserMessageCreateParams;\n onBeforeSendFileMessage?(file_: File): FileMessageCreateParams;\n onChatHeaderActionClick?(): void;\n onBackClick?(): void;\n disableUserProfile?: boolean;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactElement;\n}\n\ninterface OpenChannelInterface extends OpenChannelProviderProps, MessageStoreState {\n // derived/utils\n messageInputRef: React.RefObject<HTMLInputElement>;\n conversationScrollRef: React.RefObject<HTMLDivElement>;\n disabled: boolean;\n amIBanned: boolean;\n amIMuted: boolean;\n amIOperator: boolean;\n fetchMore: boolean;\n checkScrollBottom: () => boolean;\n onScroll: (callback: () => void) => void;\n handleSendMessage: any;\n handleFileUpload: any;\n updateMessage: any;\n deleteMessage: any;\n resendMessage: any;\n}\n\nconst OpenChannelContext = React.createContext<OpenChannelInterface | null>(undefined);\n\nconst OpenChannelProvider: React.FC<OpenChannelProviderProps> = (props: OpenChannelProviderProps) => {\n const {\n channelUrl,\n children,\n isMessageGroupingEnabled = true,\n queries,\n onBeforeSendUserMessage,\n messageLimit,\n onBeforeSendFileMessage,\n onChatHeaderActionClick,\n onBackClick,\n } = props;\n\n // We didn't decide to support fetching participant list\n const fetchingParticipants = false;\n const globalStore = useSendbirdStateContext();\n\n const sdk = globalStore?.stores?.sdkStore?.sdk as SendbirdOpenChat;\n const sdkInit = globalStore?.stores?.sdkStore?.initialized;\n const user = globalStore?.stores?.userStore?.user;\n const config = globalStore?.config;\n const {\n userId,\n isOnline,\n logger,\n pubSub,\n imageCompression,\n } = config;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n operators,\n bannedParticipantIds,\n mutedParticipantIds,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const conversationScrollRef = useRef(null); // useScrollAfterSendMessageCallback\n\n // const\n const userFilledMessageListParams = queries?.messageListParams;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId)\n || utils.isDisabledBecauseMuted(mutedParticipantIds, userId);\n\n // useMemo\n const amIBanned = useMemo(() => {\n return bannedParticipantIds.indexOf(user.userId) >= 0;\n }, [channelUrl, bannedParticipantIds, user]);\n const amIMuted = useMemo(() => {\n return mutedParticipantIds.indexOf(user.userId) >= 0;\n }, [channelUrl, mutedParticipantIds, user]);\n const amIOperator = useMemo(() => {\n return operators.map(operator => operator.userId).indexOf(user.userId) >= 0;\n }, [channelUrl, operators, user]);\n\n // use hooks\n useSetChannel(\n { channelUrl, sdkInit, fetchingParticipants, userId, currentOpenChannel },\n { sdk, logger, messagesDispatcher },\n );\n\n const checkScrollBottom = useCheckScrollBottom(\n { conversationScrollRef },\n { logger },\n );\n useHandleChannelEvents(\n { currentOpenChannel, checkScrollBottom },\n { sdk, logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n useInitialMessagesFetch(\n { currentOpenChannel, userFilledMessageListParams },\n { logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n\n const fetchMore: boolean = utils.shouldFetchMore(allMessages?.length, messageLimit);\n // donot fetch more for streaming\n const onScroll = useScrollCallback(\n { currentOpenChannel, lastMessageTimestamp, fetchMore },\n { sdk, logger, messagesDispatcher, hasMore, userFilledMessageListParams },\n );\n const handleSendMessage = useSendMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef },\n { sdk, logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n const handleFileUpload = useFileUploadCallback(\n { currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression },\n { sdk, logger, messagesDispatcher, scrollRef: conversationScrollRef },\n );\n const updateMessage = useUpdateMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage },\n { logger, messagesDispatcher },\n );\n const deleteMessage = useDeleteMessageCallback(\n { currentOpenChannel },\n { logger, messagesDispatcher },\n );\n const resendMessage = useResendMessageCallback(\n { currentOpenChannel },\n { logger, messagesDispatcher },\n );\n\n useTrimMessageList(\n { messagesLength: allMessages?.length, messageLimit },\n { messagesDispatcher, logger },\n );\n\n // handle API calls from withSendbird\n useEffect(() => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) {\n return;\n }\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast(0, conversationScrollRef);\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: { message, channel },\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast(0, conversationScrollRef);\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: { message, channel },\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return () => {\n if (subscriber) {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n }\n };\n }, [channelUrl, sdkInit]);\n\n return (\n <OpenChannelContext.Provider value={{\n // props\n channelUrl,\n children,\n isMessageGroupingEnabled,\n queries,\n onBeforeSendUserMessage,\n messageLimit,\n onBeforeSendFileMessage,\n onChatHeaderActionClick,\n onBackClick,\n // store\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n operators,\n bannedParticipantIds,\n mutedParticipantIds,\n // derived/utils\n messageInputRef,\n conversationScrollRef,\n disabled,\n amIBanned,\n amIMuted,\n amIOperator,\n checkScrollBottom,\n fetchMore,\n onScroll,\n handleSendMessage,\n handleFileUpload,\n updateMessage,\n deleteMessage,\n resendMessage,\n }}>\n <UserProfileProvider\n isOpenChannel\n renderUserProfile={props?.renderUserProfile}\n disableUserProfile={props?.disableUserProfile ?? config?.disableUserProfile}\n >\n {children}\n </UserProfileProvider>\n </OpenChannelContext.Provider>\n );\n};\n\nexport type UseOpenChannelType = () => OpenChannelInterface;\nconst useOpenChannelContext: UseOpenChannelType = () => React.useContext(OpenChannelContext);\n\nexport {\n OpenChannelProvider,\n useOpenChannelContext,\n};\n"],"names":["getMessageCreatedAt","message","format","createdAt","shouldFetchMore","messageLength","maxMessages","scrollIntoLast","initialTry","scrollRef","MAX_TRIES","currentTry","scrollDOM","current","document","querySelector","scrollTop","scrollHeight","error","setTimeout","isSameGroup","comparingMessage","messageType","sender","_a","userId","_b","message_","comparingMessage_","sendingStatus","_c","_d","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","concat","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","mutedParticipantIds","fetchWithListQuery","listQuery","logger","eachQueryNextCallback","fetchList","query","hasNext","next","then","users","catch","warning","info","pxToNumber","px","parsed","Number","parseFloat","isNaN","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","EXIT_CURRENT_CHANNEL","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","FETCH_PARTICIPANT_LIST","FETCH_BANNED_USER_LIST","FETCH_MUTED_USER_LIST","TRIM_MESSAGE_LIST","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_CHANNEL_DELETED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","type","actionTypes","__assign","allMessages","payload","url","currentOpenChannel","gottenChannel","isInvalid","participants","bannedParticipantIds","loading","isFailed","_e","_f","messages","hasMore","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","messageId","compareIds","initialized","__spreadArray","_g","message_1","channel","some","m","reqId","sentMessage_1","newMessages","sentMessage_2","messageLimit","length","sliceAt","slice","eventedChannel","resentMessage_1","fetchedParticipantList","fetchedBannedUserList","every","user","fetchedMutedUserList","receivedMessage","updatedMessage_1","currentChannel","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","mutedUser","unmutedUser_1","bannedUser","currentUser","unbannedUser_1","frozenChannel","frozen","unfrozenChannel","changedChannel","deletedChannelUrl","initialState","useSetChannel","channelUrl","sdkInit","fetchingParticipants","sdk","messagesDispatcher","useEffect","exit","call","messageActionTypes","getChannel","enter","bannedParticipantListQuery","createBannedUserListQuery","mutedParticipantListQuery","createMutedUserListQuery","utils","getMyMutedInfo","mutedInfo","isMuted","participantListQuery","createParticipantListQuery","limit","participantCount","useHandleChannelEvents","checkScrollBottom","messageReceiverId","uuidv4","addOpenChannelHandler","channelHandlerParams","onMessageReceived","scrollToEnd","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCounterCreated","metaCounter","onMetaCounterUpdated","onMetaCounterDeleted","metaCounterKeys","onMentionReceived","onChannelDeleted","channelType","ChannelType","OPEN","ChannelHandler","OpenChannelHandler","removeOpenChannelHandler","useInitialMessagesFetch","userFilledMessageListParams","getMessagesByTimestamp","messageListParams_1","nextResultSize","prevResultSize","isInclusive","includeReactions","Object","keys","forEach","key","messageListParams","Date","getTime","useScrollCallback","fetchMore","useCallback","callback","useCheckScrollBottom","conversationScrollRef","isBottom","conversationScroll","clientHeight","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","text","innerText","createParamsDefault","txt","params","createCustomParams","isBottom_1","pendingMsg_1","sendUserMessage","onPending","pendingMessage","onSucceeded","onFailed","code","useFileUploadCallback","imageCompression","onBeforeSendFileMessage","files","file_1","Array","isArray","compressionRate_1","compressionRate","resizingWidth_1","resizingWidth","resizingHeight_1","createCustomParams_1","compressibleFileType","compressibleRatio","compressibleDiamensions_1","canCompressImage","createParamsDefault_1","file_","file","image_1","createElement","src","URL","createObjectURL","onload","revokeObjectURL","canvas","imageWidth","naturalWidth","width","imageHeight","naturalHeight","height","targetWidth","targetHeight","context","getContext","drawImage","toBlob","newImageBlob","compressedFile","File","name","sendFileMessage","requestState","localUrl","useUpdateMessageCallback","updateUserMessage","useDeleteMessageCallback","messageToDelete","deleteMessage","useResendMessageCallback","failedMessage","isResendable","resendUserMessage","resendFileMessage","console","THROTTLE_TIMER","useTrimMessageList","messagesLength","useState","inProgress","setInProgress","OpenChannelContext","React","createContext","undefined","OpenChannelProvider","props","children","_h","isMessageGroupingEnabled","queries","onChatHeaderActionClick","onBackClick","globalStore","useSendbirdStateContext","stores","sdkStore","userStore","config","isOnline","pubSub","_j","useReducer","messagesReducer","messagesInitialState","messagesStore","useRef","disabled","amIBanned","useMemo","amIMuted","amIOperator","onScroll","handleSendMessage","handleFileUpload","updateMessage","resendMessage","subscriber","Map","subscribe","set","topics","SEND_USER_MESSAGE","msg","SEND_MESSAGE_START","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","fromSelector","DELETE_MESSAGE","s","remove","Provider","value","UserProfileProvider","isOpenChannel","renderUserProfile","disableUserProfile","useOpenChannelContext","useContext"],"mappings":"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"}