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