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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (994) hide show
  1. package/App.js +272 -345
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +134 -0
  4. package/Channel/components/ChannelHeader.js +45 -50
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +76 -77
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +53 -58
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +9 -12
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +198 -176
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +137 -130
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +171 -161
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +40 -41
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +156 -136
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +47 -48
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +17 -18
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +17 -17
  27. package/Channel/utils/compareMessagesForGrouping.js +11 -11
  28. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  29. package/Channel/utils/getMessagePartsInfo.js +32 -26
  30. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  31. package/Channel.js +54 -51
  32. package/Channel.js.map +1 -1
  33. package/ChannelList/components/AddChannel.js +32 -30
  34. package/ChannelList/components/AddChannel.js.map +1 -1
  35. package/ChannelList/components/ChannelListHeader.js +22 -31
  36. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  37. package/ChannelList/components/ChannelListUI.js +93 -88
  38. package/ChannelList/components/ChannelListUI.js.map +1 -1
  39. package/ChannelList/components/ChannelPreview.js +79 -75
  40. package/ChannelList/components/ChannelPreview.js.map +1 -1
  41. package/ChannelList/components/ChannelPreviewAction.js +85 -91
  42. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  43. package/ChannelList/context.js +9 -10
  44. package/ChannelList/context.js.map +1 -1
  45. package/ChannelList.js +38 -35
  46. package/ChannelList.js.map +1 -1
  47. package/ChannelListProvider-f520f5b3.js +1051 -0
  48. package/ChannelListProvider-f520f5b3.js.map +1 -0
  49. package/ChannelProvider-7f6fd1f8.js +2080 -0
  50. package/ChannelProvider-7f6fd1f8.js.map +1 -0
  51. package/ChannelSettings/components/ChannelProfile.js +42 -37
  52. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  53. package/ChannelSettings/components/ChannelSettingsUI.js +44 -47
  54. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  55. package/ChannelSettings/components/EditDetailsModal.js +54 -52
  56. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  57. package/ChannelSettings/components/LeaveChannel.js +39 -41
  58. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  59. package/ChannelSettings/components/ModerationPanel.js +552 -509
  60. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  61. package/ChannelSettings/components/UserListItem.js +66 -66
  62. package/ChannelSettings/components/UserListItem.js.map +1 -1
  63. package/ChannelSettings/components/UserPanel.js +29 -26
  64. package/ChannelSettings/components/UserPanel.js.map +1 -1
  65. package/ChannelSettings/context.js +52 -57
  66. package/ChannelSettings/context.js.map +1 -1
  67. package/ChannelSettings.js +20 -19
  68. package/ChannelSettings.js.map +1 -1
  69. package/CreateChannel/components/CreateChannelUI.js +23 -25
  70. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  71. package/CreateChannel/components/InviteUsers.js +106 -102
  72. package/CreateChannel/components/InviteUsers.js.map +1 -1
  73. package/CreateChannel/components/SelectChannelType.js +38 -43
  74. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  75. package/CreateChannel/context.js +4 -4
  76. package/CreateChannel.js +22 -23
  77. package/CreateChannel.js.map +1 -1
  78. package/CreateChannelProvider-c25dd81b.js +48 -0
  79. package/{CreateChannelProvider-a2fad282.js.map → CreateChannelProvider-c25dd81b.js.map} +1 -1
  80. package/CreateOpenChannel/components/CreateOpenChannelUI.js +38 -36
  81. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  82. package/CreateOpenChannel/context.js +29 -34
  83. package/CreateOpenChannel/context.js.map +1 -1
  84. package/CreateOpenChannel.js +20 -21
  85. package/CreateOpenChannel.js.map +1 -1
  86. package/EditUserProfile/components/EditUserProfileUI.js +152 -21
  87. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  88. package/EditUserProfile/context.js +13 -13
  89. package/EditUserProfile/context.js.map +1 -1
  90. package/EditUserProfile.js +19 -19
  91. package/EditUserProfile.js.map +1 -1
  92. package/LocalizationContext-d18a86d8.js +20 -0
  93. package/{LocalizationContext-2463058b.js.map → LocalizationContext-d18a86d8.js.map} +1 -1
  94. package/MediaQueryContext-3eeeec4f.js +85 -0
  95. package/MediaQueryContext-3eeeec4f.js.map +1 -0
  96. package/MemberList-469dae9b.js +422 -0
  97. package/{MemberList-593867cb.js.map → MemberList-469dae9b.js.map} +1 -1
  98. package/Message/context.js +11 -12
  99. package/Message/context.js.map +1 -1
  100. package/Message/hooks/useDirtyGetMentions.js +21 -26
  101. package/Message/hooks/useDirtyGetMentions.js.map +1 -1
  102. package/MessageSearch/components/MessageSearchUI.js +56 -61
  103. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  104. package/MessageSearch/context.js +166 -177
  105. package/MessageSearch/context.js.map +1 -1
  106. package/MessageSearch.js +49 -47
  107. package/MessageSearch.js.map +1 -1
  108. package/OpenChannel/components/FrozenChannelNotification.js +6 -8
  109. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  110. package/OpenChannel/components/OpenChannelHeader.js +22 -27
  111. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  112. package/OpenChannel/components/OpenChannelInput.js +32 -35
  113. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  114. package/OpenChannel/components/OpenChannelMessage.js +170 -171
  115. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  116. package/OpenChannel/components/OpenChannelMessageList.js +70 -64
  117. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  118. package/OpenChannel/components/OpenChannelUI.js +53 -54
  119. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  120. package/OpenChannel/context.js +8 -9
  121. package/OpenChannel/context.js.map +1 -1
  122. package/OpenChannel.js +37 -35
  123. package/OpenChannel.js.map +1 -1
  124. package/OpenChannelList/components/OpenChannelListUI.js +63 -61
  125. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  126. package/OpenChannelList/components/OpenChannelPreview.js +22 -21
  127. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  128. package/OpenChannelList/context.js +3 -3
  129. package/OpenChannelList.js +27 -27
  130. package/OpenChannelList.js.map +1 -1
  131. package/{OpenChannelListProvider-a0a09f0b.js → OpenChannelListProvider-24e735a1.js} +156 -178
  132. package/{OpenChannelListProvider-a0a09f0b.js.map → OpenChannelListProvider-24e735a1.js.map} +1 -1
  133. package/OpenChannelProvider-e9cb0f98.js +1850 -0
  134. package/{OpenChannelProvider-3e4b8c8e.js.map → OpenChannelProvider-e9cb0f98.js.map} +1 -1
  135. package/OpenChannelSettings/components/EditDetailsModal.js +52 -51
  136. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  137. package/OpenChannelSettings/components/OpenChannelProfile.js +30 -29
  138. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  139. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +39 -47
  140. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  141. package/OpenChannelSettings/components/OperatorUI.js +550 -518
  142. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  143. package/OpenChannelSettings/components/ParticipantUI.js +16 -15
  144. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  145. package/OpenChannelSettings/context.js +58 -57
  146. package/OpenChannelSettings/context.js.map +1 -1
  147. package/OpenChannelSettings.js +20 -19
  148. package/OpenChannelSettings.js.map +1 -1
  149. package/README.md +4 -4
  150. package/RemoveMessageModal-f0cd37a5.js +33 -0
  151. package/RemoveMessageModal-f0cd37a5.js.map +1 -0
  152. package/SendbirdProvider.js +726 -690
  153. package/SendbirdProvider.js.map +1 -1
  154. package/Thread/components/ParentMessageInfo.js +194 -181
  155. package/Thread/components/ParentMessageInfo.js.map +1 -1
  156. package/Thread/components/ParentMessageInfoItem.js +86 -79
  157. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  158. package/Thread/components/ThreadHeader.js +22 -22
  159. package/Thread/components/ThreadHeader.js.map +1 -1
  160. package/Thread/components/ThreadList.js +126 -94
  161. package/Thread/components/ThreadList.js.map +1 -1
  162. package/Thread/components/ThreadListItem.js +260 -241
  163. package/Thread/components/ThreadListItem.js.map +1 -1
  164. package/Thread/components/ThreadMessageInput.js +121 -120
  165. package/Thread/components/ThreadMessageInput.js.map +1 -1
  166. package/Thread/components/ThreadUI.js +128 -144
  167. package/Thread/components/ThreadUI.js.map +1 -1
  168. package/Thread/context/types.js +9 -9
  169. package/Thread/context/types.js.map +1 -1
  170. package/Thread/context.js +1678 -19
  171. package/Thread/context.js.map +1 -1
  172. package/Thread.js +76 -73
  173. package/Thread.js.map +1 -1
  174. package/UserProfileContext-26e71f9a.js +34 -0
  175. package/UserProfileContext-26e71f9a.js.map +1 -0
  176. package/VoicePlayer/context.js +3 -3
  177. package/VoicePlayer/useVoicePlayer.js +52 -46
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  179. package/VoiceRecorder/context.js +68 -64
  180. package/VoiceRecorder/context.js.map +1 -1
  181. package/VoiceRecorder/useVoiceRecorder.js +50 -52
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  183. package/{WebAudioUtils-f9386235.js → WebAudioUtils-dbb010a5.js} +38 -38
  184. package/{WebAudioUtils-f9386235.js.map → WebAudioUtils-dbb010a5.js.map} +1 -1
  185. package/{_rollupPluginBabelHelpers-50c9576f.js → _rollupPluginBabelHelpers-07dcbc2b.js} +17 -17
  186. package/_rollupPluginBabelHelpers-07dcbc2b.js.map +1 -0
  187. package/{actionTypes-501b8c11.js → actionTypes-3cd49b5c.js} +2 -2
  188. package/{actionTypes-501b8c11.js.map → actionTypes-3cd49b5c.js.map} +1 -1
  189. package/cjs/App.js +270 -344
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +44 -49
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +79 -80
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +52 -57
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +9 -12
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +197 -175
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +136 -129
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +173 -163
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +41 -42
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +155 -135
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +46 -47
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +17 -18
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +17 -17
  214. package/cjs/Channel/utils/compareMessagesForGrouping.js +11 -11
  215. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  216. package/cjs/Channel/utils/getMessagePartsInfo.js +32 -26
  217. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  218. package/cjs/Channel.js +54 -51
  219. package/cjs/Channel.js.map +1 -1
  220. package/cjs/ChannelList/components/AddChannel.js +31 -29
  221. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  222. package/cjs/ChannelList/components/ChannelListHeader.js +21 -30
  223. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  224. package/cjs/ChannelList/components/ChannelListUI.js +96 -91
  225. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  226. package/cjs/ChannelList/components/ChannelPreview.js +78 -74
  227. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  228. package/cjs/ChannelList/components/ChannelPreviewAction.js +84 -91
  229. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  230. package/cjs/ChannelList/context.js +9 -10
  231. package/cjs/ChannelList/context.js.map +1 -1
  232. package/cjs/ChannelList.js +38 -35
  233. package/cjs/ChannelList.js.map +1 -1
  234. package/cjs/ChannelListProvider-a418de2e.js +1060 -0
  235. package/cjs/ChannelListProvider-a418de2e.js.map +1 -0
  236. package/cjs/ChannelProvider-7fa98120.js +2088 -0
  237. package/cjs/ChannelProvider-7fa98120.js.map +1 -0
  238. package/cjs/ChannelSettings/components/ChannelProfile.js +41 -36
  239. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  240. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +44 -47
  241. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  242. package/cjs/ChannelSettings/components/EditDetailsModal.js +54 -52
  243. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  244. package/cjs/ChannelSettings/components/LeaveChannel.js +38 -40
  245. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  246. package/cjs/ChannelSettings/components/ModerationPanel.js +559 -516
  247. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  248. package/cjs/ChannelSettings/components/UserListItem.js +66 -66
  249. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  250. package/cjs/ChannelSettings/components/UserPanel.js +29 -26
  251. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  252. package/cjs/ChannelSettings/context.js +51 -56
  253. package/cjs/ChannelSettings/context.js.map +1 -1
  254. package/cjs/ChannelSettings.js +20 -19
  255. package/cjs/ChannelSettings.js.map +1 -1
  256. package/cjs/CreateChannel/components/CreateChannelUI.js +23 -25
  257. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  258. package/cjs/CreateChannel/components/InviteUsers.js +106 -102
  259. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  260. package/cjs/CreateChannel/components/SelectChannelType.js +37 -42
  261. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  262. package/cjs/CreateChannel/context.js +4 -4
  263. package/cjs/CreateChannel.js +22 -23
  264. package/cjs/CreateChannel.js.map +1 -1
  265. package/cjs/CreateChannelProvider-70c9cb7c.js +55 -0
  266. package/cjs/{CreateChannelProvider-8b8a557c.js.map → CreateChannelProvider-70c9cb7c.js.map} +1 -1
  267. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +39 -37
  268. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  269. package/cjs/CreateOpenChannel/context.js +28 -33
  270. package/cjs/CreateOpenChannel/context.js.map +1 -1
  271. package/cjs/CreateOpenChannel.js +20 -21
  272. package/cjs/CreateOpenChannel.js.map +1 -1
  273. package/cjs/EditUserProfile/components/EditUserProfileUI.js +153 -22
  274. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  275. package/cjs/EditUserProfile/context.js +13 -13
  276. package/cjs/EditUserProfile/context.js.map +1 -1
  277. package/cjs/EditUserProfile.js +21 -21
  278. package/cjs/EditUserProfile.js.map +1 -1
  279. package/cjs/{LocalizationContext-482c1343.js → LocalizationContext-5009012e.js} +9 -9
  280. package/cjs/{LocalizationContext-482c1343.js.map → LocalizationContext-5009012e.js.map} +1 -1
  281. package/cjs/MediaQueryContext-d6fdbe43.js +92 -0
  282. package/cjs/MediaQueryContext-d6fdbe43.js.map +1 -0
  283. package/cjs/MemberList-529a0086.js +428 -0
  284. package/cjs/{MemberList-26b8de48.js.map → MemberList-529a0086.js.map} +1 -1
  285. package/cjs/Message/context.js +11 -12
  286. package/cjs/Message/context.js.map +1 -1
  287. package/cjs/Message/hooks/useDirtyGetMentions.js +21 -26
  288. package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
  289. package/cjs/MessageSearch/components/MessageSearchUI.js +60 -65
  290. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  291. package/cjs/MessageSearch/context.js +165 -176
  292. package/cjs/MessageSearch/context.js.map +1 -1
  293. package/cjs/MessageSearch.js +49 -47
  294. package/cjs/MessageSearch.js.map +1 -1
  295. package/cjs/OpenChannel/components/FrozenChannelNotification.js +6 -8
  296. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  297. package/cjs/OpenChannel/components/OpenChannelHeader.js +22 -27
  298. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  299. package/cjs/OpenChannel/components/OpenChannelInput.js +32 -35
  300. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  301. package/cjs/OpenChannel/components/OpenChannelMessage.js +169 -170
  302. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  303. package/cjs/OpenChannel/components/OpenChannelMessageList.js +69 -63
  304. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  305. package/cjs/OpenChannel/components/OpenChannelUI.js +56 -57
  306. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  307. package/cjs/OpenChannel/context.js +8 -9
  308. package/cjs/OpenChannel/context.js.map +1 -1
  309. package/cjs/OpenChannel.js +37 -35
  310. package/cjs/OpenChannel.js.map +1 -1
  311. package/cjs/OpenChannelList/components/OpenChannelListUI.js +66 -64
  312. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  313. package/cjs/OpenChannelList/components/OpenChannelPreview.js +22 -21
  314. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  315. package/cjs/OpenChannelList/context.js +3 -3
  316. package/cjs/OpenChannelList.js +27 -27
  317. package/cjs/OpenChannelList.js.map +1 -1
  318. package/cjs/OpenChannelListProvider-0b8cd3bf.js +416 -0
  319. package/cjs/{OpenChannelListProvider-2e3ee48d.js.map → OpenChannelListProvider-0b8cd3bf.js.map} +1 -1
  320. package/cjs/OpenChannelProvider-d8cc11fe.js +1859 -0
  321. package/cjs/{OpenChannelProvider-8577ea58.js.map → OpenChannelProvider-d8cc11fe.js.map} +1 -1
  322. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +53 -52
  323. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +29 -28
  325. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +40 -48
  327. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/components/OperatorUI.js +557 -525
  329. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  330. package/cjs/OpenChannelSettings/components/ParticipantUI.js +16 -15
  331. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  332. package/cjs/OpenChannelSettings/context.js +57 -56
  333. package/cjs/OpenChannelSettings/context.js.map +1 -1
  334. package/cjs/OpenChannelSettings.js +20 -19
  335. package/cjs/OpenChannelSettings.js.map +1 -1
  336. package/cjs/RemoveMessageModal-f029d40e.js +39 -0
  337. package/cjs/RemoveMessageModal-f029d40e.js.map +1 -0
  338. package/cjs/SendbirdProvider.js +733 -693
  339. package/cjs/SendbirdProvider.js.map +1 -1
  340. package/cjs/Thread/components/ParentMessageInfo.js +193 -180
  341. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  342. package/cjs/Thread/components/ParentMessageInfoItem.js +86 -79
  343. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  344. package/cjs/Thread/components/ThreadHeader.js +22 -22
  345. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  346. package/cjs/Thread/components/ThreadList.js +125 -93
  347. package/cjs/Thread/components/ThreadList.js.map +1 -1
  348. package/cjs/Thread/components/ThreadListItem.js +263 -244
  349. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  350. package/cjs/Thread/components/ThreadMessageInput.js +120 -119
  351. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  352. package/cjs/Thread/components/ThreadUI.js +134 -150
  353. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  354. package/cjs/Thread/context/types.js +9 -13
  355. package/cjs/Thread/context/types.js.map +1 -1
  356. package/cjs/Thread/context.js +1680 -21
  357. package/cjs/Thread/context.js.map +1 -1
  358. package/cjs/Thread.js +76 -73
  359. package/cjs/Thread.js.map +1 -1
  360. package/cjs/UserProfileContext-922a43ec.js +41 -0
  361. package/cjs/UserProfileContext-922a43ec.js.map +1 -0
  362. package/cjs/VoicePlayer/context.js +3 -3
  363. package/cjs/VoicePlayer/useVoicePlayer.js +52 -46
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  365. package/cjs/VoiceRecorder/context.js +67 -63
  366. package/cjs/VoiceRecorder/context.js.map +1 -1
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +49 -51
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  369. package/cjs/{WebAudioUtils-142344fd.js → WebAudioUtils-29717597.js} +38 -38
  370. package/cjs/{WebAudioUtils-142344fd.js.map → WebAudioUtils-29717597.js.map} +1 -1
  371. package/cjs/{_rollupPluginBabelHelpers-83d7e84b.js → _rollupPluginBabelHelpers-94c18dc1.js} +16 -17
  372. package/cjs/_rollupPluginBabelHelpers-94c18dc1.js.map +1 -0
  373. package/cjs/{actionTypes-1d118952.js → actionTypes-7fa02f94.js} +2 -2
  374. package/cjs/{actionTypes-1d118952.js.map → actionTypes-7fa02f94.js.map} +1 -1
  375. package/cjs/{color-d83b77ac.js → color-477ddbd4.js} +12 -13
  376. package/cjs/color-477ddbd4.js.map +1 -0
  377. package/cjs/{compareIds-bef997cb.js → compareIds-de541666.js} +7 -6
  378. package/cjs/compareIds-de541666.js.map +1 -0
  379. package/cjs/{const-1726bde0.js → const-640252c1.js} +4 -4
  380. package/cjs/{const-1726bde0.js.map → const-640252c1.js.map} +1 -1
  381. package/cjs/const-9def5c09.js +19 -0
  382. package/cjs/{const-67ff9e34.js.map → const-9def5c09.js.map} +1 -1
  383. package/cjs/consts-54f5c12d.js +6 -0
  384. package/cjs/consts-54f5c12d.js.map +1 -0
  385. package/cjs/consts-85cd42fa.js +6 -0
  386. package/cjs/{consts-bf228385.js.map → consts-85cd42fa.js.map} +1 -1
  387. package/cjs/{consts-fb07c671.js → consts-95462b21.js} +18 -25
  388. package/cjs/{consts-fb07c671.js.map → consts-95462b21.js.map} +1 -1
  389. package/cjs/consts-a3b7ae99.js +6 -0
  390. package/cjs/{consts-d3b53f23.js.map → consts-a3b7ae99.js.map} +1 -1
  391. package/cjs/{context-bd2878ff.js → context-9814fafe.js} +5 -6
  392. package/cjs/{context-bd2878ff.js.map → context-9814fafe.js.map} +1 -1
  393. package/cjs/dist/index.css +110 -95
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/hooks/useModal.js +84 -0
  398. package/cjs/hooks/useModal.js.map +1 -0
  399. package/cjs/{index-81baccd0.js → index-0a25b9b2.js} +166 -154
  400. package/cjs/index-0a25b9b2.js.map +1 -0
  401. package/cjs/index-0ec5a831.js +308 -0
  402. package/cjs/{index-1f6b30ea.js.map → index-0ec5a831.js.map} +1 -1
  403. package/cjs/{index-18720f0d.js → index-35820a94.js} +2 -2
  404. package/cjs/{index-18720f0d.js.map → index-35820a94.js.map} +1 -1
  405. package/cjs/index-609b07a2.js +7 -0
  406. package/cjs/index-609b07a2.js.map +1 -0
  407. package/cjs/index-6b0644d7.js +369 -0
  408. package/cjs/index-6b0644d7.js.map +1 -0
  409. package/cjs/{index-857630c5.js → index-7b0c6630.js} +104 -114
  410. package/cjs/index-7b0c6630.js.map +1 -0
  411. package/cjs/index-80a11b6a.js +197 -0
  412. package/cjs/{index-6ab9a40d.js.map → index-80a11b6a.js.map} +1 -1
  413. package/cjs/{index-4eb7e2b5.js → index-826b76d5.js} +2 -4
  414. package/cjs/index-826b76d5.js.map +1 -0
  415. package/cjs/{index-11f9cc0f.js → index-83d2aed9.js} +3 -12
  416. package/cjs/index-83d2aed9.js.map +1 -0
  417. package/cjs/index-aeb36f01.js +173 -0
  418. package/cjs/index-aeb36f01.js.map +1 -0
  419. package/cjs/{index-c9b003b3.js → index-b6d51e74.js} +56 -193
  420. package/cjs/index-b6d51e74.js.map +1 -0
  421. package/cjs/index-b995f638.js +741 -0
  422. package/cjs/index-b995f638.js.map +1 -0
  423. package/cjs/{index-759f2a26.js → index-bdf7089c.js} +72 -80
  424. package/cjs/{index-759f2a26.js.map → index-bdf7089c.js.map} +1 -1
  425. package/cjs/{index-7c374c20.js → index-c22e0cbf.js} +25 -28
  426. package/cjs/{index-7c374c20.js.map → index-c22e0cbf.js.map} +1 -1
  427. package/cjs/index-daf80c58.js +20 -0
  428. package/cjs/index-daf80c58.js.map +1 -0
  429. package/cjs/index-e81e2882.js +59 -0
  430. package/cjs/{index-2ab19f9b.js.map → index-e81e2882.js.map} +1 -1
  431. package/cjs/{index-91b4af96.js → index-ee3bf381.js} +39 -37
  432. package/cjs/{index-91b4af96.js.map → index-ee3bf381.js.map} +1 -1
  433. package/cjs/{index-d04f312e.js → index-fd8a0abb.js} +10 -30
  434. package/cjs/index-fd8a0abb.js.map +1 -0
  435. package/cjs/index.js +66 -63
  436. package/cjs/index.js.map +1 -1
  437. package/cjs/lame.all.js.map +1 -1
  438. package/cjs/package.json +2 -49
  439. package/cjs/{topics-adde627b.js → pubSub/topics.js} +6 -2
  440. package/cjs/pubSub/topics.js.map +1 -0
  441. package/cjs/{resolvedReplyType-85b4bd7c.js → resolvedReplyType-c20ef661.js} +1 -1
  442. package/cjs/{resolvedReplyType-85b4bd7c.js.map → resolvedReplyType-c20ef661.js.map} +1 -1
  443. package/cjs/sendbirdSelectors.js +381 -332
  444. package/cjs/sendbirdSelectors.js.map +1 -1
  445. package/cjs/stringFormatterUtils-e324636c.js +16 -0
  446. package/cjs/{stringFormatterUtils-8d6592ca.js.map → stringFormatterUtils-e324636c.js.map} +1 -1
  447. package/cjs/{stringSet-d00535a5.js → stringSet-98b52c49.js} +9 -2
  448. package/cjs/stringSet-98b52c49.js.map +1 -0
  449. package/cjs/{tokenize-9296fc47.js → tokenize-91bdbeb0.js} +56 -61
  450. package/cjs/{tokenize-9296fc47.js.map → tokenize-91bdbeb0.js.map} +1 -1
  451. package/cjs/tslib.es6-2f2b0bca.js +102 -0
  452. package/cjs/tslib.es6-2f2b0bca.js.map +1 -0
  453. package/cjs/types-31ed2276.js +11 -0
  454. package/cjs/types-31ed2276.js.map +1 -0
  455. package/cjs/types-66554668.js +15 -0
  456. package/cjs/types-66554668.js.map +1 -0
  457. package/cjs/ui/Accordion.js +18 -19
  458. package/cjs/ui/Accordion.js.map +1 -1
  459. package/cjs/ui/AccordionGroup.js +11 -10
  460. package/cjs/ui/AccordionGroup.js.map +1 -1
  461. package/cjs/ui/AdminMessage.js +10 -10
  462. package/cjs/ui/AdminMessage.js.map +1 -1
  463. package/cjs/ui/Avatar.js +59 -55
  464. package/cjs/ui/Avatar.js.map +1 -1
  465. package/cjs/ui/Badge.js +15 -16
  466. package/cjs/ui/Badge.js.map +1 -1
  467. package/cjs/ui/BottomSheet.js +15 -17
  468. package/cjs/ui/BottomSheet.js.map +1 -1
  469. package/cjs/ui/Button.js +31 -33
  470. package/cjs/ui/Button.js.map +1 -1
  471. package/cjs/ui/ChannelAvatar.js +41 -38
  472. package/cjs/ui/ChannelAvatar.js.map +1 -1
  473. package/cjs/ui/Checkbox.js +10 -9
  474. package/cjs/ui/Checkbox.js.map +1 -1
  475. package/cjs/ui/ConnectionStatus.js +5 -7
  476. package/cjs/ui/ConnectionStatus.js.map +1 -1
  477. package/cjs/ui/ContextMenu.js +143 -144
  478. package/cjs/ui/ContextMenu.js.map +1 -1
  479. package/cjs/ui/DateSeparator.js +14 -12
  480. package/cjs/ui/DateSeparator.js.map +1 -1
  481. package/cjs/ui/EmojiReactions.js +206 -176
  482. package/cjs/ui/EmojiReactions.js.map +1 -1
  483. package/cjs/ui/FileMessageItemBody.js +23 -23
  484. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  485. package/cjs/ui/FileViewer.js +14 -12
  486. package/cjs/ui/FileViewer.js.map +1 -1
  487. package/cjs/ui/Icon.js +16 -16
  488. package/cjs/ui/Icon.js.map +1 -1
  489. package/cjs/ui/IconButton.js +28 -20
  490. package/cjs/ui/IconButton.js.map +1 -1
  491. package/cjs/ui/ImageRenderer.js +84 -64
  492. package/cjs/ui/ImageRenderer.js.map +1 -1
  493. package/cjs/ui/Input.js +14 -16
  494. package/cjs/ui/Input.js.map +1 -1
  495. package/cjs/ui/Label.js +2 -2
  496. package/cjs/ui/LinkLabel.js +2 -2
  497. package/cjs/ui/LinkLabel.js.map +1 -1
  498. package/cjs/ui/Loader.js +12 -10
  499. package/cjs/ui/Loader.js.map +1 -1
  500. package/cjs/ui/MentionLabel.js +63 -59
  501. package/cjs/ui/MentionLabel.js.map +1 -1
  502. package/cjs/ui/MentionUserLabel.js +10 -10
  503. package/cjs/ui/MentionUserLabel.js.map +1 -1
  504. package/cjs/ui/MessageContent.js +187 -171
  505. package/cjs/ui/MessageContent.js.map +1 -1
  506. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -4
  507. package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -1
  508. package/cjs/ui/MessageInput.js +55 -57
  509. package/cjs/ui/MessageInput.js.map +1 -1
  510. package/cjs/ui/MessageItemMenu.js +93 -72
  511. package/cjs/ui/MessageItemMenu.js.map +1 -1
  512. package/cjs/ui/MessageItemReactionMenu.js +64 -56
  513. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  514. package/cjs/ui/MessageSearchFileItem.js +40 -49
  515. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  516. package/cjs/ui/MessageSearchItem.js +32 -40
  517. package/cjs/ui/MessageSearchItem.js.map +1 -1
  518. package/cjs/ui/MessageStatus.js +11 -11
  519. package/cjs/ui/Modal.js +57 -59
  520. package/cjs/ui/Modal.js.map +1 -1
  521. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  522. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  523. package/cjs/ui/OGMessageItemBody.js +47 -47
  524. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  525. package/cjs/ui/OpenChannelAdminMessage.js +7 -8
  526. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  527. package/cjs/ui/OpenChannelAvatar.js +17 -18
  528. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  529. package/cjs/ui/OpenchannelConversationHeader.js +13 -17
  530. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  531. package/cjs/ui/OpenchannelFileMessage.js +147 -139
  532. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  533. package/cjs/ui/OpenchannelOGMessage.js +185 -178
  534. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  535. package/cjs/ui/OpenchannelThumbnailMessage.js +220 -213
  536. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  537. package/cjs/ui/OpenchannelUserMessage.js +172 -164
  538. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  539. package/cjs/ui/PlaceHolder.js +108 -10
  540. package/cjs/ui/PlaceHolder.js.map +1 -1
  541. package/cjs/ui/PlaybackTime.js +16 -15
  542. package/cjs/ui/PlaybackTime.js.map +1 -1
  543. package/cjs/ui/ProgressBar.js +15 -13
  544. package/cjs/ui/ProgressBar.js.map +1 -1
  545. package/cjs/ui/QuoteMessage.js +41 -44
  546. package/cjs/ui/QuoteMessage.js.map +1 -1
  547. package/cjs/ui/QuoteMessageInput.js +45 -31
  548. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  549. package/cjs/ui/ReactionBadge.js +17 -13
  550. package/cjs/ui/ReactionBadge.js.map +1 -1
  551. package/cjs/ui/ReactionButton.js +19 -19
  552. package/cjs/ui/ReactionButton.js.map +1 -1
  553. package/cjs/ui/SortByRow.js +14 -14
  554. package/cjs/ui/SortByRow.js.map +1 -1
  555. package/cjs/ui/TextButton.js +21 -13
  556. package/cjs/ui/TextButton.js.map +1 -1
  557. package/cjs/ui/TextMessageItemBody.js +33 -31
  558. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  559. package/cjs/ui/ThreadReplies.js +21 -25
  560. package/cjs/ui/ThreadReplies.js.map +1 -1
  561. package/cjs/ui/ThumbnailMessageItemBody.js +37 -28
  562. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  563. package/cjs/ui/Toggle.js +85 -77
  564. package/cjs/ui/Toggle.js.map +1 -1
  565. package/cjs/ui/Tooltip.js +9 -8
  566. package/cjs/ui/Tooltip.js.map +1 -1
  567. package/cjs/ui/TooltipWrapper.js +18 -17
  568. package/cjs/ui/TooltipWrapper.js.map +1 -1
  569. package/cjs/ui/UnknownMessageItemBody.js +19 -20
  570. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  571. package/cjs/ui/UserListItem.js +80 -75
  572. package/cjs/ui/UserListItem.js.map +1 -1
  573. package/cjs/ui/UserProfile.js +28 -33
  574. package/cjs/ui/UserProfile.js.map +1 -1
  575. package/cjs/ui/VoiceMessageItemBody.js +49 -43
  576. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  577. package/cjs/ui/VoiceMessgeInput.js +8 -7
  578. package/cjs/ui/VoiceMessgeInput.js.map +1 -1
  579. package/cjs/ui/Word.js +29 -27
  580. package/cjs/ui/Word.js.map +1 -1
  581. package/cjs/{useHandleUploadFiles-b2fc56e5.js → useHandleUploadFiles-fbe6ad64.js} +114 -127
  582. package/cjs/useHandleUploadFiles-fbe6ad64.js.map +1 -0
  583. package/cjs/useLongPress-c1da8ba7.js +105 -0
  584. package/cjs/useLongPress-c1da8ba7.js.map +1 -0
  585. package/cjs/useSendMultipleFilesMessage-87e0ffa3.js +316 -0
  586. package/cjs/useSendMultipleFilesMessage-87e0ffa3.js.map +1 -0
  587. package/cjs/useSendbirdStateContext.js +8 -3
  588. package/cjs/useSendbirdStateContext.js.map +1 -1
  589. package/cjs/useStatefulFileInfoList-aa70b6b9.js +228 -0
  590. package/cjs/useStatefulFileInfoList-aa70b6b9.js.map +1 -0
  591. package/cjs/utils/message/getOutgoingMessageState.js +14 -16
  592. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  593. package/cjs/utils/message/isVoiceMessage.js +4 -4
  594. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  595. package/cjs/utils-0fac6ad1.js +27 -0
  596. package/cjs/utils-0fac6ad1.js.map +1 -0
  597. package/cjs/utils-180c6bc8.js +10 -0
  598. package/cjs/utils-180c6bc8.js.map +1 -0
  599. package/cjs/{utils-991911af.js → utils-46483130.js} +3 -3
  600. package/cjs/{utils-991911af.js.map → utils-46483130.js.map} +1 -1
  601. package/cjs/utils-55fc6797.js +170 -0
  602. package/cjs/utils-55fc6797.js.map +1 -0
  603. package/cjs/utils-851724e0.js +62 -0
  604. package/cjs/utils-851724e0.js.map +1 -0
  605. package/cjs/utils-e313131f.js +35 -0
  606. package/cjs/utils-e313131f.js.map +1 -0
  607. package/cjs/uuid-c74bbbb6.js +17 -0
  608. package/cjs/{uuid-b2806cf5.js.map → uuid-c74bbbb6.js.map} +1 -1
  609. package/cjs/withSendbird.js +16 -22
  610. package/cjs/withSendbird.js.map +1 -1
  611. package/{color-b7f211a8.js → color-1383d4ab.js} +5 -5
  612. package/{color-b7f211a8.js.map → color-1383d4ab.js.map} +1 -1
  613. package/compareIds-b56b02f1.js +16 -0
  614. package/compareIds-b56b02f1.js.map +1 -0
  615. package/{const-74ec9eb4.js → const-4bc3721f.js} +4 -4
  616. package/{const-74ec9eb4.js.map → const-4bc3721f.js.map} +1 -1
  617. package/const-e3326913.js +13 -0
  618. package/{const-711048c3.js.map → const-e3326913.js.map} +1 -1
  619. package/consts-7f4d53a3.js +4 -0
  620. package/consts-7f4d53a3.js.map +1 -0
  621. package/consts-833420ed.js +4 -0
  622. package/{consts-6ee24012.js.map → consts-833420ed.js.map} +1 -1
  623. package/consts-aa64aca8.js +30 -0
  624. package/{consts-691a3935.js.map → consts-aa64aca8.js.map} +1 -1
  625. package/consts-f0ba9b80.js +4 -0
  626. package/consts-f0ba9b80.js.map +1 -0
  627. package/context-ae47ac54.js +12 -0
  628. package/{context-b4c70964.js.map → context-ae47ac54.js.map} +1 -1
  629. package/dist/index.css +110 -95
  630. package/dist/index.css.map +1 -1
  631. package/handlers/OpenChannelHandler.js.map +1 -1
  632. package/handlers/SessionHandler.js.map +1 -1
  633. package/hooks/useModal.js +73 -0
  634. package/hooks/useModal.js.map +1 -0
  635. package/{index-aa520474.js → index-12103973.js} +2 -2
  636. package/{index-aa520474.js.map → index-12103973.js.map} +1 -1
  637. package/index-124a5766.js +298 -0
  638. package/{index-e15f6b6a.js.map → index-124a5766.js.map} +1 -1
  639. package/{index-13401b87.js → index-1432c287.js} +2 -4
  640. package/index-1432c287.js.map +1 -0
  641. package/{index-b22c4150.js → index-1969ccd8.js} +25 -28
  642. package/{index-b22c4150.js.map → index-1969ccd8.js.map} +1 -1
  643. package/index-3d508585.js +53 -0
  644. package/{index-ae7ef8cf.js.map → index-3d508585.js.map} +1 -1
  645. package/{index-8a01c364.js → index-40447645.js} +73 -81
  646. package/{index-8a01c364.js.map → index-40447645.js.map} +1 -1
  647. package/{index-c421b228.js → index-7a1085b6.js} +99 -109
  648. package/index-7a1085b6.js.map +1 -0
  649. package/index-89b3b8ba.js +362 -0
  650. package/index-89b3b8ba.js.map +1 -0
  651. package/index-8c72f0bd.js +182 -0
  652. package/{index-98138798.js.map → index-8c72f0bd.js.map} +1 -1
  653. package/index-942c5fa2.js +161 -0
  654. package/index-942c5fa2.js.map +1 -0
  655. package/index-c6095960.js +4 -0
  656. package/index-c6095960.js.map +1 -0
  657. package/index-c7ed4aef.js +13 -0
  658. package/index-c7ed4aef.js.map +1 -0
  659. package/{index-daa3ae67.js → index-c81fd6ec.js} +56 -193
  660. package/index-c81fd6ec.js.map +1 -0
  661. package/{index-7700a436.js → index-d3f61405.js} +10 -30
  662. package/index-d3f61405.js.map +1 -0
  663. package/{index-5cb32ab5.js → index-dc1827ea.js} +3 -12
  664. package/index-dc1827ea.js.map +1 -0
  665. package/{index-3530f4f6.js → index-ec0c048b.js} +39 -37
  666. package/{index-3530f4f6.js.map → index-ec0c048b.js.map} +1 -1
  667. package/{index-b25ffa7e.js → index-eec0ce47.js} +166 -154
  668. package/index-eec0ce47.js.map +1 -0
  669. package/index-fc1642cb.js +692 -0
  670. package/index-fc1642cb.js.map +1 -0
  671. package/index.d.ts +143 -79
  672. package/index.js +66 -63
  673. package/index.js.map +1 -1
  674. package/lame.all.js.map +1 -1
  675. package/package.json +3 -3
  676. package/{topics-5659403d.js → pubSub/topics.js} +4 -3
  677. package/pubSub/topics.js.map +1 -0
  678. package/{resolvedReplyType-1a128514.js → resolvedReplyType-0532593c.js} +1 -1
  679. package/{resolvedReplyType-1a128514.js.map → resolvedReplyType-0532593c.js.map} +1 -1
  680. package/sendbirdSelectors.js +381 -332
  681. package/sendbirdSelectors.js.map +1 -1
  682. package/stringFormatterUtils-444f6f4c.js +14 -0
  683. package/{stringFormatterUtils-dbad592d.js.map → stringFormatterUtils-444f6f4c.js.map} +1 -1
  684. package/{stringSet-2814bf17.js → stringSet-1106c8ec.js} +9 -2
  685. package/stringSet-1106c8ec.js.map +1 -0
  686. package/{tokenize-4b153552.js → tokenize-d17bf862.js} +56 -61
  687. package/{tokenize-4b153552.js.map → tokenize-d17bf862.js.map} +1 -1
  688. package/tslib.es6-0c779aab.js +97 -0
  689. package/tslib.es6-0c779aab.js.map +1 -0
  690. package/types-4ffc52f6.js +15 -0
  691. package/types-4ffc52f6.js.map +1 -0
  692. package/types-50e412d8.js +9 -0
  693. package/types-50e412d8.js.map +1 -0
  694. package/ui/Accordion.js +18 -19
  695. package/ui/Accordion.js.map +1 -1
  696. package/ui/AccordionGroup.js +11 -10
  697. package/ui/AccordionGroup.js.map +1 -1
  698. package/ui/AdminMessage.js +10 -10
  699. package/ui/AdminMessage.js.map +1 -1
  700. package/ui/Avatar.js +59 -55
  701. package/ui/Avatar.js.map +1 -1
  702. package/ui/Badge.js +15 -16
  703. package/ui/Badge.js.map +1 -1
  704. package/ui/BottomSheet.js +15 -17
  705. package/ui/BottomSheet.js.map +1 -1
  706. package/ui/Button.js +19 -26
  707. package/ui/Button.js.map +1 -1
  708. package/ui/ChannelAvatar.js +41 -38
  709. package/ui/ChannelAvatar.js.map +1 -1
  710. package/ui/Checkbox.js +10 -9
  711. package/ui/Checkbox.js.map +1 -1
  712. package/ui/ConnectionStatus.js +5 -7
  713. package/ui/ConnectionStatus.js.map +1 -1
  714. package/ui/ContextMenu.js +143 -144
  715. package/ui/ContextMenu.js.map +1 -1
  716. package/ui/DateSeparator.js +14 -12
  717. package/ui/DateSeparator.js.map +1 -1
  718. package/ui/EmojiReactions.js +207 -177
  719. package/ui/EmojiReactions.js.map +1 -1
  720. package/ui/FileMessageItemBody.js +23 -23
  721. package/ui/FileMessageItemBody.js.map +1 -1
  722. package/ui/FileViewer.js +14 -12
  723. package/ui/FileViewer.js.map +1 -1
  724. package/ui/Icon.js +2 -2
  725. package/ui/Icon.js.map +1 -1
  726. package/ui/IconButton.js +28 -20
  727. package/ui/IconButton.js.map +1 -1
  728. package/ui/ImageRenderer.js +84 -65
  729. package/ui/ImageRenderer.js.map +1 -1
  730. package/ui/Input.js +14 -16
  731. package/ui/Input.js.map +1 -1
  732. package/ui/Label.js +2 -2
  733. package/ui/LinkLabel.js +2 -2
  734. package/ui/LinkLabel.js.map +1 -1
  735. package/ui/Loader.js +12 -10
  736. package/ui/Loader.js.map +1 -1
  737. package/ui/MentionLabel.js +64 -60
  738. package/ui/MentionLabel.js.map +1 -1
  739. package/ui/MentionUserLabel.js +10 -10
  740. package/ui/MentionUserLabel.js.map +1 -1
  741. package/ui/MessageContent.js +186 -170
  742. package/ui/MessageContent.js.map +1 -1
  743. package/ui/MessageInput/hooks/usePaste.js +5 -4
  744. package/ui/MessageInput/hooks/usePaste.js.map +1 -1
  745. package/ui/MessageInput.js +48 -50
  746. package/ui/MessageInput.js.map +1 -1
  747. package/ui/MessageItemMenu.js +93 -72
  748. package/ui/MessageItemMenu.js.map +1 -1
  749. package/ui/MessageItemReactionMenu.js +64 -56
  750. package/ui/MessageItemReactionMenu.js.map +1 -1
  751. package/ui/MessageSearchFileItem.js +40 -49
  752. package/ui/MessageSearchFileItem.js.map +1 -1
  753. package/ui/MessageSearchItem.js +32 -40
  754. package/ui/MessageSearchItem.js.map +1 -1
  755. package/ui/MessageStatus.js +11 -11
  756. package/ui/Modal.js +57 -59
  757. package/ui/Modal.js.map +1 -1
  758. package/ui/MutedAvatarOverlay.js +10 -10
  759. package/ui/MutedAvatarOverlay.js.map +1 -1
  760. package/ui/OGMessageItemBody.js +47 -47
  761. package/ui/OGMessageItemBody.js.map +1 -1
  762. package/ui/OpenChannelAdminMessage.js +7 -8
  763. package/ui/OpenChannelAdminMessage.js.map +1 -1
  764. package/ui/OpenChannelAvatar.js +17 -18
  765. package/ui/OpenChannelAvatar.js.map +1 -1
  766. package/ui/OpenchannelConversationHeader.js +13 -17
  767. package/ui/OpenchannelConversationHeader.js.map +1 -1
  768. package/ui/OpenchannelFileMessage.js +147 -139
  769. package/ui/OpenchannelFileMessage.js.map +1 -1
  770. package/ui/OpenchannelOGMessage.js +185 -178
  771. package/ui/OpenchannelOGMessage.js.map +1 -1
  772. package/ui/OpenchannelThumbnailMessage.js +220 -213
  773. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  774. package/ui/OpenchannelUserMessage.js +172 -164
  775. package/ui/OpenchannelUserMessage.js.map +1 -1
  776. package/ui/PlaceHolder.js +106 -8
  777. package/ui/PlaceHolder.js.map +1 -1
  778. package/ui/PlaybackTime.js +16 -15
  779. package/ui/PlaybackTime.js.map +1 -1
  780. package/ui/ProgressBar.js +15 -13
  781. package/ui/ProgressBar.js.map +1 -1
  782. package/ui/QuoteMessage.js +41 -44
  783. package/ui/QuoteMessage.js.map +1 -1
  784. package/ui/QuoteMessageInput.js +45 -31
  785. package/ui/QuoteMessageInput.js.map +1 -1
  786. package/ui/ReactionBadge.js +17 -13
  787. package/ui/ReactionBadge.js.map +1 -1
  788. package/ui/ReactionButton.js +19 -19
  789. package/ui/ReactionButton.js.map +1 -1
  790. package/ui/SortByRow.js +14 -14
  791. package/ui/SortByRow.js.map +1 -1
  792. package/ui/TextButton.js +21 -13
  793. package/ui/TextButton.js.map +1 -1
  794. package/ui/TextMessageItemBody.js +33 -31
  795. package/ui/TextMessageItemBody.js.map +1 -1
  796. package/ui/ThreadReplies.js +21 -25
  797. package/ui/ThreadReplies.js.map +1 -1
  798. package/ui/ThumbnailMessageItemBody.js +37 -28
  799. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  800. package/ui/Toggle.js +86 -78
  801. package/ui/Toggle.js.map +1 -1
  802. package/ui/Tooltip.js +9 -8
  803. package/ui/Tooltip.js.map +1 -1
  804. package/ui/TooltipWrapper.js +18 -17
  805. package/ui/TooltipWrapper.js.map +1 -1
  806. package/ui/UnknownMessageItemBody.js +19 -20
  807. package/ui/UnknownMessageItemBody.js.map +1 -1
  808. package/ui/UserListItem.js +80 -75
  809. package/ui/UserListItem.js.map +1 -1
  810. package/ui/UserProfile.js +29 -34
  811. package/ui/UserProfile.js.map +1 -1
  812. package/ui/VoiceMessageItemBody.js +49 -43
  813. package/ui/VoiceMessageItemBody.js.map +1 -1
  814. package/ui/VoiceMessgeInput.js +8 -7
  815. package/ui/VoiceMessgeInput.js.map +1 -1
  816. package/ui/Word.js +29 -27
  817. package/ui/Word.js.map +1 -1
  818. package/{useHandleUploadFiles-406a6c9c.js → useHandleUploadFiles-33aff88e.js} +111 -124
  819. package/useHandleUploadFiles-33aff88e.js.map +1 -0
  820. package/useLongPress-322bb6a3.js +103 -0
  821. package/useLongPress-322bb6a3.js.map +1 -0
  822. package/useSendMultipleFilesMessage-4489a0f6.js +283 -0
  823. package/useSendMultipleFilesMessage-4489a0f6.js.map +1 -0
  824. package/useSendbirdStateContext.js +5 -3
  825. package/useSendbirdStateContext.js.map +1 -1
  826. package/useStatefulFileInfoList-dd95f949.js +219 -0
  827. package/useStatefulFileInfoList-dd95f949.js.map +1 -0
  828. package/utils/message/getOutgoingMessageState.js +8 -9
  829. package/utils/message/getOutgoingMessageState.js.map +1 -1
  830. package/utils/message/isVoiceMessage.js +4 -4
  831. package/utils/message/isVoiceMessage.js.map +1 -1
  832. package/{utils-7cc92ac2.js → utils-158c1683.js} +3 -3
  833. package/{utils-7cc92ac2.js.map → utils-158c1683.js.map} +1 -1
  834. package/utils-3660243c.js +25 -0
  835. package/utils-3660243c.js.map +1 -0
  836. package/utils-40040f8e.js +157 -0
  837. package/utils-40040f8e.js.map +1 -0
  838. package/utils-48a3ef27.js +31 -0
  839. package/utils-48a3ef27.js.map +1 -0
  840. package/utils-74c161a0.js +7 -0
  841. package/utils-74c161a0.js.map +1 -0
  842. package/utils-e98a7f8c.js +57 -0
  843. package/utils-e98a7f8c.js.map +1 -0
  844. package/uuid-3c77ef7b.js +15 -0
  845. package/{uuid-16373bba.js.map → uuid-3c77ef7b.js.map} +1 -1
  846. package/withSendbird.js +16 -22
  847. package/withSendbird.js.map +1 -1
  848. package/ChannelListProvider-1188e373.js +0 -1028
  849. package/ChannelListProvider-1188e373.js.map +0 -1
  850. package/ChannelProvider-9de00431.js +0 -1933
  851. package/ChannelProvider-9de00431.js.map +0 -1
  852. package/CreateChannelProvider-a2fad282.js +0 -44
  853. package/LocalizationContext-2463058b.js +0 -20
  854. package/MediaQueryContext-e3429d12.js +0 -87
  855. package/MediaQueryContext-e3429d12.js.map +0 -1
  856. package/MemberList-593867cb.js +0 -404
  857. package/OpenChannelProvider-3e4b8c8e.js +0 -1890
  858. package/RemoveMessageModal-9162aebe.js +0 -38
  859. package/RemoveMessageModal-9162aebe.js.map +0 -1
  860. package/ThreadProvider-9a3b145f.js +0 -1778
  861. package/ThreadProvider-9a3b145f.js.map +0 -1
  862. package/UserProfileContext-4ae968eb.js +0 -41
  863. package/UserProfileContext-4ae968eb.js.map +0 -1
  864. package/_rollupPluginBabelHelpers-50c9576f.js.map +0 -1
  865. package/cjs/ChannelListProvider-e55e6242.js +0 -1037
  866. package/cjs/ChannelListProvider-e55e6242.js.map +0 -1
  867. package/cjs/ChannelProvider-6fa73019.js +0 -1941
  868. package/cjs/ChannelProvider-6fa73019.js.map +0 -1
  869. package/cjs/CreateChannelProvider-8b8a557c.js +0 -52
  870. package/cjs/MediaQueryContext-73aac8cf.js +0 -94
  871. package/cjs/MediaQueryContext-73aac8cf.js.map +0 -1
  872. package/cjs/MemberList-26b8de48.js +0 -410
  873. package/cjs/OpenChannelListProvider-2e3ee48d.js +0 -439
  874. package/cjs/OpenChannelProvider-8577ea58.js +0 -1899
  875. package/cjs/RemoveMessageModal-dfeeb36a.js +0 -44
  876. package/cjs/RemoveMessageModal-dfeeb36a.js.map +0 -1
  877. package/cjs/ThreadProvider-8b0cf491.js +0 -1787
  878. package/cjs/ThreadProvider-8b0cf491.js.map +0 -1
  879. package/cjs/UserProfileContext-fa8d0383.js +0 -49
  880. package/cjs/UserProfileContext-fa8d0383.js.map +0 -1
  881. package/cjs/_rollupPluginBabelHelpers-83d7e84b.js.map +0 -1
  882. package/cjs/color-d83b77ac.js.map +0 -1
  883. package/cjs/compareIds-bef997cb.js.map +0 -1
  884. package/cjs/const-67ff9e34.js +0 -20
  885. package/cjs/consts-b018b1ed.js +0 -6
  886. package/cjs/consts-b018b1ed.js.map +0 -1
  887. package/cjs/consts-bf228385.js +0 -6
  888. package/cjs/consts-d3b53f23.js +0 -6
  889. package/cjs/index-11f9cc0f.js.map +0 -1
  890. package/cjs/index-1a9fdbb4.js +0 -368
  891. package/cjs/index-1a9fdbb4.js.map +0 -1
  892. package/cjs/index-1f6b30ea.js +0 -330
  893. package/cjs/index-2ab19f9b.js +0 -57
  894. package/cjs/index-4b5a006d.js +0 -139
  895. package/cjs/index-4b5a006d.js.map +0 -1
  896. package/cjs/index-4eb7e2b5.js.map +0 -1
  897. package/cjs/index-56a25735.js +0 -171
  898. package/cjs/index-56a25735.js.map +0 -1
  899. package/cjs/index-6ab9a40d.js +0 -202
  900. package/cjs/index-7f41c4b6.js +0 -118
  901. package/cjs/index-7f41c4b6.js.map +0 -1
  902. package/cjs/index-81baccd0.js.map +0 -1
  903. package/cjs/index-857630c5.js.map +0 -1
  904. package/cjs/index-8ec12d1d.js +0 -164
  905. package/cjs/index-8ec12d1d.js.map +0 -1
  906. package/cjs/index-c9b003b3.js.map +0 -1
  907. package/cjs/index-cbcacbee.js +0 -9
  908. package/cjs/index-cbcacbee.js.map +0 -1
  909. package/cjs/index-d04f312e.js.map +0 -1
  910. package/cjs/index-e9ac5ae1.js +0 -58
  911. package/cjs/index-e9ac5ae1.js.map +0 -1
  912. package/cjs/index-fbe9cc73.js +0 -647
  913. package/cjs/index-fbe9cc73.js.map +0 -1
  914. package/cjs/index.module-a24e9cd7.js +0 -6
  915. package/cjs/index.module-a24e9cd7.js.map +0 -1
  916. package/cjs/stringFormatterUtils-8d6592ca.js +0 -16
  917. package/cjs/stringSet-d00535a5.js.map +0 -1
  918. package/cjs/topics-adde627b.js.map +0 -1
  919. package/cjs/types-0b5148cb.js +0 -17
  920. package/cjs/types-0b5148cb.js.map +0 -1
  921. package/cjs/useHandleUploadFiles-b2fc56e5.js.map +0 -1
  922. package/cjs/useLongPress-1c0f4696.js +0 -87
  923. package/cjs/useLongPress-1c0f4696.js.map +0 -1
  924. package/cjs/useSendMultipleFilesMessage-81cdc9d0.js +0 -109
  925. package/cjs/useSendMultipleFilesMessage-81cdc9d0.js.map +0 -1
  926. package/cjs/utils-418b4438.js +0 -62
  927. package/cjs/utils-418b4438.js.map +0 -1
  928. package/cjs/utils-5bfb4516.js +0 -35
  929. package/cjs/utils-5bfb4516.js.map +0 -1
  930. package/cjs/utils-68aa6bf6.js +0 -345
  931. package/cjs/utils-68aa6bf6.js.map +0 -1
  932. package/cjs/utils-b34d4e2c.js +0 -31
  933. package/cjs/utils-b34d4e2c.js.map +0 -1
  934. package/cjs/utils-c47c68b1.js +0 -6
  935. package/cjs/utils-c47c68b1.js.map +0 -1
  936. package/cjs/uuid-b2806cf5.js +0 -15
  937. package/compareIds-8ed6e36a.js +0 -15
  938. package/compareIds-8ed6e36a.js.map +0 -1
  939. package/const-711048c3.js +0 -13
  940. package/consts-675764c9.js +0 -4
  941. package/consts-675764c9.js.map +0 -1
  942. package/consts-691a3935.js +0 -37
  943. package/consts-6ee24012.js +0 -4
  944. package/consts-eb77e905.js +0 -4
  945. package/consts-eb77e905.js.map +0 -1
  946. package/context-b4c70964.js +0 -13
  947. package/index-128523eb.js +0 -110
  948. package/index-128523eb.js.map +0 -1
  949. package/index-13401b87.js.map +0 -1
  950. package/index-5cb32ab5.js.map +0 -1
  951. package/index-5d6a0f12.js +0 -598
  952. package/index-5d6a0f12.js.map +0 -1
  953. package/index-60a7bf91.js +0 -164
  954. package/index-60a7bf91.js.map +0 -1
  955. package/index-7700a436.js.map +0 -1
  956. package/index-7946293f.js +0 -152
  957. package/index-7946293f.js.map +0 -1
  958. package/index-7b7478f5.js +0 -132
  959. package/index-7b7478f5.js.map +0 -1
  960. package/index-82178c6a.js +0 -361
  961. package/index-82178c6a.js.map +0 -1
  962. package/index-98138798.js +0 -187
  963. package/index-98887e8d.js +0 -7
  964. package/index-98887e8d.js.map +0 -1
  965. package/index-ae7ef8cf.js +0 -51
  966. package/index-b25ffa7e.js.map +0 -1
  967. package/index-c421b228.js.map +0 -1
  968. package/index-d99155f7.js +0 -51
  969. package/index-d99155f7.js.map +0 -1
  970. package/index-daa3ae67.js.map +0 -1
  971. package/index-e15f6b6a.js +0 -320
  972. package/index.module-60af77d3.js +0 -4
  973. package/index.module-60af77d3.js.map +0 -1
  974. package/stringFormatterUtils-dbad592d.js +0 -14
  975. package/stringSet-2814bf17.js.map +0 -1
  976. package/topics-5659403d.js.map +0 -1
  977. package/types-89092633.js +0 -15
  978. package/types-89092633.js.map +0 -1
  979. package/useHandleUploadFiles-406a6c9c.js.map +0 -1
  980. package/useLongPress-5e1ad951.js +0 -85
  981. package/useLongPress-5e1ad951.js.map +0 -1
  982. package/useSendMultipleFilesMessage-a3a2c84b.js +0 -107
  983. package/useSendMultipleFilesMessage-a3a2c84b.js.map +0 -1
  984. package/utils-0c22998a.js +0 -306
  985. package/utils-0c22998a.js.map +0 -1
  986. package/utils-407da489.js +0 -4
  987. package/utils-407da489.js.map +0 -1
  988. package/utils-b97d5113.js +0 -57
  989. package/utils-b97d5113.js.map +0 -1
  990. package/utils-cae84d8a.js +0 -29
  991. package/utils-cae84d8a.js.map +0 -1
  992. package/utils-ebf008e2.js +0 -31
  993. package/utils-ebf008e2.js.map +0 -1
  994. package/uuid-16373bba.js +0 -13
