@sendbird/uikit-react 3.5.0-rc.1 → 3.5.1

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 (936) hide show
  1. package/App.js +323 -238
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +556 -0
  4. package/Channel/components/ChannelHeader.js +46 -41
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +104 -131
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +56 -52
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +12 -7
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +240 -230
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +152 -129
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +270 -175
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +34 -30
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +139 -193
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +44 -61
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +18 -20
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +12 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +69 -44
  29. package/Channel.js.map +1 -1
  30. package/ChannelList/components/AddChannel.js +29 -30
  31. package/ChannelList/components/AddChannel.js.map +1 -1
  32. package/ChannelList/components/ChannelListHeader.js +32 -28
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  34. package/ChannelList/components/ChannelListUI.js +101 -142
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +72 -82
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +36 -36
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -8
  41. package/ChannelList/context.js.map +1 -1
  42. package/ChannelList.js +32 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-1d36e2e9.js → ChannelListProvider-643a2b47.js} +234 -286
  45. package/ChannelListProvider-643a2b47.js.map +1 -0
  46. package/{ChannelProvider-289cd35f.js → ChannelProvider-33559192.js} +661 -727
  47. package/ChannelProvider-33559192.js.map +1 -0
  48. package/ChannelSettings/components/ChannelProfile.js +33 -46
  49. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  50. package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  51. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  52. package/ChannelSettings/components/EditDetailsModal.js +47 -58
  53. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  54. package/ChannelSettings/components/LeaveChannel.js +40 -46
  55. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  56. package/ChannelSettings/components/ModerationPanel.js +522 -605
  57. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  58. package/ChannelSettings/components/UserListItem.js +71 -72
  59. package/ChannelSettings/components/UserListItem.js.map +1 -1
  60. package/ChannelSettings/components/UserPanel.js +29 -32
  61. package/ChannelSettings/components/UserPanel.js.map +1 -1
  62. package/ChannelSettings/context.js +55 -58
  63. package/ChannelSettings/context.js.map +1 -1
  64. package/ChannelSettings.js +20 -20
  65. package/ChannelSettings.js.map +1 -1
  66. package/CreateChannel/components/CreateChannelUI.js +24 -24
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  68. package/CreateChannel/components/InviteUsers.js +102 -124
  69. package/CreateChannel/components/InviteUsers.js.map +1 -1
  70. package/CreateChannel/components/SelectChannelType.js +41 -42
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  72. package/CreateChannel/context.js +4 -4
  73. package/CreateChannel.js +22 -21
  74. package/CreateChannel.js.map +1 -1
  75. package/CreateChannelProvider-5b006b58.js +44 -0
  76. package/CreateChannelProvider-5b006b58.js.map +1 -0
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  78. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  79. package/CreateOpenChannel/context.js +33 -33
  80. package/CreateOpenChannel/context.js.map +1 -1
  81. package/CreateOpenChannel.js +18 -17
  82. package/CreateOpenChannel.js.map +1 -1
  83. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  84. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  85. package/EditUserProfile/context.js +0 -2
  86. package/EditUserProfile/context.js.map +1 -1
  87. package/EditUserProfile.js +18 -17
  88. package/EditUserProfile.js.map +1 -1
  89. package/LocalizationContext-25d6694d.js +20 -0
  90. package/{LocalizationContext-289c1917.js.map → LocalizationContext-25d6694d.js.map} +1 -1
  91. package/MediaQueryContext-94c9086a.js +87 -0
  92. package/MediaQueryContext-94c9086a.js.map +1 -0
  93. package/MemberList-9f8950db.js +403 -0
  94. package/MemberList-9f8950db.js.map +1 -0
  95. package/Message/context.js +31 -0
  96. package/Message/context.js.map +1 -0
  97. package/MessageSearch/components/MessageSearchUI.js +62 -71
  98. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  99. package/MessageSearch/context.js +201 -224
  100. package/MessageSearch/context.js.map +1 -1
  101. package/MessageSearch.js +46 -58
  102. package/MessageSearch.js.map +1 -1
  103. package/OpenChannel/components/FrozenChannelNotification.js +8 -6
  104. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  105. package/OpenChannel/components/OpenChannelHeader.js +27 -25
  106. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  107. package/OpenChannel/components/OpenChannelInput.js +50 -35
  108. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelMessage.js +174 -191
  110. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  111. package/OpenChannel/components/OpenChannelMessageList.js +72 -92
  112. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  113. package/OpenChannel/components/OpenChannelUI.js +52 -49
  114. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  115. package/OpenChannel/context.js +8 -9
  116. package/OpenChannel/context.js.map +1 -1
  117. package/OpenChannel.js +36 -30
  118. package/OpenChannel.js.map +1 -1
  119. package/OpenChannelList/components/OpenChannelListUI.js +61 -76
  120. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  121. package/OpenChannelList/components/OpenChannelPreview.js +21 -22
  122. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  123. package/OpenChannelList/context.js +3 -4
  124. package/OpenChannelList/context.js.map +1 -1
  125. package/OpenChannelList.js +26 -24
  126. package/OpenChannelList.js.map +1 -1
  127. package/OpenChannelListProvider-7c6b2f84.js +429 -0
  128. package/OpenChannelListProvider-7c6b2f84.js.map +1 -0
  129. package/OpenChannelProvider-18fa6128.js +1885 -0
  130. package/OpenChannelProvider-18fa6128.js.map +1 -0
  131. package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  132. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  133. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  134. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  135. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  136. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  137. package/OpenChannelSettings/components/OperatorUI.js +516 -586
  138. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  139. package/OpenChannelSettings/components/ParticipantUI.js +15 -16
  140. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  141. package/OpenChannelSettings/context.js +57 -70
  142. package/OpenChannelSettings/context.js.map +1 -1
  143. package/OpenChannelSettings.js +19 -20
  144. package/OpenChannelSettings.js.map +1 -1
  145. package/README.md +62 -13
  146. package/RemoveMessageModal-9c0350c0.js +36 -0
  147. package/RemoveMessageModal-9c0350c0.js.map +1 -0
  148. package/SendbirdProvider.js +749 -408
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +238 -217
  151. package/Thread/components/ParentMessageInfo.js.map +1 -1
  152. package/Thread/components/ParentMessageInfoItem.js +112 -89
  153. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  154. package/Thread/components/ThreadHeader.js +22 -23
  155. package/Thread/components/ThreadHeader.js.map +1 -1
  156. package/Thread/components/ThreadList.js +108 -83
  157. package/Thread/components/ThreadList.js.map +1 -1
  158. package/Thread/components/ThreadListItem.js +306 -276
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +146 -113
  161. package/Thread/components/ThreadMessageInput.js.map +1 -1
  162. package/Thread/components/ThreadUI.js +169 -138
  163. package/Thread/components/ThreadUI.js.map +1 -1
  164. package/Thread/context/types.js +9 -14
  165. package/Thread/context/types.js.map +1 -1
  166. package/Thread/context.js +8 -8
  167. package/Thread.js +87 -57
  168. package/Thread.js.map +1 -1
  169. package/ThreadProvider-6ae0b041.js +1695 -0
  170. package/ThreadProvider-6ae0b041.js.map +1 -0
  171. package/{UserProfileContext-e3530842.js → UserProfileContext-a56cc682.js} +1 -4
  172. package/{UserProfileContext-e3530842.js.map → UserProfileContext-a56cc682.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-69ac1f5a.js +170 -0
  174. package/VoiceMessageInputWrapper-69ac1f5a.js.map +1 -0
  175. package/VoicePlayer/context.js +7 -0
  176. package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  177. package/VoicePlayer/useVoicePlayer.js +84 -0
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  179. package/VoiceRecorder/context.js +156 -0
  180. package/VoiceRecorder/context.js.map +1 -0
  181. package/VoiceRecorder/useVoiceRecorder.js +121 -0
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  183. package/WebAudioUtils-16540f03.js +123 -0
  184. package/WebAudioUtils-16540f03.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-519f674b.js → _rollupPluginBabelHelpers-1be219c2.js} +17 -11
  186. package/_rollupPluginBabelHelpers-1be219c2.js.map +1 -0
  187. package/actionTypes-a8140d53.js +8 -0
  188. package/actionTypes-a8140d53.js.map +1 -0
  189. package/cjs/App.js +324 -239
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +46 -41
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +102 -129
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +56 -52
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +12 -7
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +243 -233
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +151 -128
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +270 -175
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +34 -30
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +139 -193
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +44 -61
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +18 -20
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +12 -23
  214. package/cjs/Channel/context.js.map +1 -1
  215. package/cjs/Channel.js +69 -44
  216. package/cjs/Channel.js.map +1 -1
  217. package/cjs/ChannelList/components/AddChannel.js +29 -30
  218. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  219. package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
  220. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  221. package/cjs/ChannelList/components/ChannelListUI.js +100 -141
  222. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  223. package/cjs/ChannelList/components/ChannelPreview.js +72 -82
  224. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  225. package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
  226. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  227. package/cjs/ChannelList/context.js +7 -8
  228. package/cjs/ChannelList/context.js.map +1 -1
  229. package/cjs/ChannelList.js +32 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-0de52d2b.js → ChannelListProvider-1d4a8060.js} +233 -285
  232. package/cjs/ChannelListProvider-1d4a8060.js.map +1 -0
  233. package/cjs/{ChannelProvider-fc58e60e.js → ChannelProvider-2c7ec64b.js} +659 -725
  234. package/cjs/ChannelProvider-2c7ec64b.js.map +1 -0
  235. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
  236. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  237. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  238. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  239. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
  240. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  241. package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
  242. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  243. package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
  244. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  245. package/cjs/ChannelSettings/components/UserListItem.js +71 -72
  246. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  247. package/cjs/ChannelSettings/components/UserPanel.js +29 -32
  248. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  249. package/cjs/ChannelSettings/context.js +57 -60
  250. package/cjs/ChannelSettings/context.js.map +1 -1
  251. package/cjs/ChannelSettings.js +20 -20
  252. package/cjs/ChannelSettings.js.map +1 -1
  253. package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
  254. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  255. package/cjs/CreateChannel/components/InviteUsers.js +102 -124
  256. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  257. package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
  258. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  259. package/cjs/CreateChannel/context.js +4 -4
  260. package/cjs/CreateChannel.js +22 -21
  261. package/cjs/CreateChannel.js.map +1 -1
  262. package/cjs/CreateChannelProvider-f7d36126.js +52 -0
  263. package/cjs/CreateChannelProvider-f7d36126.js.map +1 -0
  264. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  265. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  266. package/cjs/CreateOpenChannel/context.js +33 -33
  267. package/cjs/CreateOpenChannel/context.js.map +1 -1
  268. package/cjs/CreateOpenChannel.js +18 -17
  269. package/cjs/CreateOpenChannel.js.map +1 -1
  270. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  271. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  272. package/cjs/EditUserProfile/context.js +0 -2
  273. package/cjs/EditUserProfile/context.js.map +1 -1
  274. package/cjs/EditUserProfile.js +18 -17
  275. package/cjs/EditUserProfile.js.map +1 -1
  276. package/cjs/{LocalizationContext-bddc5c2b.js → LocalizationContext-bd54275c.js} +9 -11
  277. package/cjs/{LocalizationContext-bddc5c2b.js.map → LocalizationContext-bd54275c.js.map} +1 -1
  278. package/cjs/MediaQueryContext-ebcb159a.js +94 -0
  279. package/cjs/MediaQueryContext-ebcb159a.js.map +1 -0
  280. package/cjs/MemberList-2204c0b1.js +409 -0
  281. package/cjs/MemberList-2204c0b1.js.map +1 -0
  282. package/cjs/Message/context.js +40 -0
  283. package/cjs/Message/context.js.map +1 -0
  284. package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
  285. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  286. package/cjs/MessageSearch/context.js +201 -224
  287. package/cjs/MessageSearch/context.js.map +1 -1
  288. package/cjs/MessageSearch.js +46 -58
  289. package/cjs/MessageSearch.js.map +1 -1
  290. package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
  291. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  292. package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
  293. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  294. package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
  295. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  296. package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
  297. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  298. package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
  299. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  300. package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
  301. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  302. package/cjs/OpenChannel/context.js +8 -9
  303. package/cjs/OpenChannel/context.js.map +1 -1
  304. package/cjs/OpenChannel.js +36 -30
  305. package/cjs/OpenChannel.js.map +1 -1
  306. package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
  307. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  308. package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
  309. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  310. package/cjs/OpenChannelList/context.js +3 -4
  311. package/cjs/OpenChannelList/context.js.map +1 -1
  312. package/cjs/OpenChannelList.js +26 -24
  313. package/cjs/OpenChannelList.js.map +1 -1
  314. package/cjs/OpenChannelListProvider-865700d5.js +439 -0
  315. package/cjs/OpenChannelListProvider-865700d5.js.map +1 -0
  316. package/cjs/OpenChannelProvider-083e5628.js +1894 -0
  317. package/cjs/OpenChannelProvider-083e5628.js.map +1 -0
  318. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  319. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  320. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  321. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  322. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  323. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
  325. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
  327. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/context.js +58 -71
  329. package/cjs/OpenChannelSettings/context.js.map +1 -1
  330. package/cjs/OpenChannelSettings.js +19 -20
  331. package/cjs/OpenChannelSettings.js.map +1 -1
  332. package/cjs/{RemoveMessageModal-9169766a.js → RemoveMessageModal-822e0fac.js} +19 -14
  333. package/cjs/RemoveMessageModal-822e0fac.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +748 -408
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +237 -216
  337. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  338. package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
  339. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  340. package/cjs/Thread/components/ThreadHeader.js +22 -23
  341. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  342. package/cjs/Thread/components/ThreadList.js +108 -83
  343. package/cjs/Thread/components/ThreadList.js.map +1 -1
  344. package/cjs/Thread/components/ThreadListItem.js +305 -275
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +146 -113
  347. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  348. package/cjs/Thread/components/ThreadUI.js +170 -139
  349. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  350. package/cjs/Thread/context/types.js +13 -14
  351. package/cjs/Thread/context/types.js.map +1 -1
  352. package/cjs/Thread/context.js +8 -8
  353. package/cjs/Thread.js +87 -57
  354. package/cjs/Thread.js.map +1 -1
  355. package/cjs/ThreadProvider-09392c06.js +1704 -0
  356. package/cjs/ThreadProvider-09392c06.js.map +1 -0
  357. package/cjs/{UserProfileContext-8d0dee57.js → UserProfileContext-10e1ac24.js} +1 -4
  358. package/cjs/{UserProfileContext-8d0dee57.js.map → UserProfileContext-10e1ac24.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-fee2ede6.js +176 -0
  360. package/cjs/VoiceMessageInputWrapper-fee2ede6.js.map +1 -0
  361. package/cjs/VoicePlayer/context.js +17 -0
  362. package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  363. package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  365. package/cjs/VoiceRecorder/context.js +166 -0
  366. package/cjs/VoiceRecorder/context.js.map +1 -0
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  369. package/cjs/WebAudioUtils-9dfbd5a9.js +126 -0
  370. package/cjs/WebAudioUtils-9dfbd5a9.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-fed1e122.js → _rollupPluginBabelHelpers-53e83515.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-53e83515.js.map +1 -0
  373. package/cjs/actionTypes-b1275c7f.js +10 -0
  374. package/cjs/actionTypes-b1275c7f.js.map +1 -0
  375. package/cjs/{color-f47044b3.js → color-e7fbb496.js} +13 -21
  376. package/cjs/color-e7fbb496.js.map +1 -0
  377. package/cjs/{compareIds-4124b297.js → compareIds-03cd7437.js} +5 -6
  378. package/cjs/compareIds-03cd7437.js.map +1 -0
  379. package/cjs/{const-fd64914b.js → const-8728e4b6.js} +4 -4
  380. package/cjs/const-8728e4b6.js.map +1 -0
  381. package/cjs/const-b3585ae0.js +20 -0
  382. package/cjs/const-b3585ae0.js.map +1 -0
  383. package/cjs/consts-6bd1cfe3.js +6 -0
  384. package/cjs/consts-6bd1cfe3.js.map +1 -0
  385. package/cjs/consts-a006bc78.js +6 -0
  386. package/cjs/consts-a006bc78.js.map +1 -0
  387. package/cjs/consts-a0e35044.js +6 -0
  388. package/cjs/consts-a0e35044.js.map +1 -0
  389. package/cjs/consts-aa056322.js +41 -0
  390. package/cjs/consts-aa056322.js.map +1 -0
  391. package/cjs/{context-7a0e057b.js → context-ad45a982.js} +6 -5
  392. package/cjs/{context-7a0e057b.js.map → context-ad45a982.js.map} +1 -1
  393. package/cjs/dist/index.css +1847 -1394
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/{index-343cd84a.js → index-165d52b7.js} +2 -2
  398. package/cjs/{index-343cd84a.js.map → index-165d52b7.js.map} +1 -1
  399. package/cjs/index-288afd10.js +367 -0
  400. package/cjs/index-288afd10.js.map +1 -0
  401. package/cjs/{index-9ca07037.js → index-2f206bb6.js} +29 -37
  402. package/cjs/index-2f206bb6.js.map +1 -0
  403. package/cjs/index-32244c73.js +585 -0
  404. package/cjs/index-32244c73.js.map +1 -0
  405. package/cjs/index-35d641f7.js +202 -0
  406. package/cjs/index-35d641f7.js.map +1 -0
  407. package/cjs/{index-c475c3c8.js → index-3e924a85.js} +55 -63
  408. package/cjs/index-3e924a85.js.map +1 -0
  409. package/cjs/index-4a2ec2ae.js +456 -0
  410. package/cjs/index-4a2ec2ae.js.map +1 -0
  411. package/cjs/{index-d14a43c4.js → index-745c9ce1.js} +1 -1
  412. package/cjs/{index-d14a43c4.js.map → index-745c9ce1.js.map} +1 -1
  413. package/cjs/index-7bd7f678.js +79 -0
  414. package/cjs/index-7bd7f678.js.map +1 -0
  415. package/cjs/index-7d2d89a2.js +330 -0
  416. package/cjs/index-7d2d89a2.js.map +1 -0
  417. package/cjs/{index-c5cd589d.js → index-8ada6055.js} +1 -1
  418. package/cjs/index-8ada6055.js.map +1 -0
  419. package/cjs/{index-3a4f8219.js → index-9a94e768.js} +42 -51
  420. package/cjs/index-9a94e768.js.map +1 -0
  421. package/cjs/index-9f2a1c52.js +161 -0
  422. package/cjs/index-9f2a1c52.js.map +1 -0
  423. package/cjs/{index-abbc8024.js → index-9feae73e.js} +57 -3
  424. package/cjs/index-9feae73e.js.map +1 -0
  425. package/cjs/{index-8de8f28a.js → index-a01673e9.js} +2 -2
  426. package/cjs/{index-8de8f28a.js.map → index-a01673e9.js.map} +1 -1
  427. package/cjs/index-d0b4f3c0.js +57 -0
  428. package/cjs/index-d0b4f3c0.js.map +1 -0
  429. package/cjs/{index-5d5497c2.js → index-f6621210.js} +11 -25
  430. package/cjs/index-f6621210.js.map +1 -0
  431. package/cjs/index.js +84 -63
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-02ae6df9.js +6 -0
  434. package/cjs/index.module-02ae6df9.js.map +1 -0
  435. package/cjs/lame.all.js +2541 -0
  436. package/cjs/lame.all.js.map +1 -0
  437. package/cjs/resolvedReplyType-da86056c.js +32 -0
  438. package/cjs/resolvedReplyType-da86056c.js.map +1 -0
  439. package/cjs/sendbirdSelectors.js +307 -417
  440. package/cjs/sendbirdSelectors.js.map +1 -1
  441. package/cjs/{stringSet-3e6167ef.js → stringSet-d212a015.js} +112 -90
  442. package/cjs/stringSet-d212a015.js.map +1 -0
  443. package/cjs/tokenize-b019fb84.js +164 -0
  444. package/cjs/tokenize-b019fb84.js.map +1 -0
  445. package/cjs/topics-77576a9c.js +18 -0
  446. package/cjs/topics-77576a9c.js.map +1 -0
  447. package/cjs/types-36ee2d00.js +17 -0
  448. package/cjs/types-36ee2d00.js.map +1 -0
  449. package/cjs/ui/Accordion.js +21 -24
  450. package/cjs/ui/Accordion.js.map +1 -1
  451. package/cjs/ui/AccordionGroup.js +10 -13
  452. package/cjs/ui/AccordionGroup.js.map +1 -1
  453. package/cjs/ui/AdminMessage.js +10 -13
  454. package/cjs/ui/AdminMessage.js.map +1 -1
  455. package/cjs/ui/Avatar.js +57 -79
  456. package/cjs/ui/Avatar.js.map +1 -1
  457. package/cjs/ui/Badge.js +16 -15
  458. package/cjs/ui/Badge.js.map +1 -1
  459. package/cjs/ui/BottomSheet.js +14 -12
  460. package/cjs/ui/BottomSheet.js.map +1 -1
  461. package/cjs/ui/Button.js +20 -35
  462. package/cjs/ui/Button.js.map +1 -1
  463. package/cjs/ui/ChannelAvatar.js +38 -41
  464. package/cjs/ui/ChannelAvatar.js.map +1 -1
  465. package/cjs/ui/Checkbox.js +11 -13
  466. package/cjs/ui/Checkbox.js.map +1 -1
  467. package/cjs/ui/ConnectionStatus.js +7 -5
  468. package/cjs/ui/ConnectionStatus.js.map +1 -1
  469. package/cjs/ui/ContextMenu.js +175 -199
  470. package/cjs/ui/ContextMenu.js.map +1 -1
  471. package/cjs/ui/DateSeparator.js +12 -14
  472. package/cjs/ui/DateSeparator.js.map +1 -1
  473. package/cjs/ui/EmojiReactions.js +299 -107
  474. package/cjs/ui/EmojiReactions.js.map +1 -1
  475. package/cjs/ui/FileMessageItemBody.js +22 -23
  476. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  477. package/cjs/ui/FileViewer.js +36 -36
  478. package/cjs/ui/FileViewer.js.map +1 -1
  479. package/cjs/ui/Icon.js +447 -623
  480. package/cjs/ui/Icon.js.map +1 -1
  481. package/cjs/ui/IconButton.js +20 -31
  482. package/cjs/ui/IconButton.js.map +1 -1
  483. package/cjs/ui/ImageRenderer.js +34 -43
  484. package/cjs/ui/ImageRenderer.js.map +1 -1
  485. package/cjs/ui/Input.js +16 -16
  486. package/cjs/ui/Input.js.map +1 -1
  487. package/cjs/ui/Label.js +2 -2
  488. package/cjs/ui/LinkLabel.js +4 -3
  489. package/cjs/ui/LinkLabel.js.map +1 -1
  490. package/cjs/ui/Loader.js +10 -12
  491. package/cjs/ui/Loader.js.map +1 -1
  492. package/cjs/ui/MentionLabel.js +58 -65
  493. package/cjs/ui/MentionLabel.js.map +1 -1
  494. package/cjs/ui/MentionUserLabel.js +12 -10
  495. package/cjs/ui/MentionUserLabel.js.map +1 -1
  496. package/cjs/ui/MessageContent.js +216 -550
  497. package/cjs/ui/MessageContent.js.map +1 -1
  498. package/cjs/ui/MessageInput.js +392 -119
  499. package/cjs/ui/MessageInput.js.map +1 -1
  500. package/cjs/ui/MessageItemMenu.js +83 -83
  501. package/cjs/ui/MessageItemMenu.js.map +1 -1
  502. package/cjs/ui/MessageItemReactionMenu.js +58 -62
  503. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  504. package/cjs/ui/MessageSearchFileItem.js +56 -51
  505. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  506. package/cjs/ui/MessageSearchItem.js +42 -41
  507. package/cjs/ui/MessageSearchItem.js.map +1 -1
  508. package/cjs/ui/MessageStatus.js +10 -11
  509. package/cjs/ui/MessageStatus.js.map +1 -1
  510. package/cjs/ui/Modal.js +52 -46
  511. package/cjs/ui/Modal.js.map +1 -1
  512. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  513. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  514. package/cjs/ui/OGMessageItemBody.js +67 -63
  515. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  516. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  517. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  518. package/cjs/ui/OpenChannelAvatar.js +18 -17
  519. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  520. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  521. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  522. package/cjs/ui/OpenchannelFileMessage.js +140 -151
  523. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelOGMessage.js +204 -233
  525. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
  527. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  528. package/cjs/ui/OpenchannelUserMessage.js +168 -178
  529. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  530. package/cjs/ui/PlaceHolder.js +5 -6
  531. package/cjs/ui/PlaceHolder.js.map +1 -1
  532. package/cjs/ui/PlaybackTime.js +35 -0
  533. package/cjs/ui/PlaybackTime.js.map +1 -0
  534. package/cjs/ui/ProgressBar.js +40 -0
  535. package/cjs/ui/ProgressBar.js.map +1 -0
  536. package/cjs/ui/QuoteMessage.js +50 -44
  537. package/cjs/ui/QuoteMessage.js.map +1 -1
  538. package/cjs/ui/QuoteMessageInput.js +31 -29
  539. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  540. package/cjs/ui/ReactionBadge.js +13 -21
  541. package/cjs/ui/ReactionBadge.js.map +1 -1
  542. package/cjs/ui/ReactionButton.js +30 -27
  543. package/cjs/ui/ReactionButton.js.map +1 -1
  544. package/cjs/ui/SortByRow.js +14 -18
  545. package/cjs/ui/SortByRow.js.map +1 -1
  546. package/cjs/ui/TextButton.js +13 -21
  547. package/cjs/ui/TextButton.js.map +1 -1
  548. package/cjs/ui/TextMessageItemBody.js +41 -48
  549. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  550. package/cjs/ui/ThreadReplies.js +25 -22
  551. package/cjs/ui/ThreadReplies.js.map +1 -1
  552. package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
  553. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  554. package/cjs/ui/Toggle.js +202 -0
  555. package/cjs/ui/Toggle.js.map +1 -0
  556. package/cjs/ui/Tooltip.js +8 -9
  557. package/cjs/ui/Tooltip.js.map +1 -1
  558. package/cjs/ui/TooltipWrapper.js +17 -20
  559. package/cjs/ui/TooltipWrapper.js.map +1 -1
  560. package/cjs/ui/UnknownMessageItemBody.js +21 -22
  561. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  562. package/cjs/ui/UserListItem.js +76 -76
  563. package/cjs/ui/UserListItem.js.map +1 -1
  564. package/cjs/ui/UserProfile.js +31 -29
  565. package/cjs/ui/UserProfile.js.map +1 -1
  566. package/cjs/ui/VoiceMessageItemBody.js +119 -0
  567. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  568. package/cjs/ui/VoiceMessgeInput.js +22 -0
  569. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  570. package/cjs/ui/Word.js +31 -39
  571. package/cjs/ui/Word.js.map +1 -1
  572. package/cjs/useDirtyGetMentions-792a65af.js +77 -0
  573. package/cjs/useDirtyGetMentions-792a65af.js.map +1 -0
  574. package/cjs/useLongPress-50d2028a.js +87 -0
  575. package/cjs/useLongPress-50d2028a.js.map +1 -0
  576. package/cjs/useSendbirdStateContext.js +2 -3
  577. package/cjs/useSendbirdStateContext.js.map +1 -1
  578. package/cjs/utils/message/getOutgoingMessageState.js +16 -21
  579. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  580. package/cjs/utils/message/isVoiceMessage.js +12 -0
  581. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  582. package/cjs/{utils-374d57b4.js → utils-85ff9137.js} +1 -1
  583. package/cjs/{utils-374d57b4.js.map → utils-85ff9137.js.map} +1 -1
  584. package/cjs/{utils-5f86a394.js → utils-8ce3a247.js} +3 -7
  585. package/cjs/{utils-5f86a394.js.map → utils-8ce3a247.js.map} +1 -1
  586. package/cjs/utils-c2543c4d.js +31 -0
  587. package/cjs/utils-c2543c4d.js.map +1 -0
  588. package/cjs/utils-d2648e7d.js +35 -0
  589. package/cjs/utils-d2648e7d.js.map +1 -0
  590. package/cjs/uuid-97ce2508.js +15 -0
  591. package/cjs/{uuid-2475ef6c.js.map → uuid-97ce2508.js.map} +1 -1
  592. package/cjs/withSendbird.js +5 -6
  593. package/cjs/withSendbird.js.map +1 -1
  594. package/{color-163ba24d.js → color-04427a41.js} +5 -14
  595. package/{color-163ba24d.js.map → color-04427a41.js.map} +1 -1
  596. package/{compareIds-ef41eb2c.js → compareIds-e75af4f9.js} +5 -6
  597. package/compareIds-e75af4f9.js.map +1 -0
  598. package/{const-76d87f47.js → const-8d418b81.js} +4 -4
  599. package/const-8d418b81.js.map +1 -0
  600. package/const-ec18f7f8.js +13 -0
  601. package/const-ec18f7f8.js.map +1 -0
  602. package/consts-01a1e3c0.js +4 -0
  603. package/consts-01a1e3c0.js.map +1 -0
  604. package/consts-4d93ce13.js +4 -0
  605. package/consts-4d93ce13.js.map +1 -0
  606. package/consts-a5106683.js +4 -0
  607. package/consts-a5106683.js.map +1 -0
  608. package/consts-e6fdc559.js +27 -0
  609. package/consts-e6fdc559.js.map +1 -0
  610. package/context-6272efa3.js +13 -0
  611. package/{context-10475c77.js.map → context-6272efa3.js.map} +1 -1
  612. package/dist/index.css +1847 -1394
  613. package/dist/index.css.map +1 -1
  614. package/handlers/OpenChannelHandler.js.map +1 -1
  615. package/handlers/SessionHandler.js.map +1 -1
  616. package/{index-12754b45.js → index-19daf00f.js} +55 -63
  617. package/index-19daf00f.js.map +1 -0
  618. package/index-24f4354d.js +450 -0
  619. package/index-24f4354d.js.map +1 -0
  620. package/index-2d858f6d.js +187 -0
  621. package/index-2d858f6d.js.map +1 -0
  622. package/{index-232388fa.js → index-32a56033.js} +29 -37
  623. package/index-32a56033.js.map +1 -0
  624. package/index-36d49e08.js +154 -0
  625. package/index-36d49e08.js.map +1 -0
  626. package/{index-2f346069.js → index-5819e39d.js} +1 -1
  627. package/index-5819e39d.js.map +1 -0
  628. package/index-7ff2c073.js +360 -0
  629. package/index-7ff2c073.js.map +1 -0
  630. package/index-9a62272f.js +51 -0
  631. package/index-9a62272f.js.map +1 -0
  632. package/{index-4ebfc7a7.js → index-a4552c13.js} +1 -1
  633. package/{index-4ebfc7a7.js.map → index-a4552c13.js.map} +1 -1
  634. package/index-b3c3e1aa.js +76 -0
  635. package/index-b3c3e1aa.js.map +1 -0
  636. package/index-c589f349.js +540 -0
  637. package/index-c589f349.js.map +1 -0
  638. package/{index-2784bdd8.js → index-d88e3ef9.js} +11 -25
  639. package/index-d88e3ef9.js.map +1 -0
  640. package/{index-751f97ce.js → index-dcaf3cb8.js} +57 -4
  641. package/index-dcaf3cb8.js.map +1 -0
  642. package/{index-a02da5bd.js → index-dd8e8ea1.js} +2 -2
  643. package/{index-a02da5bd.js.map → index-dd8e8ea1.js.map} +1 -1
  644. package/index-f4374646.js +320 -0
  645. package/index-f4374646.js.map +1 -0
  646. package/{index-aea7b7d6.js → index-fe7ed4c0.js} +39 -48
  647. package/index-fe7ed4c0.js.map +1 -0
  648. package/{index-3c013a28.js → index-fea4f7d3.js} +2 -2
  649. package/{index-3c013a28.js.map → index-fea4f7d3.js.map} +1 -1
  650. package/index.d.ts +176 -124
  651. package/index.js +84 -63
  652. package/index.js.map +1 -1
  653. package/index.module-1ba8586e.js +4 -0
  654. package/index.module-1ba8586e.js.map +1 -0
  655. package/lame.all.js +2537 -0
  656. package/lame.all.js.map +1 -0
  657. package/package.json +62 -41
  658. package/resolvedReplyType-94a089b3.js +29 -0
  659. package/resolvedReplyType-94a089b3.js.map +1 -0
  660. package/sendbirdSelectors.js +307 -417
  661. package/sendbirdSelectors.js.map +1 -1
  662. package/{stringSet-9ae71b7d.js → stringSet-3649b375.js} +112 -90
  663. package/stringSet-3649b375.js.map +1 -0
  664. package/tokenize-053e921e.js +159 -0
  665. package/tokenize-053e921e.js.map +1 -0
  666. package/topics-d0dcd2f2.js +16 -0
  667. package/topics-d0dcd2f2.js.map +1 -0
  668. package/types-54edb45d.js +15 -0
  669. package/types-54edb45d.js.map +1 -0
  670. package/ui/Accordion.js +21 -24
  671. package/ui/Accordion.js.map +1 -1
  672. package/ui/AccordionGroup.js +10 -13
  673. package/ui/AccordionGroup.js.map +1 -1
  674. package/ui/AdminMessage.js +10 -13
  675. package/ui/AdminMessage.js.map +1 -1
  676. package/ui/Avatar.js +57 -79
  677. package/ui/Avatar.js.map +1 -1
  678. package/ui/Badge.js +16 -15
  679. package/ui/Badge.js.map +1 -1
  680. package/ui/BottomSheet.js +14 -12
  681. package/ui/BottomSheet.js.map +1 -1
  682. package/ui/Button.js +20 -35
  683. package/ui/Button.js.map +1 -1
  684. package/ui/ChannelAvatar.js +38 -41
  685. package/ui/ChannelAvatar.js.map +1 -1
  686. package/ui/Checkbox.js +11 -13
  687. package/ui/Checkbox.js.map +1 -1
  688. package/ui/ConnectionStatus.js +7 -5
  689. package/ui/ConnectionStatus.js.map +1 -1
  690. package/ui/ContextMenu.js +176 -200
  691. package/ui/ContextMenu.js.map +1 -1
  692. package/ui/DateSeparator.js +12 -14
  693. package/ui/DateSeparator.js.map +1 -1
  694. package/ui/EmojiReactions.js +300 -108
  695. package/ui/EmojiReactions.js.map +1 -1
  696. package/ui/FileMessageItemBody.js +22 -23
  697. package/ui/FileMessageItemBody.js.map +1 -1
  698. package/ui/FileViewer.js +36 -36
  699. package/ui/FileViewer.js.map +1 -1
  700. package/ui/Icon.js +448 -622
  701. package/ui/Icon.js.map +1 -1
  702. package/ui/IconButton.js +20 -31
  703. package/ui/IconButton.js.map +1 -1
  704. package/ui/ImageRenderer.js +34 -43
  705. package/ui/ImageRenderer.js.map +1 -1
  706. package/ui/Input.js +16 -16
  707. package/ui/Input.js.map +1 -1
  708. package/ui/Label.js +2 -2
  709. package/ui/LinkLabel.js +4 -3
  710. package/ui/LinkLabel.js.map +1 -1
  711. package/ui/Loader.js +10 -12
  712. package/ui/Loader.js.map +1 -1
  713. package/ui/MentionLabel.js +58 -65
  714. package/ui/MentionLabel.js.map +1 -1
  715. package/ui/MentionUserLabel.js +12 -10
  716. package/ui/MentionUserLabel.js.map +1 -1
  717. package/ui/MessageContent.js +219 -553
  718. package/ui/MessageContent.js.map +1 -1
  719. package/ui/MessageInput.js +392 -120
  720. package/ui/MessageInput.js.map +1 -1
  721. package/ui/MessageItemMenu.js +83 -83
  722. package/ui/MessageItemMenu.js.map +1 -1
  723. package/ui/MessageItemReactionMenu.js +58 -62
  724. package/ui/MessageItemReactionMenu.js.map +1 -1
  725. package/ui/MessageSearchFileItem.js +55 -50
  726. package/ui/MessageSearchFileItem.js.map +1 -1
  727. package/ui/MessageSearchItem.js +41 -40
  728. package/ui/MessageSearchItem.js.map +1 -1
  729. package/ui/MessageStatus.js +10 -11
  730. package/ui/MessageStatus.js.map +1 -1
  731. package/ui/Modal.js +52 -46
  732. package/ui/Modal.js.map +1 -1
  733. package/ui/MutedAvatarOverlay.js +10 -10
  734. package/ui/MutedAvatarOverlay.js.map +1 -1
  735. package/ui/OGMessageItemBody.js +68 -64
  736. package/ui/OGMessageItemBody.js.map +1 -1
  737. package/ui/OpenChannelAdminMessage.js +8 -7
  738. package/ui/OpenChannelAdminMessage.js.map +1 -1
  739. package/ui/OpenChannelAvatar.js +18 -17
  740. package/ui/OpenChannelAvatar.js.map +1 -1
  741. package/ui/OpenchannelConversationHeader.js +17 -13
  742. package/ui/OpenchannelConversationHeader.js.map +1 -1
  743. package/ui/OpenchannelFileMessage.js +140 -151
  744. package/ui/OpenchannelFileMessage.js.map +1 -1
  745. package/ui/OpenchannelOGMessage.js +204 -233
  746. package/ui/OpenchannelOGMessage.js.map +1 -1
  747. package/ui/OpenchannelThumbnailMessage.js +215 -222
  748. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  749. package/ui/OpenchannelUserMessage.js +168 -178
  750. package/ui/OpenchannelUserMessage.js.map +1 -1
  751. package/ui/PlaceHolder.js +5 -6
  752. package/ui/PlaceHolder.js.map +1 -1
  753. package/ui/PlaybackTime.js +26 -0
  754. package/ui/PlaybackTime.js.map +1 -0
  755. package/ui/ProgressBar.js +30 -0
  756. package/ui/ProgressBar.js.map +1 -0
  757. package/ui/QuoteMessage.js +50 -44
  758. package/ui/QuoteMessage.js.map +1 -1
  759. package/ui/QuoteMessageInput.js +31 -29
  760. package/ui/QuoteMessageInput.js.map +1 -1
  761. package/ui/ReactionBadge.js +13 -21
  762. package/ui/ReactionBadge.js.map +1 -1
  763. package/ui/ReactionButton.js +30 -27
  764. package/ui/ReactionButton.js.map +1 -1
  765. package/ui/SortByRow.js +14 -18
  766. package/ui/SortByRow.js.map +1 -1
  767. package/ui/TextButton.js +13 -21
  768. package/ui/TextButton.js.map +1 -1
  769. package/ui/TextMessageItemBody.js +41 -48
  770. package/ui/TextMessageItemBody.js.map +1 -1
  771. package/ui/ThreadReplies.js +25 -22
  772. package/ui/ThreadReplies.js.map +1 -1
  773. package/ui/ThumbnailMessageItemBody.js +36 -45
  774. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  775. package/ui/Toggle.js +191 -0
  776. package/ui/Toggle.js.map +1 -0
  777. package/ui/Tooltip.js +8 -9
  778. package/ui/Tooltip.js.map +1 -1
  779. package/ui/TooltipWrapper.js +17 -20
  780. package/ui/TooltipWrapper.js.map +1 -1
  781. package/ui/UnknownMessageItemBody.js +21 -22
  782. package/ui/UnknownMessageItemBody.js.map +1 -1
  783. package/ui/UserListItem.js +76 -76
  784. package/ui/UserListItem.js.map +1 -1
  785. package/ui/UserProfile.js +31 -29
  786. package/ui/UserProfile.js.map +1 -1
  787. package/ui/VoiceMessageItemBody.js +110 -0
  788. package/ui/VoiceMessageItemBody.js.map +1 -0
  789. package/ui/VoiceMessgeInput.js +14 -0
  790. package/ui/VoiceMessgeInput.js.map +1 -0
  791. package/ui/Word.js +31 -39
  792. package/ui/Word.js.map +1 -1
  793. package/useDirtyGetMentions-b9a9c21b.js +75 -0
  794. package/useDirtyGetMentions-b9a9c21b.js.map +1 -0
  795. package/useLongPress-5e28b292.js +85 -0
  796. package/useLongPress-5e28b292.js.map +1 -0
  797. package/useSendbirdStateContext.js +2 -3
  798. package/useSendbirdStateContext.js.map +1 -1
  799. package/utils/message/getOutgoingMessageState.js +9 -15
  800. package/utils/message/getOutgoingMessageState.js.map +1 -1
  801. package/utils/message/isVoiceMessage.js +8 -0
  802. package/utils/message/isVoiceMessage.js.map +1 -0
  803. package/utils-1f5c8b6c.js +29 -0
  804. package/utils-1f5c8b6c.js.map +1 -0
  805. package/{utils-ddb0df4c.js → utils-712b81f7.js} +3 -7
  806. package/{utils-ddb0df4c.js.map → utils-712b81f7.js.map} +1 -1
  807. package/{utils-ea66f822.js → utils-a1f2aa01.js} +1 -1
  808. package/{utils-ea66f822.js.map → utils-a1f2aa01.js.map} +1 -1
  809. package/utils-cbae9afc.js +31 -0
  810. package/utils-cbae9afc.js.map +1 -0
  811. package/uuid-8c96bee0.js +13 -0
  812. package/{uuid-7e004f47.js.map → uuid-8c96bee0.js.map} +1 -1
  813. package/withSendbird.js +5 -6
  814. package/withSendbird.js.map +1 -1
  815. package/ChannelListProvider-1d36e2e9.js.map +0 -1
  816. package/ChannelProvider-289cd35f.js.map +0 -1
  817. package/CreateChannelProvider-72b655e9.js +0 -55
  818. package/CreateChannelProvider-72b655e9.js.map +0 -1
  819. package/LocalizationContext-289c1917.js +0 -22
  820. package/MediaQueryContext-273d29f6.js +0 -90
  821. package/MediaQueryContext-273d29f6.js.map +0 -1
  822. package/MemberList-7ad0fa0b.js +0 -435
  823. package/MemberList-7ad0fa0b.js.map +0 -1
  824. package/NotificationChannel/components/NotificationChannelUI.js +0 -119
  825. package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  826. package/NotificationChannel/components/NotificationList.js +0 -111
  827. package/NotificationChannel/components/NotificationList.js.map +0 -1
  828. package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
  829. package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  830. package/NotificationChannel/context.js +0 -12
  831. package/NotificationChannel.js +0 -58
  832. package/NotificationChannel.js.map +0 -1
  833. package/NotificationChannelProvider-ad556c64.js +0 -535
  834. package/NotificationChannelProvider-ad556c64.js.map +0 -1
  835. package/OpenChannelListProvider-0febf8b2.js +0 -434
  836. package/OpenChannelListProvider-0febf8b2.js.map +0 -1
  837. package/OpenChannelProvider-c254c663.js +0 -2000
  838. package/OpenChannelProvider-c254c663.js.map +0 -1
  839. package/RemoveMessageModal-d6cbf9fa.js +0 -31
  840. package/RemoveMessageModal-d6cbf9fa.js.map +0 -1
  841. package/ThreadProvider-8696ef31.js +0 -1644
  842. package/ThreadProvider-8696ef31.js.map +0 -1
  843. package/_rollupPluginBabelHelpers-519f674b.js.map +0 -1
  844. package/actionTypes-9f87e87f.js +0 -6
  845. package/actionTypes-9f87e87f.js.map +0 -1
  846. package/cjs/ChannelListProvider-0de52d2b.js.map +0 -1
  847. package/cjs/ChannelProvider-fc58e60e.js.map +0 -1
  848. package/cjs/CreateChannelProvider-a82d20f4.js +0 -62
  849. package/cjs/CreateChannelProvider-a82d20f4.js.map +0 -1
  850. package/cjs/MediaQueryContext-4711a81f.js +0 -97
  851. package/cjs/MediaQueryContext-4711a81f.js.map +0 -1
  852. package/cjs/MemberList-b2623166.js +0 -441
  853. package/cjs/MemberList-b2623166.js.map +0 -1
  854. package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
  855. package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  856. package/cjs/NotificationChannel/components/NotificationList.js +0 -117
  857. package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
  858. package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
  859. package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  860. package/cjs/NotificationChannel/context.js +0 -21
  861. package/cjs/NotificationChannel.js +0 -64
  862. package/cjs/NotificationChannel.js.map +0 -1
  863. package/cjs/NotificationChannelProvider-2cdc7ff4.js +0 -543
  864. package/cjs/NotificationChannelProvider-2cdc7ff4.js.map +0 -1
  865. package/cjs/OpenChannelListProvider-60bc3c69.js +0 -443
  866. package/cjs/OpenChannelListProvider-60bc3c69.js.map +0 -1
  867. package/cjs/OpenChannelProvider-3ed4eb6e.js +0 -2009
  868. package/cjs/OpenChannelProvider-3ed4eb6e.js.map +0 -1
  869. package/cjs/RemoveMessageModal-9169766a.js.map +0 -1
  870. package/cjs/ThreadProvider-389f5031.js +0 -1653
  871. package/cjs/ThreadProvider-389f5031.js.map +0 -1
  872. package/cjs/_rollupPluginBabelHelpers-fed1e122.js.map +0 -1
  873. package/cjs/actionTypes-2f90e726.js +0 -10
  874. package/cjs/actionTypes-2f90e726.js.map +0 -1
  875. package/cjs/color-f47044b3.js.map +0 -1
  876. package/cjs/compareIds-4124b297.js.map +0 -1
  877. package/cjs/const-015e5589.js +0 -20
  878. package/cjs/const-015e5589.js.map +0 -1
  879. package/cjs/const-fd64914b.js.map +0 -1
  880. package/cjs/index-30c97863.js +0 -194
  881. package/cjs/index-30c97863.js.map +0 -1
  882. package/cjs/index-3a4f8219.js.map +0 -1
  883. package/cjs/index-40e4653a.js +0 -59
  884. package/cjs/index-40e4653a.js.map +0 -1
  885. package/cjs/index-5d5497c2.js.map +0 -1
  886. package/cjs/index-62c1bdfc.js +0 -701
  887. package/cjs/index-62c1bdfc.js.map +0 -1
  888. package/cjs/index-9ca07037.js.map +0 -1
  889. package/cjs/index-9f3670d0.js +0 -360
  890. package/cjs/index-9f3670d0.js.map +0 -1
  891. package/cjs/index-abbc8024.js.map +0 -1
  892. package/cjs/index-c475c3c8.js.map +0 -1
  893. package/cjs/index-c5cd589d.js.map +0 -1
  894. package/cjs/stringSet-3e6167ef.js.map +0 -1
  895. package/cjs/topics-56842e14.js +0 -22
  896. package/cjs/topics-56842e14.js.map +0 -1
  897. package/cjs/tslib.es6-b8ba50ef.js +0 -110
  898. package/cjs/tslib.es6-b8ba50ef.js.map +0 -1
  899. package/cjs/useLongPress-99c66f7f.js +0 -118
  900. package/cjs/useLongPress-99c66f7f.js.map +0 -1
  901. package/cjs/utils-9adfd244.js +0 -38
  902. package/cjs/utils-9adfd244.js.map +0 -1
  903. package/cjs/utils-f6a96ebf.js +0 -32
  904. package/cjs/utils-f6a96ebf.js.map +0 -1
  905. package/cjs/uuid-2475ef6c.js +0 -19
  906. package/compareIds-ef41eb2c.js.map +0 -1
  907. package/const-76d87f47.js.map +0 -1
  908. package/const-da6f3d34.js +0 -14
  909. package/const-da6f3d34.js.map +0 -1
  910. package/context-10475c77.js +0 -12
  911. package/index-12754b45.js.map +0 -1
  912. package/index-1e46e582.js +0 -179
  913. package/index-1e46e582.js.map +0 -1
  914. package/index-232388fa.js.map +0 -1
  915. package/index-2784bdd8.js.map +0 -1
  916. package/index-2f346069.js.map +0 -1
  917. package/index-4637b0de.js +0 -57
  918. package/index-4637b0de.js.map +0 -1
  919. package/index-4900e890.js +0 -353
  920. package/index-4900e890.js.map +0 -1
  921. package/index-751f97ce.js.map +0 -1
  922. package/index-855ef33d.js +0 -662
  923. package/index-855ef33d.js.map +0 -1
  924. package/index-aea7b7d6.js.map +0 -1
  925. package/stringSet-9ae71b7d.js.map +0 -1
  926. package/topics-e2963bba.js +0 -13
  927. package/topics-e2963bba.js.map +0 -1
  928. package/tslib.es6-72df3331.js +0 -104
  929. package/tslib.es6-72df3331.js.map +0 -1
  930. package/useLongPress-1a777e9e.js +0 -116
  931. package/useLongPress-1a777e9e.js.map +0 -1
  932. package/utils-2976f2c1.js +0 -30
  933. package/utils-2976f2c1.js.map +0 -1
  934. package/utils-6b69fb18.js +0 -34
  935. package/utils-6b69fb18.js.map +0 -1
  936. package/uuid-7e004f47.js +0 -17
@@ -1,191 +1,58 @@
1
1
  'use strict';
2
2
 
3
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-fed1e122.js');
3
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-53e83515.js');
4
4
  var React = require('react');
5
- var PropTypes = require('prop-types');
6
5
  var withSendbird = require('./withSendbird.js');
6
+ var cssVars = require('css-vars-ponyfill');
7
+ var index_module = require('./index.module-02ae6df9.js');
8
+ var actionTypes = require('./actionTypes-b1275c7f.js');
7
9
  var SendbirdChat = require('@sendbird/chat');
10
+ var uuid = require('./uuid-97ce2508.js');
8
11
  var openChannel = require('@sendbird/chat/openChannel');
9
12
  var groupChannel = require('@sendbird/chat/groupChannel');
10
- var actionTypes = require('./actionTypes-2f90e726.js');
11
- var index = require('./index-62c1bdfc.js');
12
- var tslib_es6 = require('./tslib.es6-b8ba50ef.js');
13
- var cssVars = require('css-vars-ponyfill');
14
- var uuid = require('./uuid-2475ef6c.js');
15
- var LocalizationContext = require('./LocalizationContext-bddc5c2b.js');
16
- var MediaQueryContext = require('./MediaQueryContext-4711a81f.js');
17
- var stringSet = require('./stringSet-3e6167ef.js');
13
+ var index = require('./index-32244c73.js');
14
+ var uikitTools = require('@sendbird/uikit-tools');
15
+ var VoicePlayer_context = require('./index-7d2d89a2.js');
16
+ var VoiceRecorder_context = require('./VoiceRecorder/context.js');
17
+ var LocalizationContext = require('./LocalizationContext-bd54275c.js');
18
+ var MediaQueryContext = require('./MediaQueryContext-ebcb159a.js');
19
+ var stringSet = require('./stringSet-d212a015.js');
20
+ var consts = require('./consts-aa056322.js');
21
+ var resolvedReplyType = require('./resolvedReplyType-da86056c.js');
18
22
  require('./utils/message/getOutgoingMessageState.js');
19
- require('./index-d14a43c4.js');
23
+ require('./useSendbirdStateContext.js');
24
+ require('./ui/Modal.js');
25
+ require('react-dom');
26
+ require('./index-8ada6055.js');
27
+ require('./ui/Button.js');
28
+ require('./index-f6621210.js');
29
+ require('prop-types');
30
+ require('./ui/Icon.js');
31
+ require('./ui/IconButton.js');
32
+ require('./index-745c9ce1.js');
20
33
 
21
34
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
35
 
23
36
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
25
- var SendbirdChat__default = /*#__PURE__*/_interopDefaultLegacy(SendbirdChat);
26
37
  var cssVars__default = /*#__PURE__*/_interopDefaultLegacy(cssVars);
38
+ var SendbirdChat__default = /*#__PURE__*/_interopDefaultLegacy(SendbirdChat);
27
39
 
28
- const INIT_SDK = 'INIT_SDK';
29
- const SET_SDK_LOADING = 'SET_SDK_LOADING';
30
- const RESET_SDK = 'RESET_SDK';
31
- const SDK_ERROR = 'SDK_ERROR';
32
-
33
- const APP_VERSION_STRING = '3.5.0-rc.1';
34
- const disconnectSdk = _ref => {
35
- let {
36
- sdkDispatcher,
37
- userDispatcher,
38
- sdk,
39
- onDisconnect
40
- } = _ref;
41
- sdkDispatcher({
42
- type: SET_SDK_LOADING,
43
- payload: true
44
- });
45
-
46
- if (sdk && sdk.disconnect) {
47
- sdk.disconnect().then(() => {
48
- sdkDispatcher({
49
- type: RESET_SDK
50
- });
51
- userDispatcher({
52
- type: actionTypes.RESET_USER
53
- });
54
- }).finally(() => {
55
- onDisconnect();
56
- });
57
- } else {
58
- onDisconnect();
59
- }
60
- };
61
- const handleConnection = (_ref2, dispatchers) => {
62
- let {
63
- userId,
64
- appId,
65
- nickname,
66
- profileUrl,
67
- accessToken,
68
- configureSession,
69
- customApiHost,
70
- customWebSocketHost,
71
- sdk,
72
- logger
73
- } = _ref2;
74
- const {
75
- sdkDispatcher,
76
- userDispatcher
77
- } = dispatchers;
78
- disconnectSdk({
79
- sdkDispatcher,
80
- userDispatcher,
81
- sdk,
82
- logger,
83
- onDisconnect: () => {
84
- logger.info('Setup connection');
85
- let sessionHandler = null;
86
- sdkDispatcher({
87
- type: SET_SDK_LOADING,
88
- payload: true
89
- });
90
-
91
- if (userId && appId) {
92
- const params = {
93
- appId,
94
- modules: [new groupChannel.GroupChannelModule(), new openChannel.OpenChannelModule()]
95
- };
96
-
97
- if (customApiHost) {
98
- params.customApiHost = customApiHost;
99
- }
100
-
101
- if (customWebSocketHost) {
102
- params.customWebSocketHost = customWebSocketHost;
103
- }
104
-
105
- const newSdk = SendbirdChat__default["default"].init(params);
106
-
107
- if (configureSession && typeof configureSession === 'function') {
108
- sessionHandler = configureSession(newSdk);
109
- newSdk.setSessionHandler(sessionHandler);
110
- } // to check if code is released version from rollup and *not from storybook*
111
- // see rollup config file
112
-
113
-
114
- {
115
- newSdk.addExtension('sb_uikit', APP_VERSION_STRING);
116
- }
117
-
118
- const connectCbSucess = user => {
119
- sdkDispatcher({
120
- type: INIT_SDK,
121
- payload: newSdk
122
- });
123
- userDispatcher({
124
- type: actionTypes.INIT_USER,
125
- payload: user
126
- }); // use nickname/profileUrl if provided
127
- // or set userID as nickname
128
-
129
- if ((nickname !== user.nickname || profileUrl !== user.profileUrl) && !(index.isTextuallyNull(nickname) && index.isTextuallyNull(profileUrl))) {
130
- newSdk.updateCurrentUserInfo({
131
- nickname: nickname || user.nickname,
132
- profileUrl: profileUrl || user.profileUrl
133
- }).then(namedUser => {
134
- userDispatcher({
135
- type: actionTypes.UPDATE_USER_INFO,
136
- payload: namedUser
137
- });
138
- });
139
- }
140
- };
141
-
142
- const connectCbError = e => {
143
- logger.error('Connection failed', `${e}`);
144
- sdkDispatcher({
145
- type: RESET_SDK
146
- });
147
- sdkDispatcher({
148
- type: actionTypes.RESET_USER
149
- });
150
- sdkDispatcher({
151
- type: SDK_ERROR
152
- });
153
- };
154
-
155
- if (accessToken) {
156
- newSdk.connect(userId, accessToken).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
157
- } else {
158
- newSdk.connect(userId).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
159
- }
160
- } else {
161
- sdkDispatcher({
162
- type: SDK_ERROR
163
- });
164
- logger.warning('Connection failed', 'UserId or appId missing');
165
- }
166
- }
167
- });
168
- };
169
-
170
- var isEmpty = function (obj) {
40
+ const isEmpty = obj => {
171
41
  if (obj === null || obj === undefined) {
172
42
  return true;
173
43
  }
174
-
175
- for (var prop in obj) {
44
+ for (const prop in obj) {
176
45
  if (obj.hasOwnProperty(prop)) {
177
46
  return false;
178
47
  }
179
48
  }
180
-
181
49
  return JSON.stringify(obj) === JSON.stringify({});
182
50
  };
183
-
184
- var useTheme = function (overrides) {
185
- React.useLayoutEffect(function () {
51
+ const useTheme = overrides => {
52
+ React.useLayoutEffect(() => {
186
53
  if (!isEmpty(overrides)) {
187
54
  cssVars__default["default"]({
188
- variables: tslib_es6.__assign({
55
+ variables: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, {
189
56
  '--sendbird-dark-primary-500': '#4d2aa6',
190
57
  '--sendbird-dark-primary-400': '#6440C4',
191
58
  '--sendbird-dark-primary-300': '#7B53EF',
@@ -262,13 +129,20 @@ var useTheme = function (overrides) {
262
129
  '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',
263
130
  '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',
264
131
  '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)'
265
- }, overrides)
132
+ }), overrides)
266
133
  });
267
134
  }
268
135
  }, [overrides]);
269
136
  };
270
137
 
271
- var sdkInitialState = {
138
+ const SDK_ACTIONS = {
139
+ INIT_SDK: 'INIT_SDK',
140
+ SET_SDK_LOADING: 'SET_SDK_LOADING',
141
+ RESET_SDK: 'RESET_SDK',
142
+ SDK_ERROR: 'SDK_ERROR'
143
+ };
144
+
145
+ const initialState$1 = {
272
146
  initialized: false,
273
147
  loading: false,
274
148
  sdk: {},
@@ -276,112 +150,124 @@ var sdkInitialState = {
276
150
  };
277
151
 
278
152
  function reducer$1(state, action) {
279
- switch (action.type) {
280
- case SET_SDK_LOADING:
281
- return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
282
- initialized: false,
283
- loading: action.payload
284
- });
285
-
286
- case SDK_ERROR:
287
- return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
288
- initialized: false,
289
- loading: false,
290
- error: true
291
- });
292
-
293
- case INIT_SDK:
294
- return {
295
- sdk: action.payload,
296
- initialized: true,
297
- loading: false,
298
- error: false
299
- };
300
-
301
- case RESET_SDK:
302
- return sdkInitialState;
303
-
304
- default:
305
- return state;
306
- }
153
+ return index_module.K(action).with({
154
+ type: SDK_ACTIONS.SET_SDK_LOADING
155
+ }, _ref => {
156
+ let {
157
+ payload
158
+ } = _ref;
159
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
160
+ initialized: false,
161
+ loading: payload
162
+ });
163
+ }).with({
164
+ type: SDK_ACTIONS.SDK_ERROR
165
+ }, () => {
166
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
167
+ initialized: false,
168
+ loading: false,
169
+ error: true
170
+ });
171
+ }).with({
172
+ type: SDK_ACTIONS.INIT_SDK
173
+ }, _ref2 => {
174
+ let {
175
+ payload
176
+ } = _ref2;
177
+ return {
178
+ sdk: payload,
179
+ initialized: true,
180
+ loading: false,
181
+ error: false
182
+ };
183
+ }).with({
184
+ type: SDK_ACTIONS.RESET_SDK
185
+ }, () => {
186
+ return initialState$1;
187
+ }).otherwise(() => {
188
+ return state;
189
+ });
307
190
  }
