@sendbird/uikit-react 3.4.6 → 3.4.7-0

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