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