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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (994) hide show
  1. package/App.js +272 -345
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +134 -0
  4. package/Channel/components/ChannelHeader.js +45 -50
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +76 -77
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +53 -58
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +9 -12
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +198 -176
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +137 -130
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +171 -161
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +40 -41
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +156 -136
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +47 -48
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +17 -18
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +17 -17
  27. package/Channel/utils/compareMessagesForGrouping.js +11 -11
  28. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  29. package/Channel/utils/getMessagePartsInfo.js +32 -26
  30. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  31. package/Channel.js +54 -51
  32. package/Channel.js.map +1 -1
  33. package/ChannelList/components/AddChannel.js +32 -30
  34. package/ChannelList/components/AddChannel.js.map +1 -1
  35. package/ChannelList/components/ChannelListHeader.js +22 -31
  36. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  37. package/ChannelList/components/ChannelListUI.js +93 -88
  38. package/ChannelList/components/ChannelListUI.js.map +1 -1
  39. package/ChannelList/components/ChannelPreview.js +79 -75
  40. package/ChannelList/components/ChannelPreview.js.map +1 -1
  41. package/ChannelList/components/ChannelPreviewAction.js +85 -91
  42. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  43. package/ChannelList/context.js +9 -10
  44. package/ChannelList/context.js.map +1 -1
  45. package/ChannelList.js +38 -35
  46. package/ChannelList.js.map +1 -1
  47. package/ChannelListProvider-f520f5b3.js +1051 -0
  48. package/ChannelListProvider-f520f5b3.js.map +1 -0
  49. package/ChannelProvider-7f6fd1f8.js +2080 -0
  50. package/ChannelProvider-7f6fd1f8.js.map +1 -0
  51. package/ChannelSettings/components/ChannelProfile.js +42 -37
  52. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  53. package/ChannelSettings/components/ChannelSettingsUI.js +44 -47
  54. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  55. package/ChannelSettings/components/EditDetailsModal.js +54 -52
  56. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  57. package/ChannelSettings/components/LeaveChannel.js +39 -41
  58. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  59. package/ChannelSettings/components/ModerationPanel.js +552 -509
  60. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  61. package/ChannelSettings/components/UserListItem.js +66 -66
  62. package/ChannelSettings/components/UserListItem.js.map +1 -1
  63. package/ChannelSettings/components/UserPanel.js +29 -26
  64. package/ChannelSettings/components/UserPanel.js.map +1 -1
  65. package/ChannelSettings/context.js +52 -57
  66. package/ChannelSettings/context.js.map +1 -1
  67. package/ChannelSettings.js +20 -19
  68. package/ChannelSettings.js.map +1 -1
  69. package/CreateChannel/components/CreateChannelUI.js +23 -25
  70. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  71. package/CreateChannel/components/InviteUsers.js +106 -102
  72. package/CreateChannel/components/InviteUsers.js.map +1 -1
  73. package/CreateChannel/components/SelectChannelType.js +38 -43
  74. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  75. package/CreateChannel/context.js +4 -4
  76. package/CreateChannel.js +22 -23
  77. package/CreateChannel.js.map +1 -1
  78. package/CreateChannelProvider-c25dd81b.js +48 -0
  79. package/{CreateChannelProvider-a2fad282.js.map → CreateChannelProvider-c25dd81b.js.map} +1 -1
  80. package/CreateOpenChannel/components/CreateOpenChannelUI.js +38 -36
  81. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  82. package/CreateOpenChannel/context.js +29 -34
  83. package/CreateOpenChannel/context.js.map +1 -1
  84. package/CreateOpenChannel.js +20 -21
  85. package/CreateOpenChannel.js.map +1 -1
  86. package/EditUserProfile/components/EditUserProfileUI.js +152 -21
  87. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  88. package/EditUserProfile/context.js +13 -13
  89. package/EditUserProfile/context.js.map +1 -1
  90. package/EditUserProfile.js +19 -19
  91. package/EditUserProfile.js.map +1 -1
  92. package/LocalizationContext-d18a86d8.js +20 -0
  93. package/{LocalizationContext-2463058b.js.map → LocalizationContext-d18a86d8.js.map} +1 -1
  94. package/MediaQueryContext-3eeeec4f.js +85 -0
  95. package/MediaQueryContext-3eeeec4f.js.map +1 -0
  96. package/MemberList-469dae9b.js +422 -0
  97. package/{MemberList-593867cb.js.map → MemberList-469dae9b.js.map} +1 -1
  98. package/Message/context.js +11 -12
  99. package/Message/context.js.map +1 -1
  100. package/Message/hooks/useDirtyGetMentions.js +21 -26
  101. package/Message/hooks/useDirtyGetMentions.js.map +1 -1
  102. package/MessageSearch/components/MessageSearchUI.js +56 -61
  103. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  104. package/MessageSearch/context.js +166 -177
  105. package/MessageSearch/context.js.map +1 -1
  106. package/MessageSearch.js +49 -47
  107. package/MessageSearch.js.map +1 -1
  108. package/OpenChannel/components/FrozenChannelNotification.js +6 -8
  109. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  110. package/OpenChannel/components/OpenChannelHeader.js +22 -27
  111. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  112. package/OpenChannel/components/OpenChannelInput.js +32 -35
  113. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  114. package/OpenChannel/components/OpenChannelMessage.js +170 -171
  115. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  116. package/OpenChannel/components/OpenChannelMessageList.js +70 -64
  117. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  118. package/OpenChannel/components/OpenChannelUI.js +53 -54
  119. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  120. package/OpenChannel/context.js +8 -9
  121. package/OpenChannel/context.js.map +1 -1
  122. package/OpenChannel.js +37 -35
  123. package/OpenChannel.js.map +1 -1
  124. package/OpenChannelList/components/OpenChannelListUI.js +63 -61
  125. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  126. package/OpenChannelList/components/OpenChannelPreview.js +22 -21
  127. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  128. package/OpenChannelList/context.js +3 -3
  129. package/OpenChannelList.js +27 -27
  130. package/OpenChannelList.js.map +1 -1
  131. package/{OpenChannelListProvider-a0a09f0b.js → OpenChannelListProvider-24e735a1.js} +156 -178
  132. package/{OpenChannelListProvider-a0a09f0b.js.map → OpenChannelListProvider-24e735a1.js.map} +1 -1
  133. package/OpenChannelProvider-e9cb0f98.js +1850 -0
  134. package/{OpenChannelProvider-3e4b8c8e.js.map → OpenChannelProvider-e9cb0f98.js.map} +1 -1
  135. package/OpenChannelSettings/components/EditDetailsModal.js +52 -51
  136. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  137. package/OpenChannelSettings/components/OpenChannelProfile.js +30 -29
  138. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  139. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +39 -47
  140. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  141. package/OpenChannelSettings/components/OperatorUI.js +550 -518
  142. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  143. package/OpenChannelSettings/components/ParticipantUI.js +16 -15
  144. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  145. package/OpenChannelSettings/context.js +58 -57
  146. package/OpenChannelSettings/context.js.map +1 -1
  147. package/OpenChannelSettings.js +20 -19
  148. package/OpenChannelSettings.js.map +1 -1
  149. package/README.md +4 -4
  150. package/RemoveMessageModal-f0cd37a5.js +33 -0
  151. package/RemoveMessageModal-f0cd37a5.js.map +1 -0
  152. package/SendbirdProvider.js +726 -690
  153. package/SendbirdProvider.js.map +1 -1
  154. package/Thread/components/ParentMessageInfo.js +194 -181
  155. package/Thread/components/ParentMessageInfo.js.map +1 -1
  156. package/Thread/components/ParentMessageInfoItem.js +86 -79
  157. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  158. package/Thread/components/ThreadHeader.js +22 -22
  159. package/Thread/components/ThreadHeader.js.map +1 -1
  160. package/Thread/components/ThreadList.js +126 -94
  161. package/Thread/components/ThreadList.js.map +1 -1
  162. package/Thread/components/ThreadListItem.js +260 -241
  163. package/Thread/components/ThreadListItem.js.map +1 -1
  164. package/Thread/components/ThreadMessageInput.js +121 -120
  165. package/Thread/components/ThreadMessageInput.js.map +1 -1
  166. package/Thread/components/ThreadUI.js +128 -144
  167. package/Thread/components/ThreadUI.js.map +1 -1
  168. package/Thread/context/types.js +9 -9
  169. package/Thread/context/types.js.map +1 -1
  170. package/Thread/context.js +1678 -19
  171. package/Thread/context.js.map +1 -1
  172. package/Thread.js +76 -73
  173. package/Thread.js.map +1 -1
  174. package/UserProfileContext-26e71f9a.js +34 -0
  175. package/UserProfileContext-26e71f9a.js.map +1 -0
  176. package/VoicePlayer/context.js +3 -3
  177. package/VoicePlayer/useVoicePlayer.js +52 -46
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  179. package/VoiceRecorder/context.js +68 -64
  180. package/VoiceRecorder/context.js.map +1 -1
  181. package/VoiceRecorder/useVoiceRecorder.js +50 -52
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  183. package/{WebAudioUtils-f9386235.js → WebAudioUtils-dbb010a5.js} +38 -38
  184. package/{WebAudioUtils-f9386235.js.map → WebAudioUtils-dbb010a5.js.map} +1 -1
  185. package/{_rollupPluginBabelHelpers-50c9576f.js → _rollupPluginBabelHelpers-07dcbc2b.js} +17 -17
  186. package/_rollupPluginBabelHelpers-07dcbc2b.js.map +1 -0
  187. package/{actionTypes-501b8c11.js → actionTypes-3cd49b5c.js} +2 -2
  188. package/{actionTypes-501b8c11.js.map → actionTypes-3cd49b5c.js.map} +1 -1
  189. package/cjs/App.js +270 -344
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +44 -49
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +79 -80
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +52 -57
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +9 -12
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +197 -175
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +136 -129
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +173 -163
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +41 -42
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +155 -135
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +46 -47
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +17 -18
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +17 -17
  214. package/cjs/Channel/utils/compareMessagesForGrouping.js +11 -11
  215. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  216. package/cjs/Channel/utils/getMessagePartsInfo.js +32 -26
  217. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  218. package/cjs/Channel.js +54 -51
  219. package/cjs/Channel.js.map +1 -1
  220. package/cjs/ChannelList/components/AddChannel.js +31 -29
  221. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  222. package/cjs/ChannelList/components/ChannelListHeader.js +21 -30
  223. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  224. package/cjs/ChannelList/components/ChannelListUI.js +96 -91
  225. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  226. package/cjs/ChannelList/components/ChannelPreview.js +78 -74
  227. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  228. package/cjs/ChannelList/components/ChannelPreviewAction.js +84 -91
  229. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  230. package/cjs/ChannelList/context.js +9 -10
  231. package/cjs/ChannelList/context.js.map +1 -1
  232. package/cjs/ChannelList.js +38 -35
  233. package/cjs/ChannelList.js.map +1 -1
  234. package/cjs/ChannelListProvider-a418de2e.js +1060 -0
  235. package/cjs/ChannelListProvider-a418de2e.js.map +1 -0
  236. package/cjs/ChannelProvider-7fa98120.js +2088 -0
  237. package/cjs/ChannelProvider-7fa98120.js.map +1 -0
  238. package/cjs/ChannelSettings/components/ChannelProfile.js +41 -36
  239. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  240. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +44 -47
  241. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  242. package/cjs/ChannelSettings/components/EditDetailsModal.js +54 -52
  243. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  244. package/cjs/ChannelSettings/components/LeaveChannel.js +38 -40
  245. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  246. package/cjs/ChannelSettings/components/ModerationPanel.js +559 -516
  247. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  248. package/cjs/ChannelSettings/components/UserListItem.js +66 -66
  249. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  250. package/cjs/ChannelSettings/components/UserPanel.js +29 -26
  251. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  252. package/cjs/ChannelSettings/context.js +51 -56
  253. package/cjs/ChannelSettings/context.js.map +1 -1
  254. package/cjs/ChannelSettings.js +20 -19
  255. package/cjs/ChannelSettings.js.map +1 -1
  256. package/cjs/CreateChannel/components/CreateChannelUI.js +23 -25
  257. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  258. package/cjs/CreateChannel/components/InviteUsers.js +106 -102
  259. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  260. package/cjs/CreateChannel/components/SelectChannelType.js +37 -42
  261. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  262. package/cjs/CreateChannel/context.js +4 -4
  263. package/cjs/CreateChannel.js +22 -23
  264. package/cjs/CreateChannel.js.map +1 -1
  265. package/cjs/CreateChannelProvider-70c9cb7c.js +55 -0
  266. package/cjs/{CreateChannelProvider-8b8a557c.js.map → CreateChannelProvider-70c9cb7c.js.map} +1 -1
  267. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +39 -37
  268. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  269. package/cjs/CreateOpenChannel/context.js +28 -33
  270. package/cjs/CreateOpenChannel/context.js.map +1 -1
  271. package/cjs/CreateOpenChannel.js +20 -21
  272. package/cjs/CreateOpenChannel.js.map +1 -1
  273. package/cjs/EditUserProfile/components/EditUserProfileUI.js +153 -22
  274. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  275. package/cjs/EditUserProfile/context.js +13 -13
  276. package/cjs/EditUserProfile/context.js.map +1 -1
  277. package/cjs/EditUserProfile.js +21 -21
  278. package/cjs/EditUserProfile.js.map +1 -1
  279. package/cjs/{LocalizationContext-482c1343.js → LocalizationContext-5009012e.js} +9 -9
  280. package/cjs/{LocalizationContext-482c1343.js.map → LocalizationContext-5009012e.js.map} +1 -1
  281. package/cjs/MediaQueryContext-d6fdbe43.js +92 -0
  282. package/cjs/MediaQueryContext-d6fdbe43.js.map +1 -0
  283. package/cjs/MemberList-529a0086.js +428 -0
  284. package/cjs/{MemberList-26b8de48.js.map → MemberList-529a0086.js.map} +1 -1
  285. package/cjs/Message/context.js +11 -12
  286. package/cjs/Message/context.js.map +1 -1
  287. package/cjs/Message/hooks/useDirtyGetMentions.js +21 -26
  288. package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
  289. package/cjs/MessageSearch/components/MessageSearchUI.js +60 -65
  290. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  291. package/cjs/MessageSearch/context.js +165 -176
  292. package/cjs/MessageSearch/context.js.map +1 -1
  293. package/cjs/MessageSearch.js +49 -47
  294. package/cjs/MessageSearch.js.map +1 -1
  295. package/cjs/OpenChannel/components/FrozenChannelNotification.js +6 -8
  296. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  297. package/cjs/OpenChannel/components/OpenChannelHeader.js +22 -27
  298. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  299. package/cjs/OpenChannel/components/OpenChannelInput.js +32 -35
  300. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  301. package/cjs/OpenChannel/components/OpenChannelMessage.js +169 -170
  302. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  303. package/cjs/OpenChannel/components/OpenChannelMessageList.js +69 -63
  304. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  305. package/cjs/OpenChannel/components/OpenChannelUI.js +56 -57
  306. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  307. package/cjs/OpenChannel/context.js +8 -9
  308. package/cjs/OpenChannel/context.js.map +1 -1
  309. package/cjs/OpenChannel.js +37 -35
  310. package/cjs/OpenChannel.js.map +1 -1
  311. package/cjs/OpenChannelList/components/OpenChannelListUI.js +66 -64
  312. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  313. package/cjs/OpenChannelList/components/OpenChannelPreview.js +22 -21
  314. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  315. package/cjs/OpenChannelList/context.js +3 -3
  316. package/cjs/OpenChannelList.js +27 -27
  317. package/cjs/OpenChannelList.js.map +1 -1
  318. package/cjs/OpenChannelListProvider-0b8cd3bf.js +416 -0
  319. package/cjs/{OpenChannelListProvider-2e3ee48d.js.map → OpenChannelListProvider-0b8cd3bf.js.map} +1 -1
  320. package/cjs/OpenChannelProvider-d8cc11fe.js +1859 -0
  321. package/cjs/{OpenChannelProvider-8577ea58.js.map → OpenChannelProvider-d8cc11fe.js.map} +1 -1
  322. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +53 -52
  323. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +29 -28
  325. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +40 -48
  327. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/components/OperatorUI.js +557 -525
  329. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  330. package/cjs/OpenChannelSettings/components/ParticipantUI.js +16 -15
  331. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  332. package/cjs/OpenChannelSettings/context.js +57 -56
  333. package/cjs/OpenChannelSettings/context.js.map +1 -1
  334. package/cjs/OpenChannelSettings.js +20 -19
  335. package/cjs/OpenChannelSettings.js.map +1 -1
  336. package/cjs/RemoveMessageModal-f029d40e.js +39 -0
  337. package/cjs/RemoveMessageModal-f029d40e.js.map +1 -0
  338. package/cjs/SendbirdProvider.js +733 -693
  339. package/cjs/SendbirdProvider.js.map +1 -1
  340. package/cjs/Thread/components/ParentMessageInfo.js +193 -180
  341. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  342. package/cjs/Thread/components/ParentMessageInfoItem.js +86 -79
  343. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  344. package/cjs/Thread/components/ThreadHeader.js +22 -22
  345. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  346. package/cjs/Thread/components/ThreadList.js +125 -93
  347. package/cjs/Thread/components/ThreadList.js.map +1 -1
  348. package/cjs/Thread/components/ThreadListItem.js +263 -244
  349. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  350. package/cjs/Thread/components/ThreadMessageInput.js +120 -119
  351. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  352. package/cjs/Thread/components/ThreadUI.js +134 -150
  353. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  354. package/cjs/Thread/context/types.js +9 -13
  355. package/cjs/Thread/context/types.js.map +1 -1
  356. package/cjs/Thread/context.js +1680 -21
  357. package/cjs/Thread/context.js.map +1 -1
  358. package/cjs/Thread.js +76 -73
  359. package/cjs/Thread.js.map +1 -1
  360. package/cjs/UserProfileContext-922a43ec.js +41 -0
  361. package/cjs/UserProfileContext-922a43ec.js.map +1 -0
  362. package/cjs/VoicePlayer/context.js +3 -3
  363. package/cjs/VoicePlayer/useVoicePlayer.js +52 -46
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  365. package/cjs/VoiceRecorder/context.js +67 -63
  366. package/cjs/VoiceRecorder/context.js.map +1 -1
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +49 -51
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  369. package/cjs/{WebAudioUtils-142344fd.js → WebAudioUtils-29717597.js} +38 -38
  370. package/cjs/{WebAudioUtils-142344fd.js.map → WebAudioUtils-29717597.js.map} +1 -1
  371. package/cjs/{_rollupPluginBabelHelpers-83d7e84b.js → _rollupPluginBabelHelpers-94c18dc1.js} +16 -17
  372. package/cjs/_rollupPluginBabelHelpers-94c18dc1.js.map +1 -0
  373. package/cjs/{actionTypes-1d118952.js → actionTypes-7fa02f94.js} +2 -2
  374. package/cjs/{actionTypes-1d118952.js.map → actionTypes-7fa02f94.js.map} +1 -1
  375. package/cjs/{color-d83b77ac.js → color-477ddbd4.js} +12 -13
  376. package/cjs/color-477ddbd4.js.map +1 -0
  377. package/cjs/{compareIds-bef997cb.js → compareIds-de541666.js} +7 -6
  378. package/cjs/compareIds-de541666.js.map +1 -0
  379. package/cjs/{const-1726bde0.js → const-640252c1.js} +4 -4
  380. package/cjs/{const-1726bde0.js.map → const-640252c1.js.map} +1 -1
  381. package/cjs/const-9def5c09.js +19 -0
  382. package/cjs/{const-67ff9e34.js.map → const-9def5c09.js.map} +1 -1
  383. package/cjs/consts-54f5c12d.js +6 -0
  384. package/cjs/consts-54f5c12d.js.map +1 -0
  385. package/cjs/consts-85cd42fa.js +6 -0
  386. package/cjs/{consts-bf228385.js.map → consts-85cd42fa.js.map} +1 -1
  387. package/cjs/{consts-fb07c671.js → consts-95462b21.js} +18 -25
  388. package/cjs/{consts-fb07c671.js.map → consts-95462b21.js.map} +1 -1
  389. package/cjs/consts-a3b7ae99.js +6 -0
  390. package/cjs/{consts-d3b53f23.js.map → consts-a3b7ae99.js.map} +1 -1
  391. package/cjs/{context-bd2878ff.js → context-9814fafe.js} +5 -6
  392. package/cjs/{context-bd2878ff.js.map → context-9814fafe.js.map} +1 -1
  393. package/cjs/dist/index.css +110 -95
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/hooks/useModal.js +84 -0
  398. package/cjs/hooks/useModal.js.map +1 -0
  399. package/cjs/{index-81baccd0.js → index-0a25b9b2.js} +166 -154
  400. package/cjs/index-0a25b9b2.js.map +1 -0
  401. package/cjs/index-0ec5a831.js +308 -0
  402. package/cjs/{index-1f6b30ea.js.map → index-0ec5a831.js.map} +1 -1
  403. package/cjs/{index-18720f0d.js → index-35820a94.js} +2 -2
  404. package/cjs/{index-18720f0d.js.map → index-35820a94.js.map} +1 -1
  405. package/cjs/index-609b07a2.js +7 -0
  406. package/cjs/index-609b07a2.js.map +1 -0
  407. package/cjs/index-6b0644d7.js +369 -0
  408. package/cjs/index-6b0644d7.js.map +1 -0
  409. package/cjs/{index-857630c5.js → index-7b0c6630.js} +104 -114
  410. package/cjs/index-7b0c6630.js.map +1 -0
  411. package/cjs/index-80a11b6a.js +197 -0
  412. package/cjs/{index-6ab9a40d.js.map → index-80a11b6a.js.map} +1 -1
  413. package/cjs/{index-4eb7e2b5.js → index-826b76d5.js} +2 -4
  414. package/cjs/index-826b76d5.js.map +1 -0
  415. package/cjs/{index-11f9cc0f.js → index-83d2aed9.js} +3 -12
  416. package/cjs/index-83d2aed9.js.map +1 -0
  417. package/cjs/index-aeb36f01.js +173 -0
  418. package/cjs/index-aeb36f01.js.map +1 -0
  419. package/cjs/{index-c9b003b3.js → index-b6d51e74.js} +56 -193
  420. package/cjs/index-b6d51e74.js.map +1 -0
  421. package/cjs/index-b995f638.js +741 -0
  422. package/cjs/index-b995f638.js.map +1 -0
  423. package/cjs/{index-759f2a26.js → index-bdf7089c.js} +72 -80
  424. package/cjs/{index-759f2a26.js.map → index-bdf7089c.js.map} +1 -1
  425. package/cjs/{index-7c374c20.js → index-c22e0cbf.js} +25 -28
  426. package/cjs/{index-7c374c20.js.map → index-c22e0cbf.js.map} +1 -1
  427. package/cjs/index-daf80c58.js +20 -0
  428. package/cjs/index-daf80c58.js.map +1 -0
  429. package/cjs/index-e81e2882.js +59 -0
  430. package/cjs/{index-2ab19f9b.js.map → index-e81e2882.js.map} +1 -1
  431. package/cjs/{index-91b4af96.js → index-ee3bf381.js} +39 -37
  432. package/cjs/{index-91b4af96.js.map → index-ee3bf381.js.map} +1 -1
  433. package/cjs/{index-d04f312e.js → index-fd8a0abb.js} +10 -30
  434. package/cjs/index-fd8a0abb.js.map +1 -0
  435. package/cjs/index.js +66 -63
  436. package/cjs/index.js.map +1 -1
  437. package/cjs/lame.all.js.map +1 -1
  438. package/cjs/package.json +2 -49
  439. package/cjs/{topics-adde627b.js → pubSub/topics.js} +6 -2
  440. package/cjs/pubSub/topics.js.map +1 -0
  441. package/cjs/{resolvedReplyType-85b4bd7c.js → resolvedReplyType-c20ef661.js} +1 -1
  442. package/cjs/{resolvedReplyType-85b4bd7c.js.map → resolvedReplyType-c20ef661.js.map} +1 -1
  443. package/cjs/sendbirdSelectors.js +381 -332
  444. package/cjs/sendbirdSelectors.js.map +1 -1
  445. package/cjs/stringFormatterUtils-e324636c.js +16 -0
  446. package/cjs/{stringFormatterUtils-8d6592ca.js.map → stringFormatterUtils-e324636c.js.map} +1 -1
  447. package/cjs/{stringSet-d00535a5.js → stringSet-98b52c49.js} +9 -2
  448. package/cjs/stringSet-98b52c49.js.map +1 -0
  449. package/cjs/{tokenize-9296fc47.js → tokenize-91bdbeb0.js} +56 -61
  450. package/cjs/{tokenize-9296fc47.js.map → tokenize-91bdbeb0.js.map} +1 -1
  451. package/cjs/tslib.es6-2f2b0bca.js +102 -0
  452. package/cjs/tslib.es6-2f2b0bca.js.map +1 -0
  453. package/cjs/types-31ed2276.js +11 -0
  454. package/cjs/types-31ed2276.js.map +1 -0
  455. package/cjs/types-66554668.js +15 -0
  456. package/cjs/types-66554668.js.map +1 -0
  457. package/cjs/ui/Accordion.js +18 -19
  458. package/cjs/ui/Accordion.js.map +1 -1
  459. package/cjs/ui/AccordionGroup.js +11 -10
  460. package/cjs/ui/AccordionGroup.js.map +1 -1
  461. package/cjs/ui/AdminMessage.js +10 -10
  462. package/cjs/ui/AdminMessage.js.map +1 -1
  463. package/cjs/ui/Avatar.js +59 -55
  464. package/cjs/ui/Avatar.js.map +1 -1
  465. package/cjs/ui/Badge.js +15 -16
  466. package/cjs/ui/Badge.js.map +1 -1
  467. package/cjs/ui/BottomSheet.js +15 -17
  468. package/cjs/ui/BottomSheet.js.map +1 -1
  469. package/cjs/ui/Button.js +31 -33
  470. package/cjs/ui/Button.js.map +1 -1
  471. package/cjs/ui/ChannelAvatar.js +41 -38
  472. package/cjs/ui/ChannelAvatar.js.map +1 -1
  473. package/cjs/ui/Checkbox.js +10 -9
  474. package/cjs/ui/Checkbox.js.map +1 -1
  475. package/cjs/ui/ConnectionStatus.js +5 -7
  476. package/cjs/ui/ConnectionStatus.js.map +1 -1
  477. package/cjs/ui/ContextMenu.js +143 -144
  478. package/cjs/ui/ContextMenu.js.map +1 -1
  479. package/cjs/ui/DateSeparator.js +14 -12
  480. package/cjs/ui/DateSeparator.js.map +1 -1
  481. package/cjs/ui/EmojiReactions.js +206 -176
  482. package/cjs/ui/EmojiReactions.js.map +1 -1
  483. package/cjs/ui/FileMessageItemBody.js +23 -23
  484. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  485. package/cjs/ui/FileViewer.js +14 -12
  486. package/cjs/ui/FileViewer.js.map +1 -1
  487. package/cjs/ui/Icon.js +16 -16
  488. package/cjs/ui/Icon.js.map +1 -1
  489. package/cjs/ui/IconButton.js +28 -20
  490. package/cjs/ui/IconButton.js.map +1 -1
  491. package/cjs/ui/ImageRenderer.js +84 -64
  492. package/cjs/ui/ImageRenderer.js.map +1 -1
  493. package/cjs/ui/Input.js +14 -16
  494. package/cjs/ui/Input.js.map +1 -1
  495. package/cjs/ui/Label.js +2 -2
  496. package/cjs/ui/LinkLabel.js +2 -2
  497. package/cjs/ui/LinkLabel.js.map +1 -1
  498. package/cjs/ui/Loader.js +12 -10
  499. package/cjs/ui/Loader.js.map +1 -1
  500. package/cjs/ui/MentionLabel.js +63 -59
  501. package/cjs/ui/MentionLabel.js.map +1 -1
  502. package/cjs/ui/MentionUserLabel.js +10 -10
  503. package/cjs/ui/MentionUserLabel.js.map +1 -1
  504. package/cjs/ui/MessageContent.js +187 -171
  505. package/cjs/ui/MessageContent.js.map +1 -1
  506. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -4
  507. package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -1
  508. package/cjs/ui/MessageInput.js +55 -57
  509. package/cjs/ui/MessageInput.js.map +1 -1
  510. package/cjs/ui/MessageItemMenu.js +93 -72
  511. package/cjs/ui/MessageItemMenu.js.map +1 -1
  512. package/cjs/ui/MessageItemReactionMenu.js +64 -56
  513. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  514. package/cjs/ui/MessageSearchFileItem.js +40 -49
  515. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  516. package/cjs/ui/MessageSearchItem.js +32 -40
  517. package/cjs/ui/MessageSearchItem.js.map +1 -1
  518. package/cjs/ui/MessageStatus.js +11 -11
  519. package/cjs/ui/Modal.js +57 -59
  520. package/cjs/ui/Modal.js.map +1 -1
  521. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  522. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  523. package/cjs/ui/OGMessageItemBody.js +47 -47
  524. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  525. package/cjs/ui/OpenChannelAdminMessage.js +7 -8
  526. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  527. package/cjs/ui/OpenChannelAvatar.js +17 -18
  528. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  529. package/cjs/ui/OpenchannelConversationHeader.js +13 -17
  530. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  531. package/cjs/ui/OpenchannelFileMessage.js +147 -139
  532. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  533. package/cjs/ui/OpenchannelOGMessage.js +185 -178
  534. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  535. package/cjs/ui/OpenchannelThumbnailMessage.js +220 -213
  536. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  537. package/cjs/ui/OpenchannelUserMessage.js +172 -164
  538. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  539. package/cjs/ui/PlaceHolder.js +108 -10
  540. package/cjs/ui/PlaceHolder.js.map +1 -1
  541. package/cjs/ui/PlaybackTime.js +16 -15
  542. package/cjs/ui/PlaybackTime.js.map +1 -1
  543. package/cjs/ui/ProgressBar.js +15 -13
  544. package/cjs/ui/ProgressBar.js.map +1 -1
  545. package/cjs/ui/QuoteMessage.js +41 -44
  546. package/cjs/ui/QuoteMessage.js.map +1 -1
  547. package/cjs/ui/QuoteMessageInput.js +45 -31
  548. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  549. package/cjs/ui/ReactionBadge.js +17 -13
  550. package/cjs/ui/ReactionBadge.js.map +1 -1
  551. package/cjs/ui/ReactionButton.js +19 -19
  552. package/cjs/ui/ReactionButton.js.map +1 -1
  553. package/cjs/ui/SortByRow.js +14 -14
  554. package/cjs/ui/SortByRow.js.map +1 -1
  555. package/cjs/ui/TextButton.js +21 -13
  556. package/cjs/ui/TextButton.js.map +1 -1
  557. package/cjs/ui/TextMessageItemBody.js +33 -31
  558. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  559. package/cjs/ui/ThreadReplies.js +21 -25
  560. package/cjs/ui/ThreadReplies.js.map +1 -1
  561. package/cjs/ui/ThumbnailMessageItemBody.js +37 -28
  562. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  563. package/cjs/ui/Toggle.js +85 -77
  564. package/cjs/ui/Toggle.js.map +1 -1
  565. package/cjs/ui/Tooltip.js +9 -8
  566. package/cjs/ui/Tooltip.js.map +1 -1
  567. package/cjs/ui/TooltipWrapper.js +18 -17
  568. package/cjs/ui/TooltipWrapper.js.map +1 -1
  569. package/cjs/ui/UnknownMessageItemBody.js +19 -20
  570. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  571. package/cjs/ui/UserListItem.js +80 -75
  572. package/cjs/ui/UserListItem.js.map +1 -1
  573. package/cjs/ui/UserProfile.js +28 -33
  574. package/cjs/ui/UserProfile.js.map +1 -1
  575. package/cjs/ui/VoiceMessageItemBody.js +49 -43
  576. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  577. package/cjs/ui/VoiceMessgeInput.js +8 -7
  578. package/cjs/ui/VoiceMessgeInput.js.map +1 -1
  579. package/cjs/ui/Word.js +29 -27
  580. package/cjs/ui/Word.js.map +1 -1
  581. package/cjs/{useHandleUploadFiles-b2fc56e5.js → useHandleUploadFiles-fbe6ad64.js} +114 -127
  582. package/cjs/useHandleUploadFiles-fbe6ad64.js.map +1 -0
  583. package/cjs/useLongPress-c1da8ba7.js +105 -0
  584. package/cjs/useLongPress-c1da8ba7.js.map +1 -0
  585. package/cjs/useSendMultipleFilesMessage-87e0ffa3.js +316 -0
  586. package/cjs/useSendMultipleFilesMessage-87e0ffa3.js.map +1 -0
  587. package/cjs/useSendbirdStateContext.js +8 -3
  588. package/cjs/useSendbirdStateContext.js.map +1 -1
  589. package/cjs/useStatefulFileInfoList-aa70b6b9.js +228 -0
  590. package/cjs/useStatefulFileInfoList-aa70b6b9.js.map +1 -0
  591. package/cjs/utils/message/getOutgoingMessageState.js +14 -16
  592. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  593. package/cjs/utils/message/isVoiceMessage.js +4 -4
  594. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  595. package/cjs/utils-0fac6ad1.js +27 -0
  596. package/cjs/utils-0fac6ad1.js.map +1 -0
  597. package/cjs/utils-180c6bc8.js +10 -0
  598. package/cjs/utils-180c6bc8.js.map +1 -0
  599. package/cjs/{utils-991911af.js → utils-46483130.js} +3 -3
  600. package/cjs/{utils-991911af.js.map → utils-46483130.js.map} +1 -1
  601. package/cjs/utils-55fc6797.js +170 -0
  602. package/cjs/utils-55fc6797.js.map +1 -0
  603. package/cjs/utils-851724e0.js +62 -0
  604. package/cjs/utils-851724e0.js.map +1 -0
  605. package/cjs/utils-e313131f.js +35 -0
  606. package/cjs/utils-e313131f.js.map +1 -0
  607. package/cjs/uuid-c74bbbb6.js +17 -0
  608. package/cjs/{uuid-b2806cf5.js.map → uuid-c74bbbb6.js.map} +1 -1
  609. package/cjs/withSendbird.js +16 -22
  610. package/cjs/withSendbird.js.map +1 -1
  611. package/{color-b7f211a8.js → color-1383d4ab.js} +5 -5
  612. package/{color-b7f211a8.js.map → color-1383d4ab.js.map} +1 -1
  613. package/compareIds-b56b02f1.js +16 -0
  614. package/compareIds-b56b02f1.js.map +1 -0
  615. package/{const-74ec9eb4.js → const-4bc3721f.js} +4 -4
  616. package/{const-74ec9eb4.js.map → const-4bc3721f.js.map} +1 -1
  617. package/const-e3326913.js +13 -0
  618. package/{const-711048c3.js.map → const-e3326913.js.map} +1 -1
  619. package/consts-7f4d53a3.js +4 -0
  620. package/consts-7f4d53a3.js.map +1 -0
  621. package/consts-833420ed.js +4 -0
  622. package/{consts-6ee24012.js.map → consts-833420ed.js.map} +1 -1
  623. package/consts-aa64aca8.js +30 -0
  624. package/{consts-691a3935.js.map → consts-aa64aca8.js.map} +1 -1
  625. package/consts-f0ba9b80.js +4 -0
  626. package/consts-f0ba9b80.js.map +1 -0
  627. package/context-ae47ac54.js +12 -0
  628. package/{context-b4c70964.js.map → context-ae47ac54.js.map} +1 -1
  629. package/dist/index.css +110 -95
  630. package/dist/index.css.map +1 -1
  631. package/handlers/OpenChannelHandler.js.map +1 -1
  632. package/handlers/SessionHandler.js.map +1 -1
  633. package/hooks/useModal.js +73 -0
  634. package/hooks/useModal.js.map +1 -0
  635. package/{index-aa520474.js → index-12103973.js} +2 -2
  636. package/{index-aa520474.js.map → index-12103973.js.map} +1 -1
  637. package/index-124a5766.js +298 -0
  638. package/{index-e15f6b6a.js.map → index-124a5766.js.map} +1 -1
  639. package/{index-13401b87.js → index-1432c287.js} +2 -4
  640. package/index-1432c287.js.map +1 -0
  641. package/{index-b22c4150.js → index-1969ccd8.js} +25 -28
  642. package/{index-b22c4150.js.map → index-1969ccd8.js.map} +1 -1
  643. package/index-3d508585.js +53 -0
  644. package/{index-ae7ef8cf.js.map → index-3d508585.js.map} +1 -1
  645. package/{index-8a01c364.js → index-40447645.js} +73 -81
  646. package/{index-8a01c364.js.map → index-40447645.js.map} +1 -1
  647. package/{index-c421b228.js → index-7a1085b6.js} +99 -109
  648. package/index-7a1085b6.js.map +1 -0
  649. package/index-89b3b8ba.js +362 -0
  650. package/index-89b3b8ba.js.map +1 -0
  651. package/index-8c72f0bd.js +182 -0
  652. package/{index-98138798.js.map → index-8c72f0bd.js.map} +1 -1
  653. package/index-942c5fa2.js +161 -0
  654. package/index-942c5fa2.js.map +1 -0
  655. package/index-c6095960.js +4 -0
  656. package/index-c6095960.js.map +1 -0
  657. package/index-c7ed4aef.js +13 -0
  658. package/index-c7ed4aef.js.map +1 -0
  659. package/{index-daa3ae67.js → index-c81fd6ec.js} +56 -193
  660. package/index-c81fd6ec.js.map +1 -0
  661. package/{index-7700a436.js → index-d3f61405.js} +10 -30
  662. package/index-d3f61405.js.map +1 -0
  663. package/{index-5cb32ab5.js → index-dc1827ea.js} +3 -12
  664. package/index-dc1827ea.js.map +1 -0
  665. package/{index-3530f4f6.js → index-ec0c048b.js} +39 -37
  666. package/{index-3530f4f6.js.map → index-ec0c048b.js.map} +1 -1
  667. package/{index-b25ffa7e.js → index-eec0ce47.js} +166 -154
  668. package/index-eec0ce47.js.map +1 -0
  669. package/index-fc1642cb.js +692 -0
  670. package/index-fc1642cb.js.map +1 -0
  671. package/index.d.ts +143 -79
  672. package/index.js +66 -63
  673. package/index.js.map +1 -1
  674. package/lame.all.js.map +1 -1
  675. package/package.json +3 -3
  676. package/{topics-5659403d.js → pubSub/topics.js} +4 -3
  677. package/pubSub/topics.js.map +1 -0
  678. package/{resolvedReplyType-1a128514.js → resolvedReplyType-0532593c.js} +1 -1
  679. package/{resolvedReplyType-1a128514.js.map → resolvedReplyType-0532593c.js.map} +1 -1
  680. package/sendbirdSelectors.js +381 -332
  681. package/sendbirdSelectors.js.map +1 -1
  682. package/stringFormatterUtils-444f6f4c.js +14 -0
  683. package/{stringFormatterUtils-dbad592d.js.map → stringFormatterUtils-444f6f4c.js.map} +1 -1
  684. package/{stringSet-2814bf17.js → stringSet-1106c8ec.js} +9 -2
  685. package/stringSet-1106c8ec.js.map +1 -0
  686. package/{tokenize-4b153552.js → tokenize-d17bf862.js} +56 -61
  687. package/{tokenize-4b153552.js.map → tokenize-d17bf862.js.map} +1 -1
  688. package/tslib.es6-0c779aab.js +97 -0
  689. package/tslib.es6-0c779aab.js.map +1 -0
  690. package/types-4ffc52f6.js +15 -0
  691. package/types-4ffc52f6.js.map +1 -0
  692. package/types-50e412d8.js +9 -0
  693. package/types-50e412d8.js.map +1 -0
  694. package/ui/Accordion.js +18 -19
  695. package/ui/Accordion.js.map +1 -1
  696. package/ui/AccordionGroup.js +11 -10
  697. package/ui/AccordionGroup.js.map +1 -1
  698. package/ui/AdminMessage.js +10 -10
  699. package/ui/AdminMessage.js.map +1 -1
  700. package/ui/Avatar.js +59 -55
  701. package/ui/Avatar.js.map +1 -1
  702. package/ui/Badge.js +15 -16
  703. package/ui/Badge.js.map +1 -1
  704. package/ui/BottomSheet.js +15 -17
  705. package/ui/BottomSheet.js.map +1 -1
  706. package/ui/Button.js +19 -26
  707. package/ui/Button.js.map +1 -1
  708. package/ui/ChannelAvatar.js +41 -38
  709. package/ui/ChannelAvatar.js.map +1 -1
  710. package/ui/Checkbox.js +10 -9
  711. package/ui/Checkbox.js.map +1 -1
  712. package/ui/ConnectionStatus.js +5 -7
  713. package/ui/ConnectionStatus.js.map +1 -1
  714. package/ui/ContextMenu.js +143 -144
  715. package/ui/ContextMenu.js.map +1 -1
  716. package/ui/DateSeparator.js +14 -12
  717. package/ui/DateSeparator.js.map +1 -1
  718. package/ui/EmojiReactions.js +207 -177
  719. package/ui/EmojiReactions.js.map +1 -1
  720. package/ui/FileMessageItemBody.js +23 -23
  721. package/ui/FileMessageItemBody.js.map +1 -1
  722. package/ui/FileViewer.js +14 -12
  723. package/ui/FileViewer.js.map +1 -1
  724. package/ui/Icon.js +2 -2
  725. package/ui/Icon.js.map +1 -1
  726. package/ui/IconButton.js +28 -20
  727. package/ui/IconButton.js.map +1 -1
  728. package/ui/ImageRenderer.js +84 -65
  729. package/ui/ImageRenderer.js.map +1 -1
  730. package/ui/Input.js +14 -16
  731. package/ui/Input.js.map +1 -1
  732. package/ui/Label.js +2 -2
  733. package/ui/LinkLabel.js +2 -2
  734. package/ui/LinkLabel.js.map +1 -1
  735. package/ui/Loader.js +12 -10
  736. package/ui/Loader.js.map +1 -1
  737. package/ui/MentionLabel.js +64 -60
  738. package/ui/MentionLabel.js.map +1 -1
  739. package/ui/MentionUserLabel.js +10 -10
  740. package/ui/MentionUserLabel.js.map +1 -1
  741. package/ui/MessageContent.js +186 -170
  742. package/ui/MessageContent.js.map +1 -1
  743. package/ui/MessageInput/hooks/usePaste.js +5 -4
  744. package/ui/MessageInput/hooks/usePaste.js.map +1 -1
  745. package/ui/MessageInput.js +48 -50
  746. package/ui/MessageInput.js.map +1 -1
  747. package/ui/MessageItemMenu.js +93 -72
  748. package/ui/MessageItemMenu.js.map +1 -1
  749. package/ui/MessageItemReactionMenu.js +64 -56
  750. package/ui/MessageItemReactionMenu.js.map +1 -1
  751. package/ui/MessageSearchFileItem.js +40 -49
  752. package/ui/MessageSearchFileItem.js.map +1 -1
  753. package/ui/MessageSearchItem.js +32 -40
  754. package/ui/MessageSearchItem.js.map +1 -1
  755. package/ui/MessageStatus.js +11 -11
  756. package/ui/Modal.js +57 -59
  757. package/ui/Modal.js.map +1 -1
  758. package/ui/MutedAvatarOverlay.js +10 -10
  759. package/ui/MutedAvatarOverlay.js.map +1 -1
  760. package/ui/OGMessageItemBody.js +47 -47
  761. package/ui/OGMessageItemBody.js.map +1 -1
  762. package/ui/OpenChannelAdminMessage.js +7 -8
  763. package/ui/OpenChannelAdminMessage.js.map +1 -1
  764. package/ui/OpenChannelAvatar.js +17 -18
  765. package/ui/OpenChannelAvatar.js.map +1 -1
  766. package/ui/OpenchannelConversationHeader.js +13 -17
  767. package/ui/OpenchannelConversationHeader.js.map +1 -1
  768. package/ui/OpenchannelFileMessage.js +147 -139
  769. package/ui/OpenchannelFileMessage.js.map +1 -1
  770. package/ui/OpenchannelOGMessage.js +185 -178
  771. package/ui/OpenchannelOGMessage.js.map +1 -1
  772. package/ui/OpenchannelThumbnailMessage.js +220 -213
  773. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  774. package/ui/OpenchannelUserMessage.js +172 -164
  775. package/ui/OpenchannelUserMessage.js.map +1 -1
  776. package/ui/PlaceHolder.js +106 -8
  777. package/ui/PlaceHolder.js.map +1 -1
  778. package/ui/PlaybackTime.js +16 -15
  779. package/ui/PlaybackTime.js.map +1 -1
  780. package/ui/ProgressBar.js +15 -13
  781. package/ui/ProgressBar.js.map +1 -1
  782. package/ui/QuoteMessage.js +41 -44
  783. package/ui/QuoteMessage.js.map +1 -1
  784. package/ui/QuoteMessageInput.js +45 -31
  785. package/ui/QuoteMessageInput.js.map +1 -1
  786. package/ui/ReactionBadge.js +17 -13
  787. package/ui/ReactionBadge.js.map +1 -1
  788. package/ui/ReactionButton.js +19 -19
  789. package/ui/ReactionButton.js.map +1 -1
  790. package/ui/SortByRow.js +14 -14
  791. package/ui/SortByRow.js.map +1 -1
  792. package/ui/TextButton.js +21 -13
  793. package/ui/TextButton.js.map +1 -1
  794. package/ui/TextMessageItemBody.js +33 -31
  795. package/ui/TextMessageItemBody.js.map +1 -1
  796. package/ui/ThreadReplies.js +21 -25
  797. package/ui/ThreadReplies.js.map +1 -1
  798. package/ui/ThumbnailMessageItemBody.js +37 -28
  799. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  800. package/ui/Toggle.js +86 -78
  801. package/ui/Toggle.js.map +1 -1
  802. package/ui/Tooltip.js +9 -8
  803. package/ui/Tooltip.js.map +1 -1
  804. package/ui/TooltipWrapper.js +18 -17
  805. package/ui/TooltipWrapper.js.map +1 -1
  806. package/ui/UnknownMessageItemBody.js +19 -20
  807. package/ui/UnknownMessageItemBody.js.map +1 -1
  808. package/ui/UserListItem.js +80 -75
  809. package/ui/UserListItem.js.map +1 -1
  810. package/ui/UserProfile.js +29 -34
  811. package/ui/UserProfile.js.map +1 -1
  812. package/ui/VoiceMessageItemBody.js +49 -43
  813. package/ui/VoiceMessageItemBody.js.map +1 -1
  814. package/ui/VoiceMessgeInput.js +8 -7
  815. package/ui/VoiceMessgeInput.js.map +1 -1
  816. package/ui/Word.js +29 -27
  817. package/ui/Word.js.map +1 -1
  818. package/{useHandleUploadFiles-406a6c9c.js → useHandleUploadFiles-33aff88e.js} +111 -124
  819. package/useHandleUploadFiles-33aff88e.js.map +1 -0
  820. package/useLongPress-322bb6a3.js +103 -0
  821. package/useLongPress-322bb6a3.js.map +1 -0
  822. package/useSendMultipleFilesMessage-4489a0f6.js +283 -0
  823. package/useSendMultipleFilesMessage-4489a0f6.js.map +1 -0
  824. package/useSendbirdStateContext.js +5 -3
  825. package/useSendbirdStateContext.js.map +1 -1
  826. package/useStatefulFileInfoList-dd95f949.js +219 -0
  827. package/useStatefulFileInfoList-dd95f949.js.map +1 -0
  828. package/utils/message/getOutgoingMessageState.js +8 -9
  829. package/utils/message/getOutgoingMessageState.js.map +1 -1
  830. package/utils/message/isVoiceMessage.js +4 -4
  831. package/utils/message/isVoiceMessage.js.map +1 -1
  832. package/{utils-7cc92ac2.js → utils-158c1683.js} +3 -3
  833. package/{utils-7cc92ac2.js.map → utils-158c1683.js.map} +1 -1
  834. package/utils-3660243c.js +25 -0
  835. package/utils-3660243c.js.map +1 -0
  836. package/utils-40040f8e.js +157 -0
  837. package/utils-40040f8e.js.map +1 -0
  838. package/utils-48a3ef27.js +31 -0
  839. package/utils-48a3ef27.js.map +1 -0
  840. package/utils-74c161a0.js +7 -0
  841. package/utils-74c161a0.js.map +1 -0
  842. package/utils-e98a7f8c.js +57 -0
  843. package/utils-e98a7f8c.js.map +1 -0
  844. package/uuid-3c77ef7b.js +15 -0
  845. package/{uuid-16373bba.js.map → uuid-3c77ef7b.js.map} +1 -1
  846. package/withSendbird.js +16 -22
  847. package/withSendbird.js.map +1 -1
  848. package/ChannelListProvider-1188e373.js +0 -1028
  849. package/ChannelListProvider-1188e373.js.map +0 -1
  850. package/ChannelProvider-9de00431.js +0 -1933
  851. package/ChannelProvider-9de00431.js.map +0 -1
  852. package/CreateChannelProvider-a2fad282.js +0 -44
  853. package/LocalizationContext-2463058b.js +0 -20
  854. package/MediaQueryContext-e3429d12.js +0 -87
  855. package/MediaQueryContext-e3429d12.js.map +0 -1
  856. package/MemberList-593867cb.js +0 -404
  857. package/OpenChannelProvider-3e4b8c8e.js +0 -1890
  858. package/RemoveMessageModal-9162aebe.js +0 -38
  859. package/RemoveMessageModal-9162aebe.js.map +0 -1
  860. package/ThreadProvider-9a3b145f.js +0 -1778
  861. package/ThreadProvider-9a3b145f.js.map +0 -1
  862. package/UserProfileContext-4ae968eb.js +0 -41
  863. package/UserProfileContext-4ae968eb.js.map +0 -1
  864. package/_rollupPluginBabelHelpers-50c9576f.js.map +0 -1
  865. package/cjs/ChannelListProvider-e55e6242.js +0 -1037
  866. package/cjs/ChannelListProvider-e55e6242.js.map +0 -1
  867. package/cjs/ChannelProvider-6fa73019.js +0 -1941
  868. package/cjs/ChannelProvider-6fa73019.js.map +0 -1
  869. package/cjs/CreateChannelProvider-8b8a557c.js +0 -52
  870. package/cjs/MediaQueryContext-73aac8cf.js +0 -94
  871. package/cjs/MediaQueryContext-73aac8cf.js.map +0 -1
  872. package/cjs/MemberList-26b8de48.js +0 -410
  873. package/cjs/OpenChannelListProvider-2e3ee48d.js +0 -439
  874. package/cjs/OpenChannelProvider-8577ea58.js +0 -1899
  875. package/cjs/RemoveMessageModal-dfeeb36a.js +0 -44
  876. package/cjs/RemoveMessageModal-dfeeb36a.js.map +0 -1
  877. package/cjs/ThreadProvider-8b0cf491.js +0 -1787
  878. package/cjs/ThreadProvider-8b0cf491.js.map +0 -1
  879. package/cjs/UserProfileContext-fa8d0383.js +0 -49
  880. package/cjs/UserProfileContext-fa8d0383.js.map +0 -1
  881. package/cjs/_rollupPluginBabelHelpers-83d7e84b.js.map +0 -1
  882. package/cjs/color-d83b77ac.js.map +0 -1
  883. package/cjs/compareIds-bef997cb.js.map +0 -1
  884. package/cjs/const-67ff9e34.js +0 -20
  885. package/cjs/consts-b018b1ed.js +0 -6
  886. package/cjs/consts-b018b1ed.js.map +0 -1
  887. package/cjs/consts-bf228385.js +0 -6
  888. package/cjs/consts-d3b53f23.js +0 -6
  889. package/cjs/index-11f9cc0f.js.map +0 -1
  890. package/cjs/index-1a9fdbb4.js +0 -368
  891. package/cjs/index-1a9fdbb4.js.map +0 -1
  892. package/cjs/index-1f6b30ea.js +0 -330
  893. package/cjs/index-2ab19f9b.js +0 -57
  894. package/cjs/index-4b5a006d.js +0 -139
  895. package/cjs/index-4b5a006d.js.map +0 -1
  896. package/cjs/index-4eb7e2b5.js.map +0 -1
  897. package/cjs/index-56a25735.js +0 -171
  898. package/cjs/index-56a25735.js.map +0 -1
  899. package/cjs/index-6ab9a40d.js +0 -202
  900. package/cjs/index-7f41c4b6.js +0 -118
  901. package/cjs/index-7f41c4b6.js.map +0 -1
  902. package/cjs/index-81baccd0.js.map +0 -1
  903. package/cjs/index-857630c5.js.map +0 -1
  904. package/cjs/index-8ec12d1d.js +0 -164
  905. package/cjs/index-8ec12d1d.js.map +0 -1
  906. package/cjs/index-c9b003b3.js.map +0 -1
  907. package/cjs/index-cbcacbee.js +0 -9
  908. package/cjs/index-cbcacbee.js.map +0 -1
  909. package/cjs/index-d04f312e.js.map +0 -1
  910. package/cjs/index-e9ac5ae1.js +0 -58
  911. package/cjs/index-e9ac5ae1.js.map +0 -1
  912. package/cjs/index-fbe9cc73.js +0 -647
  913. package/cjs/index-fbe9cc73.js.map +0 -1
  914. package/cjs/index.module-a24e9cd7.js +0 -6
  915. package/cjs/index.module-a24e9cd7.js.map +0 -1
  916. package/cjs/stringFormatterUtils-8d6592ca.js +0 -16
  917. package/cjs/stringSet-d00535a5.js.map +0 -1
  918. package/cjs/topics-adde627b.js.map +0 -1
  919. package/cjs/types-0b5148cb.js +0 -17
  920. package/cjs/types-0b5148cb.js.map +0 -1
  921. package/cjs/useHandleUploadFiles-b2fc56e5.js.map +0 -1
  922. package/cjs/useLongPress-1c0f4696.js +0 -87
  923. package/cjs/useLongPress-1c0f4696.js.map +0 -1
  924. package/cjs/useSendMultipleFilesMessage-81cdc9d0.js +0 -109
  925. package/cjs/useSendMultipleFilesMessage-81cdc9d0.js.map +0 -1
  926. package/cjs/utils-418b4438.js +0 -62
  927. package/cjs/utils-418b4438.js.map +0 -1
  928. package/cjs/utils-5bfb4516.js +0 -35
  929. package/cjs/utils-5bfb4516.js.map +0 -1
  930. package/cjs/utils-68aa6bf6.js +0 -345
  931. package/cjs/utils-68aa6bf6.js.map +0 -1
  932. package/cjs/utils-b34d4e2c.js +0 -31
  933. package/cjs/utils-b34d4e2c.js.map +0 -1
  934. package/cjs/utils-c47c68b1.js +0 -6
  935. package/cjs/utils-c47c68b1.js.map +0 -1
  936. package/cjs/uuid-b2806cf5.js +0 -15
  937. package/compareIds-8ed6e36a.js +0 -15
  938. package/compareIds-8ed6e36a.js.map +0 -1
  939. package/const-711048c3.js +0 -13
  940. package/consts-675764c9.js +0 -4
  941. package/consts-675764c9.js.map +0 -1
  942. package/consts-691a3935.js +0 -37
  943. package/consts-6ee24012.js +0 -4
  944. package/consts-eb77e905.js +0 -4
  945. package/consts-eb77e905.js.map +0 -1
  946. package/context-b4c70964.js +0 -13
  947. package/index-128523eb.js +0 -110
  948. package/index-128523eb.js.map +0 -1
  949. package/index-13401b87.js.map +0 -1
  950. package/index-5cb32ab5.js.map +0 -1
  951. package/index-5d6a0f12.js +0 -598
  952. package/index-5d6a0f12.js.map +0 -1
  953. package/index-60a7bf91.js +0 -164
  954. package/index-60a7bf91.js.map +0 -1
  955. package/index-7700a436.js.map +0 -1
  956. package/index-7946293f.js +0 -152
  957. package/index-7946293f.js.map +0 -1
  958. package/index-7b7478f5.js +0 -132
  959. package/index-7b7478f5.js.map +0 -1
  960. package/index-82178c6a.js +0 -361
  961. package/index-82178c6a.js.map +0 -1
  962. package/index-98138798.js +0 -187
  963. package/index-98887e8d.js +0 -7
  964. package/index-98887e8d.js.map +0 -1
  965. package/index-ae7ef8cf.js +0 -51
  966. package/index-b25ffa7e.js.map +0 -1
  967. package/index-c421b228.js.map +0 -1
  968. package/index-d99155f7.js +0 -51
  969. package/index-d99155f7.js.map +0 -1
  970. package/index-daa3ae67.js.map +0 -1
  971. package/index-e15f6b6a.js +0 -320
  972. package/index.module-60af77d3.js +0 -4
  973. package/index.module-60af77d3.js.map +0 -1
  974. package/stringFormatterUtils-dbad592d.js +0 -14
  975. package/stringSet-2814bf17.js.map +0 -1
  976. package/topics-5659403d.js.map +0 -1
  977. package/types-89092633.js +0 -15
  978. package/types-89092633.js.map +0 -1
  979. package/useHandleUploadFiles-406a6c9c.js.map +0 -1
  980. package/useLongPress-5e1ad951.js +0 -85
  981. package/useLongPress-5e1ad951.js.map +0 -1
  982. package/useSendMultipleFilesMessage-a3a2c84b.js +0 -107
  983. package/useSendMultipleFilesMessage-a3a2c84b.js.map +0 -1
  984. package/utils-0c22998a.js +0 -306
  985. package/utils-0c22998a.js.map +0 -1
  986. package/utils-407da489.js +0 -4
  987. package/utils-407da489.js.map +0 -1
  988. package/utils-b97d5113.js +0 -57
  989. package/utils-b97d5113.js.map +0 -1
  990. package/utils-cae84d8a.js +0 -29
  991. package/utils-cae84d8a.js.map +0 -1
  992. package/utils-ebf008e2.js +0 -31
  993. package/utils-ebf008e2.js.map +0 -1
  994. package/uuid-16373bba.js +0 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelProvider-7f6fd1f8.js","sources":["../src/utils/getIsReactionEnabled.ts","../src/modules/Channel/context/dux/initialState.ts","../src/modules/Channel/context/dux/reducers.ts","../src/modules/Channel/context/hooks/useHandleChannelEvents.ts","../src/modules/Channel/context/hooks/useGetChannel.js","../src/modules/Channel/context/hooks/useInitialMessagesFetch.ts","../src/modules/Channel/context/hooks/useReconnectOnIdle.ts","../src/modules/Channel/context/hooks/useHandleReconnect.ts","../src/modules/Channel/context/hooks/useScrollCallback.ts","../src/modules/Channel/context/hooks/useScrollDownCallback.js","../src/modules/Channel/context/hooks/useDeleteMessageCallback.js","../src/modules/Channel/context/hooks/useUpdateMessageCallback.js","../src/modules/Channel/context/hooks/useResendMessageCallback.js","../src/modules/Channel/context/hooks/useSendMessageCallback.js","../src/modules/Channel/context/hooks/useSendFileMessageCallback.js","../src/modules/Channel/context/hooks/useToggleReactionCallback.js","../src/modules/Channel/context/hooks/useScrollToMessage.ts","../src/modules/Channel/context/hooks/useSendVoiceMessageCallback.ts","../src/modules/Channel/context/hooks/useHandleChannelPubsubEvents.ts","../src/modules/Channel/context/ChannelProvider.tsx"],"sourcesContent":["/**\n * This function helps consider the every condition\n * related to enabling emoji reaction feature.\n */\n\nexport interface IsReactionEnabledProps {\n isBroadcast?: boolean;\n isSuper?: boolean;\n globalLevel?: boolean;\n moduleLevel?: boolean;\n}\n\nexport function getIsReactionEnabled({\n isBroadcast = false,\n isSuper = false,\n globalLevel = true,\n moduleLevel,\n}: IsReactionEnabledProps): boolean {\n return !(isBroadcast || isSuper) && (moduleLevel ?? globalLevel);\n}\n","import { CoreMessageType, SendableMessageType } from '../../../../utils';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { EmojiContainer } from '@sendbird/chat';\nimport type { MessageListParams as MessageListParamsInternal } from '../ChannelProvider';\n\nexport interface ChannelInitialStateType {\n allMessages: (SendableMessageType | CoreMessageType)[];\n localMessages: (SendableMessageType | CoreMessageType)[];\n loading: boolean;\n initialized: boolean;\n unreadSince: string;\n isInvalid: boolean;\n currentGroupChannel: GroupChannel | null;\n hasMorePrev: boolean;\n oldestMessageTimeStamp: number;\n hasMoreNext: boolean;\n latestMessageTimeStamp: number;\n emojiContainer: EmojiContainer;\n readStatus: any;\n messageListParams: null | MessageListParamsInternal;\n}\n\nconst initialState: ChannelInitialStateType = {\n initialized: false,\n loading: true,\n allMessages: [],\n /**\n * localMessages: pending & failed messages\n */\n localMessages: [],\n currentGroupChannel: null,\n // for scrollup\n hasMorePrev: false,\n oldestMessageTimeStamp: 0,\n // for scroll down\n // onScrollDownCallback is added for navigation to different timestamps on messageSearch\n // hasMorePrev, onScrollCallback -> scroll up(default behavior)\n // hasMoreNext, onScrollDownCallback -> scroll down\n hasMoreNext: false,\n latestMessageTimeStamp: 0,\n emojiContainer: { emojiCategories: [], emojiHash: '' },\n unreadSince: null,\n /**\n * unreadSince is a formatted date information string\n * It's used only for the {unreadSince && <UnreadCount time={unreadSince} />}\n */\n isInvalid: false,\n readStatus: null,\n messageListParams: null,\n};\n\nexport default initialState;\n","import format from 'date-fns/format';\nimport {\n MessageListParams,\n MultipleFilesMessage,\n SendingStatus,\n} from '@sendbird/chat/message';\nimport { match, P } from 'ts-pattern';\n\nimport * as channelActions from './actionTypes';\nimport type { ChannelActionTypes } from './actionTypes';\nimport compareIds from '../../../../utils/compareIds';\nimport { PREV_RESULT_SIZE, NEXT_RESULT_SIZE } from '../const';\nimport { passUnsuccessfullMessages, mergeAndSortMessages } from '../utils';\nimport {\n CoreMessageType,\n filterMessageListParams,\n isSendableMessage,\n} from '../../../../utils';\nimport { ChannelInitialStateType } from './initialState';\n\nconst getOldestMessageTimeStamp = (messages: CoreMessageType[] = []) => {\n const oldestMessage = messages[0];\n return (oldestMessage && oldestMessage.createdAt) || null;\n};\nconst getLatestMessageTimeStamp = (messages: CoreMessageType[] = []) => {\n const latestMessage = messages[messages.length - 1];\n return (latestMessage && latestMessage.createdAt) || null;\n};\n\nfunction hasReqId<T extends object>(\n message: T,\n): message is T & { reqId: string } {\n return 'reqId' in message;\n}\n\nexport default function channelReducer(\n state: ChannelInitialStateType,\n action: ChannelActionTypes,\n): ChannelInitialStateType {\n return match(action)\n .with({ type: channelActions.RESET_MESSAGES }, () => {\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMorePrev`\n // the onScroll gets called twice, setting hasMorePrev false prevents this\n hasMorePrev: false,\n hasMoreNext: false,\n allMessages: [],\n };\n })\n .with({ type: channelActions.FETCH_INITIAL_MESSAGES_START }, () => {\n return {\n ...state,\n loading: true,\n allMessages: state.allMessages.filter((m) => isSendableMessage(m)\n ? m.sendingStatus !== SendingStatus.SUCCEEDED\n : true,\n ),\n };\n })\n .with({ type: channelActions.FETCH_INITIAL_MESSAGES_SUCCESS }, (action) => {\n const { currentGroupChannel, messages } = action.payload;\n if (!(currentGroupChannel?.url === state.currentGroupChannel?.url)) {\n return state;\n }\n const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);\n const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMorePrev: true,\n hasMoreNext: true,\n oldestMessageTimeStamp,\n latestMessageTimeStamp,\n allMessages: [...messages],\n };\n })\n .with({ type: channelActions.FETCH_PREV_MESSAGES_SUCCESS }, (action) => {\n const { currentGroupChannel, messages } = action.payload;\n if (!(currentGroupChannel?.url === state.currentGroupChannel?.url)) {\n return state;\n }\n const hasMorePrev = (messages?.length ?? 0)\n >= (state?.messageListParams?.prevResultSize ?? PREV_RESULT_SIZE) + 1;\n const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);\n\n // Remove duplicated messages\n const duplicatedMessageIds = [];\n const updatedOldMessages = state.allMessages.map((msg) => {\n const duplicatedMessage = messages.find(({ messageId }) => compareIds(messageId, msg.messageId),\n );\n if (!duplicatedMessage) {\n return msg;\n }\n duplicatedMessageIds.push(duplicatedMessage.messageId);\n return duplicatedMessage.updatedAt > msg.updatedAt\n ? duplicatedMessage\n : msg;\n });\n const filteredNewMessages = duplicatedMessageIds.length > 0\n ? messages.filter(\n (msg) => !duplicatedMessageIds.find((messageId) => compareIds(messageId, msg.messageId),\n ),\n )\n : messages;\n\n return {\n ...state,\n hasMorePrev,\n oldestMessageTimeStamp,\n allMessages: [...filteredNewMessages, ...updatedOldMessages],\n };\n })\n .with({ type: channelActions.FETCH_NEXT_MESSAGES_SUCCESS }, (action) => {\n const { currentGroupChannel, messages } = action.payload;\n if (!(currentGroupChannel?.url === state.currentGroupChannel?.url)) {\n return state;\n }\n const hasMoreNext = (messages?.length ?? 0)\n === (state?.messageListParams?.nextResultSize ?? NEXT_RESULT_SIZE) + 1;\n const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);\n\n // sort ~\n const sortedMessages = mergeAndSortMessages(state.allMessages, messages);\n\n return {\n ...state,\n hasMoreNext,\n latestMessageTimeStamp,\n allMessages: sortedMessages,\n };\n })\n .with(\n {\n type: P.union(\n channelActions.FETCH_INITIAL_MESSAGES_FAILURE,\n channelActions.FETCH_PREV_MESSAGES_FAILURE,\n channelActions.FETCH_NEXT_MESSAGES_FAILURE,\n ),\n },\n (action) => {\n const { currentGroupChannel } = action.payload;\n if (currentGroupChannel?.url !== state?.currentGroupChannel?.url) {\n return state;\n }\n return {\n ...state,\n loading: false,\n initialized: false,\n allMessages: [],\n hasMorePrev: false,\n hasMoreNext: false,\n oldestMessageTimeStamp: null,\n latestMessageTimeStamp: null,\n };\n },\n )\n .with({ type: channelActions.SEND_MESSAGE_START }, (action) => {\n // Message should not be spread here\n // it will loose some methods like `isUserMessage`\n return {\n ...state,\n localMessages: [...state.localMessages, action.payload],\n };\n })\n .with({ type: channelActions.SEND_MESSAGE_SUCCESS }, (action) => {\n const message = action.payload;\n const filteredMessages = state.allMessages.filter(\n (m) => hasReqId(m) && m?.reqId !== message?.reqId,\n );\n // [Policy] Pending messages and failed messages\n // must always be at the end of the message list\n return {\n ...state,\n allMessages: [...filteredMessages, message],\n localMessages: state.localMessages.filter(\n (m) => hasReqId(m) && m?.reqId !== message?.reqId,\n ),\n };\n })\n .with({ type: channelActions.SEND_MESSAGE_FAILURE }, (action) => {\n // @ts-ignore\n action.payload.failed = true;\n return {\n ...state,\n localMessages: state.localMessages.map((m) => compareIds(hasReqId(m) && m.reqId, action.payload.reqId)\n ? action.payload\n : m,\n ),\n };\n })\n .with({ type: channelActions.SET_CURRENT_CHANNEL }, (action) => {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n })\n .with({ type: channelActions.SET_CHANNEL_INVALID }, () => {\n return {\n ...state,\n currentGroupChannel: null,\n isInvalid: true,\n };\n })\n .with({ type: channelActions.ON_MESSAGE_RECEIVED }, (action) => {\n const { channel, message } = action.payload;\n const { members } = channel;\n const { sender } = message;\n const { currentGroupChannel, unreadSince } = state;\n\n const currentGroupChannelUrl = currentGroupChannel?.url;\n\n if (!compareIds(channel?.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (\n state.allMessages.some((msg) => msg.messageId === message.messageId)\n ) {\n return state;\n }\n // Filter by userFilledQuery\n if (\n state.messageListParams\n && !filterMessageListParams(\n state.messageListParams as MessageListParams,\n message,\n )\n ) {\n return state;\n }\n\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n\n // Update members when sender profileUrl, nickname, friendName has been changed\n const senderMember = members?.find((m) => m?.userId === sender?.userId);\n if (\n senderMember?.profileUrl !== sender?.profileUrl\n || senderMember?.friendName !== sender?.friendName\n || senderMember?.nickname !== sender?.nickname\n ) {\n // @ts-ignore\n channel.members = members.map((member) => {\n if (member.userId === sender.userId) {\n return sender;\n }\n return member;\n });\n }\n return {\n ...state,\n currentGroupChannel: channel,\n unreadSince: state?.unreadSince\n ? unreadSince\n : format(new Date(), 'p MMM dd'),\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n })\n .with({ type: channelActions.ON_MESSAGE_UPDATED }, (action) => {\n const { channel, message } = action.payload;\n const currentGroupChannelUrl = state?.currentGroupChannel?.url || '';\n if (!compareIds(channel?.url, currentGroupChannelUrl)) {\n return state; // Ignore event when it is not for the current channel\n }\n if (\n state.messageListParams\n && !filterMessageListParams(\n state.messageListParams as MessageListParams,\n message,\n )\n ) {\n // Delete the message if it doesn't match to the params anymore\n return {\n ...state,\n allMessages: state.allMessages.filter(\n (m) => !compareIds(m.messageId, message?.messageId),\n ),\n };\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, message.messageId)) {\n return message;\n }\n if (compareIds(m.parentMessageId, message.messageId)) {\n m.parentMessage = message; // eslint-disable-line no-param-reassign\n }\n return m;\n }),\n };\n })\n .with({ type: channelActions.ON_MESSAGE_THREAD_INFO_UPDATED }, (action) => {\n const { channel, event } = action.payload;\n const { channelUrl, threadInfo, targetMessageId } = event;\n const currentGroupChannelUrl = state?.currentGroupChannel?.url || '';\n if (\n !compareIds(channel?.url, currentGroupChannelUrl)\n || !compareIds(channel?.url, channelUrl)\n ) {\n return state; // Ignore event when it is not for the current channel\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, targetMessageId)) {\n // eslint-disable-next-line no-param-reassign\n m.threadInfo = threadInfo; // Upsert threadInfo to the target message\n }\n return m;\n }),\n };\n })\n .with({ type: channelActions.RESEND_MESSAGE_START }, (action) => {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => compareIds(hasReqId(m) && m.reqId, action.payload.reqId)\n ? action.payload\n : m,\n ),\n };\n })\n .with({ type: channelActions.MARK_AS_READ }, (action) => {\n if (state.currentGroupChannel?.url !== action.payload?.channel?.url) {\n return state;\n }\n return {\n ...state,\n unreadSince: null,\n };\n })\n .with({ type: channelActions.ON_MESSAGE_DELETED }, (action) => {\n return {\n ...state,\n allMessages: state.allMessages.filter(\n (m) => !compareIds(m.messageId, action.payload),\n ),\n };\n })\n .with({ type: channelActions.ON_MESSAGE_DELETED_BY_REQ_ID }, (action) => {\n return {\n ...state,\n localMessages: state.localMessages.filter(\n (m) => !compareIds(hasReqId(m) && m.reqId, action.payload),\n ),\n };\n })\n .with({ type: channelActions.SET_EMOJI_CONTAINER }, (action) => {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n })\n .with({ type: channelActions.ON_REACTION_UPDATED }, (action) => {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (\n m.applyReactionEvent\n && typeof m.applyReactionEvent === 'function'\n ) {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n })\n .with({ type: channelActions.MESSAGE_LIST_PARAMS_CHANGED }, (action) => {\n return {\n ...state,\n messageListParams: action.payload,\n };\n })\n .with({ type: channelActions.ON_FILE_INFO_UPLOADED }, (action) => {\n const { channelUrl, requestId, index, uploadableFileInfo, error } = action.payload;\n if (!compareIds(channelUrl, state?.currentGroupChannel?.url)) {\n return state;\n }\n /**\n * We don't have to do anything here because\n * onFailed() will be called so handle error there instead.\n */\n if (error) return state;\n const { localMessages } = state;\n const messageToUpdate = localMessages.find((message) => compareIds(hasReqId(message) && message.reqId, requestId),\n );\n const fileInfoList = (messageToUpdate as MultipleFilesMessage)\n .messageParams?.fileInfoList;\n if (Array.isArray(fileInfoList)) {\n fileInfoList[index] = uploadableFileInfo;\n }\n return {\n ...state,\n localMessages,\n };\n })\n .otherwise(() => state);\n}\n","import { useEffect } from 'react';\nimport { GroupChannel, GroupChannelHandler, SendbirdGroupChat } from '@sendbird/chat/groupChannel';\n\nimport { scrollIntoLast } from '../utils';\n\nimport { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport uuidv4 from '../../../../utils/uuid';\nimport compareIds from '../../../../utils/compareIds';\nimport * as messageActions from '../dux/actionTypes';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { SendableMessageType } from '../../../../utils';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\ninterface DynamicParams {\n sdkInit: boolean;\n currentUserId: string;\n currentGroupChannel: GroupChannel;\n disableMarkAsRead: boolean;\n}\ninterface StaticParams {\n sdk: SendbirdGroupChat;\n logger: Logger;\n scrollRef: React.RefObject<HTMLDivElement>;\n setQuoteMessage: React.Dispatch<React.SetStateAction<SendableMessageType>>;\n messagesDispatcher: CustomUseReducerDispatcher;\n}\n\nconst DELIVERY_RECIPT = 'delivery_receipt';\n\nfunction useHandleChannelEvents({\n sdkInit,\n currentUserId,\n currentGroupChannel,\n disableMarkAsRead,\n}: DynamicParams, {\n sdk,\n logger,\n scrollRef,\n setQuoteMessage,\n messagesDispatcher,\n}: StaticParams): void {\n const store = useSendbirdStateContext();\n const {\n markAsReadScheduler,\n markAsDeliveredScheduler,\n disableMarkAsDelivered,\n } = store.config;\n const canSetMarkAsDelivered = store.stores.sdkStore.sdk?.appInfo?.premiumFeatureList\n ?.find((feature) => (feature === DELIVERY_RECIPT));\n\n useEffect(() => {\n const channelUrl = currentGroupChannel?.url;\n const channelHandlerId = uuidv4();\n if (channelUrl && sdkInit) {\n const channelHandler: GroupChannelHandler = {\n onMessageReceived: (channel, message) => {\n if (compareIds(channel?.url, channelUrl)) {\n let scrollToEnd = false;\n try {\n const { current } = scrollRef;\n scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;\n // 10 is a buffer\n } catch (error) {\n //\n }\n\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n if (scrollToEnd\n && document.getElementById('sendbird-dropdown-portal')?.childElementCount === 0\n && document.getElementById('sendbird-emoji-list-portal')?.childElementCount === 0\n ) {\n // and !openContextMenu\n try {\n setTimeout(() => {\n scrollIntoLast(0, scrollRef);\n });\n if (!disableMarkAsRead) {\n markAsReadScheduler.push(currentGroupChannel);\n }\n if (canSetMarkAsDelivered && !disableMarkAsDelivered) {\n markAsDeliveredScheduler.push(currentGroupChannel);\n }\n } catch (error) {\n logger.warning('Channel | onMessageReceived | scroll to end failed');\n }\n }\n }\n },\n onUnreadMemberStatusUpdated: (channel) => {\n logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);\n if (compareIds(channel?.url, channelUrl)) {\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n // before(onDeliveryReceiptUpdated)\n onUndeliveredMemberStatusUpdated: (channel) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onMessageUpdated: (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n },\n onThreadInfoUpdated: (channel, threadInfoUpdateEvent) => {\n logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', { channel, threadInfoUpdateEvent });\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_THREAD_INFO_UPDATED,\n payload: { channel, event: threadInfoUpdateEvent },\n });\n },\n onMessageDeleted: (channel, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', { channel, messageId });\n setQuoteMessage(null);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n },\n onReactionUpdated: (channel, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', { channel, reactionEvent });\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n },\n onChannelChanged: (channel) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onChannelFrozen: (channel) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onChannelUnfrozen: (channel) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onUserMuted: (channel, user) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', { channel, user });\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onUserUnmuted: (channel, user) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', { channel, user });\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onUserBanned: (channel, user) => {\n if (compareIds(channel?.url, channelUrl) && user?.userId === sdk?.currentUser?.userId) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', { channel, user });\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: null,\n });\n }\n },\n onOperatorUpdated: (channel, users) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', { channel, users });\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n }\n },\n onUserLeft: (channel, user) => {\n if (compareIds(channel?.url, channelUrl)) {\n logger.info('Channel | useHandleChannelEvents: onUserLeft', { channel, user });\n if (user?.userId === currentUserId) {\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: null,\n });\n }\n }\n },\n };\n logger.info('Channel | useHandleChannelEvents: Setup event handler', { channelHandlerId, channelHandler });\n // Add this group channel handler to the Sendbird chat instance\n sdk.groupChannel?.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));\n }\n return () => {\n if (sdk?.groupChannel?.removeGroupChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);\n sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);\n } else if (sdk?.groupChannel) {\n logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');\n }\n };\n }, [currentGroupChannel?.url, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit, disableMarkAsRead }, {\n messagesDispatcher,\n sdk,\n logger,\n markAsReadScheduler,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.groupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.groupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n if (!disableMarkAsRead) {\n markAsReadScheduler.push(groupChannel);\n }\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji().then((emojiContainer_) => {\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n }).catch((err) => {\n logger.error('Channel: Getting emojis failed', err);\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import React, { useEffect } from 'react';\nimport { MessageListParams, ReplyType } from '@sendbird/chat/message';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { PREV_RESULT_SIZE, NEXT_RESULT_SIZE } from '../const';\nimport { CoreMessageType, isMultipleFilesMessage } from '../../../../utils';\nimport { MessageListParams as MessageListParamsInternal } from '../ChannelProvider';\nimport { ReplyType as ReplyTypeInternal } from '../../../../types';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { CustomUseReducerDispatcher } from '../../../../lib/SendbirdState';\nimport { LoggerInterface } from '../../../../lib/Logger';\n\ntype UseInitialMessagesFetchOptions = {\n currentGroupChannel: GroupChannel;\n initialTimeStamp: number;\n userFilledMessageListQuery: MessageListParamsInternal;\n replyType: ReplyTypeInternal;\n setIsScrolled: (val: boolean) => void;\n};\n\ntype UseInitialMessagesFetchParams = {\n logger: LoggerInterface\n messagesDispatcher: CustomUseReducerDispatcher;\n scrollRef: React.RefObject<HTMLElement>;\n};\n\nfunction useInitialMessagesFetch(\n {\n currentGroupChannel,\n initialTimeStamp,\n userFilledMessageListQuery,\n replyType,\n setIsScrolled,\n }: UseInitialMessagesFetchOptions,\n { logger, scrollRef, messagesDispatcher }: UseInitialMessagesFetchParams,\n) {\n const channelUrl = currentGroupChannel?.url;\n\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n setIsScrolled(false);\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n payload: null,\n });\n\n if (currentGroupChannel && currentGroupChannel?.getMessagesByTimestamp) {\n const messageListParams: MessageListParamsInternal = {\n prevResultSize: PREV_RESULT_SIZE,\n isInclusive: true,\n includeReactions: true,\n includeMetaArray: true,\n };\n if (initialTimeStamp) {\n messageListParams.nextResultSize = NEXT_RESULT_SIZE;\n }\n if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {\n messageListParams.includeThreadInfo = true;\n messageListParams.includeParentMessageInfo = true;\n messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n if (\n (replyType\n && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD'))\n || userFilledMessageListQuery\n ) {\n logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);\n messagesDispatcher({\n type: messageActionTypes.MESSAGE_LIST_PARAMS_CHANGED,\n payload: messageListParams,\n });\n }\n\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.FETCH_INITIAL_MESSAGES_START,\n payload: null,\n });\n\n let multipleFilesMessageCount = 0;\n currentGroupChannel\n .getMessagesByTimestamp(\n initialTimeStamp || new Date().getTime(),\n messageListParams as MessageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_INITIAL_MESSAGES_SUCCESS,\n payload: {\n currentGroupChannel,\n messages,\n },\n });\n multipleFilesMessageCount = messages.filter((message) => isMultipleFilesMessage(message as CoreMessageType),\n ).length;\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.FETCH_INITIAL_MESSAGES_FAILURE,\n payload: { currentGroupChannel },\n });\n })\n .finally(() => {\n if (!initialTimeStamp) {\n setTimeout(\n () => utils.scrollIntoLast(0, scrollRef, setIsScrolled),\n /**\n * Rendering MFM takes long time so we need this.\n * But later we should find better solution.\n */\n Math.min(multipleFilesMessageCount * 100, 1000),\n );\n } else {\n setTimeout(() => {\n utils.scrollToRenderedMessage(\n scrollRef,\n initialTimeStamp,\n setIsScrolled,\n );\n }, 500);\n }\n });\n }\n }, [channelUrl, userFilledMessageListQuery, initialTimeStamp]);\n /**\n * Note - useEffect(() => {}, [currentGroupChannel])\n * was buggy, that is why we did\n * const channelUrl = currentGroupChannel && currentGroupChannel.url;\n * useEffect(() => {}, [channelUrl])\n * Again, this hook is supposed to execute when currentGroupChannel changes\n * The 'channelUrl' here is not the same memory reference from Conversation.props\n */\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect, useState } from 'react';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\n\nfunction useReconnectOnIdle(isOnline: boolean, currentGroupChannel: GroupChannel, reconnectOnIdle = true)\n :{ shouldReconnect: boolean }\n{\n const [isTabHidden, setIsTabHidden] = useState<boolean>(false);\n const wasOffline = !isOnline;\n\n useEffect(() => {\n const handleVisibilityChange = () => {\n if (reconnectOnIdle) {\n setIsTabHidden(document.hidden);\n }\n };\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, [reconnectOnIdle, document.hidden]);\n\n const shouldReconnect = wasOffline && currentGroupChannel?.url != null && !isTabHidden;\n return { shouldReconnect };\n}\n\nexport default useReconnectOnIdle;\n","import { useEffect } from 'react';\n\nimport type { GroupChannel, SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport { MessageListParams, ReplyType } from '@sendbird/chat/message';\nimport * as utils from '../utils';\nimport { PREV_RESULT_SIZE, NEXT_RESULT_SIZE } from '../const';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { Logger } from '../../../../lib/SendbirdState';\nimport { MarkAsReadSchedulerType } from '../../../../lib/hooks/useMarkAsReadScheduler';\nimport useReconnectOnIdle from './useReconnectOnIdle';\n\ninterface DynamicParams {\n isOnline: boolean;\n replyType?: string;\n disableMarkAsRead: boolean;\n reconnectOnIdle: boolean;\n}\n\ninterface StaticParams {\n logger: Logger;\n sdk: SendbirdGroupChat;\n currentGroupChannel: GroupChannel;\n scrollRef: React.RefObject<HTMLDivElement>;\n markAsReadScheduler: MarkAsReadSchedulerType;\n messagesDispatcher: (props: { type: string, payload: any }) => void;\n userFilledMessageListQuery?: Record<string, any>;\n}\n\nfunction useHandleReconnect(\n { isOnline, replyType, disableMarkAsRead, reconnectOnIdle }: DynamicParams,\n {\n logger,\n sdk,\n scrollRef,\n currentGroupChannel,\n messagesDispatcher,\n markAsReadScheduler,\n userFilledMessageListQuery,\n }: StaticParams,\n): void {\n const { shouldReconnect } = useReconnectOnIdle(isOnline, currentGroupChannel, reconnectOnIdle);\n\n useEffect(() => {\n return () => {\n // state changed from offline to online AND tab is visible\n if (shouldReconnect) {\n logger.info('Refreshing conversation state');\n const isReactionEnabled = sdk?.appInfo?.useReaction || false;\n\n const messageListParams: MessageListParams = {\n prevResultSize: PREV_RESULT_SIZE,\n isInclusive: true,\n includeReactions: isReactionEnabled,\n nextResultSize: NEXT_RESULT_SIZE,\n };\n if (replyType && replyType === 'QUOTE_REPLY') {\n messageListParams.includeThreadInfo = true;\n messageListParams.includeParentMessageInfo = true;\n messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.FETCH_INITIAL_MESSAGES_START,\n payload: null,\n });\n\n sdk?.groupChannel?.getChannel(currentGroupChannel?.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_INITIAL_MESSAGES_SUCCESS,\n payload: {\n currentGroupChannel,\n messages,\n },\n });\n setTimeout(() => utils.scrollIntoLast(0, scrollRef));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.FETCH_INITIAL_MESSAGES_FAILURE,\n payload: { currentGroupChannel },\n });\n });\n if (!disableMarkAsRead) {\n markAsReadScheduler.push(currentGroupChannel);\n }\n });\n }\n };\n }, [shouldReconnect, replyType]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\nimport { ReplyType, MessageListParams } from '@sendbird/chat/message';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { ReplyType as ReplyTypeInternal } from '../../../../types';\nimport { PREV_RESULT_SIZE } from '../const';\nimport { GroupChannel, SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport { CustomUseReducerDispatcher } from '../../../../lib/SendbirdState';\nimport { MessageListParams as MessageListParamsInternal } from '../ChannelProvider';\nimport { LoggerInterface } from '../../../../lib/Logger';\n\ntype UseScrollCallbackOptions = {\n currentGroupChannel: GroupChannel;\n oldestMessageTimeStamp: number;\n userFilledMessageListQuery: MessageListParamsInternal;\n replyType: ReplyTypeInternal;\n};\n\ntype UseScrollCallbackParams = {\n hasMorePrev: boolean;\n logger: LoggerInterface;\n messagesDispatcher: CustomUseReducerDispatcher;\n sdk: SendbirdGroupChat;\n};\n\nfunction useScrollCallback(\n { currentGroupChannel, oldestMessageTimeStamp, userFilledMessageListQuery, replyType }: UseScrollCallbackOptions,\n { hasMorePrev, logger, messagesDispatcher, sdk }: UseScrollCallbackParams,\n) {\n return useCallback(() => {\n if (!hasMorePrev) {\n return;\n }\n\n const messageListParams: MessageListParamsInternal = {\n prevResultSize: PREV_RESULT_SIZE,\n isInclusive: true,\n includeMetaArray: true,\n includeReactions: sdk?.appInfo?.useReaction ?? false,\n };\n\n if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {\n messageListParams.includeThreadInfo = true;\n messageListParams.includeParentMessageInfo = true;\n messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n\n logger.info('Channel: Fetching messages', {\n currentGroupChannel,\n userFilledMessageListQuery,\n });\n\n currentGroupChannel\n .getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams as MessageListParams)\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_PREV_MESSAGES_SUCCESS,\n payload: { currentGroupChannel, messages },\n });\n })\n .catch(() => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_PREV_MESSAGES_FAILURE,\n payload: { currentGroupChannel },\n });\n });\n }, [currentGroupChannel, oldestMessageTimeStamp, replyType]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\nimport { ReplyType } from '@sendbird/chat/message';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { NEXT_RESULT_SIZE } from '../const';\n\nfunction useScrollDownCallback({\n currentGroupChannel,\n latestMessageTimeStamp,\n userFilledMessageListQuery,\n hasMoreNext,\n replyType,\n}, {\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMoreNext) { return; }\n const { appInfo = {} } = sdk;\n const isReactionEnabled = appInfo.useReaction || false;\n const messageListParams = {\n nextResultSize: NEXT_RESULT_SIZE,\n isInclusive: true,\n includeReactions: isReactionEnabled,\n };\n messageListParams.includeMetaArray = true;\n if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {\n messageListParams.includeThreadInfo = true;\n messageListParams.includeParentMessageInfo = true;\n messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching later messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n latestMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_NEXT_MESSAGES_SUCCESS,\n payload: { currentGroupChannel, messages },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching later messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.FETCH_NEXT_MESSAGES_FAILURE,\n payload: { currentGroupChannel },\n });\n cb([null, error]);\n });\n }, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);\n}\n\nexport default useScrollDownCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { sendingStatus } = message;\n return new Promise((resolve, reject) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', sendingStatus);\n // Message is only on local\n if (sendingStatus === 'failed' || sendingStatus === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n resolve(message);\n } else {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', sendingStatus);\n currentGroupChannel.deleteMessage(message)\n .then(() => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n resolve(message);\n })\n .catch((err) => {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n reject(err);\n });\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport topics from '../../../../lib/pubSub/topics';\nimport { PublishingModuleType } from '../../../internalInterfaces';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n isMentionEnabled,\n}, {\n logger,\n pubSub,\n}) {\n return useCallback((props, callback) => {\n const {\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n } = props;\n const createParamsDefault = () => {\n const params = {};\n params.message = message;\n if (isMentionEnabled && mentionedUsers?.length > 0) {\n params.mentionedUsers = mentionedUsers;\n }\n if (isMentionEnabled && mentionTemplate) {\n params.mentionedMessageTemplate = mentionTemplate;\n } else {\n params.mentionedMessageTemplate = message;\n }\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(message)\n : createParamsDefault(message);\n\n logger.info('Channel: Updating message!', params);\n currentGroupChannel.updateUserMessage(messageId, params).then((msg, err) => {\n if (callback) {\n callback(err, msg);\n }\n\n logger.info('Channel: Updating message success!', msg);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message: msg,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message: msg,\n channel: currentGroupChannel,\n publishingModules: [PublishingModuleType.CHANNEL],\n },\n );\n });\n }, [currentGroupChannel?.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { isMultipleFilesMessage } from '../../../../utils';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage?.isResendable) {\n // Move the logic setting sendingStatus to pending into the reducer\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n // eslint-disable-next-line no-param-reassign\n failedMessage.sendingStatus = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel.resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', e);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n // eslint-disable-next-line no-param-reassign\n failedMessage.sendingStatus = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n // eslint-disable-next-line no-param-reassign\n failedMessage.sendingStatus = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', e);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n // eslint-disable-next-line no-param-reassign\n failedMessage.sendingStatus = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n // eslint-disable-next-line no-param-reassign\n failedMessage.sendingStatus = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGE_START,\n payload: failedMessage,\n });\n }\n\n if (isMultipleFilesMessage(failedMessage)) {\n currentGroupChannel.resendMessage(failedMessage)\n .onPending((message) => {\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGE_START,\n payload: message,\n });\n })\n // TODO: Handle on file info upload event.\n .onSucceeded((message) => {\n logger.info('Channel: Resending multiple files message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: message,\n });\n })\n .onFailed((e, message) => {\n logger.warning('Channel: Resending multiple files message failed!', e);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: message,\n });\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport topics from '../../../../lib/pubSub/topics';\nimport { PublishingModuleType } from '../../../internalInterfaces';\n\nexport default function useSendMessageCallback({\n isMentionEnabled,\n currentGroupChannel,\n onBeforeSendUserMessage,\n}, {\n logger,\n pubSub,\n scrollRef,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n (props) => {\n const {\n quoteMessage = null,\n message,\n mentionTemplate,\n // mentionedUserIds,\n mentionedUsers,\n } = props;\n const createParamsDefault = () => {\n const params = {};\n params.message = message;\n // if (isMentionEnabled && mentionedUserIds?.length > 0) {\n if (isMentionEnabled && mentionedUsers?.length > 0) {\n // params.mentionedUserIds = mentionedUserIds;\n params.mentionedUsers = mentionedUsers;\n }\n // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {\n if (isMentionEnabled && mentionTemplate && mentionedUsers?.length > 0) {\n params.mentionedMessageTemplate = mentionTemplate;\n }\n if (quoteMessage) {\n params.isReplyToChannel = true;\n params.parentMessageId = quoteMessage.messageId;\n }\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(message, quoteMessage)\n : createParamsDefault();\n\n logger.info('Channel: Sending message has started', params);\n currentGroupChannel.sendUserMessage(params)\n .onPending((pendingMsg) => {\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n publishingModules: [PublishingModuleType.CHANNEL],\n });\n setTimeout(() => utils.scrollIntoLast(0, scrollRef));\n })\n .onFailed((err, msg) => {\n logger.warning('Channel: Sending message failed!', { message: msg, error: err });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: msg,\n });\n })\n .onSucceeded((msg) => {\n logger.info('Channel: Sending message success!', msg);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: msg,\n });\n });\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport topics from '../../../../lib/pubSub/topics';\nimport { PublishingModuleType } from '../../../internalInterfaces';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel,\n onBeforeSendFileMessage,\n imageCompression = {},\n}, {\n logger,\n pubSub,\n scrollRef,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((\n file,\n quoteMessage = null,\n ) => new Promise((resolve, reject) => {\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_) => {\n const params = {};\n params.file = file_;\n if (quoteMessage) {\n params.isReplyToChannel = true;\n params.parentMessageId = quoteMessage.messageId;\n }\n return params;\n };\n\n if (canCompressImage) { // Using image compression\n try {\n const image = 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 imageWdith = image.naturalWidth || image.width;\n const imageHeight = image.naturalHeight || image.height;\n\n let targetWidth = utils.pxToNumber(resizingWidth) || imageWdith;\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('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = createCustomParams\n ? onBeforeSendFileMessage(compressedFile, quoteMessage)\n : createParamsDefault(compressedFile);\n logger.info('Channel: Uploading file message start!', params);\n currentGroupChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(compressedFile),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n publishingModules: [PublishingModuleType.CHANNEL],\n });\n setTimeout(() => utils.scrollIntoLast(0, scrollRef), 1000);\n })\n .onFailed((err, failedMessage) => {\n logger.error('Channel: Sending file message failed!', { failedMessage, err });\n // eslint-disable-next-line no-param-reassign\n failedMessage.localUrl = URL.createObjectURL(compressedFile);\n // eslint-disable-next-line no-param-reassign\n failedMessage.file = compressedFile;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: failedMessage,\n });\n reject(err);\n })\n .onSucceeded((succeededMessage) => {\n logger.info('Channel: Sending file message success!', succeededMessage);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: succeededMessage,\n });\n resolve(succeededMessage);\n });\n },\n file.type,\n compressionRate,\n );\n };\n } catch (error) {\n logger.error('Channel: Sending file message failed!', error);\n reject(error);\n }\n } else { // Not using image compression\n if (createCustomParams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file, quoteMessage)\n : createParamsDefault(file);\n logger.info('Channel: Uploading file message start!', params);\n\n currentGroupChannel.sendFileMessage(params)\n .onPending((pendingMsg) => {\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n publishingModules: [PublishingModuleType.CHANNEL],\n });\n setTimeout(() => utils.scrollIntoLast(0, scrollRef), 1000);\n })\n .onFailed((error, message) => {\n logger.error('Channel: Sending file message failed!', { message, error });\n // eslint-disable-next-line no-param-reassign\n message.localUrl = URL.createObjectURL(file);\n // eslint-disable-next-line no-param-reassign\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: message,\n });\n reject(error);\n })\n .onSucceeded((message) => {\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: message,\n });\n resolve(message);\n });\n }\n }), [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);\n return [sendMessage];\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import type { BaseMessage } from '@sendbird/chat/message';\nimport { useCallback } from 'react';\n\nimport { scrollToRenderedMessage } from '../utils';\nimport { LoggerInterface } from '../../../../lib/Logger';\n\ninterface DynamicParams {\n setInitialTimeStamp: React.Dispatch<React.SetStateAction<number>>;\n setAnimatedMessageId: React.Dispatch<React.SetStateAction<number>>;\n allMessages: BaseMessage[];\n scrollRef: React.RefObject<HTMLDivElement>;\n}\n\ninterface StaticParams {\n logger: LoggerInterface;\n}\n\n// To prevent multiple clicks on the message in the channel while scrolling\nfunction deactivateClick(scrollRef: React.RefObject<HTMLDivElement>) {\n const element = scrollRef.current;\n const parentNode = element?.parentNode as HTMLDivElement;\n if (element && parentNode) {\n element.style.pointerEvents = 'none';\n parentNode.style.cursor = 'wait';\n }\n}\n\nfunction activateClick(scrollRef: React.RefObject<HTMLDivElement>) {\n const element = scrollRef.current;\n const parentNode = element?.parentNode as HTMLDivElement;\n if (element && parentNode) {\n element.style.pointerEvents = 'auto';\n parentNode.style.cursor = 'auto';\n }\n}\n\nfunction useScrollToMessage({\n setInitialTimeStamp,\n setAnimatedMessageId,\n allMessages,\n scrollRef,\n}: DynamicParams,\n{ logger }: StaticParams,\n): (createdAt: number, messageId: number) => void {\n return useCallback(\n (createdAt: number, messageId: number) => {\n const isPresent = allMessages.find((m) => (\n m.messageId === messageId\n ));\n setAnimatedMessageId(null);\n setTimeout(() => {\n try {\n logger.info('Channel: scroll to message - disabling mouse events');\n deactivateClick(scrollRef);\n if (isPresent) {\n logger.info('Channel: scroll to message - message is present');\n setAnimatedMessageId(messageId);\n scrollToRenderedMessage(scrollRef, createdAt);\n } else {\n logger.info('Channel: scroll to message - fetching older messages');\n setInitialTimeStamp(null);\n setInitialTimeStamp(createdAt);\n setAnimatedMessageId(messageId);\n }\n } finally {\n logger.info('Channel: scroll to message - enabled mouse events');\n activateClick(scrollRef);\n }\n });\n }, [\n setInitialTimeStamp,\n setAnimatedMessageId,\n allMessages,\n ],\n );\n}\n\nexport default useScrollToMessage;\n","import { useCallback } from 'react';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { FileMessageCreateParams, MessageMetaArray } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport topics from '../../../../lib/pubSub/topics';\nimport {\n META_ARRAY_MESSAGE_TYPE_KEY,\n META_ARRAY_MESSAGE_TYPE_VALUE__VOICE,\n META_ARRAY_VOICE_DURATION_KEY,\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n} from '../../../../utils/consts';\nimport type { SendableMessageType } from '../../../../utils';\nimport type { Nullable } from '../../../../types';\nimport { PublishingModuleType } from '../../../internalInterfaces';\n\ninterface DynamicParams {\n currentGroupChannel: Nullable<GroupChannel>;\n onBeforeSendVoiceMessage?: (file: File, quoteMessage?: SendableMessageType) => FileMessageCreateParams;\n}\ninterface StaticParams {\n logger: Logger;\n pubSub: any;\n scrollRef: React.RefObject<HTMLDivElement>;\n messagesDispatcher: (props: { type: string, payload: any }) => void;\n}\ntype FuncType = (file: File, duration: number, quoteMessage: SendableMessageType) => void;\n\nexport const useSendVoiceMessageCallback = ({\n currentGroupChannel,\n onBeforeSendVoiceMessage,\n}: DynamicParams,\n{\n logger,\n pubSub,\n scrollRef,\n messagesDispatcher,\n}: StaticParams): Array<FuncType> => {\n const sendMessage = useCallback((file: File, duration: number, quoteMessage: SendableMessageType) => {\n if (!currentGroupChannel) {\n return;\n }\n const messageParams: FileMessageCreateParams = (\n onBeforeSendVoiceMessage\n && typeof onBeforeSendVoiceMessage === 'function'\n )\n ? onBeforeSendVoiceMessage(file, quoteMessage)\n : {\n file,\n fileName: VOICE_MESSAGE_FILE_NAME,\n mimeType: VOICE_MESSAGE_MIME_TYPE,\n metaArrays: [\n new MessageMetaArray({\n key: META_ARRAY_VOICE_DURATION_KEY,\n value: [`${duration}`],\n }),\n new MessageMetaArray({\n key: META_ARRAY_MESSAGE_TYPE_KEY,\n value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE],\n }),\n ],\n };\n if (quoteMessage) {\n messageParams.isReplyToChannel = true;\n messageParams.parentMessageId = quoteMessage.messageId;\n }\n logger.info('Channel: Start sending voice message', messageParams);\n currentGroupChannel.sendFileMessage(messageParams)\n .onPending((pendingMessage) => {\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */\n message: pendingMessage,\n channel: currentGroupChannel,\n publishingModules: [PublishingModuleType.CHANNEL],\n });\n setTimeout(() => utils.scrollIntoLast(0, scrollRef), 1000);\n })\n .onFailed((err, failedMessage) => {\n logger.error('Channel: Sending voice message failed!', { failedMessage, err });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_FAILURE,\n payload: failedMessage,\n });\n })\n .onSucceeded((succeededMessage) => {\n logger.info('Channel: Sending voice message success!', succeededMessage);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGE_SUCCESS,\n payload: succeededMessage,\n });\n });\n }, [\n currentGroupChannel,\n onBeforeSendVoiceMessage,\n ]);\n return [sendMessage];\n};\n\nexport default useSendVoiceMessageCallback;\n","import { RefObject, useEffect } from 'react';\n\nimport { scrollIntoLast } from '../utils';\nimport * as channelActions from '../dux/actionTypes';\nimport { CustomUseReducerDispatcher } from '../../../../lib/SendbirdState';\nimport { PUBSUB_TOPICS } from '../../../../lib/pubSub/topics';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { SendableMessageType } from '../../../../utils';\nimport { FileUploadedPayload } from './useSendMultipleFilesMessage';\nimport { PublishingModuleType } from '../../../internalInterfaces';\n\nexport interface UseHandlePubsubEventsParams {\n channelUrl: string;\n sdkInit: boolean;\n pubSub: any;\n dispatcher: CustomUseReducerDispatcher;\n scrollRef: RefObject<HTMLElement>;\n}\n\nexport const useHandleChannelPubsubEvents = ({\n channelUrl,\n sdkInit,\n pubSub,\n dispatcher,\n scrollRef,\n}: UseHandlePubsubEventsParams): void => {\n useEffect(() => {\n const subscriber = new Map();\n if (pubSub?.subscribe) {\n subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, (props) => {\n const { channel, message } = props;\n scrollIntoLast(0, scrollRef);\n if (channelUrl === channel?.url) {\n dispatcher({\n type: channelActions.SEND_MESSAGE_SUCCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, (props) => {\n const {\n channel,\n message,\n publishingModules,\n } = props as { channel: GroupChannel, message: SendableMessageType, publishingModules: PublishingModuleType[] };\n if (channelUrl === channel?.url\n && publishingModules.includes(PublishingModuleType.CHANNEL)\n ) {\n dispatcher({\n type: channelActions.SEND_MESSAGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, pubSub.subscribe(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, (props) => {\n const {\n response,\n publishingModules,\n } = props as { response: FileUploadedPayload, publishingModules: PublishingModuleType[] };\n if (channelUrl === response.channelUrl && publishingModules.includes(PublishingModuleType.CHANNEL)) {\n dispatcher({\n type: channelActions.ON_FILE_INFO_UPLOADED,\n payload: response,\n });\n }\n }));\n subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, (props) => {\n const {\n channel,\n message,\n publishingModules,\n } = props as { channel: GroupChannel, message: SendableMessageType, publishingModules: PublishingModuleType[] };\n if (channelUrl === channel?.url\n && publishingModules.includes(PublishingModuleType.CHANNEL)\n ) {\n dispatcher({\n type: channelActions.SEND_MESSAGE_FAILURE,\n payload: message,\n });\n }\n }));\n subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, (props) => {\n const { channel, message } = props;\n scrollIntoLast(0, scrollRef);\n if (channelUrl === channel?.url) {\n dispatcher({\n type: channelActions.SEND_MESSAGE_SUCCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, (props) => {\n const { channel, message, fromSelector } = props;\n if (fromSelector && (channelUrl === channel?.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, (props) => {\n const { channel, messageId } = props;\n if (channelUrl === channel?.url) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n }\n return () => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n };\n }, [\n channelUrl,\n sdkInit,\n ]);\n};\n","import React, {\n useEffect,\n useState,\n useReducer,\n useRef,\n useMemo,\n} from 'react';\n\nimport type { GroupChannel, SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport type {\n BaseMessage,\n FileMessageCreateParams,\n MultipleFilesMessageCreateParams,\n UserMessage,\n UserMessageCreateParams,\n UserMessageUpdateParams,\n} from '@sendbird/chat/message';\nimport type { EmojiContainer, SendbirdError, User } from '@sendbird/chat';\n\nimport { ReplyType, RenderUserProfileProps, Nullable } from '../../../types';\nimport { UserProfileProvider } from '../../../lib/UserProfileContext';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\nimport { CoreMessageType, SendableMessageType } from '../../../utils';\nimport { ThreadReplySelectType } from './const';\n\nimport * as utils from './utils';\nimport { getIsReactionEnabled } from '../../../utils/getIsReactionEnabled';\n\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\nimport * as channelActions from './dux/actionTypes';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useScrollDownCallback from './hooks/useScrollDownCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\nimport useScrollToMessage from './hooks/useScrollToMessage';\nimport { CustomUseReducerDispatcher } from '../../../lib/SendbirdState';\nimport useSendVoiceMessageCallback from './hooks/useSendVoiceMessageCallback';\nimport { getCaseResolvedThreadReplySelectType } from '../../../lib/utils/resolvedReplyType';\nimport { useSendMultipleFilesMessage } from './hooks/useSendMultipleFilesMessage';\nimport { useHandleChannelPubsubEvents } from './hooks/useHandleChannelPubsubEvents';\nimport { PublishingModuleType } from '../../internalInterfaces';\n\nexport type MessageListParams = {\n // https://sendbird.github.io/core-sdk-javascript/module-model_params_messageListParams-MessageListParams.html\n replyType?: string,\n messageType?: string,\n prevResultSize?: number,\n nextResultSize?: number,\n reverse?: boolean,\n isInclusive?: boolean,\n includeMetaArray?: boolean,\n includeReactions?: boolean,\n includeThreadInfo?: boolean,\n includeParentMessageInfo?: boolean,\n showSubchannelMessagesOnly?: boolean,\n customTypes?: Array<string>,\n senderUserIds?: Array<string>,\n};\n\nexport type ChannelQueries = {\n messageListParams?: MessageListParams;\n};\n\nexport type ChannelContextProps = {\n children?: React.ReactElement;\n channelUrl: string;\n isReactionEnabled?: boolean;\n isMessageGroupingEnabled?: boolean;\n isMultipleFilesMessageEnabled?: boolean;\n showSearchIcon?: boolean;\n animatedMessage?: number | null;\n highlightedMessage?: number | null;\n startingPoint?: number | null;\n onBeforeSendUserMessage?(text: string, quotedMessage?: SendableMessageType): UserMessageCreateParams;\n onBeforeSendFileMessage?(file: File, quotedMessage?: SendableMessageType): FileMessageCreateParams;\n onBeforeUpdateUserMessage?(text: string): UserMessageUpdateParams;\n onBeforeSendVoiceMessage?: (file: File, quotedMessage?: SendableMessageType) => FileMessageCreateParams;\n onBeforeSendMultipleFilesMessage?: (files: Array<File>, quotedMessage?: SendableMessageType) => MultipleFilesMessageCreateParams;\n onChatHeaderActionClick?(event: React.MouseEvent<HTMLElement>): void;\n onSearchClick?(): void;\n onBackClick?(): void;\n replyType?: ReplyType;\n threadReplySelectType?: ThreadReplySelectType;\n queries?: ChannelQueries;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactElement;\n filterMessageList?(messages: BaseMessage): boolean;\n disableUserProfile?: boolean;\n disableMarkAsRead?: boolean;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onQuoteMessageClick?: (props: { message: SendableMessageType }) => void;\n onMessageAnimated?: () => void;\n onMessageHighlighted?: () => void;\n scrollBehavior?: 'smooth' | 'auto';\n reconnectOnIdle?: boolean;\n};\n\ninterface MessageStoreInterface {\n allMessages: CoreMessageType[];\n localMessages: CoreMessageType[];\n loading: boolean;\n initialized: boolean;\n unreadSince: string;\n isInvalid: boolean;\n currentGroupChannel: Nullable<GroupChannel>;\n hasMorePrev: boolean;\n oldestMessageTimeStamp: number;\n hasMoreNext: boolean;\n latestMessageTimeStamp: number;\n emojiContainer: EmojiContainer;\n readStatus: any;\n}\n\ninterface SendMessageParams {\n message: string;\n quoteMessage?: SendableMessageType;\n // mentionedUserIds?: Array<string>;\n mentionedUsers?: Array<User>;\n mentionTemplate?: string;\n}\n\ninterface UpdateMessageProps {\n messageId: string | number;\n message: string;\n mentionedUsers?: Array<User>;\n mentionTemplate?: string;\n}\n\ninterface ChannelProviderInterface extends ChannelContextProps, MessageStoreInterface {\n scrollToMessage?(createdAt: number, messageId: number): void;\n isScrolled?: boolean;\n setIsScrolled?: React.Dispatch<React.SetStateAction<boolean>>;\n messageActionTypes: typeof channelActions;\n messagesDispatcher: CustomUseReducerDispatcher;\n quoteMessage: SendableMessageType | null;\n setQuoteMessage: React.Dispatch<React.SetStateAction<SendableMessageType | null>>;\n initialTimeStamp: number;\n setInitialTimeStamp: React.Dispatch<React.SetStateAction<number>>;\n animatedMessageId: number;\n highLightedMessageId: number;\n nicknamesMap: Map<string, string>;\n emojiAllMap: any;\n onScrollCallback: () => void;\n onScrollDownCallback: any;\n scrollRef: React.MutableRefObject<HTMLDivElement>;\n setAnimatedMessageId: React.Dispatch<React.SetStateAction<number>>;\n setHighLightedMessageId: React.Dispatch<React.SetStateAction<number>>;\n messageInputRef: React.MutableRefObject<HTMLInputElement>,\n deleteMessage(message: CoreMessageType): Promise<CoreMessageType>,\n updateMessage(props: UpdateMessageProps, callback?: (err: SendbirdError, message: UserMessage) => void): Promise<CoreMessageType>,\n resendMessage(failedMessage: SendableMessageType): Promise<SendableMessageType>,\n // TODO: Good to change interface to using params / This part need refactoring\n sendMessage: (props: SendMessageParams) => void,\n sendFileMessage: (file: File, quoteMessage?: SendableMessageType) => void,\n sendVoiceMessage: (file: File, duration: number, quoteMessage?: SendableMessageType) => void,\n sendMultipleFilesMessage: (files: Array<File>, quoteMessage?: SendableMessageType) => void,\n // sendMessage(messageParams: SendBird.UserMessageParams): Promise<SendBird.UserMessage>,\n // sendFileMessage(messageParams: SendBird.FileMessageParams): Promise<SendBird.FileMessage>,\n toggleReaction(message: SendableMessageType, emojiKey: string, isReacted: boolean): void,\n renderUserMentionItem?: (props: { user: User }) => JSX.Element;\n}\n\nconst ChannelContext = React.createContext<ChannelProviderInterface | null>(undefined);\n\nconst ChannelProvider: React.FC<ChannelContextProps> = (props: ChannelContextProps) => {\n const {\n channelUrl,\n children,\n isReactionEnabled,\n isMessageGroupingEnabled = true,\n isMultipleFilesMessageEnabled = false,\n showSearchIcon,\n animatedMessage,\n highlightedMessage,\n startingPoint,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n onBeforeSendVoiceMessage,\n onBeforeSendMultipleFilesMessage,\n onChatHeaderActionClick,\n onSearchClick,\n onBackClick,\n replyType: channelReplyType,\n threadReplySelectType,\n queries,\n filterMessageList,\n disableMarkAsRead = false,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageAnimated,\n onMessageHighlighted,\n scrollBehavior = 'auto',\n reconnectOnIdle = true,\n } = props;\n\n const globalStore = useSendbirdStateContext();\n const { config } = globalStore;\n const replyType = channelReplyType ?? config.replyType;\n const {\n pubSub,\n logger,\n userId,\n isOnline,\n imageCompression,\n isMentionEnabled,\n isVoiceMessageEnabled,\n onUserProfileMessage,\n markAsReadScheduler,\n groupChannel,\n } = config;\n const sdk = globalStore?.stores?.sdkStore?.sdk as SendbirdGroupChat;\n const sdkInit = globalStore?.stores?.sdkStore?.initialized;\n const globalConfigs = globalStore?.config;\n\n const [initialTimeStamp, setInitialTimeStamp] = useState(startingPoint);\n useEffect(() => {\n setInitialTimeStamp(startingPoint);\n }, [startingPoint, channelUrl]);\n const [animatedMessageId, setAnimatedMessageId] = useState(0);\n const [highLightedMessageId, setHighLightedMessageId] = useState(highlightedMessage);\n useEffect(() => {\n setHighLightedMessageId(highlightedMessage);\n }, [highlightedMessage]);\n const userFilledMessageListQuery = queries?.messageListParams;\n const [quoteMessage, setQuoteMessage] = useState<SendableMessageType>(null);\n const [isScrolled, setIsScrolled] = useState(false);\n\n const [messagesStore, messagesDispatcher] = useReducer(\n messagesReducer,\n messagesInitialState,\n ) as [MessageStoreInterface, CustomUseReducerDispatcher];\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n localMessages,\n loading,\n initialized,\n unreadSince,\n isInvalid,\n currentGroupChannel,\n hasMorePrev,\n oldestMessageTimeStamp,\n hasMoreNext,\n latestMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n\n const isSuper = currentGroupChannel?.isSuper || false;\n const isBroadcast = currentGroupChannel?.isBroadcast || false;\n const usingReaction = getIsReactionEnabled({\n isBroadcast,\n isSuper,\n globalLevel: config?.isReactionEnabled,\n moduleLevel: isReactionEnabled,\n });\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n const nicknamesMap: Map<string, string> = useMemo(() => (\n (usingReaction && currentGroupChannel)\n ? utils.getNicknamesMapFromMembers(currentGroupChannel?.members)\n : new Map()\n ), [currentGroupChannel?.members]);\n\n // Animate message\n useEffect(() => {\n if (animatedMessage) {\n setAnimatedMessageId(animatedMessage);\n }\n }, [animatedMessage]);\n\n // Scrollup is default scroll for channel\n const onScrollCallback = useScrollCallback({\n currentGroupChannel,\n oldestMessageTimeStamp,\n userFilledMessageListQuery,\n replyType,\n }, {\n hasMorePrev,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const scrollToMessage = useScrollToMessage({\n setInitialTimeStamp,\n setAnimatedMessageId,\n allMessages,\n scrollRef,\n }, { logger });\n\n // onScrollDownCallback is added for navigation to different timestamps on messageSearch\n // hasMorePrev, onScrollCallback -> scroll up(default behavior)\n // hasMoreNext, onScrollDownCallback -> scroll down\n const onScrollDownCallback = useScrollDownCallback({\n currentGroupChannel,\n latestMessageTimeStamp,\n userFilledMessageListQuery,\n hasMoreNext,\n replyType,\n isVoiceMessageEnabled,\n }, {\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n // to create message-datasource\n // this hook sets currentGroupChannel asynchronously\n useGetChannel(\n { channelUrl, sdkInit, disableMarkAsRead },\n { messagesDispatcher, sdk, logger, markAsReadScheduler },\n );\n\n // to set quote message as null\n useEffect(() => {\n setQuoteMessage(null);\n }, [channelUrl]);\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n {\n currentGroupChannel,\n sdkInit,\n currentUserId: userId,\n disableMarkAsRead,\n },\n {\n messagesDispatcher,\n sdk,\n logger,\n scrollRef,\n setQuoteMessage,\n },\n );\n\n // hook that fetches messages when channel changes\n // to be clear here useGetChannel sets currentGroupChannel\n // and useInitialMessagesFetch executes when currentGroupChannel changes\n // p.s This one executes on initialTimeStamp change too\n useInitialMessagesFetch({\n currentGroupChannel,\n userFilledMessageListQuery,\n initialTimeStamp,\n replyType,\n setIsScrolled,\n }, {\n logger,\n scrollRef,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useHandleChannelPubsubEvents({\n channelUrl,\n sdkInit,\n pubSub,\n dispatcher: messagesDispatcher,\n scrollRef,\n });\n\n // handling connection breaks\n useHandleReconnect({ isOnline, replyType, disableMarkAsRead, reconnectOnIdle }, {\n logger,\n sdk,\n scrollRef,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n markAsReadScheduler,\n });\n\n // callbacks for Message CURD actions\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage, isMentionEnabled },\n { logger, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, sendMessage] = useSendMessageCallback(\n {\n currentGroupChannel,\n isMentionEnabled,\n onBeforeSendUserMessage,\n },\n {\n logger,\n pubSub,\n scrollRef,\n messagesDispatcher,\n },\n );\n const [sendFileMessage] = useSendFileMessageCallback(\n {\n currentGroupChannel,\n imageCompression,\n onBeforeSendFileMessage,\n },\n {\n logger,\n pubSub,\n scrollRef,\n messagesDispatcher,\n },\n );\n const [sendVoiceMessage] = useSendVoiceMessageCallback(\n {\n currentGroupChannel,\n onBeforeSendVoiceMessage,\n },\n {\n logger,\n pubSub,\n scrollRef,\n messagesDispatcher,\n },\n );\n const [sendMultipleFilesMessage] = useSendMultipleFilesMessage({\n currentChannel: currentGroupChannel,\n onBeforeSendMultipleFilesMessage,\n publishingModules: [PublishingModuleType.CHANNEL],\n }, {\n logger,\n pubSub,\n scrollRef,\n });\n\n return (\n <ChannelContext.Provider value={{\n // props\n channelUrl,\n isReactionEnabled: usingReaction,\n isMessageGroupingEnabled,\n isMultipleFilesMessageEnabled,\n showSearchIcon: showSearchIcon ?? globalConfigs.showSearchIcon,\n highlightedMessage,\n startingPoint,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n onChatHeaderActionClick,\n onSearchClick,\n onBackClick,\n replyType,\n threadReplySelectType: threadReplySelectType\n ?? getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase\n ?? ThreadReplySelectType.THREAD,\n queries,\n filterMessageList,\n disableMarkAsRead,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageAnimated,\n onMessageHighlighted,\n\n // messagesStore\n allMessages,\n localMessages,\n loading,\n initialized,\n unreadSince,\n isInvalid,\n currentGroupChannel,\n hasMorePrev,\n hasMoreNext,\n oldestMessageTimeStamp,\n latestMessageTimeStamp,\n emojiContainer,\n readStatus,\n\n // utils\n scrollToMessage,\n quoteMessage,\n setQuoteMessage,\n deleteMessage,\n updateMessage,\n resendMessage,\n messageInputRef,\n sendMessage,\n sendFileMessage,\n sendVoiceMessage,\n sendMultipleFilesMessage,\n initialTimeStamp,\n messageActionTypes: channelActions,\n messagesDispatcher,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n highLightedMessageId,\n nicknamesMap,\n emojiAllMap,\n onScrollCallback,\n onScrollDownCallback,\n scrollRef,\n scrollBehavior,\n toggleReaction,\n isScrolled,\n setIsScrolled,\n }}>\n <UserProfileProvider\n disableUserProfile={props?.disableUserProfile ?? config?.disableUserProfile}\n renderUserProfile={props?.renderUserProfile}\n onUserProfileMessage={onUserProfileMessage}\n >\n {children}\n </UserProfileProvider>\n </ChannelContext.Provider>\n );\n};\n\nexport type UseChannelType = () => ChannelProviderInterface;\nconst useChannelContext: UseChannelType = () => React.useContext(ChannelContext);\n\nexport {\n ChannelProvider,\n useChannelContext,\n};\n"],"names":["getIsReactionEnabled","_a","_b","isBroadcast","_c","isSuper","_d","globalLevel","moduleLevel","initialState","initialized","loading","allMessages","localMessages","currentGroupChannel","hasMorePrev","oldestMessageTimeStamp","hasMoreNext","latestMessageTimeStamp","emojiContainer","emojiCategories","emojiHash","unreadSince","isInvalid","readStatus","messageListParams","getOldestMessageTimeStamp","messages","oldestMessage","createdAt","getLatestMessageTimeStamp","latestMessage","length","hasReqId","message","channelReducer","state","action","match","with","type","channelActions","RESET_MESSAGES","__assign","FETCH_INITIAL_MESSAGES_START","filter","m","isSendableMessage","sendingStatus","SendingStatus","SUCCEEDED","FETCH_INITIAL_MESSAGES_SUCCESS","payload","url","__spreadArray","FETCH_PREV_MESSAGES_SUCCESS","_e","prevResultSize","PREV_RESULT_SIZE","duplicatedMessageIds","updatedOldMessages","map","msg","duplicatedMessage","find","messageId","compareIds","push","updatedAt","filteredNewMessages","FETCH_NEXT_MESSAGES_SUCCESS","nextResultSize","NEXT_RESULT_SIZE","sortedMessages","mergeAndSortMessages","P","union","SEND_MESSAGE_START","SEND_MESSAGE_SUCCESS","filteredMessages","reqId","SEND_MESSAGE_FAILURE","failed","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","ON_MESSAGE_RECEIVED","channel","members","sender","currentGroupChannelUrl","some","filterMessageListParams","isAdminMessage","passUnsuccessfullMessages","senderMember","userId","profileUrl","friendName","nickname","member","format","Date","ON_MESSAGE_UPDATED","parentMessageId","parentMessage","ON_MESSAGE_THREAD_INFO_UPDATED","event","channelUrl","threadInfo","targetMessageId","RESEND_MESSAGE_START","MARK_AS_READ","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_EMOJI_CONTAINER","ON_REACTION_UPDATED","applyReactionEvent","MESSAGE_LIST_PARAMS_CHANGED","ON_FILE_INFO_UPLOADED","requestId","index","uploadableFileInfo","error","messageToUpdate","fileInfoList","messageParams","Array","isArray","otherwise","DELIVERY_RECIPT","useHandleChannelEvents","sdkInit","currentUserId","disableMarkAsRead","sdk","logger","scrollRef","setQuoteMessage","messagesDispatcher","store","useSendbirdStateContext","_f","config","markAsReadScheduler","markAsDeliveredScheduler","disableMarkAsDelivered","canSetMarkAsDelivered","stores","sdkStore","appInfo","premiumFeatureList","feature","useEffect","channelHandlerId","uuidv4","channelHandler","onMessageReceived","scrollToEnd","current","offsetHeight","scrollTop","scrollHeight","info","messageActions","document","getElementById","childElementCount","setTimeout","scrollIntoLast","warning","onUnreadMemberStatusUpdated","onUndeliveredMemberStatusUpdated","onMessageUpdated","onThreadInfoUpdated","threadInfoUpdateEvent","onMessageDeleted","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","user","onUserUnmuted","onUserBanned","currentUser","onOperatorUpdated","users","onUserLeft","groupChannel","addGroupChannelHandler","GroupChannelHandler","removeGroupChannelHandler","useSetChannel","_ref","_ref2","getChannel","then","messageActionTypes","catch","e","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","initialTimeStamp","userFilledMessageListQuery","replyType","setIsScrolled","getMessagesByTimestamp","messageListParams_1","isInclusive","includeReactions","includeMetaArray","includeThreadInfo","includeParentMessageInfo","ReplyType","ONLY_REPLY_TO_CHANNEL","Object","keys","forEach","key","multipleFilesMessageCount_1","getTime","isMultipleFilesMessage","finally","utils","Math","min","useReconnectOnIdle","isOnline","reconnectOnIdle","useState","isTabHidden","setIsTabHidden","wasOffline","handleVisibilityChange","hidden","addEventListener","removeEventListener","shouldReconnect","useHandleReconnect","isReactionEnabled","useReaction","lastMessageTime","useScrollCallback","useCallback","useScrollDownCallback","cb","useDeleteMessageCallback","Promise","resolve","reject","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","isMentionEnabled","pubSub","props","callback","mentionedUsers","mentionTemplate","createParamsDefault","params","mentionedMessageTemplate","createCustomPrams","updateUserMessage","publish","topics","UPDATE_USER_MESSAGE","publishingModules","PublishingModuleType","CHANNEL","useResendMessageCallback","failedMessage","messageType","file","isResendable","requestState","resendUserMessage","resendFileMessage","resendMessage","onPending","onSucceeded","onFailed","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","quoteMessage","isReplyToChannel","sendUserMessage","pendingMsg","useSendFileMessageCallback","onBeforeSendFileMessage","imageCompression","arguments","undefined","compressionRate","resizingWidth","resizingHeight","createCustomParams","compressibleFileType","compressibleRatio","compressibleDiamensions","canCompressImage","file_","image","createElement","src","URL","createObjectURL","onload","revokeObjectURL","canvas","imageWdith","naturalWidth","width","imageHeight","naturalHeight","height","targetWidth","targetHeight","context","getContext","drawImage","toBlob","newImageBlob","compressedFile","File","name","sendFileMessage","pendingMessage","_objectSpread","localUrl","succeededMessage","useToggleReactionCallback","isReacted","deleteReaction","res","addReaction","deactivateClick","element","parentNode","style","pointerEvents","cursor","activateClick","useScrollToMessage","setInitialTimeStamp","setAnimatedMessageId","isPresent","scrollToRenderedMessage","useSendVoiceMessageCallback","onBeforeSendVoiceMessage","duration","fileName","VOICE_MESSAGE_FILE_NAME","mimeType","VOICE_MESSAGE_MIME_TYPE","metaArrays","MessageMetaArray","META_ARRAY_VOICE_DURATION_KEY","value","concat","META_ARRAY_MESSAGE_TYPE_KEY","META_ARRAY_MESSAGE_TYPE_VALUE__VOICE","useHandleChannelPubsubEvents","dispatcher","subscriber","Map","subscribe","set","PUBSUB_TOPICS","SEND_USER_MESSAGE","includes","response","SEND_MESSAGE_FAILED","SEND_FILE_MESSAGE","fromSelector","DELETE_MESSAGE","s","remove","ChannelContext","React","createContext","ChannelProvider","children","_g","isMessageGroupingEnabled","_h","isMultipleFilesMessageEnabled","showSearchIcon","animatedMessage","highlightedMessage","startingPoint","onBeforeSendMultipleFilesMessage","onChatHeaderActionClick","onSearchClick","onBackClick","channelReplyType","threadReplySelectType","queries","filterMessageList","_j","onReplyInThread","onQuoteMessageClick","onMessageAnimated","onMessageHighlighted","_k","scrollBehavior","_l","globalStore","isVoiceMessageEnabled","onUserProfileMessage","globalConfigs","_m","_o","animatedMessageId","_p","highLightedMessageId","setHighLightedMessageId","_q","_r","isScrolled","_s","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","emojiAllMap","useMemo","nicknamesMap","onScrollCallback","scrollToMessage","onScrollDownCallback","toggleReaction","useGetChannel","updateMessage","_t","sendVoiceMessage","sendMultipleFilesMessage","useSendMultipleFilesMessage","currentChannel","Provider","getCaseResolvedThreadReplySelectType","upperCase","ThreadReplySelectType","THREAD","UserProfileProvider","disableUserProfile","renderUserProfile","useChannelContext","useContext"],"mappings":"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"}
@@ -1,54 +1,55 @@
1
1
  import React__default, { useContext, useState } from 'react';
2
- import { a as LocalizationContext } from '../../LocalizationContext-2463058b.js';
3
- import useSendbirdStateContext from '../../useSendbirdStateContext.js';
2
+ import { a as LocalizationContext } from '../../LocalizationContext-d18a86d8.js';
3
+ import { useSendbirdStateContext } from '../../useSendbirdStateContext.js';
4
4
  import { useChannelSettingsContext } from '../context.js';
5
5
  import ChannelAvatar from '../../ui/ChannelAvatar.js';
6
6
  import TextButton from '../../ui/TextButton.js';
7
- import { L as Label, a as LabelTypography, b as LabelColors } from '../../index-aa520474.js';
7
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../../index-12103973.js';
8
8
  import EditDetails from './EditDetailsModal.js';
9
- import '../../stringSet-2814bf17.js';
10
- import '../../index-7700a436.js';
9
+ import '../../stringSet-1106c8ec.js';
10
+ import '../../index-d3f61405.js';
11
11
  import '../../withSendbird.js';
12
- import '../../_rollupPluginBabelHelpers-50c9576f.js';
13
- import '../../UserProfileContext-4ae968eb.js';
14
- import 'prop-types';
15
- import '../../uuid-16373bba.js';
12
+ import '../../tslib.es6-0c779aab.js';
13
+ import '../../UserProfileContext-26e71f9a.js';
14
+ import '../../uuid-3c77ef7b.js';
16
15
  import '../../ui/Avatar.js';
17
16
  import '../../ui/ImageRenderer.js';
18
17
  import '../../ui/Icon.js';
19
- import '../../utils-ebf008e2.js';
20
- import '../../color-b7f211a8.js';
18
+ import 'prop-types';
19
+ import '../../utils-48a3ef27.js';
20
+ import '../../color-1383d4ab.js';
21
21
  import '../../ui/Modal.js';
22
22
  import 'react-dom';
23
- import '../../utils-407da489.js';
24
- import '../../index.module-60af77d3.js';
25
- import '../../index-98887e8d.js';
26
- import '../../MediaQueryContext-e3429d12.js';
23
+ import '../../utils-74c161a0.js';
24
+ import '../../index-c6095960.js';
25
+ import '../../index-c7ed4aef.js';
26
+ import '../../MediaQueryContext-3eeeec4f.js';
27
27
  import '../../ui/IconButton.js';
28
28
  import '../../ui/Button.js';
29
+ import '../../types-4ffc52f6.js';
29
30
  import '../../ui/Input.js';
30
31
 
31
- const ChannelProfile = () => {
32
- var _state$config, _state$config2, _state$config3;
33
- const state = useSendbirdStateContext();
34
- const channelSettingStore = useChannelSettingsContext();
35
- const {
36
- stringSet
37
- } = useContext(LocalizationContext);
38
- const [showModal, setShowModal] = useState(false);
39
- const userId = state === null || state === void 0 ? void 0 : (_state$config = state.config) === null || _state$config === void 0 ? void 0 : _state$config.userId;
40
- const theme = (state === null || state === void 0 ? void 0 : (_state$config2 = state.config) === null || _state$config2 === void 0 ? void 0 : _state$config2.theme) || 'light';
41
- const isOnline = state === null || state === void 0 ? void 0 : (_state$config3 = state.config) === null || _state$config3 === void 0 ? void 0 : _state$config3.isOnline;
42
- const disabled = !isOnline;
43
- const {
44
- channel
45
- } = channelSettingStore;
46
- const getChannelName = () => {
47
- if (channel !== null && channel !== void 0 && channel.name && (channel === null || channel === void 0 ? void 0 : channel.name) !== 'Group Channel') {
32
+ var ChannelProfile = function () {
33
+ var _a, _b, _c;
34
+ var state = useSendbirdStateContext();
35
+ var channelSettingStore = useChannelSettingsContext();
36
+ var stringSet = useContext(LocalizationContext).stringSet;
37
+ var _d = useState(false),
38
+ showModal = _d[0],
39
+ setShowModal = _d[1];
40
+ var userId = (_a = state === null || state === void 0 ? void 0 : state.config) === null || _a === void 0 ? void 0 : _a.userId;
41
+ var theme = ((_b = state === null || state === void 0 ? void 0 : state.config) === null || _b === void 0 ? void 0 : _b.theme) || 'light';
42
+ var isOnline = (_c = state === null || state === void 0 ? void 0 : state.config) === null || _c === void 0 ? void 0 : _c.isOnline;
43
+ var disabled = !isOnline;
44
+ var channel = channelSettingStore.channel;
45
+ var getChannelName = function () {
46
+ if ((channel === null || channel === void 0 ? void 0 : channel.name) && (channel === null || channel === void 0 ? void 0 : channel.name) !== 'Group Channel') {
48
47
  return channel.name;
49
48
  }
50
- if ((channel === null || channel === void 0 ? void 0 : channel.name) === 'Group Channel' || !(channel !== null && channel !== void 0 && channel.name)) {
51
- return ((channel === null || channel === void 0 ? void 0 : channel.members) || []).map(member => member.nickname || stringSet.NO_NAME).join(', ');
49
+ if ((channel === null || channel === void 0 ? void 0 : channel.name) === 'Group Channel' || !(channel === null || channel === void 0 ? void 0 : channel.name)) {
50
+ return ((channel === null || channel === void 0 ? void 0 : channel.members) || []).map(function (member) {
51
+ return member.nickname || stringSet.NO_NAME;
52
+ }).join(', ');
52
53
  }
53
54
  return stringSet.NO_TITLE;
54
55
  };
@@ -71,7 +72,7 @@ const ChannelProfile = () => {
71
72
  }, getChannelName()), /*#__PURE__*/React__default.createElement(TextButton, {
72
73
  disabled: disabled,
73
74
  className: "sendbird-channel-profile__edit",
74
- onClick: () => {
75
+ onClick: function () {
75
76
  if (disabled) {
76
77
  return;
77
78
  }
@@ -82,8 +83,12 @@ const ChannelProfile = () => {
82
83
  type: LabelTypography.BUTTON_1,
83
84
  color: disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY
84
85
  }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && /*#__PURE__*/React__default.createElement(EditDetails, {
85
- onCancel: () => setShowModal(false),
86
- onSubmit: () => setShowModal(false)
86
+ onCancel: function () {
87
+ return setShowModal(false);
88
+ },
89
+ onSubmit: function () {
90
+ return setShowModal(false);
91
+ }
87
92
  })));
88
93
  };
89
94
 
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelProfile.js","sources":["../../../src/modules/ChannelSettings/components/ChannelProfile/index.tsx"],"sourcesContent":["import './channel-profile.scss';\nimport React, { useState, useContext } from 'react';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelSettingsContext } from '../../context/ChannelSettingsProvider';\n\nimport ChannelAvatar from '../../../../ui/ChannelAvatar';\nimport TextButton from '../../../../ui/TextButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\n\nimport EditDetailsModal from '../EditDetailsModal';\n\nconst ChannelProfile: React.FC = () => {\n const state = useSendbirdStateContext();\n const channelSettingStore = useChannelSettingsContext();\n const { stringSet } = useContext(LocalizationContext);\n const [showModal, setShowModal] = useState(false);\n\n const userId = state?.config?.userId;\n const theme = state?.config?.theme || 'light';\n const isOnline = state?.config?.isOnline;\n const disabled = !isOnline;\n\n const { channel } = channelSettingStore;\n\n const getChannelName = () => {\n if (channel?.name && channel?.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel?.name === 'Group Channel' || !channel?.name) {\n return (channel?.members || []).map((member) => member.nickname || stringSet.NO_NAME).join(', ');\n }\n\n return stringSet.NO_TITLE;\n };\n\n return (\n <div className=\"sendbird-channel-profile\">\n <div className=\"sendbird-channel-profile--inner\">\n <div className=\"sendbird-channel-profile__avatar\">\n <ChannelAvatar\n channel={channel}\n userId={userId}\n theme={theme}\n width={80}\n height={80}\n />\n </div>\n <Label\n className=\"sendbird-channel-profile__title\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {getChannelName()}\n </Label>\n <TextButton\n disabled={disabled}\n className=\"sendbird-channel-profile__edit\"\n onClick={() => {\n if (disabled) { return; }\n setShowModal(true);\n }}\n disableUnderline\n >\n <Label\n type={LabelTypography.BUTTON_1}\n color={disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY}\n >\n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n </Label>\n </TextButton>\n {\n showModal && (\n <EditDetailsModal\n onCancel={() => setShowModal(false)}\n onSubmit={() => setShowModal(false)}\n />\n )\n }\n </div>\n </div>\n );\n};\n\nexport default ChannelProfile;\n"],"names":["ChannelProfile","_state$config","_state$config2","_state$config3","state","useSendbirdStateContext","channelSettingStore","useChannelSettingsContext","stringSet","useContext","LocalizationContext","showModal","setShowModal","useState","userId","config","theme","isOnline","disabled","channel","getChannelName","name","members","map","member","nickname","NO_NAME","join","NO_TITLE","React","createElement","className","ChannelAvatar","width","height","Label","type","LabelTypography","SUBTITLE_2","color","LabelColors","ONBACKGROUND_1","TextButton","onClick","disableUnderline","BUTTON_1","ONBACKGROUND_2","PRIMARY","CHANNEL_SETTING__PROFILE__EDIT","EditDetailsModal","onCancel","onSubmit"],"mappings":"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"}
1
+ {"version":3,"file":"ChannelProfile.js","sources":["../../../src/modules/ChannelSettings/components/ChannelProfile/index.tsx"],"sourcesContent":["import './channel-profile.scss';\nimport React, { useState, useContext } from 'react';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelSettingsContext } from '../../context/ChannelSettingsProvider';\n\nimport ChannelAvatar from '../../../../ui/ChannelAvatar';\nimport TextButton from '../../../../ui/TextButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\n\nimport EditDetailsModal from '../EditDetailsModal';\n\nconst ChannelProfile: React.FC = () => {\n const state = useSendbirdStateContext();\n const channelSettingStore = useChannelSettingsContext();\n const { stringSet } = useContext(LocalizationContext);\n const [showModal, setShowModal] = useState(false);\n\n const userId = state?.config?.userId;\n const theme = state?.config?.theme || 'light';\n const isOnline = state?.config?.isOnline;\n const disabled = !isOnline;\n\n const { channel } = channelSettingStore;\n\n const getChannelName = () => {\n if (channel?.name && channel?.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel?.name === 'Group Channel' || !channel?.name) {\n return (channel?.members || []).map((member) => member.nickname || stringSet.NO_NAME).join(', ');\n }\n\n return stringSet.NO_TITLE;\n };\n\n return (\n <div className=\"sendbird-channel-profile\">\n <div className=\"sendbird-channel-profile--inner\">\n <div className=\"sendbird-channel-profile__avatar\">\n <ChannelAvatar\n channel={channel}\n userId={userId}\n theme={theme}\n width={80}\n height={80}\n />\n </div>\n <Label\n className=\"sendbird-channel-profile__title\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {getChannelName()}\n </Label>\n <TextButton\n disabled={disabled}\n className=\"sendbird-channel-profile__edit\"\n onClick={() => {\n if (disabled) { return; }\n setShowModal(true);\n }}\n disableUnderline\n >\n <Label\n type={LabelTypography.BUTTON_1}\n color={disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY}\n >\n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n </Label>\n </TextButton>\n {\n showModal && (\n <EditDetailsModal\n onCancel={() => setShowModal(false)}\n onSubmit={() => setShowModal(false)}\n />\n )\n }\n </div>\n </div>\n );\n};\n\nexport default ChannelProfile;\n"],"names":["ChannelProfile","state","useSendbirdStateContext","channelSettingStore","useChannelSettingsContext","stringSet","useContext","LocalizationContext","_d","useState","showModal","setShowModal","userId","_a","config","theme","_b","isOnline","_c","disabled","channel","getChannelName","name","members","map","member","nickname","NO_NAME","join","NO_TITLE","React","createElement","className","ChannelAvatar","width","height","Label","type","LabelTypography","SUBTITLE_2","color","LabelColors","ONBACKGROUND_1","TextButton","onClick","disableUnderline","BUTTON_1","ONBACKGROUND_2","PRIMARY","CHANNEL_SETTING__PROFILE__EDIT","EditDetailsModal","onCancel","onSubmit"],"mappings":"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"}