308
191
 
309
- var userInitialState = {
192
+ const initialState = {
310
193
  initialized: false,
311
194
  loading: false,
312
195
  user: {}
313
196
  };
314
197
 
315
198
  function reducer(state, action) {
316
- switch (action.type) {
317
- case actionTypes.INIT_USER:
318
- return {
319
- initialized: true,
320
- loading: false,
321
- user: action.payload
322
- };
323
-
324
- case actionTypes.RESET_USER:
325
- return userInitialState;
326
-
327
- case actionTypes.UPDATE_USER_INFO:
328
- return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
329
- user: action.payload
330
- });
331
-
332
- default:
333
- return state;
334
- }
199
+ return index_module.K(action).with({
200
+ type: actionTypes.USER_ACTIONS.INIT_USER
201
+ }, _ref => {
202
+ let {
203
+ payload
204
+ } = _ref;
205
+ return {
206
+ initialized: true,
207
+ loading: false,
208
+ user: payload
209
+ };
210
+ }).with({
211
+ type: actionTypes.USER_ACTIONS.RESET_USER
212
+ }, () => {
213
+ return initialState;
214
+ }).with({
215
+ type: actionTypes.USER_ACTIONS.UPDATE_USER_INFO
216
+ }, _ref2 => {
217
+ let {
218
+ payload
219
+ } = _ref2;
220
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
221
+ user: payload
222
+ });
223
+ }).otherwise(() => {
224
+ return state;
225
+ });
335
226
  }