@@ -1,1778 +0,0 @@
1
- import React__default, { useEffect, useCallback, useReducer, useMemo } from 'react';
2
- import { f as format } from './index-daa3ae67.js';
3
- import { getOutgoingMessageState, OutgoingMessageStates } from './utils/message/getOutgoingMessageState.js';
4
- import { U as UserProfileProvider } from './UserProfileContext-4ae968eb.js';
5
- import useSendbirdStateContext from './useSendbirdStateContext.js';
6
- import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-50c9576f.js';
7
- import { ChannelStateTypes, ThreadListStateTypes, ParentMessageStateTypes } from './Thread/context/types.js';
8
- import { ChannelType } from '@sendbird/chat';
9
- import { P as PUBSUB_TOPICS } from './topics-5659403d.js';
10
- import { c as isMultipleFilesMessage } from './index-5d6a0f12.js';
11
- import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
12
- import { u as uuidv4 } from './uuid-16373bba.js';
13
- import { SendingStatus, MessageType, MessageMetaArray } from '@sendbird/chat/message';
14
- import { c as VOICE_MESSAGE_FILE_NAME, d as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, e as META_ARRAY_MESSAGE_TYPE_KEY, f as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from './consts-691a3935.js';
15
- import { u as useSendMultipleFilesMessage } from './useSendMultipleFilesMessage-a3a2c84b.js';
16
-
17
- const getNicknamesMapFromMembers = function () {
18
- let members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
19
- const nicknamesMap = new Map();
20
- for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
21
- const {
22
- userId,
23
- nickname
24
- } = members[memberIndex];
25
- nicknamesMap.set(userId, nickname);
26
- }
27
- return nicknamesMap;
28
- };
29
- const getParentMessageFrom = message => {
30
- if (!message) {
31
- return null;
32
- }
33
- if (isParentMessage(message)) {
34
- return message;
35
- }
36
- if (isThreadMessage(message)) {
37
- return (message === null || message === void 0 ? void 0 : message.parentMessage) || null;
38
- }
39
- return null;
40
- };
41
- const isParentMessage = message => {
42
- return (message === null || message === void 0 ? void 0 : message.parentMessage) === null && typeof (message === null || message === void 0 ? void 0 : message.parentMessageId) === 'number' && !(message !== null && message !== void 0 && message.parentMessageId);
43
- };
44
- const isThreadMessage = message => {
45
- return (message === null || message === void 0 ? void 0 : message.parentMessage) !== null && typeof (message === null || message === void 0 ? void 0 : message.parentMessageId) === 'number' && (message === null || message === void 0 ? void 0 : message.parentMessageId) > 0 && (message === null || message === void 0 ? void 0 : message.threadInfo) === null;
46
- };
47
- const isAboutSame = (a, b, px) => Math.abs(a - b) <= px;
48
- const isEmpty = val => val === null || val === undefined;
49
-
50
- // Some Ids return string and number inconsistently
51
- // only use to comapre IDs
52
- function compareIds(a, b) {
53
- if (isEmpty(a) || isEmpty(b)) {
54
- return false;
55
- }
56
- const aString = a.toString();
57
- const bString = b.toString();
58
- return aString === bString;
59
- }
60
- const getMessageCreatedAt = message => format(message.createdAt, 'p');
61
- const isReadMessage = (channel, message) => getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ;
62
- const isSameGroup = (message, comparingMessage, currentChannel) => {
63
- var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
64
- if (!(message && comparingMessage && message.messageType && message.messageType !== 'admin' && comparingMessage.messageType && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && message !== null && message !== void 0 && message.sender && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.sender && message !== null && message !== void 0 && message.createdAt && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.createdAt && message !== null && message !== void 0 && (_message$sender = message.sender) !== null && _message$sender !== void 0 && _message$sender.userId && comparingMessage !== null && comparingMessage !== void 0 && (_comparingMessage$sen = comparingMessage.sender) !== null && _comparingMessage$sen !== void 0 && _comparingMessage$sen.userId)) {
65
- return false;
66
- }
67
- return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && (message === null || message === void 0 ? void 0 : (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.userId) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : (_comparingMessage$sen2 = comparingMessage.sender) === null || _comparingMessage$sen2 === void 0 ? void 0 : _comparingMessage$sen2.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage) && isReadMessage(currentChannel, message) === isReadMessage(currentChannel, comparingMessage);
68
- };
69
- const compareMessagesForGrouping = (prevMessage, currMessage, nextMessage, currentChannel, replyType) => {
70
- if (replyType === 'THREAD' && currMessage !== null && currMessage !== void 0 && currMessage.threadInfo) {
71
- return [false, false];
72
- }
73
- const sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
74
- const isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
75
- return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
76
- };
77
- const scrollIntoLast = function () {
78
- let intialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
79
- const MAX_TRIES = 10;
80
- const currentTry = intialTry;
81
- if (currentTry > MAX_TRIES) {
82
- return;
83
- }
84
- try {
85
- const scrollDOM = document.querySelector('.sendbird-thread-ui--scroll');
86
- // eslint-disable-next-line no-multi-assign
87
- scrollDOM.scrollTop = scrollDOM.scrollHeight;
88
- } catch (error) {
89
- setTimeout(() => {
90
- scrollIntoLast(currentTry + 1);
91
- }, 500 * currentTry);
92
- }
93
- };
94
-
95
- const PREV_THREADS_FETCH_SIZE = 30;
96
- const NEXT_THREADS_FETCH_SIZE = 30;
97
-
98
- let ThreadContextActionTypes = /*#__PURE__*/function (ThreadContextActionTypes) {
99
- ThreadContextActionTypes["INIT_USER_ID"] = "INIT_USER_ID";
100
- ThreadContextActionTypes["GET_CHANNEL_START"] = "GET_CHANNEL_START";
101
- ThreadContextActionTypes["GET_CHANNEL_SUCCESS"] = "GET_CHANNEL_SUCCESS";
102
- ThreadContextActionTypes["GET_CHANNEL_FAILURE"] = "GET_CHANNEL_FAILURE";
103
- ThreadContextActionTypes["SET_EMOJI_CONTAINER"] = "SET_EMOJI_CONTAINER";
104
- ThreadContextActionTypes["GET_PARENT_MESSAGE_START"] = "GET_PARENT_MESSAGE_START";
105
- ThreadContextActionTypes["GET_PARENT_MESSAGE_SUCCESS"] = "GET_PARENT_MESSAGE_SUCCESS";
106
- ThreadContextActionTypes["GET_PARENT_MESSAGE_FAILURE"] = "GET_PARENT_MESSAGE_FAILURE";
107
- ThreadContextActionTypes["INITIALIZE_THREAD_LIST_START"] = "INITIALIZE_THREAD_LIST_START";
108
- ThreadContextActionTypes["INITIALIZE_THREAD_LIST_SUCCESS"] = "INITIALIZE_THREAD_LIST_SUCCESS";
109
- ThreadContextActionTypes["INITIALIZE_THREAD_LIST_FAILURE"] = "INITIALIZE_THREAD_LIST_FAILURE";
110
- ThreadContextActionTypes["GET_PREV_MESSAGES_START"] = "GET_PREV_MESSAGES_START";
111
- ThreadContextActionTypes["GET_PREV_MESSAGES_SUCESS"] = "GET_PREV_MESSAGES_SUCESS";
112
- ThreadContextActionTypes["GET_PREV_MESSAGES_FAILURE"] = "GET_PREV_MESSAGES_FAILURE";
113
- ThreadContextActionTypes["GET_NEXT_MESSAGES_START"] = "GET_NEXT_MESSAGES_START";
114
- ThreadContextActionTypes["GET_NEXT_MESSAGES_SUCESS"] = "GET_NEXT_MESSAGES_SUCESS";
115
- ThreadContextActionTypes["GET_NEXT_MESSAGES_FAILURE"] = "GET_NEXT_MESSAGES_FAILURE";
116
- ThreadContextActionTypes["SEND_MESSAGE_START"] = "SEND_MESSAGE_START";
117
- ThreadContextActionTypes["SEND_MESSAGE_SUCESS"] = "SEND_MESSAGE_SUCESS";
118
- ThreadContextActionTypes["SEND_MESSAGE_FAILURE"] = "SEND_MESSAGE_FAILURE";
119
- ThreadContextActionTypes["RESEND_MESSAGE_START"] = "RESEND_MESSAGE_START";
120
- ThreadContextActionTypes["ON_MESSAGE_DELETED_BY_REQ_ID"] = "ON_MESSAGE_DELETED_BY_REQ_ID";
121
- ThreadContextActionTypes["ON_MESSAGE_RECEIVED"] = "ON_MESSAGE_RECEIVED";
122
- ThreadContextActionTypes["ON_MESSAGE_UPDATED"] = "ON_MESSAGE_UPDATED";
123
- ThreadContextActionTypes["ON_MESSAGE_DELETED"] = "ON_MESSAGE_DELETED";
124
- ThreadContextActionTypes["ON_REACTION_UPDATED"] = "ON_REACTION_UPDATED";
125
- ThreadContextActionTypes["ON_USER_MUTED"] = "ON_USER_MUTED";
126
- ThreadContextActionTypes["ON_USER_UNMUTED"] = "ON_USER_UNMUTED";
127
- ThreadContextActionTypes["ON_USER_BANNED"] = "ON_USER_BANNED";
128
- ThreadContextActionTypes["ON_USER_UNBANNED"] = "ON_USER_UNBANNED";
129
- ThreadContextActionTypes["ON_USER_LEFT"] = "ON_USER_LEFT";
130
- ThreadContextActionTypes["ON_CHANNEL_FROZEN"] = "ON_CHANNEL_FROZEN";
131
- ThreadContextActionTypes["ON_CHANNEL_UNFROZEN"] = "ON_CHANNEL_UNFROZEN";
132
- ThreadContextActionTypes["ON_OPERATOR_UPDATED"] = "ON_OPERATOR_UPDATED";
133
- return ThreadContextActionTypes;
134
- }({});
135
-
136
- function reducer(state, action) {
137
- switch (action.type) {
138
- // initialize
139
- case ThreadContextActionTypes.INIT_USER_ID:
140
- {
141
- return _objectSpread2(_objectSpread2({}, state), {}, {
142
- currentUserId: action.payload
143
- });
144
- }
145
- case ThreadContextActionTypes.GET_CHANNEL_START:
146
- {
147
- return _objectSpread2(_objectSpread2({}, state), {}, {
148
- channelState: ChannelStateTypes.LOADING,
149
- currentChannel: null
150
- });
151
- }
152
- case ThreadContextActionTypes.GET_CHANNEL_SUCCESS:
153
- {
154
- var _groupChannel$members, _groupChannel$members2;
155
- const groupChannel = action.payload.groupChannel;
156
- return _objectSpread2(_objectSpread2({}, state), {}, {
157
- channelState: ChannelStateTypes.INITIALIZED,
158
- currentChannel: groupChannel,
159
- // only support in normal group channel
160
- isMuted: (groupChannel === null || groupChannel === void 0 ? void 0 : (_groupChannel$members = groupChannel.members) === null || _groupChannel$members === void 0 ? void 0 : (_groupChannel$members2 = _groupChannel$members.find(member => (member === null || member === void 0 ? void 0 : member.userId) === state.currentUserId)) === null || _groupChannel$members2 === void 0 ? void 0 : _groupChannel$members2.isMuted) || false,
161
- isChannelFrozen: (groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.isFrozen) || false
162
- });
163
- }
164
- case ThreadContextActionTypes.GET_CHANNEL_FAILURE:
165
- {
166
- return _objectSpread2(_objectSpread2({}, state), {}, {
167
- channelState: ChannelStateTypes.INVALID,
168
- currentChannel: null
169
- });
170
- }
171
- case ThreadContextActionTypes.SET_EMOJI_CONTAINER:
172
- {
173
- const {
174
- emojiContainer
175
- } = action.payload;
176
- return _objectSpread2(_objectSpread2({}, state), {}, {
177
- emojiContainer: emojiContainer
178
- });
179
- }
180
- case ThreadContextActionTypes.GET_PARENT_MESSAGE_START:
181
- {
182
- return _objectSpread2(_objectSpread2({}, state), {}, {
183
- parentMessageState: ParentMessageStateTypes.LOADING,
184
- parentMessage: null
185
- });
186
- }
187
- case ThreadContextActionTypes.GET_PARENT_MESSAGE_SUCCESS:
188
- {
189
- return _objectSpread2(_objectSpread2({}, state), {}, {
190
- parentMessageState: ParentMessageStateTypes.INITIALIZED,
191
- parentMessage: action.payload.parentMessage
192
- });
193
- }
194
- case ThreadContextActionTypes.GET_PARENT_MESSAGE_FAILURE:
195
- {
196
- return _objectSpread2(_objectSpread2({}, state), {}, {
197
- parentMessageState: ParentMessageStateTypes.INVALID,
198
- parentMessage: null
199
- });
200
- }
201
- // fetch threads
202
- case ThreadContextActionTypes.INITIALIZE_THREAD_LIST_START:
203
- {
204
- return _objectSpread2(_objectSpread2({}, state), {}, {
205
- threadListState: ThreadListStateTypes.LOADING,
206
- allThreadMessages: []
207
- });
208
- }
209
- case ThreadContextActionTypes.INITIALIZE_THREAD_LIST_SUCCESS:
210
- {
211
- const {
212
- parentMessage,
213
- anchorMessage,
214
- threadedMessages
215
- } = action.payload;
216
- const anchorMessageCreatedAt = !(anchorMessage !== null && anchorMessage !== void 0 && anchorMessage.messageId) ? parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.createdAt : anchorMessage === null || anchorMessage === void 0 ? void 0 : anchorMessage.createdAt;
217
- const anchorIndex = threadedMessages.findIndex(message => (message === null || message === void 0 ? void 0 : message.createdAt) > anchorMessageCreatedAt);
218
- const prevThreadMessages = anchorIndex > -1 ? threadedMessages.slice(0, anchorIndex) : threadedMessages;
219
- const anchorThreadMessage = anchorMessage !== null && anchorMessage !== void 0 && anchorMessage.messageId ? [anchorMessage] : [];
220
- const nextThreadMessages = anchorIndex > -1 ? threadedMessages.slice(anchorIndex) : [];
221
- return _objectSpread2(_objectSpread2({}, state), {}, {
222
- threadListState: ThreadListStateTypes.INITIALIZED,
223
- hasMorePrev: anchorIndex === -1 || anchorIndex === PREV_THREADS_FETCH_SIZE,
224
- hasMoreNext: threadedMessages.length - anchorIndex === NEXT_THREADS_FETCH_SIZE,
225
- allThreadMessages: [prevThreadMessages, anchorThreadMessage, nextThreadMessages].flat()
226
- });
227
- }
228
- case ThreadContextActionTypes.INITIALIZE_THREAD_LIST_FAILURE:
229
- {
230
- return _objectSpread2(_objectSpread2({}, state), {}, {
231
- threadListState: ThreadListStateTypes.INVALID,
232
- allThreadMessages: []
233
- });
234
- }
235
- case ThreadContextActionTypes.GET_NEXT_MESSAGES_START:
236
- {
237
- return _objectSpread2({}, state);
238
- }
239
- case ThreadContextActionTypes.GET_NEXT_MESSAGES_SUCESS:
240
- {
241
- const {
242
- threadedMessages
243
- } = action.payload;
244
- return _objectSpread2(_objectSpread2({}, state), {}, {
245
- hasMoreNext: threadedMessages.length === NEXT_THREADS_FETCH_SIZE,
246
- allThreadMessages: [...state.allThreadMessages, ...threadedMessages]
247
- });
248
- }
249
- case ThreadContextActionTypes.GET_NEXT_MESSAGES_FAILURE:
250
- {
251
- return _objectSpread2(_objectSpread2({}, state), {}, {
252
- hasMoreNext: false
253
- });
254
- }
255
- case ThreadContextActionTypes.GET_PREV_MESSAGES_START:
256
- {
257
- return _objectSpread2({}, state);
258
- }
259
- case ThreadContextActionTypes.GET_PREV_MESSAGES_SUCESS:
260
- {
261
- const {
262
- threadedMessages
263
- } = action.payload;
264
- return _objectSpread2(_objectSpread2({}, state), {}, {
265
- hasMorePrev: threadedMessages.length === PREV_THREADS_FETCH_SIZE,
266
- allThreadMessages: [...threadedMessages, ...state.allThreadMessages]
267
- });
268
- }
269
- case ThreadContextActionTypes.GET_PREV_MESSAGES_FAILURE:
270
- {
271
- return _objectSpread2(_objectSpread2({}, state), {}, {
272
- hasMorePrev: false
273
- });
274
- }
275
- // event handlers - message status change
276
- case ThreadContextActionTypes.ON_MESSAGE_RECEIVED:
277
- {
278
- var _state$currentChannel, _message$parentMessag, _state$parentMessage, _state$parentMessage2;
279
- const {
280
- channel,
281
- message
282
- } = action.payload;
283
- if (((_state$currentChannel = state.currentChannel) === null || _state$currentChannel === void 0 ? void 0 : _state$currentChannel.url) !== (channel === null || channel === void 0 ? void 0 : channel.url) || state.hasMoreNext || (message === null || message === void 0 ? void 0 : (_message$parentMessag = message.parentMessage) === null || _message$parentMessag === void 0 ? void 0 : _message$parentMessag.messageId) !== (state === null || state === void 0 ? void 0 : (_state$parentMessage = state.parentMessage) === null || _state$parentMessage === void 0 ? void 0 : _state$parentMessage.messageId)) {
284
- return state;
285
- }
286
- const isAlreadyReceived = state.allThreadMessages.findIndex(m => m.messageId === message.messageId) > -1;
287
- return _objectSpread2(_objectSpread2({}, state), {}, {
288
- parentMessage: ((_state$parentMessage2 = state.parentMessage) === null || _state$parentMessage2 === void 0 ? void 0 : _state$parentMessage2.messageId) === (message === null || message === void 0 ? void 0 : message.messageId) ? message : state.parentMessage,
289
- allThreadMessages: isAlreadyReceived ? state.allThreadMessages.map(m => m.messageId === message.messageId ? message : m) : [...state.allThreadMessages.filter(m => (m === null || m === void 0 ? void 0 : m.reqId) !== (message === null || message === void 0 ? void 0 : message.reqId)), message]
290
- });
291
- }
292
- case ThreadContextActionTypes.ON_MESSAGE_UPDATED:
293
- {
294
- var _state$currentChannel2, _state$parentMessage3, _state$allThreadMessa;
295
- const {
296
- channel,
297
- message
298
- } = action.payload;
299
- if (((_state$currentChannel2 = state.currentChannel) === null || _state$currentChannel2 === void 0 ? void 0 : _state$currentChannel2.url) !== (channel === null || channel === void 0 ? void 0 : channel.url)) {
300
- return state;
301
- }
302
- return _objectSpread2(_objectSpread2({}, state), {}, {
303
- parentMessage: ((_state$parentMessage3 = state.parentMessage) === null || _state$parentMessage3 === void 0 ? void 0 : _state$parentMessage3.messageId) === (message === null || message === void 0 ? void 0 : message.messageId) ? message : state.parentMessage,
304
- allThreadMessages: (_state$allThreadMessa = state.allThreadMessages) === null || _state$allThreadMessa === void 0 ? void 0 : _state$allThreadMessa.map(msg => (msg === null || msg === void 0 ? void 0 : msg.messageId) === (message === null || message === void 0 ? void 0 : message.messageId) ? message : msg)
305
- });
306
- }
307
- case ThreadContextActionTypes.ON_MESSAGE_DELETED:
308
- {
309
- var _state$currentChannel3, _state$parentMessage4, _state$allThreadMessa2;
310
- const {
311
- channel,
312
- messageId
313
- } = action.payload;
314
- if (((_state$currentChannel3 = state.currentChannel) === null || _state$currentChannel3 === void 0 ? void 0 : _state$currentChannel3.url) !== (channel === null || channel === void 0 ? void 0 : channel.url)) {
315
- return state;
316
- }
317
- if ((state === null || state === void 0 ? void 0 : (_state$parentMessage4 = state.parentMessage) === null || _state$parentMessage4 === void 0 ? void 0 : _state$parentMessage4.messageId) === messageId) {
318
- return _objectSpread2(_objectSpread2({}, state), {}, {
319
- parentMessage: null,
320
- parentMessageState: ParentMessageStateTypes.NIL,
321
- allThreadMessages: []
322
- });
323
- }
324
- return _objectSpread2(_objectSpread2({}, state), {}, {
325
- allThreadMessages: (_state$allThreadMessa2 = state.allThreadMessages) === null || _state$allThreadMessa2 === void 0 ? void 0 : _state$allThreadMessa2.filter(msg => (msg === null || msg === void 0 ? void 0 : msg.messageId) !== messageId)
326
- });
327
- }
328
- case ThreadContextActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:
329
- {
330
- return _objectSpread2(_objectSpread2({}, state), {}, {
331
- allThreadMessages: state.allThreadMessages.filter(m => !compareIds(m.reqId, action.payload))
332
- });
333
- }
334
- case ThreadContextActionTypes.ON_REACTION_UPDATED:
335
- {
336
- var _action$payload, _state$parentMessage5;
337
- const reactionEvent = (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.reactionEvent;
338
- if ((state === null || state === void 0 ? void 0 : (_state$parentMessage5 = state.parentMessage) === null || _state$parentMessage5 === void 0 ? void 0 : _state$parentMessage5.messageId) === (reactionEvent === null || reactionEvent === void 0 ? void 0 : reactionEvent.messageId)) {
339
- var _state$parentMessage6, _state$parentMessage7;
340
- (_state$parentMessage6 = state.parentMessage) === null || _state$parentMessage6 === void 0 ? void 0 : (_state$parentMessage7 = _state$parentMessage6.applyReactionEvent) === null || _state$parentMessage7 === void 0 ? void 0 : _state$parentMessage7.call(_state$parentMessage6, reactionEvent);
341
- }
342
- return _objectSpread2(_objectSpread2({}, state), {}, {
343
- allThreadMessages: state.allThreadMessages.map(m => {
344
- if ((reactionEvent === null || reactionEvent === void 0 ? void 0 : reactionEvent.messageId) === (m === null || m === void 0 ? void 0 : m.messageId)) {
345
- var _m$applyReactionEvent;
346
- m === null || m === void 0 ? void 0 : (_m$applyReactionEvent = m.applyReactionEvent) === null || _m$applyReactionEvent === void 0 ? void 0 : _m$applyReactionEvent.call(m, reactionEvent);
347
- return m;
348
- }
349
- return m;
350
- })
351
- });
352
- }
353
- // event handlers - user status change
354
- case ThreadContextActionTypes.ON_USER_MUTED:
355
- {
356
- var _state$currentChannel4;
357
- const {
358
- channel,
359
- user
360
- } = action.payload;
361
- if (((_state$currentChannel4 = state.currentChannel) === null || _state$currentChannel4 === void 0 ? void 0 : _state$currentChannel4.url) !== (channel === null || channel === void 0 ? void 0 : channel.url) || state.currentUserId !== (user === null || user === void 0 ? void 0 : user.userId)) {
362
- return state;
363
- }
364
- return _objectSpread2(_objectSpread2({}, state), {}, {
365
- isMuted: true
366
- });
367
- }
368
- case ThreadContextActionTypes.ON_USER_UNMUTED:
369
- {
370
- var _state$currentChannel5;
371
- const {
372
- channel,
373
- user
374
- } = action.payload;
375
- if (((_state$currentChannel5 = state.currentChannel) === null || _state$currentChannel5 === void 0 ? void 0 : _state$currentChannel5.url) !== (channel === null || channel === void 0 ? void 0 : channel.url) || state.currentUserId !== (user === null || user === void 0 ? void 0 : user.userId)) {
376
- return state;
377
- }
378
- return _objectSpread2(_objectSpread2({}, state), {}, {
379
- isMuted: false
380
- });
381
- }
382
- case ThreadContextActionTypes.ON_USER_BANNED:
383
- {
384
- return _objectSpread2(_objectSpread2({}, state), {}, {
385
- channelState: ChannelStateTypes.NIL,
386
- threadListState: ThreadListStateTypes.NIL,
387
- parentMessageState: ParentMessageStateTypes.NIL,
388
- currentChannel: null,
389
- parentMessage: null,
390
- allThreadMessages: [],
391
- hasMorePrev: false,
392
- hasMoreNext: false
393
- });
394
- }
395
- case ThreadContextActionTypes.ON_USER_UNBANNED:
396
- {
397
- return _objectSpread2({}, state);
398
- }
399
- case ThreadContextActionTypes.ON_USER_LEFT:
400
- {
401
- return _objectSpread2(_objectSpread2({}, state), {}, {
402
- channelState: ChannelStateTypes.NIL,
403
- threadListState: ThreadListStateTypes.NIL,
404
- parentMessageState: ParentMessageStateTypes.NIL,
405
- currentChannel: null,
406
- parentMessage: null,
407
- allThreadMessages: [],
408
- hasMorePrev: false,
409
- hasMoreNext: false
410
- });
411
- }
412
- // event handler - channel status change
413
- case ThreadContextActionTypes.ON_CHANNEL_FROZEN:
414
- {
415
- return _objectSpread2(_objectSpread2({}, state), {}, {
416
- isChannelFrozen: true
417
- });
418
- }
419
- case ThreadContextActionTypes.ON_CHANNEL_UNFROZEN:
420
- {
421
- return _objectSpread2(_objectSpread2({}, state), {}, {
422
- isChannelFrozen: false
423
- });
424
- }
425
- case ThreadContextActionTypes.ON_OPERATOR_UPDATED:
426
- {
427
- var _state$currentChannel6;
428
- const {
429
- channel
430
- } = action.payload;
431
- if ((channel === null || channel === void 0 ? void 0 : channel.url) === ((_state$currentChannel6 = state.currentChannel) === null || _state$currentChannel6 === void 0 ? void 0 : _state$currentChannel6.url)) {
432
- return _objectSpread2(_objectSpread2({}, state), {}, {
433
- currentChannel: channel
434
- });
435
- }
436
- return state;
437
- }
438
- // message
439
- case ThreadContextActionTypes.SEND_MESSAGE_START:
440
- {
441
- const {
442
- message
443
- } = action.payload;
444
- return _objectSpread2(_objectSpread2({}, state), {}, {
445
- allThreadMessages: [...state.allThreadMessages, message]
446
- });
447
- }
448
- case ThreadContextActionTypes.SEND_MESSAGE_SUCESS:
449
- {
450
- const {
451
- message
452
- } = action.payload;
453
- const filteredThreadMessages = state.allThreadMessages.filter(m => !compareIds(m === null || m === void 0 ? void 0 : m.reqId, message === null || message === void 0 ? void 0 : message.reqId));
454
- return _objectSpread2(_objectSpread2({}, state), {}, {
455
- allThreadMessages: [...filteredThreadMessages, message]
456
- });
457
- }
458
- case ThreadContextActionTypes.SEND_MESSAGE_FAILURE:
459
- {
460
- const {
461
- message
462
- } = action.payload;
463
- return _objectSpread2(_objectSpread2({}, state), {}, {
464
- allThreadMessages: state.allThreadMessages.map(m => compareIds(m === null || m === void 0 ? void 0 : m.reqId, message === null || message === void 0 ? void 0 : message.reqId) ? message : m)
465
- });
466
- }
467
- case ThreadContextActionTypes.RESEND_MESSAGE_START:
468
- {
469
- return _objectSpread2({}, state);
470
- }
471
- default:
472
- {
473
- return state;
474
- }
475
- }
476
- }
477
-
478
- const initialState = {
479
- currentChannel: null,
480
- allThreadMessages: [],
481
- parentMessage: null,
482
- channelState: ChannelStateTypes.NIL,
483
- parentMessageState: ParentMessageStateTypes.NIL,
484
- threadListState: ThreadListStateTypes.NIL,
485
- hasMorePrev: false,
486
- hasMoreNext: false,
487
- emojiContainer: {},
488
- isMuted: false,
489
- isChannelFrozen: false,
490
- currentUserId: ''
491
- };
492
-
493
- function useGetChannel(_ref, _ref2) {
494
- let {
495
- channelUrl,
496
- sdkInit,
497
- message
498
- } = _ref;
499
- let {
500
- sdk,
501
- logger,
502
- threadDispatcher
503
- } = _ref2;
504
- useEffect(() => {
505
- // validation check
506
- if (sdkInit && channelUrl && sdk !== null && sdk !== void 0 && sdk.groupChannel) {
507
- var _sdk$groupChannel$get, _sdk$groupChannel;
508
- threadDispatcher({
509
- type: ThreadContextActionTypes.GET_CHANNEL_START,
510
- payload: null
511
- });
512
- (_sdk$groupChannel$get = (_sdk$groupChannel = sdk.groupChannel).getChannel) === null || _sdk$groupChannel$get === void 0 ? void 0 : _sdk$groupChannel$get.call(_sdk$groupChannel, channelUrl).then(groupChannel => {
513
- logger.info('Thread | useInitialize: Get channel succeeded', groupChannel);
514
- threadDispatcher({
515
- type: ThreadContextActionTypes.GET_CHANNEL_SUCCESS,
516
- payload: {
517
- groupChannel
518
- }
519
- });
520
- }).catch(error => {
521
- logger.info('Thread | useInitialize: Get channel failed', error);
522
- threadDispatcher({
523
- type: ThreadContextActionTypes.GET_CHANNEL_FAILURE,
524
- payload: error
525
- });
526
- });
527
- }
528
- }, [message, sdkInit]);
529
- /**
530
- * We don't use channelUrl here,
531
- * because Thread must operate independently of the channel.
532
- */
533
- }
534
-
535
- function useGetAllEmoji(_ref, _ref2) {
536
- let {
537
- sdk
538
- } = _ref;
539
- let {
540
- logger,
541
- threadDispatcher
542
- } = _ref2;
543
- useEffect(() => {
544
- if (sdk !== null && sdk !== void 0 && sdk.getAllEmoji) {
545
- // validation check
546
- sdk === null || sdk === void 0 ? void 0 : sdk.getAllEmoji().then(emojiContainer => {
547
- logger.info('Thread | useGetAllEmoji: Getting emojis succeeded.', emojiContainer);
548
- threadDispatcher({
549
- type: ThreadContextActionTypes.SET_EMOJI_CONTAINER,
550
- payload: {
551
- emojiContainer
552
- }
553
- });
554
- }).catch(error => {
555
- logger.info('Thread | useGetAllEmoji: Getting emojis failed.', error);
556
- });
557
- }
558
- }, [sdk]);
559
- }
560
-
561
- function useGetThreadList(_ref, _ref2) {
562
- let {
563
- sdkInit,
564
- parentMessage,
565
- anchorMessage,
566
- isReactionEnabled
567
- } = _ref;
568
- let {
569
- logger,
570
- threadDispatcher
571
- } = _ref2;
572
- useEffect(() => {
573
- // validation check
574
- if (sdkInit && parentMessage !== null && parentMessage !== void 0 && parentMessage.getThreadedMessagesByTimestamp) {
575
- var _parentMessage$getThr;
576
- threadDispatcher({
577
- type: ThreadContextActionTypes.INITIALIZE_THREAD_LIST_START,
578
- payload: null
579
- });
580
- const timeStamp = (anchorMessage === null || anchorMessage === void 0 ? void 0 : anchorMessage.createdAt) || 0;
581
- const params = {
582
- prevResultSize: PREV_THREADS_FETCH_SIZE,
583
- nextResultSize: NEXT_THREADS_FETCH_SIZE,
584
- includeReactions: isReactionEnabled,
585
- includeMetaArray: true
586
- };
587
- logger.info('Thread | useGetThreadList: Initialize thread list start.', {
588
- timeStamp,
589
- params
590
- });
591
- (_parentMessage$getThr = parentMessage.getThreadedMessagesByTimestamp) === null || _parentMessage$getThr === void 0 ? void 0 : _parentMessage$getThr.call(parentMessage, timeStamp, params).then(_ref3 => {
592
- let {
593
- parentMessage,
594
- threadedMessages
595
- } = _ref3;
596
- logger.info('Thread | useGetThreadList: Initialize thread list succeeded.', {
597
- parentMessage,
598
- threadedMessages
599
- });
600
- threadDispatcher({
601
- type: ThreadContextActionTypes.INITIALIZE_THREAD_LIST_SUCCESS,
602
- payload: {
603
- parentMessage,
604
- anchorMessage,
605
- threadedMessages
606
- }
607
- });
608
- }).catch(error => {
609
- logger.info('Therad | useGetThreadList: Initialize thread list failed.', error);
610
- threadDispatcher({
611
- type: ThreadContextActionTypes.INITIALIZE_THREAD_LIST_FAILURE,
612
- payload: error
613
- });
614
- });
615
- }
616
- }, [sdkInit, parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId, anchorMessage]);
617
- }
618
-
619
- function useGetParentMessage(_ref, _ref2) {
620
- let {
621
- channelUrl,
622
- sdkInit,
623
- parentMessage
624
- } = _ref;
625
- let {
626
- sdk,
627
- logger,
628
- threadDispatcher
629
- } = _ref2;
630
- useEffect(() => {
631
- var _sdk$message;
632
- // validation check
633
- if (sdkInit && sdk !== null && sdk !== void 0 && (_sdk$message = sdk.message) !== null && _sdk$message !== void 0 && _sdk$message.getMessage) {
634
- threadDispatcher({
635
- type: ThreadContextActionTypes.GET_PARENT_MESSAGE_START,
636
- payload: null
637
- });
638
- const params = {
639
- channelUrl,
640
- channelType: ChannelType.GROUP,
641
- messageId: parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId,
642
- includeMetaArray: true,
643
- includeReactions: true,
644
- includeThreadInfo: true,
645
- includeParentMessageInfo: true
646
- };
647
- logger.info('Thread | useGetParentMessage: Get parent message start.', params);
648
- const fetchParentMessage = async () => {
649
- var _sdk$message$getMessa, _sdk$message2;
650
- const data = await ((_sdk$message$getMessa = (_sdk$message2 = sdk.message).getMessage) === null || _sdk$message$getMessa === void 0 ? void 0 : _sdk$message$getMessa.call(_sdk$message2, params));
651
- return data;
652
- };
653
- fetchParentMessage().then(parentMsg => {
654
- logger.info('Thread | useGetParentMessage: Get parent message succeeded.', parentMessage);
655
- parentMsg.ogMetaData = (parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.ogMetaData) || null; // ogMetaData is not included for now
656
- threadDispatcher({
657
- type: ThreadContextActionTypes.GET_PARENT_MESSAGE_SUCCESS,
658
- payload: {
659
- parentMessage: parentMsg
660
- }
661
- });
662
- }).catch(error => {
663
- logger.info('Thread | useGetParentMessage: Get parent message failed.', error);
664
- threadDispatcher({
665
- type: ThreadContextActionTypes.GET_PARENT_MESSAGE_FAILURE,
666
- payload: error
667
- });
668
- });
669
- }
670
- }, [sdkInit, parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId]);
671
- /**
672
- * We don't use channelUrl here,
673
- * because Thread must operate independently of the channel.
674
- */
675
- }
676
-
677
- function useHandlePubsubEvents(_ref, _ref2) {
678
- let {
679
- sdkInit,
680
- currentChannel,
681
- parentMessage
682
- } = _ref;
683
- let {
684
- pubSub,
685
- threadDispatcher
686
- } = _ref2;
687
- useEffect(() => {
688
- const pubSubHandler = () => {
689
- const subscriber = new Map();
690
- if (!pubSub || !pubSub.subscribe) {
691
- return subscriber;
692
- }
693
- subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, props => {
694
- const {
695
- channel,
696
- message
697
- } = props;
698
- if ((currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) === (channel === null || channel === void 0 ? void 0 : channel.url) && (message === null || message === void 0 ? void 0 : message.parentMessageId) === (parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId)) {
699
- if (isMultipleFilesMessage(message)) {
700
- threadDispatcher({
701
- type: ThreadContextActionTypes.SEND_MESSAGE_START,
702
- payload: {
703
- message: _objectSpread2(_objectSpread2({}, message), {}, {
704
- fileInfoList: message.messageParams.fileInfoList.map(fileInfo => _objectSpread2(_objectSpread2({}, fileInfo), {}, {
705
- url: URL.createObjectURL(fileInfo.file)
706
- }))
707
- })
708
- }
709
- });
710
- }
711
- }
712
- scrollIntoLast === null || scrollIntoLast === void 0 ? void 0 : scrollIntoLast();
713
- }));
714
- subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, props => {
715
- const {
716
- channel,
717
- message
718
- } = props;
719
- if ((currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) === (channel === null || channel === void 0 ? void 0 : channel.url) && (message === null || message === void 0 ? void 0 : message.parentMessageId) === (parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId)) {
720
- threadDispatcher({
721
- type: ThreadContextActionTypes.SEND_MESSAGE_SUCESS,
722
- payload: {
723
- message
724
- }
725
- });
726
- }
727
- scrollIntoLast === null || scrollIntoLast === void 0 ? void 0 : scrollIntoLast();
728
- }));
729
- subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, props => {
730
- const {
731
- channel,
732
- message
733
- } = props;
734
- if ((currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) === (channel === null || channel === void 0 ? void 0 : channel.url) && (message === null || message === void 0 ? void 0 : message.parentMessageId) === (parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId)) {
735
- threadDispatcher({
736
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
737
- payload: {
738
- message
739
- }
740
- });
741
- }
742
- }));
743
- subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, props => {
744
- const {
745
- channel,
746
- message
747
- } = props;
748
- if ((currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) === (channel === null || channel === void 0 ? void 0 : channel.url)) {
749
- threadDispatcher({
750
- type: ThreadContextActionTypes.SEND_MESSAGE_SUCESS,
751
- payload: {
752
- message
753
- }
754
- });
755
- }
756
- scrollIntoLast === null || scrollIntoLast === void 0 ? void 0 : scrollIntoLast();
757
- }));
758
- subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, msg => {
759
- const {
760
- channel,
761
- message
762
- } = msg;
763
- if ((currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) === (channel === null || channel === void 0 ? void 0 : channel.url)) {
764
- threadDispatcher({
765
- type: ThreadContextActionTypes.ON_MESSAGE_UPDATED,
766
- payload: {
767
- channel,
768
- message
769
- }
770
- });
771
- }
772
- }));
773
- subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, msg => {
774
- const {
775
- channel,
776
- messageId
777
- } = msg;
778
- if ((currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) === (channel === null || channel === void 0 ? void 0 : channel.url)) {
779
- threadDispatcher({
780
- type: ThreadContextActionTypes.ON_MESSAGE_DELETED,
781
- payload: {
782
- messageId
783
- }
784
- });
785
- }
786
- }));
787
- };
788
- const subscriber = pubSubHandler();
789
- return () => {
790
- subscriber === null || subscriber === void 0 ? void 0 : subscriber.forEach(s => {
791
- try {
792
- s === null || s === void 0 ? void 0 : s.remove();
793
- } catch (_unused) {
794
- //
795
- }
796
- });
797
- };
798
- }, [sdkInit, currentChannel, parentMessage === null || parentMessage === void 0 ? void 0 : parentMessage.messageId]);
799
- }
800
-
801
- function useHandleChannelEvents(_ref, _ref2) {
802
- let {
803
- sdk,
804
- currentChannel
805
- } = _ref;
806
- let {
807
- logger,
808
- threadDispatcher
809
- } = _ref2;
810
- useEffect(() => {
811
- var _sdk$groupChannel;
812
- const handlerId = uuidv4();
813
- // validation check
814
- if (sdk !== null && sdk !== void 0 && (_sdk$groupChannel = sdk.groupChannel) !== null && _sdk$groupChannel !== void 0 && _sdk$groupChannel.addGroupChannelHandler && currentChannel) {
815
- var _sdk$groupChannel$add, _sdk$groupChannel2;
816
- const channelHandlerParams = {
817
- // message status change
818
- onMessageReceived(channel, message) {
819
- logger.info('Thread | useHandleChannelEvents: onMessageReceived', {
820
- channel,
821
- message
822
- });
823
- threadDispatcher({
824
- type: ThreadContextActionTypes.ON_MESSAGE_RECEIVED,
825
- payload: {
826
- channel,
827
- message
828
- }
829
- });
830
- },
831
- onMessageUpdated(channel, message) {
832
- logger.info('Thread | useHandleChannelEvents: onMessageUpdated', {
833
- channel,
834
- message
835
- });
836
- threadDispatcher({
837
- type: ThreadContextActionTypes.ON_MESSAGE_UPDATED,
838
- payload: {
839
- channel,
840
- message
841
- }
842
- });
843
- },
844
- onMessageDeleted(channel, messageId) {
845
- logger.info('Thread | useHandleChannelEvents: onMessageDeleted', {
846
- channel,
847
- messageId
848
- });
849
- threadDispatcher({
850
- type: ThreadContextActionTypes.ON_MESSAGE_DELETED,
851
- payload: {
852
- channel,
853
- messageId
854
- }
855
- });
856
- },
857
- onReactionUpdated(channel, reactionEvent) {
858
- logger.info('Thread | useHandleChannelEvents: onReactionUpdated', {
859
- channel,
860
- reactionEvent
861
- });
862
- threadDispatcher({
863
- type: ThreadContextActionTypes.ON_REACTION_UPDATED,
864
- payload: {
865
- channel,
866
- reactionEvent
867
- }
868
- });
869
- },
870
- // user status change
871
- onUserMuted(channel, user) {
872
- logger.info('Thread | useHandleChannelEvents: onUserMuted', {
873
- channel,
874
- user
875
- });
876
- threadDispatcher({
877
- type: ThreadContextActionTypes.ON_USER_MUTED,
878
- payload: {
879
- channel,
880
- user
881
- }
882
- });
883
- },
884
- onUserUnmuted(channel, user) {
885
- logger.info('Thread | useHandleChannelEvents: onUserUnmuted', {
886
- channel,
887
- user
888
- });
889
- threadDispatcher({
890
- type: ThreadContextActionTypes.ON_USER_UNMUTED,
891
- payload: {
892
- channel,
893
- user
894
- }
895
- });
896
- },
897
- onUserBanned(channel, user) {
898
- logger.info('Thread | useHandleChannelEvents: onUserBanned', {
899
- channel,
900
- user
901
- });
902
- threadDispatcher({
903
- type: ThreadContextActionTypes.ON_USER_BANNED,
904
- payload: {
905
- channel,
906
- user
907
- }
908
- });
909
- },
910
- onUserUnbanned(channel, user) {
911
- logger.info('Thread | useHandleChannelEvents: onUserUnbanned', {
912
- channel,
913
- user
914
- });
915
- threadDispatcher({
916
- type: ThreadContextActionTypes.ON_USER_UNBANNED,
917
- payload: {
918
- channel,
919
- user
920
- }
921
- });
922
- },
923
- onUserLeft(channel, user) {
924
- logger.info('Thread | useHandleChannelEvents: onUserLeft', {
925
- channel,
926
- user
927
- });
928
- threadDispatcher({
929
- type: ThreadContextActionTypes.ON_USER_LEFT,
930
- payload: {
931
- channel,
932
- user
933
- }
934
- });
935
- },
936
- // channel status change
937
- onChannelFrozen(channel) {
938
- logger.info('Thread | useHandleChannelEvents: onChannelFrozen', {
939
- channel
940
- });
941
- threadDispatcher({
942
- type: ThreadContextActionTypes.ON_CHANNEL_FROZEN,
943
- payload: {
944
- channel
945
- }
946
- });
947
- },
948
- onChannelUnfrozen(channel) {
949
- logger.info('Thread | useHandleChannelEvents: onChannelUnfrozen', {
950
- channel
951
- });
952
- threadDispatcher({
953
- type: ThreadContextActionTypes.ON_CHANNEL_UNFROZEN,
954
- payload: {
955
- channel
956
- }
957
- });
958
- },
959
- onOperatorUpdated(channel, users) {
960
- logger.info('Thread | useHandleChannelEvents: onOperatorUpdated', {
961
- channel,
962
- users
963
- });
964
- threadDispatcher({
965
- type: ThreadContextActionTypes.ON_OPERATOR_UPDATED,
966
- payload: {
967
- channel,
968
- users
969
- }
970
- });
971
- }
972
- };
973
- const channelHandler = new GroupChannelHandler(channelHandlerParams);
974
- (_sdk$groupChannel$add = (_sdk$groupChannel2 = sdk.groupChannel).addGroupChannelHandler) === null || _sdk$groupChannel$add === void 0 ? void 0 : _sdk$groupChannel$add.call(_sdk$groupChannel2, handlerId, channelHandler);
975
- logger.info('Thread | useHandleChannelEvents: Added channelHandler in Thread', {
976
- handlerId,
977
- channelHandler
978
- });
979
- }
980
- return () => {
981
- var _sdk$groupChannel3;
982
- // validation check
983
- if (handlerId && sdk !== null && sdk !== void 0 && (_sdk$groupChannel3 = sdk.groupChannel) !== null && _sdk$groupChannel3 !== void 0 && _sdk$groupChannel3.removeGroupChannelHandler) {
984
- var _sdk$groupChannel$rem, _sdk$groupChannel4;
985
- (_sdk$groupChannel$rem = (_sdk$groupChannel4 = sdk.groupChannel).removeGroupChannelHandler) === null || _sdk$groupChannel$rem === void 0 ? void 0 : _sdk$groupChannel$rem.call(_sdk$groupChannel4, handlerId);
986
- logger.info('Thread | useHandleChannelEvents: Removed channelHandler in Thread.', handlerId);
987
- }
988
- };
989
- }, [sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel, currentChannel]);
990
- }
991
-
992
- function useSendFileMessageCallback(_ref, _ref2) {
993
- let {
994
- currentChannel,
995
- onBeforeSendFileMessage
996
- } = _ref;
997
- let {
998
- logger,
999
- pubSub,
1000
- threadDispatcher
1001
- } = _ref2;
1002
- const sendMessage = useCallback((file, quoteMessage) => {
1003
- var _onBeforeSendFileMess;
1004
- const createParamsDefault = () => {
1005
- const params = {};
1006
- params.file = file;
1007
- if (quoteMessage) {
1008
- params.isReplyToChannel = true;
1009
- params.parentMessageId = quoteMessage.messageId;
1010
- }
1011
- return params;
1012
- };
1013
- const params = (_onBeforeSendFileMess = onBeforeSendFileMessage === null || onBeforeSendFileMessage === void 0 ? void 0 : onBeforeSendFileMessage(file, quoteMessage)) !== null && _onBeforeSendFileMess !== void 0 ? _onBeforeSendFileMess : createParamsDefault();
1014
- logger.info('Thread | useSendFileMessageCallback: Sending file message start.', params);
1015
- currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.sendFileMessage(params).onPending(pendingMessage => {
1016
- threadDispatcher({
1017
- type: ThreadContextActionTypes.SEND_MESSAGE_START,
1018
- payload: {
1019
- /* pubSub is used instead of messagesDispatcher
1020
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1021
- message: _objectSpread2(_objectSpread2({}, pendingMessage), {}, {
1022
- url: URL.createObjectURL(file),
1023
- // pending thumbnail message seems to be failed
1024
- requestState: 'pending'
1025
- })
1026
- }
1027
- });
1028
- setTimeout(() => scrollIntoLast(), 1000);
1029
- }).onFailed((error, message) => {
1030
- message.localUrl = URL.createObjectURL(file);
1031
- message.file = file;
1032
- logger.info('Thread | useSendFileMessageCallback: Sending file message failed.', {
1033
- message,
1034
- error
1035
- });
1036
- threadDispatcher({
1037
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1038
- payload: {
1039
- message,
1040
- error
1041
- }
1042
- });
1043
- }).onSucceeded(message => {
1044
- logger.info('Thread | useSendFileMessageCallback: Sending file message succeeded.', message);
1045
- pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {
1046
- channel: currentChannel,
1047
- message: message
1048
- });
1049
- });
1050
- }, [currentChannel]);
1051
- return sendMessage;
1052
- }
1053
-
1054
- function useUpdateMessageCallback(_ref, _ref2) {
1055
- let {
1056
- currentChannel,
1057
- isMentionEnabled
1058
- } = _ref;
1059
- let {
1060
- logger,
1061
- pubSub,
1062
- threadDispatcher
1063
- } = _ref2;
1064
- return useCallback(props => {
1065
- var _currentChannel$updat;
1066
- const {
1067
- messageId,
1068
- message,
1069
- mentionedUsers,
1070
- mentionTemplate
1071
- } = props;
1072
- const createParamsDefault = () => {
1073
- const params = {};
1074
- params.message = message;
1075
- if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1076
- params.mentionedUsers = mentionedUsers;
1077
- }
1078
- if (isMentionEnabled && mentionTemplate) {
1079
- params.mentionedMessageTemplate = mentionTemplate;
1080
- } else {
1081
- params.mentionedMessageTemplate = message;
1082
- }
1083
- return params;
1084
- };
1085
- const params = createParamsDefault();
1086
- logger.info('Thread | useUpdateMessageCallback: Message update start.', params);
1087
- currentChannel === null || currentChannel === void 0 ? void 0 : (_currentChannel$updat = currentChannel.updateUserMessage) === null || _currentChannel$updat === void 0 ? void 0 : _currentChannel$updat.call(currentChannel, messageId, params).then(message => {
1088
- logger.info('Thread | useUpdateMessageCallback: Message update succeeded.', message);
1089
- threadDispatcher({
1090
- type: ThreadContextActionTypes.ON_MESSAGE_UPDATED,
1091
- payload: {
1092
- channel: currentChannel,
1093
- message: message
1094
- }
1095
- });
1096
- pubSub.publish(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, {
1097
- fromSelector: true,
1098
- channel: currentChannel,
1099
- message: message
1100
- });
1101
- });
1102
- }, [currentChannel, isMentionEnabled]);
1103
- }
1104
-
1105
- function useDeleteMessageCallback(_ref, _ref2) {
1106
- let {
1107
- currentChannel,
1108
- threadDispatcher
1109
- } = _ref;
1110
- let {
1111
- logger
1112
- } = _ref2;
1113
- return useCallback(message => {
1114
- logger.info('Thread | useDeleteMessageCallback: Deleting message.', message);
1115
- const {
1116
- sendingStatus
1117
- } = message;
1118
- return new Promise((resolve, reject) => {
1119
- var _currentChannel$delet;
1120
- logger.info('Thread | useDeleteMessageCallback: Deleting message requestState:', sendingStatus);
1121
- // Message is only on local
1122
- if (sendingStatus === 'failed' || sendingStatus === 'pending') {
1123
- logger.info('Thread | useDeleteMessageCallback: Deleted message from local:', message);
1124
- threadDispatcher({
1125
- type: ThreadContextActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,
1126
- payload: message.reqId
1127
- });
1128
- resolve(message);
1129
- }
1130
- logger.info('Thread | useDeleteMessageCallback: Deleting message from remote:', sendingStatus);
1131
- currentChannel === null || currentChannel === void 0 ? void 0 : (_currentChannel$delet = currentChannel.deleteMessage) === null || _currentChannel$delet === void 0 ? void 0 : _currentChannel$delet.call(currentChannel, message).then(() => {
1132
- logger.info('Thread | useDeleteMessageCallback: Deleting message success!', message);
1133
- threadDispatcher({
1134
- type: ThreadContextActionTypes.ON_MESSAGE_DELETED,
1135
- payload: {
1136
- message,
1137
- channel: currentChannel
1138
- }
1139
- });
1140
- resolve(message);
1141
- }).catch(err => {
1142
- logger.warning('Thread | useDeleteMessageCallback: Deleting message failed!', err);
1143
- reject(err);
1144
- });
1145
- });
1146
- }, [currentChannel]);
1147
- }
1148
-
1149
- function useGetPrevThreadsCallback(_ref, _ref2) {
1150
- let {
1151
- hasMorePrev,
1152
- parentMessage,
1153
- threadListState,
1154
- oldestMessageTimeStamp,
1155
- isReactionEnabled
1156
- } = _ref;
1157
- let {
1158
- logger,
1159
- threadDispatcher
1160
- } = _ref2;
1161
- return useCallback(callback => {
1162
- // validation check
1163
- if (threadListState === ThreadListStateTypes.INITIALIZED && parentMessage !== null && parentMessage !== void 0 && parentMessage.getThreadedMessagesByTimestamp && oldestMessageTimeStamp !== 0) {
1164
- var _parentMessage$getThr;
1165
- threadDispatcher({
1166
- type: ThreadContextActionTypes.GET_PREV_MESSAGES_START,
1167
- payload: null
1168
- });
1169
- (_parentMessage$getThr = parentMessage.getThreadedMessagesByTimestamp) === null || _parentMessage$getThr === void 0 ? void 0 : _parentMessage$getThr.call(parentMessage, oldestMessageTimeStamp, {
1170
- prevResultSize: PREV_THREADS_FETCH_SIZE,
1171
- nextResultSize: 0,
1172
- includeReactions: isReactionEnabled,
1173
- includeMetaArray: true
1174
- }).then(_ref3 => {
1175
- let {
1176
- parentMessage,
1177
- threadedMessages
1178
- } = _ref3;
1179
- logger.info('Thread | useGetPrevThreadsCallback: Fetch prev threads succeeded.', {
1180
- parentMessage,
1181
- threadedMessages
1182
- });
1183
- threadDispatcher({
1184
- type: ThreadContextActionTypes.GET_PREV_MESSAGES_SUCESS,
1185
- payload: {
1186
- parentMessage,
1187
- threadedMessages
1188
- }
1189
- });
1190
- callback(threadedMessages);
1191
- }).catch(error => {
1192
- logger.info('Thread | useGetPrevThreadsCallback: Fetch prev threads failed.', error);
1193
- threadDispatcher({
1194
- type: ThreadContextActionTypes.GET_PREV_MESSAGES_FAILURE,
1195
- payload: error
1196
- });
1197
- });
1198
- }
1199
- }, [hasMorePrev, parentMessage, threadListState, oldestMessageTimeStamp]);
1200
- }
1201
-
1202
- function useGetNextThreadsCallback(_ref, _ref2) {
1203
- let {
1204
- hasMoreNext,
1205
- parentMessage,
1206
- threadListState,
1207
- latestMessageTimeStamp,
1208
- isReactionEnabled
1209
- } = _ref;
1210
- let {
1211
- logger,
1212
- threadDispatcher
1213
- } = _ref2;
1214
- return useCallback(callback => {
1215
- // validation check
1216
- if (threadListState === ThreadListStateTypes.INITIALIZED && parentMessage !== null && parentMessage !== void 0 && parentMessage.getThreadedMessagesByTimestamp && latestMessageTimeStamp !== 0) {
1217
- var _parentMessage$getThr;
1218
- threadDispatcher({
1219
- type: ThreadContextActionTypes.GET_NEXT_MESSAGES_START,
1220
- payload: null
1221
- });
1222
- (_parentMessage$getThr = parentMessage.getThreadedMessagesByTimestamp) === null || _parentMessage$getThr === void 0 ? void 0 : _parentMessage$getThr.call(parentMessage, latestMessageTimeStamp, {
1223
- prevResultSize: 0,
1224
- nextResultSize: NEXT_THREADS_FETCH_SIZE,
1225
- includeReactions: isReactionEnabled,
1226
- includeMetaArray: true
1227
- }).then(_ref3 => {
1228
- let {
1229
- parentMessage,
1230
- threadedMessages
1231
- } = _ref3;
1232
- logger.info('Thread | useGetNextThreadsCallback: Fetch next threads succeeded.', {
1233
- parentMessage,
1234
- threadedMessages
1235
- });
1236
- threadDispatcher({
1237
- type: ThreadContextActionTypes.GET_NEXT_MESSAGES_SUCESS,
1238
- payload: {
1239
- parentMessage,
1240
- threadedMessages
1241
- }
1242
- });
1243
- callback(threadedMessages);
1244
- }).catch(error => {
1245
- logger.info('Thread | useGetNextThreadsCallback: Fetch next threads failed.', error);
1246
- threadDispatcher({
1247
- type: ThreadContextActionTypes.GET_NEXT_MESSAGES_FAILURE,
1248
- payload: error
1249
- });
1250
- });
1251
- }
1252
- }, [hasMoreNext, parentMessage, threadListState, latestMessageTimeStamp]);
1253
- }
1254
-
1255
- function useToggleReactionCallback(_ref, _ref2) {
1256
- let {
1257
- currentChannel
1258
- } = _ref;
1259
- let {
1260
- logger
1261
- } = _ref2;
1262
- return useCallback((message, key, isReacted) => {
1263
- var _currentChannel$addRe;
1264
- if (isReacted) {
1265
- var _currentChannel$delet;
1266
- currentChannel === null || currentChannel === void 0 ? void 0 : (_currentChannel$delet = currentChannel.deleteReaction) === null || _currentChannel$delet === void 0 ? void 0 : _currentChannel$delet.call(currentChannel, message, key).then(res => {
1267
- logger.info('Thread | useToggleReactionsCallback: Delete reaction succeeded.', res);
1268
- }).catch(err => {
1269
- logger.warning('Thread | useToggleReactionsCallback: Delete reaction failed.', err);
1270
- });
1271
- return;
1272
- }
1273
- currentChannel === null || currentChannel === void 0 ? void 0 : (_currentChannel$addRe = currentChannel.addReaction) === null || _currentChannel$addRe === void 0 ? void 0 : _currentChannel$addRe.call(currentChannel, message, key).then(res => {
1274
- logger.info('Thread | useToggleReactionsCallback: Add reaction succeeded.', res);
1275
- }).catch(err => {
1276
- logger.warning('Thread | useToggleReactionsCallback: Add reaction failed.', err);
1277
- });
1278
- }, [currentChannel]);
1279
- }
1280
-
1281
- function useSendUserMessageCallback(_ref, _ref2) {
1282
- let {
1283
- isMentionEnabled,
1284
- currentChannel,
1285
- onBeforeSendUserMessage
1286
- } = _ref;
1287
- let {
1288
- logger,
1289
- pubSub,
1290
- threadDispatcher
1291
- } = _ref2;
1292
- const sendMessage = useCallback(props => {
1293
- var _onBeforeSendUserMess;
1294
- const {
1295
- message,
1296
- quoteMessage,
1297
- mentionTemplate,
1298
- mentionedUsers
1299
- } = props;
1300
- const createDefaultParams = () => {
1301
- const params = {};
1302
- params.message = message;
1303
- const mentionedUsersLength = (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) || 0;
1304
- if (isMentionEnabled && mentionedUsersLength) {
1305
- params.mentionedUsers = mentionedUsers;
1306
- }
1307
- if (isMentionEnabled && mentionTemplate && mentionedUsersLength) {
1308
- params.mentionedMessageTemplate = mentionTemplate;
1309
- }
1310
- if (quoteMessage) {
1311
- params.isReplyToChannel = true;
1312
- params.parentMessageId = quoteMessage.messageId;
1313
- }
1314
- return params;
1315
- };
1316
- const params = (_onBeforeSendUserMess = onBeforeSendUserMessage === null || onBeforeSendUserMessage === void 0 ? void 0 : onBeforeSendUserMessage(message, quoteMessage)) !== null && _onBeforeSendUserMess !== void 0 ? _onBeforeSendUserMess : createDefaultParams();
1317
- logger.info('Thread | useSendUserMessageCallback: Sending user message start.', params);
1318
- if (currentChannel !== null && currentChannel !== void 0 && currentChannel.sendUserMessage) {
1319
- currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.sendUserMessage(params).onPending(pendingMessage => {
1320
- threadDispatcher({
1321
- type: ThreadContextActionTypes.SEND_MESSAGE_START,
1322
- payload: {
1323
- message: pendingMessage
1324
- }
1325
- });
1326
- }).onFailed((error, message) => {
1327
- logger.info('Thread | useSendUserMessageCallback: Sending user message failed.', {
1328
- message,
1329
- error
1330
- });
1331
- threadDispatcher({
1332
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1333
- payload: {
1334
- error,
1335
- message
1336
- }
1337
- });
1338
- }).onSucceeded(message => {
1339
- logger.info('Thread | useSendUserMessageCallback: Sending user message succeeded.', message);
1340
- threadDispatcher({
1341
- type: ThreadContextActionTypes.SEND_MESSAGE_SUCESS,
1342
- payload: {
1343
- message
1344
- }
1345
- });
1346
- // because Thread doesn't subscribe SEND_USER_MESSAGE
1347
- pubSub.publish(PUBSUB_TOPICS.SEND_USER_MESSAGE, {
1348
- channel: currentChannel,
1349
- message: message
1350
- });
1351
- });
1352
- }
1353
- }, [isMentionEnabled, currentChannel]);
1354
- return sendMessage;
1355
- }
1356
-
1357
- function useResendMessageCallback(_ref, _ref2) {
1358
- let {
1359
- currentChannel
1360
- } = _ref;
1361
- let {
1362
- logger,
1363
- pubSub,
1364
- threadDispatcher
1365
- } = _ref2;
1366
- return useCallback(failedMessage => {
1367
- if (failedMessage !== null && failedMessage !== void 0 && failedMessage.isResendable) {
1368
- var _failedMessage$isUser, _failedMessage$isFile, _failedMessage$isMult;
1369
- failedMessage.sendingStatus = SendingStatus.PENDING;
1370
- logger.info('Thread | useResendMessageCallback: Resending failedMessage start.', failedMessage);
1371
- threadDispatcher({
1372
- type: ThreadContextActionTypes.RESEND_MESSAGE_START,
1373
- payload: failedMessage
1374
- });
1375
- if (failedMessage !== null && failedMessage !== void 0 && (_failedMessage$isUser = failedMessage.isUserMessage) !== null && _failedMessage$isUser !== void 0 && _failedMessage$isUser.call(failedMessage) || (failedMessage === null || failedMessage === void 0 ? void 0 : failedMessage.messageType) === MessageType.USER) {
1376
- currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.resendUserMessage(failedMessage).then(message => {
1377
- logger.info('Thread | useResendMessageCallback: Resending failedMessage succeeded.', message);
1378
- threadDispatcher({
1379
- type: ThreadContextActionTypes.SEND_MESSAGE_SUCESS,
1380
- payload: {
1381
- message
1382
- }
1383
- });
1384
- pubSub.publish(PUBSUB_TOPICS.SEND_USER_MESSAGE, {
1385
- channel: currentChannel,
1386
- message: message
1387
- });
1388
- }).catch(error => {
1389
- logger.warning('Thread | useResendMessageCallback: Resending failedMessage failed.', error);
1390
- failedMessage.sendingStatus = SendingStatus.FAILED;
1391
- threadDispatcher({
1392
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1393
- payload: {
1394
- message: failedMessage
1395
- }
1396
- });
1397
- });
1398
- } else if (failedMessage !== null && failedMessage !== void 0 && (_failedMessage$isFile = failedMessage.isFileMessage) !== null && _failedMessage$isFile !== void 0 && _failedMessage$isFile.call(failedMessage) || (failedMessage === null || failedMessage === void 0 ? void 0 : failedMessage.messageType) === MessageType.FILE) {
1399
- var _currentChannel$resen;
1400
- currentChannel === null || currentChannel === void 0 ? void 0 : (_currentChannel$resen = currentChannel.resendFileMessage) === null || _currentChannel$resen === void 0 ? void 0 : _currentChannel$resen.call(currentChannel, failedMessage).then(message => {
1401
- logger.info('Thread | useResendMessageCallback: Resending failedMessage succeeded.', message);
1402
- threadDispatcher({
1403
- type: ThreadContextActionTypes.SEND_MESSAGE_SUCESS,
1404
- payload: {
1405
- message
1406
- }
1407
- });
1408
- }).catch(error => {
1409
- logger.warning('Thread | useResendMessageCallback: Resending failedMessage failed.', error);
1410
- failedMessage.sendingStatus = SendingStatus.FAILED;
1411
- threadDispatcher({
1412
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1413
- payload: {
1414
- message: failedMessage
1415
- }
1416
- });
1417
- pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {
1418
- channel: currentChannel,
1419
- message: failedMessage
1420
- });
1421
- });
1422
- } else if (failedMessage !== null && failedMessage !== void 0 && (_failedMessage$isMult = failedMessage.isMultipleFilesMessage) !== null && _failedMessage$isMult !== void 0 && _failedMessage$isMult.call(failedMessage)) {
1423
- var _currentChannel$resen2;
1424
- currentChannel === null || currentChannel === void 0 ? void 0 : (_currentChannel$resen2 = currentChannel.resendMessage) === null || _currentChannel$resen2 === void 0 ? void 0 : _currentChannel$resen2.call(currentChannel, failedMessage)
1425
- // TODO: Handle on pending event (Same goes for the other message types).
1426
- // TODO: Handle on file info upload event.
1427
- .onSucceeded(message => {
1428
- logger.info('Thread | useResendMessageCallback: Resending failedMessage succeeded.', message);
1429
- threadDispatcher({
1430
- type: ThreadContextActionTypes.SEND_MESSAGE_SUCESS,
1431
- payload: {
1432
- message
1433
- }
1434
- });
1435
- }).onFailed((error, message) => {
1436
- logger.warning('Thread | useResendMessageCallback: Resending failedMessage failed.', error);
1437
- threadDispatcher({
1438
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1439
- payload: {
1440
- message
1441
- }
1442
- });
1443
- pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {
1444
- channel: currentChannel,
1445
- message
1446
- });
1447
- });
1448
- } else {
1449
- logger.warning('Thread | useResendMessageCallback: Message is not resendable.', failedMessage);
1450
- failedMessage.sendingStatus = SendingStatus.FAILED;
1451
- threadDispatcher({
1452
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1453
- payload: {
1454
- message: failedMessage
1455
- }
1456
- });
1457
- }
1458
- }
1459
- }, [currentChannel]);
1460
- }
1461
-
1462
- const useSendVoiceMessageCallback = (_ref, _ref2) => {
1463
- let {
1464
- currentChannel,
1465
- onBeforeSendVoiceMessage
1466
- } = _ref;
1467
- let {
1468
- logger,
1469
- pubSub,
1470
- threadDispatcher
1471
- } = _ref2;
1472
- const sendMessage = useCallback((file, duration, quoteMessage) => {
1473
- const messageParams = onBeforeSendVoiceMessage && typeof onBeforeSendVoiceMessage === 'function' ? onBeforeSendVoiceMessage(file, quoteMessage) : {
1474
- file,
1475
- fileName: VOICE_MESSAGE_FILE_NAME,
1476
- mimeType: VOICE_MESSAGE_MIME_TYPE,
1477
- metaArrays: [new MessageMetaArray({
1478
- key: META_ARRAY_VOICE_DURATION_KEY,
1479
- value: [`${duration}`]
1480
- }), new MessageMetaArray({
1481
- key: META_ARRAY_MESSAGE_TYPE_KEY,
1482
- value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE]
1483
- })]
1484
- };
1485
- if (quoteMessage) {
1486
- messageParams.isReplyToChannel = true;
1487
- messageParams.parentMessageId = quoteMessage.messageId;
1488
- }
1489
- logger.info('Thread | useSendVoiceMessageCallback: Start sending voice message', messageParams);
1490
- currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.sendFileMessage(messageParams).onPending(pendingMessage => {
1491
- threadDispatcher({
1492
- type: ThreadContextActionTypes.SEND_MESSAGE_START,
1493
- payload: {
1494
- /* pubSub is used instead of messagesDispatcher
1495
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1496
- message: _objectSpread2(_objectSpread2({}, pendingMessage), {}, {
1497
- url: URL.createObjectURL(file),
1498
- // pending thumbnail message seems to be failed
1499
- requestState: 'pending'
1500
- })
1501
- }
1502
- });
1503
- setTimeout(() => scrollIntoLast(), 1000);
1504
- }).onFailed((error, message) => {
1505
- message.localUrl = URL.createObjectURL(file);
1506
- message.file = file;
1507
- logger.info('Thread | useSendVoiceMessageCallback: Sending voice message failed.', {
1508
- message,
1509
- error
1510
- });
1511
- threadDispatcher({
1512
- type: ThreadContextActionTypes.SEND_MESSAGE_FAILURE,
1513
- payload: {
1514
- message,
1515
- error
1516
- }
1517
- });
1518
- }).onSucceeded(message => {
1519
- logger.info('Thread | useSendVoiceMessageCallback: Sending voice message succeeded.', message);
1520
- pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {
1521
- channel: currentChannel,
1522
- message: message
1523
- });
1524
- });
1525
- }, [currentChannel, onBeforeSendVoiceMessage]);
1526
- return sendMessage;
1527
- };
1528
-
1529
- const ThreadContext = /*#__PURE__*/React__default.createContext(null);
1530
- const ThreadProvider = props => {
1531
- var _allThreadMessages$, _allThreadMessages;
1532
- const {
1533
- children,
1534
- channelUrl,
1535
- onHeaderActionClick,
1536
- onMoveToParentMessage,
1537
- onBeforeSendUserMessage,
1538
- onBeforeSendFileMessage,
1539
- onBeforeSendVoiceMessage,
1540
- onBeforeSendMultipleFilesMessage,
1541
- // User Profile
1542
- disableUserProfile,
1543
- renderUserProfile
1544
- } = props;
1545
- const propsMessage = props === null || props === void 0 ? void 0 : props.message;
1546
- const propsParentMessage = getParentMessageFrom(propsMessage);
1547
- // Context from SendbirdProvider
1548
- const globalStore = useSendbirdStateContext();
1549
- const {
1550
- stores,
1551
- config
1552
- } = globalStore;
1553
- // // stores
1554
- const {
1555
- sdkStore,
1556
- userStore
1557
- } = stores;
1558
- const {
1559
- sdk
1560
- } = sdkStore;
1561
- const {
1562
- user
1563
- } = userStore;
1564
- const sdkInit = sdkStore === null || sdkStore === void 0 ? void 0 : sdkStore.initialized;
1565
- // // config
1566
- const {
1567
- logger,
1568
- pubSub,
1569
- replyType,
1570
- isMentionEnabled,
1571
- isReactionEnabled,
1572
- onUserProfileMessage
1573
- } = config;
1574
-
1575
- // dux of Thread
1576
- const [threadStore, threadDispatcher] = useReducer(reducer, initialState);
1577
- const {
1578
- currentChannel,
1579
- allThreadMessages,
1580
- parentMessage,
1581
- channelState,
1582
- threadListState,
1583
- parentMessageState,
1584
- hasMorePrev,
1585
- hasMoreNext,
1586
- emojiContainer,
1587
- isMuted,
1588
- isChannelFrozen,
1589
- currentUserId
1590
- } = threadStore;
1591
-
1592
- // Initialization
1593
- useEffect(() => {
1594
- threadDispatcher({
1595
- type: ThreadContextActionTypes.INIT_USER_ID,
1596
- payload: user === null || user === void 0 ? void 0 : user.userId
1597
- });
1598
- }, [user]);
1599
- useGetChannel({
1600
- channelUrl,
1601
- sdkInit,
1602
- message: propsMessage
1603
- }, {
1604
- sdk,
1605
- logger,
1606
- threadDispatcher
1607
- });
1608
- useGetParentMessage({
1609
- channelUrl,
1610
- sdkInit,
1611
- parentMessage: propsParentMessage
1612
- }, {
1613
- sdk,
1614
- logger,
1615
- threadDispatcher
1616
- });
1617
- useGetThreadList({
1618
- sdkInit,
1619
- parentMessage,
1620
- isReactionEnabled,
1621
- anchorMessage: (propsMessage === null || propsMessage === void 0 ? void 0 : propsMessage.messageId) !== (propsParentMessage === null || propsParentMessage === void 0 ? void 0 : propsParentMessage.messageId) ? propsMessage : null
1622
- // anchorMessage should be null when parentMessage doesn't exist
1623
- }, {
1624
- logger,
1625
- threadDispatcher
1626
- });
1627
- useGetAllEmoji({
1628
- sdk
1629
- }, {
1630
- logger,
1631
- threadDispatcher
1632
- });
1633
- // Handle channel events
1634
- useHandleChannelEvents({
1635
- sdk,
1636
- currentChannel
1637
- }, {
1638
- logger,
1639
- threadDispatcher
1640
- });
1641
- useHandlePubsubEvents({
1642
- sdkInit,
1643
- currentChannel,
1644
- parentMessage
1645
- }, {
1646
- logger,
1647
- pubSub,
1648
- threadDispatcher
1649
- });
1650
-
1651
- // callbacks
1652
- const fetchPrevThreads = useGetPrevThreadsCallback({
1653
- hasMorePrev,
1654
- parentMessage,
1655
- threadListState,
1656
- isReactionEnabled,
1657
- oldestMessageTimeStamp: ((_allThreadMessages$ = allThreadMessages[0]) === null || _allThreadMessages$ === void 0 ? void 0 : _allThreadMessages$.createdAt) || 0
1658
- }, {
1659
- logger,
1660
- threadDispatcher
1661
- });
1662
- const fetchNextThreads = useGetNextThreadsCallback({
1663
- hasMoreNext,
1664
- parentMessage,
1665
- threadListState,
1666
- isReactionEnabled,
1667
- latestMessageTimeStamp: ((_allThreadMessages = allThreadMessages[allThreadMessages.length - 1]) === null || _allThreadMessages === void 0 ? void 0 : _allThreadMessages.createdAt) || 0
1668
- }, {
1669
- logger,
1670
- threadDispatcher
1671
- });
1672
- const toggleReaction = useToggleReactionCallback({
1673
- currentChannel
1674
- }, {
1675
- logger
1676
- });
1677
-
1678
- // Send Message Hooks
1679
- const sendMessage = useSendUserMessageCallback({
1680
- isMentionEnabled,
1681
- currentChannel,
1682
- onBeforeSendUserMessage
1683
- }, {
1684
- logger,
1685
- pubSub,
1686
- threadDispatcher
1687
- });
1688
- const sendFileMessage = useSendFileMessageCallback({
1689
- currentChannel,
1690
- onBeforeSendFileMessage
1691
- }, {
1692
- logger,
1693
- pubSub,
1694
- threadDispatcher
1695
- });
1696
- const sendVoiceMessage = useSendVoiceMessageCallback({
1697
- currentChannel,
1698
- onBeforeSendVoiceMessage
1699
- }, {
1700
- logger,
1701
- pubSub,
1702
- threadDispatcher
1703
- });
1704
- const [sendMultipleFilesMessage] = useSendMultipleFilesMessage({
1705
- currentChannel,
1706
- onBeforeSendMultipleFilesMessage
1707
- }, {
1708
- logger,
1709
- pubSub
1710
- });
1711
- const resendMessage = useResendMessageCallback({
1712
- currentChannel
1713
- }, {
1714
- logger,
1715
- pubSub,
1716
- threadDispatcher
1717
- });
1718
- const updateMessage = useUpdateMessageCallback({
1719
- currentChannel,
1720
- isMentionEnabled
1721
- }, {
1722
- logger,
1723
- pubSub,
1724
- threadDispatcher
1725
- });
1726
- const deleteMessage = useDeleteMessageCallback({
1727
- currentChannel,
1728
- threadDispatcher
1729
- }, {
1730
- logger
1731
- });
1732
-
1733
- // memo
1734
- const nicknamesMap = useMemo(() => replyType && currentChannel ? getNicknamesMapFromMembers(currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.members) : new Map(), [currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.members]);
1735
- return /*#__PURE__*/React__default.createElement(ThreadContext.Provider, {
1736
- value: {
1737
- // ThreadProviderProps
1738
- channelUrl,
1739
- message: propsMessage,
1740
- onHeaderActionClick,
1741
- onMoveToParentMessage,
1742
- // ThreadContextInitialState
1743
- currentChannel,
1744
- allThreadMessages,
1745
- parentMessage,
1746
- channelState,
1747
- threadListState,
1748
- parentMessageState,
1749
- hasMorePrev,
1750
- hasMoreNext,
1751
- emojiContainer,
1752
- // hooks
1753
- fetchPrevThreads,
1754
- fetchNextThreads,
1755
- toggleReaction,
1756
- sendMessage,
1757
- sendFileMessage,
1758
- sendVoiceMessage,
1759
- sendMultipleFilesMessage,
1760
- resendMessage,
1761
- updateMessage,
1762
- deleteMessage,
1763
- // context
1764
- nicknamesMap,
1765
- isMuted,
1766
- isChannelFrozen,
1767
- currentUserId
1768
- }
1769
- }, /*#__PURE__*/React__default.createElement(UserProfileProvider, {
1770
- disableUserProfile: disableUserProfile !== null && disableUserProfile !== void 0 ? disableUserProfile : config.disableUserProfile,
1771
- renderUserProfile: renderUserProfile,
1772
- onUserProfileMessage: onUserProfileMessage
1773
- }, children));
1774
- };
1775
- const useThreadContext = () => React__default.useContext(ThreadContext);
1776
-
1777
- export { ThreadProvider as T, compareMessagesForGrouping as c, isAboutSame as i, useThreadContext as u };
1778
- //# sourceMappingURL=ThreadProvider-9a3b145f.js.map