336
227
 
337
228
  function useConnectionStatus(sdk, logger) {
338
229
  const [isOnline, setIsOnline] = React.useState(true);
339
230
  React.useEffect(() => {
340
231
  const uniqueHandlerId = uuid.uuidv4();
341
-
342
232
  try {
343
233
  logger.warning('sdk changed', uniqueHandlerId);
344
234
  const handler = new SendbirdChat.ConnectionHandler();
345
-
346
235
  handler.onDisconnected = () => {
347
236
  logger.warning('onDisconnected', {
348
237
  isOnline
349
238
  });
350
239
  };
351
-
352
240
  handler.onReconnectStarted = () => {
353
241
  setIsOnline(false);
354
242
  logger.warning('onReconnectStarted', {
355
243
  isOnline
356
244
  });
357
245
  };
358
-
359
246
  handler.onReconnectSucceeded = () => {
360
247
  setIsOnline(true);
361
248
  logger.warning('onReconnectSucceeded', {
362
249
  isOnline
363
250
  });
364
251
  };
365
-
366
252
  handler.onReconnectFailed = () => {
367
253
  sdk.reconnect();
368
254
  logger.warning('onReconnectFailed');
369
255
  };
370
-
371
- logger.info('Added ConnectionHandler', uniqueHandlerId); // workaround -> addConnectionHandler invalidates session handler
256
+ logger.info('Added ConnectionHandler', uniqueHandlerId);
257
+ // workaround -> addConnectionHandler invalidates session handler
372
258
  // provided through configureSession
373
-
374
259
  if (sdk !== null && sdk !== void 0 && sdk.addConnectionHandler) {
375
260
  sdk.addConnectionHandler(uniqueHandlerId, handler);
376
261
  }
377
- } catch (_unused) {//
262
+ } catch (_unused) {
263
+ //
378
264
  }
379
-
380
265
  return () => {
381
266
  try {
382
267
  sdk.removeConnectionHandler(uniqueHandlerId);
383
268
  logger.info('Removed ConnectionHandler', uniqueHandlerId);
384
- } catch (_unused2) {//
269
+ } catch (_unused2) {
270
+ //
385
271
  }
386
272
  };
387
273
  }, [sdk]);
@@ -389,44 +275,374 @@ function useConnectionStatus(sdk, logger) {
389
275
  const tryReconnect = () => {
390
276
  try {
391
277
  logger.warning('Try reconnecting SDK');
392
-
393
278
  if (sdk.connectionState !== 'OPEN') {
394
279
  // connection is not broken yet
395
280
  sdk.reconnect();
396
281
  }
397
- } catch (_unused3) {//
282
+ } catch (_unused3) {
283
+ //
398
284
  }
399
- }; // addEventListener version
400
-
401
-
285
+ };
286
+ // addEventListener version
402
287
  window.addEventListener('online', tryReconnect);
403
288
  return () => {
404
289
  window.removeEventListener('online', tryReconnect);
405
290
  };
406
- }, [sdk]); // add offline-class to body
291
+ }, [sdk]);
407
292
 
293
+ // add offline-class to body
408
294
  React.useEffect(() => {
409
295
  const body = document.querySelector('body');
410
-
411
296
  if (!isOnline) {
412
297
  try {
413
298
  body.classList.add('sendbird__offline');
414
299
  logger.info('Added class sendbird__offline to body');
415
- } catch (e) {//
300
+ } catch (e) {
301
+ //
416
302
  }
417
303
  } else {
418
304
  try {
419
305
  body.classList.remove('sendbird__offline');
420
306
  logger.info('Removed class sendbird__offline from body');
421
- } catch (e) {//
307
+ } catch (e) {
308
+ //
422
309
  }
423
310
  }
424
311
  }, [isOnline]);
425
312
  return isOnline;
426
313
  }
427
314
 
315
+ async function disconnectSdk(_ref) {
316
+ let {
317
+ sdkDispatcher,
318
+ userDispatcher,
319
+ sdk
320
+ } = _ref;
321
+ return new Promise(resolve => {
322
+ sdkDispatcher({
323
+ type: SDK_ACTIONS.SET_SDK_LOADING,
324
+ payload: true
325
+ });
326
+ if (sdk !== null && sdk !== void 0 && sdk.disconnect) {
327
+ sdk.disconnect().then(() => {
328
+ sdkDispatcher({
329
+ type: SDK_ACTIONS.RESET_SDK
330
+ });
331
+ userDispatcher({
332
+ type: actionTypes.USER_ACTIONS.RESET_USER
333
+ });
334
+ }).finally(() => {
335
+ resolve(true);
336
+ });
337
+ } else {
338
+ resolve(true);
339
+ }
340
+ });
341
+ }
342
+
343
+ const APP_VERSION_STRING = '3.5.1';
344
+ const {
345
+ INIT_SDK,
346
+ SET_SDK_LOADING,
347
+ RESET_SDK,
348
+ SDK_ERROR
349
+ } = SDK_ACTIONS;
350
+ const {
351
+ INIT_USER,
352
+ UPDATE_USER_INFO,
353
+ RESET_USER
354
+ } = actionTypes.USER_ACTIONS;
355
+ function getMissingParamError(_ref) {
356
+ let {
357
+ userId,
358
+ appId
359
+ } = _ref;
360
+ return `SendbirdProvider | useConnect/setupConnection/Connection failed UserId: ${userId} or appId: ${appId} missing`;
361
+ }
362
+ function getConnectSbError(error) {
363
+ return `SendbirdProvider | useConnect/setupConnection/Connection failed. ${(error === null || error === void 0 ? void 0 : error.code) || ''} ${(error === null || error === void 0 ? void 0 : error.message) || ''}`;
364
+ }
365
+ function setUpParams(_ref2) {
366
+ let {
367
+ appId,
368
+ customApiHost,
369
+ customWebSocketHost
370
+ } = _ref2;
371
+ const params = {
372
+ appId,
373
+ modules: [new groupChannel.GroupChannelModule(), new openChannel.OpenChannelModule()]
374
+ };
375
+ if (customApiHost) {
376
+ params['customApiHost'] = customApiHost;
377
+ }
378
+ if (customWebSocketHost) {
379
+ params['customWebSocketHost'] = customWebSocketHost;
380
+ }
381
+ const newSdk = SendbirdChat__default["default"].init(params);
382
+ return newSdk;
383
+ }
384
+
385
+ // Steps
386
+ // 1. Check if minimum userID/appID is provided
387
+ // 1.a. If not, throw error > !reject
388
+ // 1.b. If yes, continue
389
+ // 2. Set up params with custom host if provided
390
+ // 3. Set up session handler if provided
391
+ // 4. Set up version
392
+ // 5. Connect to Sendbird -> either using user ID or (user ID + access token)
393
+ // 6. If connected, connectCbSucess
394
+ // 6.a check if nickname is to be updated -> no > !resolve immediately
395
+ // 6.b check if nickname is to be updated -> yes > update nickname > !resolve
396
+ // 7. If not connected, connectCbError > !reject
397
+ async function setUpConnection(_ref3) {
398
+ let {
399
+ logger,
400
+ sdkDispatcher,
401
+ userDispatcher,
402
+ initDashboardConfigs,
403
+ userId,
404
+ appId,
405
+ customApiHost,
406
+ customWebSocketHost,
407
+ configureSession,
408
+ nickname,
409
+ profileUrl,
410
+ accessToken
411
+ } = _ref3;
412
+ return new Promise((resolve, reject) => {
413
+ var _logger$info;
414
+ logger === null || logger === void 0 ? void 0 : (_logger$info = logger.info) === null || _logger$info === void 0 ? void 0 : _logger$info.call(logger, 'SendbirdProvider | useConnect/setupConnection/init', {
415
+ userId,
416
+ appId
417
+ });
418
+ sdkDispatcher({
419
+ type: SET_SDK_LOADING,
420
+ payload: true
421
+ });
422
+ if (userId && appId) {
423
+ var _logger$info3, _logger$info8;
424
+ const newSdk = setUpParams({
425
+ appId,
426
+ customApiHost,
427
+ customWebSocketHost
428
+ });
429
+ if (configureSession && typeof configureSession === 'function') {
430
+ var _logger$info2;
431
+ const sessionHandler = configureSession(newSdk);
432
+ logger === null || logger === void 0 ? void 0 : (_logger$info2 = logger.info) === null || _logger$info2 === void 0 ? void 0 : _logger$info2.call(logger, 'SendbirdProvider | useConnect/setupConnection/configureSession', sessionHandler);
433
+ newSdk.setSessionHandler(sessionHandler);
434
+ }
435
+ logger === null || logger === void 0 ? void 0 : (_logger$info3 = logger.info) === null || _logger$info3 === void 0 ? void 0 : _logger$info3.call(logger, 'SendbirdProvider | useConnect/setupConnection/setVersion', {
436
+ version: APP_VERSION_STRING
437
+ });
438
+ newSdk.addExtension('sb_uikit', APP_VERSION_STRING);
439
+ const connectCbSucess = async user => {
440
+ var _logger$info4;
441
+ logger === null || logger === void 0 ? void 0 : (_logger$info4 = logger.info) === null || _logger$info4 === void 0 ? void 0 : _logger$info4.call(logger, 'SendbirdProvider | useConnect/setupConnection/connectCbSucess', user);
442
+ sdkDispatcher({
443
+ type: INIT_SDK,
444
+ payload: newSdk
445
+ });
446
+ userDispatcher({
447
+ type: INIT_USER,
448
+ payload: user
449
+ });
450
+ initDashboardConfigs(newSdk).then(config => {
451
+ var _logger$info5;
452
+ logger === null || logger === void 0 ? void 0 : (_logger$info5 = logger.info) === null || _logger$info5 === void 0 ? void 0 : _logger$info5.call(logger, 'SendbirdProvider | useConnect/setupConnection/getUIKitConfiguration success', {
453
+ config
454
+ });
455
+ }).catch(error => {
456
+ var _logger$error;
457
+ logger === null || logger === void 0 ? void 0 : (_logger$error = logger.error) === null || _logger$error === void 0 ? void 0 : _logger$error.call(logger, 'SendbirdProvider | useConnect/setupConnection/getUIKitConfiguration failed', {
458
+ error
459
+ });
460
+ });
461
+
462
+ // use nickname/profileUrl if provided
463
+ // or set userID as nickname
464
+ if ((nickname !== user.nickname || profileUrl !== user.profileUrl) && !(index.isTextuallyNull(nickname) && index.isTextuallyNull(profileUrl))) {
465
+ var _logger$info6;
466
+ logger === null || logger === void 0 ? void 0 : (_logger$info6 = logger.info) === null || _logger$info6 === void 0 ? void 0 : _logger$info6.call(logger, 'SendbirdProvider | useConnect/setupConnection/updateCurrentUserInfo', {
467
+ nickname,
468
+ profileUrl
469
+ });
470
+ newSdk.updateCurrentUserInfo({
471
+ nickname: nickname || user.nickname,
472
+ profileUrl: profileUrl || user.profileUrl
473
+ }).then(namedUser => {
474
+ var _logger$info7;
475
+ logger === null || logger === void 0 ? void 0 : (_logger$info7 = logger.info) === null || _logger$info7 === void 0 ? void 0 : _logger$info7.call(logger, 'SendbirdProvider | useConnect/setupConnection/updateCurrentUserInfo success', {
476
+ nickname,
477
+ profileUrl
478
+ });
479
+ userDispatcher({
480
+ type: UPDATE_USER_INFO,
481
+ payload: namedUser
482
+ });
483
+ }).finally(() => {
484
+ resolve();
485
+ });
486
+ } else {
487
+ resolve();
488
+ }
489
+ };
490
+ const connectCbError = e => {
491
+ var _logger$error2;
492
+ const errorMessage = getConnectSbError(e);
493
+ logger === null || logger === void 0 ? void 0 : (_logger$error2 = logger.error) === null || _logger$error2 === void 0 ? void 0 : _logger$error2.call(logger, errorMessage, {
494
+ e,
495
+ appId,
496
+ userId
497
+ });
498
+ sdkDispatcher({
499
+ type: RESET_SDK
500
+ });
501
+ userDispatcher({
502
+ type: RESET_USER
503
+ });
504
+ sdkDispatcher({
505
+ type: SDK_ERROR
506
+ });
507
+ // exit promise with error
508
+ reject(errorMessage);
509
+ };
510
+ logger === null || logger === void 0 ? void 0 : (_logger$info8 = logger.info) === null || _logger$info8 === void 0 ? void 0 : _logger$info8.call(logger, `SendbirdProvider | useConnect/setupConnection/connect connecting using ${accessToken !== null && accessToken !== void 0 ? accessToken : userId}`);
511
+ newSdk.connect(userId, accessToken).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
512
+ } else {
513
+ var _logger$error3;
514
+ const errorMessage = getMissingParamError({
515
+ userId,
516
+ appId
517
+ });
518
+ sdkDispatcher({
519
+ type: SDK_ERROR
520
+ });
521
+ logger === null || logger === void 0 ? void 0 : (_logger$error3 = logger.error) === null || _logger$error3 === void 0 ? void 0 : _logger$error3.call(logger, errorMessage);
522
+ // exit promise with error
523
+ reject(errorMessage);
524
+ }
525
+ });
526
+ }
527
+
528
+ async function connect(_ref) {
529
+ let {
530
+ logger,
531
+ sdkDispatcher,
532
+ userDispatcher,
533
+ initDashboardConfigs,
534
+ userId,
535
+ appId,
536
+ customApiHost,
537
+ customWebSocketHost,
538
+ configureSession,
539
+ nickname,
540
+ profileUrl,
541
+ accessToken,
542
+ sdk
543
+ } = _ref;
544
+ await disconnectSdk({
545
+ logger,
546
+ sdkDispatcher,
547
+ userDispatcher,
548
+ sdk
549
+ });
550
+ await setUpConnection({
551
+ logger,
552
+ sdkDispatcher,
553
+ userDispatcher,
554
+ initDashboardConfigs,
555
+ userId,
556
+ appId,
557
+ customApiHost,
558
+ customWebSocketHost,
559
+ configureSession,
560
+ nickname,
561
+ profileUrl,
562
+ accessToken
563
+ });
564
+ }
565
+
566
+ function useConnect(triggerTypes, staticTypes) {
567
+ var _logger$info;
568
+ const {
569
+ userId,
570
+ appId,
571
+ accessToken
572
+ } = triggerTypes;
573
+ const {
574
+ logger,
575
+ nickname,
576
+ profileUrl,
577
+ configureSession,
578
+ customApiHost,
579
+ customWebSocketHost,
580
+ sdk,
581
+ sdkDispatcher,
582
+ userDispatcher,
583
+ initDashboardConfigs
584
+ } = staticTypes;
585
+ logger === null || logger === void 0 ? void 0 : (_logger$info = logger.info) === null || _logger$info === void 0 ? void 0 : _logger$info.call(logger, 'SendbirdProvider | useConnect', _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, triggerTypes), staticTypes));
586
+ React.useEffect(() => {
587
+ var _logger$info2;
588
+ logger === null || logger === void 0 ? void 0 : (_logger$info2 = logger.info) === null || _logger$info2 === void 0 ? void 0 : _logger$info2.call(logger, 'SendbirdProvider | useConnect/useEffect', {
589
+ userId,
590
+ appId,
591
+ accessToken
592
+ });
593
+ try {
594
+ connect({
595
+ userId,
596
+ appId,
597
+ accessToken,
598
+ logger,
599
+ nickname,
600
+ profileUrl,
601
+ configureSession,
602
+ customApiHost,
603
+ customWebSocketHost,
604
+ sdk,
605
+ sdkDispatcher,
606
+ userDispatcher,
607
+ initDashboardConfigs
608
+ });
609
+ } catch (error) {
610
+ var _logger$error;
611
+ logger === null || logger === void 0 ? void 0 : (_logger$error = logger.error) === null || _logger$error === void 0 ? void 0 : _logger$error.call(logger, 'SendbirdProvider | useConnect/useEffect', error);
612
+ }
613
+ }, [userId, appId, accessToken]);
614
+ const reconnect = React.useCallback(() => {
615
+ var _logger$info3;
616
+ logger === null || logger === void 0 ? void 0 : (_logger$info3 = logger.info) === null || _logger$info3 === void 0 ? void 0 : _logger$info3.call(logger, 'SendbirdProvider | useConnect/reconnect/useCallback', {
617
+ sdk
618
+ });
619
+ try {
620
+ connect({
621
+ userId,
622
+ appId,
623
+ accessToken,
624
+ logger,
625
+ nickname,
626
+ profileUrl,
627
+ configureSession,
628
+ customApiHost,
629
+ customWebSocketHost,
630
+ sdk,
631
+ sdkDispatcher,
632
+ userDispatcher,
633
+ initDashboardConfigs
634
+ });
635
+ } catch (error) {
636
+ var _logger$error2;
637
+ logger === null || logger === void 0 ? void 0 : (_logger$error2 = logger.error) === null || _logger$error2 === void 0 ? void 0 : _logger$error2.call(logger, 'SendbirdProvider | useConnect/reconnect/useCallback', error);
638
+ }
639
+ }, [sdk]);
640
+ return reconnect;
641
+ }
642
+
428
643
  // Logger, pretty much explains it
429
644
  // in SendbirdProvider
645
+
430
646
  // const [logger, setLogger] = useState(LoggerFactory(logLevel));
431
647
  const LOG_LEVELS = {
432
648
  DEBUG: 'debug',
@@ -435,20 +651,16 @@ const LOG_LEVELS = {
435
651
  INFO: 'info',
436
652
  ALL: 'all'
437
653
  };
438
-
439
654
  const colorLog = level => {
440
655
  switch (level) {
441
656
  case LOG_LEVELS.WARNING:
442
657
  return 'color: Orange';
443
-
444
658
  case LOG_LEVELS.ERROR:
445
659
  return 'color: Red';
446
-
447
660
  default:
448
661
  return 'color: Gray';
449
662
  }
450
663
  };
451
-
452
664
  const printLog = _ref => {
453
665
  let {
454
666
  level,
@@ -458,21 +670,20 @@ const printLog = _ref => {
458
670
  // eslint-disable-next-line no-console
459
671
  console.log(`%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level), description);
460
672
  };
673
+ const noop = () => {/* noop */};
461
674
  const getDefaultLogger = () => ({
462
- info: () => {},
463
- error: () => {},
464
- warning: () => {}
675
+ info: noop,
676
+ error: noop,
677
+ warning: noop
465
678
  });
466
679
  const LoggerFactory = (lvl, customInterface) => {
467
680
  const logInterface = customInterface || printLog;
468
681
  const lvlArray = Array.isArray(lvl) ? lvl : [lvl];
469
-
470
682
  const applyLog = lgLvl => (title, description) => logInterface({
471
683
  level: lgLvl,
472
684
  title,
473
685
  description
474
686
  });
475
-
476
687
  const logger = lvlArray.reduce((accumulator, currentLvl) => {
477
688
  if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {
478
689
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
@@ -481,36 +692,35 @@ const LoggerFactory = (lvl, customInterface) => {
481
692
  warning: applyLog(LOG_LEVELS.WARNING)
482
693
  });
483
694
  }
484
-
485
695
  if (currentLvl === LOG_LEVELS.INFO) {
486
696
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
487
697
  info: applyLog(LOG_LEVELS.INFO)
488
698
  });
489
699
  }
490
-
491
700
  if (currentLvl === LOG_LEVELS.ERROR) {
492
701
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
493
702
  error: applyLog(LOG_LEVELS.ERROR)
494
703
  });
495
704
  }
496
-
497
705
  if (currentLvl === LOG_LEVELS.WARNING) {
498
706
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
499
707
  warning: applyLog(LOG_LEVELS.WARNING)
500
708
  });
501
709
  }
502
-
503
710
  return _rollupPluginBabelHelpers._objectSpread2({}, accumulator);
504
711
  }, getDefaultLogger());
505
712
  return logger;
506
713
  };
507
714
 
715
+ // TODO: Make this to hook, useLogger
716
+
508
717
  // https://davidwalsh.name/pubsub-javascript
509
718
  // we use pubsub to sync events between multiple components(example - ChannelList, Channel)
510
719
  // for example, if customer sends a message from their custom component
511
720
  // without pubsub,we would not be able to listen to it
512
721
  // in our ChannelList or Conversation
513
- var pubSubFactory = (() => {
722
+
723
+ const pubSubFactory = () => {
514
724
  const topics = {};
515
725
  const hOP = topics.hasOwnProperty;
516
726
  return {
@@ -519,11 +729,12 @@ var pubSubFactory = (() => {
519
729
  // Create the topic's object if not yet created
520
730
  if (!hOP.call(topics, topic)) {
521
731
  topics[topic] = [];
522
- } // Add the listener to queue
523
-
732
+ }
524
733
 
525
- const index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic
734
+ // Add the listener to queue
735
+ const index = topics[topic].push(listener) - 1;
526
736
 
737
+ // Provide handle back for removal of topic
527
738
  return {
528
739
  remove: () => {
529
740
  delete topics[topic][index];
@@ -534,16 +745,17 @@ var pubSubFactory = (() => {
534
745
  // If the topic doesn't exist, or there's no listeners in queue, just leave
535
746
  if (!hOP.call(topics, topic)) {
536
747
  return;
537
- } // Cycle through topics queue, fire!
538
-
748
+ }
539
749
 
750
+ // Cycle through topics queue, fire!
540
751
  topics[topic].forEach(item => {
541
752
  item(info !== undefined ? info : {});
542
753
  });
543
754
  }
544
755
  };
545
- });
756
+ };
546
757
 
758
+ /* eslint-disable default-param-last */
547
759
  function useAppendDomNode() {
548
760
  let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
549
761
  let rootSelector = arguments.length > 1 ? arguments[1] : undefined;
@@ -557,7 +769,6 @@ function useAppendDomNode() {
557
769
  return () => {
558
770
  ids.forEach(id => {
559
771
  const target = document.getElementById(id);
560
-
561
772
  if (target) {
562
773
  root.removeChild(target);
563
774
  }
@@ -566,76 +777,263 @@ function useAppendDomNode() {
566
777
  }, []);
567
778
  }
568
779
 
780
+ const VoiceMessageProvider = _ref => {
781
+ let {
782
+ children,
783
+ isVoiceMessageEnabled = true
784
+ } = _ref;
785
+ if (!isVoiceMessageEnabled) {
786
+ return /*#__PURE__*/React__default["default"].createElement(VoicePlayer_context.VoicePlayerProvider, null, children);
787
+ }
788
+ return /*#__PURE__*/React__default["default"].createElement(VoiceRecorder_context.VoiceRecorderProvider, null, /*#__PURE__*/React__default["default"].createElement(VoicePlayer_context.VoicePlayerProvider, null, children));
789
+ };
790
+
791
+ const TIMEOUT = 2000;
792
+
793
+ /*
794
+ * This is a factory function that returns a scheduler.
795
+ * The scheduler is a queue that calls the callback function on intervals.
796
+ * If interval is empty, the callback function is called immediately.
797
+ * If interval is not empty, the callback function is called after the interval.
798
+ */
799
+ function schedulerFactory(_ref) {
800
+ let {
801
+ logger,
802
+ timeout,
803
+ cb
804
+ } = _ref;
805
+ let queue = [];
806
+ let interval = null;
807
+ const push = channel => {
808
+ const channelPresent = queue.find(c => c.url === channel.url);
809
+ if (!channelPresent) {
810
+ queue.push(channel);
811
+ } else {
812
+ logger.info('Channel: Mark as read already in queue', {
813
+ channel
814
+ });
815
+ }
816
+ // start the interval if it's not already running
817
+ if (interval) {
818
+ return;
819
+ }
820
+ const item = queue.shift();
821
+ if (item) {
822
+ cb(item);
823
+ }
824
+ interval = setInterval(() => {
825
+ if (queue.length === 0 && interval) {
826
+ clearInterval(interval);
827
+ interval = null;
828
+ return;
829
+ }
830
+ const item = queue.shift();
831
+ if (item) {
832
+ cb(item);
833
+ }
834
+ }, timeout || TIMEOUT);
835
+ };
836
+ const clear = () => {
837
+ queue = [];
838
+ if (interval) {
839
+ clearInterval(interval);
840
+ interval = null;
841
+ }
842
+ };
843
+ return {
844
+ push,
845
+ clear,
846
+ getQueue: () => queue
847
+ };
848
+ }
849
+
850
+ // this hook accepts a callback to run component is unmounted
851
+ function useUnmount(callback) {
852
+ let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
853
+ React.useLayoutEffect(() => {
854
+ return () => {
855
+ callback();
856
+ };
857
+ }, deps);
858
+ }
859
+
860
+ function useMarkAsReadScheduler(_ref, _ref2) {
861
+ let {
862
+ isConnected
863
+ } = _ref;
864
+ let {
865
+ logger
866
+ } = _ref2;
867
+ const markAsReadScheduler = React.useMemo(() => schedulerFactory({
868
+ logger,
869
+ cb: channel => {
870
+ try {
871
+ channel.markAsRead();
872
+ } catch (error) {
873
+ logger.warning('Channel: Mark as delivered failed', {
874
+ channel,
875
+ error
876
+ });
877
+ }
878
+ }
879
+ }), []);
880
+ React.useEffect(() => {
881
+ // for simplicity, we clear the queue when the connection is lost
882
+ if (!isConnected) {
883
+ markAsReadScheduler.clear();
884
+ }
885
+ }, [isConnected]);
886
+ useUnmount(() => {
887
+ markAsReadScheduler.clear();
888
+ });
889
+ return markAsReadScheduler;
890
+ }
891
+
892
+ function useMarkAsDeliveredScheduler(_ref, _ref2) {
893
+ let {
894
+ isConnected
895
+ } = _ref;
896
+ let {
897
+ logger
898
+ } = _ref2;
899
+ const markAsDeliveredScheduler = React.useMemo(() => schedulerFactory({
900
+ logger,
901
+ cb: channel => {
902
+ try {
903
+ channel.markAsDelivered();
904
+ } catch (error) {
905
+ logger.warning('Channel: Mark as delivered failed', {
906
+ channel,
907
+ error
908
+ });
909
+ }
910
+ }
911
+ }), []);
912
+ React.useEffect(() => {
913
+ // for simplicity, we clear the queue when the connection is lost
914
+ if (!isConnected) {
915
+ markAsDeliveredScheduler.clear();
916
+ }
917
+ }, [isConnected]);
918
+ useUnmount(() => {
919
+ markAsDeliveredScheduler.clear();
920
+ });
921
+ return markAsDeliveredScheduler;
922
+ }
923
+
569
924
  function Sendbird(props) {
570
925
  const {
571
- userId,
572
- dateLocale,
573
- appId,
574
- accessToken,
575
- configureSession,
576
- // mediaQueryBreakPoint,
577
- customApiHost,
578
- customWebSocketHost,
579
- children,
580
- disableUserProfile,
581
- disableMarkAsDelivered,
582
- renderUserProfile,
583
- onUserProfileMessage,
584
- allowProfileEdit,
585
- theme,
586
- nickname,
587
- profileUrl,
588
- userListQuery,
589
- config = {},
590
- colorSet,
591
- stringSet: stringSet$1,
592
- imageCompression,
593
- isReactionEnabled,
926
+ replyType,
594
927
  isMentionEnabled,
928
+ isReactionEnabled,
929
+ disableUserProfile,
930
+ isVoiceMessageEnabled,
595
931
  isTypingIndicatorEnabledOnChannelList,
596
932
  isMessageReceiptStatusEnabledOnChannelList,
597
- replyType
933
+ showSearchIcon
598
934
  } = props;
599
- const mediaQueryBreakPoint = false;
935
+ return /*#__PURE__*/React__default["default"].createElement(uikitTools.UIKitConfigProvider, {
936
+ localConfigs: {
937
+ common: {
938
+ enableUsingDefaultUserProfile: typeof disableUserProfile === 'boolean' ? !disableUserProfile : undefined
939
+ },
940
+ groupChannel: {
941
+ channel: {
942
+ enableReactions: isReactionEnabled,
943
+ enableMention: isMentionEnabled,
944
+ enableVoiceMessage: isVoiceMessageEnabled,
945
+ replyType: replyType != null ? resolvedReplyType.getCaseResolvedReplyType(replyType).lowerCase : undefined
946
+ },
947
+ channelList: {
948
+ enableTypingIndicator: isTypingIndicatorEnabledOnChannelList,
949
+ enableMessageReceiptStatus: isMessageReceiptStatusEnabledOnChannelList
950
+ },
951
+ setting: {
952
+ enableMessageSearch: showSearchIcon
953
+ }
954
+ }
955
+ }
956
+ }, /*#__PURE__*/React__default["default"].createElement(SendbirdSDK, props));
957
+ }
958
+ const SendbirdSDK = _ref => {
959
+ let {
960
+ appId,
961
+ userId,
962
+ children,
963
+ accessToken = '',
964
+ customApiHost = '',
965
+ customWebSocketHost = '',
966
+ configureSession = null,
967
+ theme = 'light',
968
+ config = {},
969
+ nickname = '',
970
+ colorSet = null,
971
+ stringSet: stringSet$1 = null,
972
+ dateLocale = null,
973
+ profileUrl = '',
974
+ voiceRecord = {
975
+ maxRecordingTime: consts.VOICE_RECORDER_DEFAULT_MAX,
976
+ minRecordingTime: consts.VOICE_RECORDER_DEFAULT_MIN
977
+ },
978
+ userListQuery = null,
979
+ imageCompression = {},
980
+ allowProfileEdit = false,
981
+ disableMarkAsDelivered = false,
982
+ renderUserProfile = null,
983
+ onUserProfileMessage = null,
984
+ breakpoint = false
985
+ } = _ref;
600
986
  const {
601
987
  logLevel = '',
602
988
  userMention = {},
603
989
  isREMUnitEnabled = false
604
990
  } = config;
605
991
  const [logger, setLogger] = React.useState(LoggerFactory(logLevel));
606
- const [pubSub, setPubSub] = React.useState();
607
- const [sdkStore, sdkDispatcher] = React.useReducer(reducer$1, sdkInitialState);
608
- const [userStore, userDispatcher] = React.useReducer(reducer, userInitialState);
992
+ const [pubSub] = React.useState(pubSubFactory());
993
+ const [sdkStore, sdkDispatcher] = React.useReducer(reducer$1, initialState$1);
994
+ const [userStore, userDispatcher] = React.useReducer(reducer, initialState);
995
+ const {
996
+ configs,
997
+ configsWithAppAttr,
998
+ initDashboardConfigs
999
+ } = uikitTools.useUIKitConfig();
1000
+ const sdkInitialized = sdkStore.initialized;
1001
+ const sdk = sdkStore === null || sdkStore === void 0 ? void 0 : sdkStore.sdk;
609
1002
  useTheme(colorSet);
610
- React.useEffect(() => {
611
- setPubSub(pubSubFactory());
612
- }, []);
613
- React.useEffect(() => {
614
- logger.info('App Init'); // dispatch action
615
-
616
- handleConnection({
617
- userId,
618
- appId,
619
- accessToken,
620
- sdkStore,
621
- nickname,
622
- profileUrl,
623
- configureSession,
624
- customApiHost,
625
- customWebSocketHost,
626
- sdk: sdkStore.sdk,
627
- logger
628
- }, {
629
- sdkDispatcher,
630
- userDispatcher
631
- });
632
- }, [userId, appId, accessToken]); // to create a pubsub to communicate between parent and child
1003
+ const reconnect = useConnect({
1004
+ appId,
1005
+ userId,
1006
+ accessToken
1007
+ }, {
1008
+ logger,
1009
+ nickname,
1010
+ profileUrl,
1011
+ configureSession,
1012
+ customApiHost,
1013
+ customWebSocketHost,
1014
+ sdk,
1015
+ sdkDispatcher,
1016
+ userDispatcher,
1017
+ initDashboardConfigs
1018
+ });
1019
+ useUnmount(() => {
1020
+ if (typeof sdk.disconnect === 'function') {
1021
+ disconnectSdk({
1022
+ logger,
1023
+ sdkDispatcher,
1024
+ userDispatcher,
1025
+ sdk
1026
+ });
1027
+ }
1028
+ }, [sdk.disconnect]);
633
1029
 
1030
+ // to create a pubsub to communicate between parent and child
634
1031
  React.useEffect(() => {
635
1032
  setLogger(LoggerFactory(logLevel));
636
1033
  }, [logLevel]);
637
- useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer
1034
+ useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body');
638
1035
 
1036
+ // should move to reducer
639
1037
  const [currenttheme, setCurrenttheme] = React.useState(theme);
640
1038
  React.useEffect(() => {
641
1039
  setCurrenttheme(theme);
@@ -643,39 +1041,47 @@ function Sendbird(props) {
643
1041
  React.useEffect(() => {
644
1042
  const body = document.querySelector('body');
645
1043
  body.classList.remove('sendbird-experimental__rem__units');
646
-
647
1044
  if (isREMUnitEnabled) {
648
1045
  body.classList.add('sendbird-experimental__rem__units');
649
1046
  }
650
- }, [isREMUnitEnabled]); // add-remove theme from body
651
-
1047
+ }, [isREMUnitEnabled]);
1048
+ // add-remove theme from body
652
1049
  React.useEffect(() => {
653
1050
  logger.info('Setup theme', `Theme: ${currenttheme}`);
654
-
655
1051
  try {
656
1052
  const body = document.querySelector('body');
657
1053
  body.classList.remove('sendbird-theme--light');
658
1054
  body.classList.remove('sendbird-theme--dark');
659
1055
  body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);
660
- logger.info('Finish setup theme'); // eslint-disable-next-line no-empty
1056
+ logger.info('Finish setup theme');
1057
+ // eslint-disable-next-line no-empty
661
1058
  } catch (e) {
662
1059
  logger.warning('Setup theme failed', `${e}`);
663
1060
  }
664
-
665
1061
  return () => {
666
1062
  try {
667
1063
  const body = document.querySelector('body');
668
1064
  body.classList.remove('sendbird-theme--light');
669
- body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty
1065
+ body.classList.remove('sendbird-theme--dark');
1066
+ // eslint-disable-next-line no-empty
670
1067
  } catch (_unused) {}
671
1068
  };
672
1069
  }, [currenttheme]);
673
1070
  const isOnline = useConnectionStatus(sdkStore.sdk, logger);
1071
+ const markAsReadScheduler = useMarkAsReadScheduler({
1072
+ isConnected: isOnline
1073
+ }, {
1074
+ logger
1075
+ });
1076
+ const markAsDeliveredScheduler = useMarkAsDeliveredScheduler({
1077
+ isConnected: isOnline
1078
+ }, {
1079
+ logger
1080
+ });
674
1081
  const localeStringSet = React__default["default"].useMemo(() => {
675
1082
  if (!stringSet$1) {
676
1083
  return stringSet.getStringSet('en');
677
1084
  }
678
-
679
1085
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, stringSet.getStringSet('en')), stringSet$1);
680
1086
  }, [stringSet$1]);
681
1087
  return /*#__PURE__*/React__default["default"].createElement(withSendbird.SendbirdSdkContext.Provider, {
@@ -687,24 +1093,9 @@ function Sendbird(props) {
687
1093
  dispatchers: {
688
1094
  sdkDispatcher,
689
1095
  userDispatcher,
690
- reconnect: () => {
691
- handleConnection({
692
- userId,
693
- appId,
694
- accessToken,
695
- sdkStore,
696
- nickname,
697
- profileUrl,
698
- logger,
699
- sdk: sdkStore.sdk
700
- }, {
701
- sdkDispatcher,
702
- userDispatcher
703
- });
704
- }
1096
+ reconnect
705
1097
  },
706
1098
  config: {
707
- disableUserProfile,
708
1099
  disableMarkAsDelivered,
709
1100
  renderUserProfile,
710
1101
  onUserProfileMessage,
@@ -721,95 +1112,44 @@ function Sendbird(props) {
721
1112
  imageCompression: _rollupPluginBabelHelpers._objectSpread2({
722
1113
  compressionRate: 0.7
723
1114
  }, imageCompression),
724
- isReactionEnabled,
725
- isMentionEnabled: isMentionEnabled || false,
1115
+ voiceRecord,
726
1116
  userMention: {
727
1117
  maxMentionCount: (userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount) || 10,
728
1118
  maxSuggestionCount: (userMention === null || userMention === void 0 ? void 0 : userMention.maxSuggestionCount) || 15
729
1119
  },
730
- isTypingIndicatorEnabledOnChannelList,
731
- isMessageReceiptStatusEnabledOnChannelList,
732
- replyType
1120
+ markAsReadScheduler,
1121
+ markAsDeliveredScheduler,
1122
+ // From UIKitConfigProvider.localConfigs
1123
+ disableUserProfile: !configs.common.enableUsingDefaultUserProfile,
1124
+ isReactionEnabled: sdkInitialized && configsWithAppAttr(sdk).groupChannel.channel.enableReactions,
1125
+ isMentionEnabled: configs.groupChannel.channel.enableMention,
1126
+ isVoiceMessageEnabled: configs.groupChannel.channel.enableVoiceMessage,
1127
+ replyType: resolvedReplyType.getCaseResolvedReplyType(configs.groupChannel.channel.replyType).upperCase,
1128
+ isTypingIndicatorEnabledOnChannelList: configs.groupChannel.channelList.enableTypingIndicator,
1129
+ isMessageReceiptStatusEnabledOnChannelList: configs.groupChannel.channelList.enableMessageReceiptStatus,
1130
+ showSearchIcon: sdkInitialized && configsWithAppAttr(sdk).groupChannel.setting.enableMessageSearch,
1131
+ // Remote configs set from dashboard by UIKit feature configuration
1132
+ groupChannel: {
1133
+ enableOgtag: sdkInitialized && configsWithAppAttr(sdk).groupChannel.channel.enableOgtag,
1134
+ enableTypingIndicator: configs.groupChannel.channel.enableTypingIndicator,
1135
+ enableDocument: configs.groupChannel.channel.input.enableDocument,
1136
+ threadReplySelectType: resolvedReplyType.getCaseResolvedThreadReplySelectType(configs.groupChannel.channel.threadReplySelectType).upperCase
1137
+ },
1138
+ openChannel: {
1139
+ enableOgtag: sdkInitialized && configsWithAppAttr(sdk).openChannel.channel.enableOgtag,
1140
+ enableDocument: configs.openChannel.channel.input.enableDocument
1141
+ }
733
1142
  }
734
1143
  }
735
1144
  }, /*#__PURE__*/React__default["default"].createElement(MediaQueryContext.MediaQueryProvider, {
736
1145
  logger: logger,
737
- mediaQueryBreakPoint: mediaQueryBreakPoint
1146
+ breakpoint: breakpoint
738
1147
  }, /*#__PURE__*/React__default["default"].createElement(LocalizationContext.LocalizationProvider, {
739
1148
  stringSet: localeStringSet,
740
1149
  dateLocale: dateLocale
741
- }, children)));
742
- }
743
- Sendbird.propTypes = {
744
- userId: PropTypes__default["default"].string.isRequired,
745
- appId: PropTypes__default["default"].string.isRequired,
746
- accessToken: PropTypes__default["default"].string,
747
- customApiHost: PropTypes__default["default"].string,
748
- customWebSocketHost: PropTypes__default["default"].string,
749
- // mediaQueryBreakPoint: PropTypes.string,
750
- configureSession: PropTypes__default["default"].func,
751
- children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].element, PropTypes__default["default"].arrayOf(PropTypes__default["default"].element), PropTypes__default["default"].any]).isRequired,
752
- theme: PropTypes__default["default"].string,
753
- nickname: PropTypes__default["default"].string,
754
- dateLocale: PropTypes__default["default"].shape({}),
755
- profileUrl: PropTypes__default["default"].string,
756
- disableUserProfile: PropTypes__default["default"].bool,
757
- disableMarkAsDelivered: PropTypes__default["default"].bool,
758
- renderUserProfile: PropTypes__default["default"].func,
759
- onUserProfileMessage: PropTypes__default["default"].func,
760
- allowProfileEdit: PropTypes__default["default"].bool,
761
- userListQuery: PropTypes__default["default"].func,
762
- config: PropTypes__default["default"].shape({
763
- // None Error Warning Info 'All/Debug'
764
- logLevel: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)]),
765
- pubSub: PropTypes__default["default"].shape({
766
- subscribe: PropTypes__default["default"].func,
767
- publish: PropTypes__default["default"].func
768
- }),
769
- userMention: PropTypes__default["default"].shape({
770
- maxMentionCount: PropTypes__default["default"].number,
771
- maxSuggestionCount: PropTypes__default["default"].number
772
- }),
773
- isREMUnitEnabled: PropTypes__default["default"].bool
774
- }),
775
- stringSet: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
776
- colorSet: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
777
- isReactionEnabled: PropTypes__default["default"].bool,
778
- isMentionEnabled: PropTypes__default["default"].bool,
779
- imageCompression: PropTypes__default["default"].shape({
780
- compressionRate: PropTypes__default["default"].number,
781
- resizingWidth: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
782
- resizingHeight: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string])
783
- }),
784
- isTypingIndicatorEnabledOnChannelList: PropTypes__default["default"].bool,
785
- isMessageReceiptStatusEnabledOnChannelList: PropTypes__default["default"].bool,
786
- replyType: PropTypes__default["default"].oneOf(['NONE', 'QUOTE_REPLY', 'THREAD'])
787
- };
788
- Sendbird.defaultProps = {
789
- accessToken: '',
790
- customApiHost: null,
791
- customWebSocketHost: null,
792
- configureSession: null,
793
- theme: 'light',
794
- // mediaQueryBreakPoint: null,
795
- nickname: '',
796
- dateLocale: null,
797
- profileUrl: '',
798
- disableUserProfile: false,
799
- disableMarkAsDelivered: false,
800
- renderUserProfile: null,
801
- onUserProfileMessage: null,
802
- allowProfileEdit: false,
803
- userListQuery: null,
804
- config: {},
805
- stringSet: null,
806
- colorSet: null,
807
- imageCompression: {},
808
- isReactionEnabled: true,
809
- isMentionEnabled: false,
810
- isTypingIndicatorEnabledOnChannelList: false,
811
- isMessageReceiptStatusEnabledOnChannelList: false,
812
- replyType: 'NONE'
1150
+ }, /*#__PURE__*/React__default["default"].createElement(VoiceMessageProvider, {
1151
+ isVoiceMessageEnabled: configs.groupChannel.channel.enableVoiceMessage
1152
+ }, children))));
813
1153
  };
814
1154
 
815
1155
  module.exports = Sendbird;