@sendbird/uikit-react 3.5.0-beta.0 → 3.5.0-mobile-web-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/App.js +276 -218
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +428 -0
  4. package/Channel/components/ChannelHeader.js +45 -41
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +101 -129
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +55 -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 +238 -230
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +146 -128
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +258 -174
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +33 -30
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +138 -193
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +43 -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 +11 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +67 -43
  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 +100 -142
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +71 -82
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +34 -35
  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 +31 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-f461d265.js → ChannelListProvider-42fb305a.js} +233 -285
  45. package/ChannelListProvider-42fb305a.js.map +1 -0
  46. package/{ChannelProvider-554e7116.js → ChannelProvider-42ea1a96.js} +610 -716
  47. package/ChannelProvider-42ea1a96.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 +516 -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 +53 -57
  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-37af96d2.js +44 -0
  76. package/CreateChannelProvider-37af96d2.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-1839d2db.js +20 -0
  90. package/{LocalizationContext-4df0cc32.js.map → LocalizationContext-1839d2db.js.map} +1 -1
  91. package/MediaQueryContext-0e0b3a1b.js +87 -0
  92. package/MediaQueryContext-0e0b3a1b.js.map +1 -0
  93. package/MemberList-28589b39.js +395 -0
  94. package/MemberList-28589b39.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 +36 -31
  108. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelMessage.js +168 -190
  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 +34 -28
  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-71a32f2d.js +429 -0
  128. package/OpenChannelListProvider-71a32f2d.js.map +1 -0
  129. package/OpenChannelProvider-377a0b6e.js +1885 -0
  130. package/OpenChannelProvider-377a0b6e.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 +508 -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 +56 -69
  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-558db27f.js +36 -0
  147. package/RemoveMessageModal-558db27f.js.map +1 -0
  148. package/SendbirdProvider.js +830 -409
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +230 -216
  151. package/Thread/components/ParentMessageInfo.js.map +1 -1
  152. package/Thread/components/ParentMessageInfoItem.js +110 -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 +107 -83
  157. package/Thread/components/ThreadList.js.map +1 -1
  158. package/Thread/components/ThreadListItem.js +292 -272
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +144 -111
  161. package/Thread/components/ThreadMessageInput.js.map +1 -1
  162. package/Thread/components/ThreadUI.js +168 -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 +86 -57
  168. package/Thread.js.map +1 -1
  169. package/ThreadProvider-0b73628e.js +1695 -0
  170. package/ThreadProvider-0b73628e.js.map +1 -0
  171. package/{UserProfileContext-c58a7b86.js → UserProfileContext-7e645551.js} +1 -4
  172. package/{UserProfileContext-c58a7b86.js.map → UserProfileContext-7e645551.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-0b5a78a1.js +169 -0
  174. package/VoiceMessageInputWrapper-0b5a78a1.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 +72 -0
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  179. package/VoiceRecorder/context.js +118 -0
  180. package/VoiceRecorder/context.js.map +1 -0
  181. package/VoiceRecorder/useVoiceRecorder.js +109 -0
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  183. package/WebAudioUtils-fbdb41cd.js +123 -0
  184. package/WebAudioUtils-fbdb41cd.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-498add61.js → _rollupPluginBabelHelpers-ce69e916.js} +17 -11
  186. package/_rollupPluginBabelHelpers-ce69e916.js.map +1 -0
  187. package/actionTypes-a5283c75.js +8 -0
  188. package/actionTypes-a5283c75.js.map +1 -0
  189. package/cjs/App.js +276 -218
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +45 -41
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +99 -127
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +55 -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 +241 -233
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +145 -127
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +258 -174
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +33 -30
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +138 -193
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +43 -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 +67 -43
  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 +99 -141
  222. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  223. package/cjs/ChannelList/components/ChannelPreview.js +71 -82
  224. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  225. package/cjs/ChannelList/components/ChannelPreviewAction.js +34 -35
  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 +31 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-c2148b43.js → ChannelListProvider-b3ffe21a.js} +232 -284
  232. package/cjs/ChannelListProvider-b3ffe21a.js.map +1 -0
  233. package/cjs/{ChannelProvider-cf5dc7e3.js → ChannelProvider-b6890429.js} +608 -714
  234. package/cjs/ChannelProvider-b6890429.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 +516 -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 +55 -59
  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-e1376032.js +52 -0
  263. package/cjs/CreateChannelProvider-e1376032.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-2b3f310d.js → LocalizationContext-461a0816.js} +9 -11
  277. package/cjs/{LocalizationContext-2b3f310d.js.map → LocalizationContext-461a0816.js.map} +1 -1
  278. package/cjs/MediaQueryContext-de7c63bc.js +94 -0
  279. package/cjs/MediaQueryContext-de7c63bc.js.map +1 -0
  280. package/cjs/MemberList-593809cb.js +401 -0
  281. package/cjs/MemberList-593809cb.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 +36 -31
  295. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  296. package/cjs/OpenChannel/components/OpenChannelMessage.js +168 -190
  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 +34 -28
  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-39c11f87.js +439 -0
  315. package/cjs/OpenChannelListProvider-39c11f87.js.map +1 -0
  316. package/cjs/OpenChannelProvider-e794e881.js +1894 -0
  317. package/cjs/OpenChannelProvider-e794e881.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 +508 -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 +57 -70
  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-c01eb93b.js → RemoveMessageModal-29fa1a05.js} +19 -14
  333. package/cjs/RemoveMessageModal-29fa1a05.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +830 -410
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +229 -215
  337. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  338. package/cjs/Thread/components/ParentMessageInfoItem.js +109 -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 +107 -83
  343. package/cjs/Thread/components/ThreadList.js.map +1 -1
  344. package/cjs/Thread/components/ThreadListItem.js +291 -271
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +144 -111
  347. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  348. package/cjs/Thread/components/ThreadUI.js +169 -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 +86 -57
  354. package/cjs/Thread.js.map +1 -1
  355. package/cjs/ThreadProvider-e2098298.js +1704 -0
  356. package/cjs/ThreadProvider-e2098298.js.map +1 -0
  357. package/cjs/{UserProfileContext-9d60cdc4.js → UserProfileContext-1bcc48a2.js} +1 -4
  358. package/cjs/{UserProfileContext-9d60cdc4.js.map → UserProfileContext-1bcc48a2.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-f18d6a5e.js +175 -0
  360. package/cjs/VoiceMessageInputWrapper-f18d6a5e.js.map +1 -0
  361. package/cjs/VoicePlayer/context.js +16 -0
  362. package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  363. package/cjs/VoicePlayer/useVoicePlayer.js +76 -0
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  365. package/cjs/VoiceRecorder/context.js +128 -0
  366. package/cjs/VoiceRecorder/context.js.map +1 -0
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +114 -0
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  369. package/cjs/WebAudioUtils-aedad0b1.js +126 -0
  370. package/cjs/WebAudioUtils-aedad0b1.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-a7254c9d.js → _rollupPluginBabelHelpers-919a4db3.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-919a4db3.js.map +1 -0
  373. package/cjs/actionTypes-1e75e6e9.js +10 -0
  374. package/cjs/actionTypes-1e75e6e9.js.map +1 -0
  375. package/cjs/{color-89f33656.js → color-48ff06b2.js} +13 -21
  376. package/cjs/color-48ff06b2.js.map +1 -0
  377. package/cjs/{compareIds-ca869c2e.js → compareIds-8ed822c1.js} +5 -6
  378. package/cjs/compareIds-8ed822c1.js.map +1 -0
  379. package/cjs/{const-db71e993.js → const-49de651c.js} +4 -4
  380. package/cjs/const-49de651c.js.map +1 -0
  381. package/cjs/const-852d5677.js +20 -0
  382. package/cjs/const-852d5677.js.map +1 -0
  383. package/cjs/consts-2580246d.js +6 -0
  384. package/cjs/consts-2580246d.js.map +1 -0
  385. package/cjs/consts-5851f376.js +6 -0
  386. package/cjs/consts-5851f376.js.map +1 -0
  387. package/cjs/consts-6f02fcc4.js +41 -0
  388. package/cjs/consts-6f02fcc4.js.map +1 -0
  389. package/cjs/consts-e9ee4cf4.js +6 -0
  390. package/cjs/consts-e9ee4cf4.js.map +1 -0
  391. package/cjs/{context-2f5d47fd.js → context-4d89551f.js} +6 -5
  392. package/cjs/{context-2f5d47fd.js.map → context-4d89551f.js.map} +1 -1
  393. package/cjs/dist/index.css +901 -481
  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-0126dbb4.js +161 -0
  398. package/cjs/index-0126dbb4.js.map +1 -0
  399. package/cjs/index-1a223893.js +362 -0
  400. package/cjs/index-1a223893.js.map +1 -0
  401. package/cjs/index-223e9372.js +79 -0
  402. package/cjs/index-223e9372.js.map +1 -0
  403. package/cjs/{index-621e74bd.js → index-420b8e6d.js} +29 -37
  404. package/cjs/index-420b8e6d.js.map +1 -0
  405. package/cjs/{index-d6ef2a60.js → index-44186883.js} +11 -25
  406. package/cjs/index-44186883.js.map +1 -0
  407. package/cjs/{index-de151767.js → index-5e6194f8.js} +1 -1
  408. package/cjs/{index-de151767.js.map → index-5e6194f8.js.map} +1 -1
  409. package/cjs/{index-73467e1d.js → index-60bf4d5c.js} +2 -2
  410. package/cjs/{index-73467e1d.js.map → index-60bf4d5c.js.map} +1 -1
  411. package/cjs/{index-0988ab25.js → index-60ea6503.js} +57 -3
  412. package/cjs/index-60ea6503.js.map +1 -0
  413. package/cjs/index-6a46ed00.js +292 -0
  414. package/cjs/index-6a46ed00.js.map +1 -0
  415. package/cjs/{index-c4d4ef49.js → index-7a68d56f.js} +1 -1
  416. package/cjs/index-7a68d56f.js.map +1 -0
  417. package/cjs/index-81aad270.js +197 -0
  418. package/cjs/index-81aad270.js.map +1 -0
  419. package/cjs/{index-2c5dd48c.js → index-849c0736.js} +2 -2
  420. package/cjs/{index-2c5dd48c.js.map → index-849c0736.js.map} +1 -1
  421. package/cjs/{index-be9c6237.js → index-a51f1b7d.js} +55 -63
  422. package/cjs/index-a51f1b7d.js.map +1 -0
  423. package/cjs/{index-e240e852.js → index-a7025294.js} +42 -51
  424. package/cjs/index-a7025294.js.map +1 -0
  425. package/cjs/index-bca3d144.js +587 -0
  426. package/cjs/index-bca3d144.js.map +1 -0
  427. package/cjs/index-f4682499.js +57 -0
  428. package/cjs/index-f4682499.js.map +1 -0
  429. package/cjs/index-f5399132.js +419 -0
  430. package/cjs/index-f5399132.js.map +1 -0
  431. package/cjs/index.js +77 -58
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-10ef9afc.js +6 -0
  434. package/cjs/index.module-10ef9afc.js.map +1 -0
  435. package/cjs/lame.all.js +2541 -0
  436. package/cjs/lame.all.js.map +1 -0
  437. package/cjs/sendbirdSelectors.js +307 -417
  438. package/cjs/sendbirdSelectors.js.map +1 -1
  439. package/cjs/{stringSet-91b919f6.js → stringSet-d1cee26a.js} +110 -90
  440. package/cjs/stringSet-d1cee26a.js.map +1 -0
  441. package/cjs/tokenize-d3bb1637.js +164 -0
  442. package/cjs/tokenize-d3bb1637.js.map +1 -0
  443. package/cjs/topics-00c67dd6.js +18 -0
  444. package/cjs/topics-00c67dd6.js.map +1 -0
  445. package/cjs/types-2e9e46b2.js +17 -0
  446. package/cjs/types-2e9e46b2.js.map +1 -0
  447. package/cjs/ui/Accordion.js +21 -24
  448. package/cjs/ui/Accordion.js.map +1 -1
  449. package/cjs/ui/AccordionGroup.js +10 -13
  450. package/cjs/ui/AccordionGroup.js.map +1 -1
  451. package/cjs/ui/AdminMessage.js +10 -13
  452. package/cjs/ui/AdminMessage.js.map +1 -1
  453. package/cjs/ui/Avatar.js +57 -79
  454. package/cjs/ui/Avatar.js.map +1 -1
  455. package/cjs/ui/Badge.js +16 -15
  456. package/cjs/ui/Badge.js.map +1 -1
  457. package/cjs/ui/BottomSheet.js +14 -12
  458. package/cjs/ui/BottomSheet.js.map +1 -1
  459. package/cjs/ui/Button.js +20 -35
  460. package/cjs/ui/Button.js.map +1 -1
  461. package/cjs/ui/ChannelAvatar.js +38 -41
  462. package/cjs/ui/ChannelAvatar.js.map +1 -1
  463. package/cjs/ui/Checkbox.js +11 -13
  464. package/cjs/ui/Checkbox.js.map +1 -1
  465. package/cjs/ui/ConnectionStatus.js +7 -5
  466. package/cjs/ui/ConnectionStatus.js.map +1 -1
  467. package/cjs/ui/ContextMenu.js +172 -198
  468. package/cjs/ui/ContextMenu.js.map +1 -1
  469. package/cjs/ui/DateSeparator.js +12 -14
  470. package/cjs/ui/DateSeparator.js.map +1 -1
  471. package/cjs/ui/EmojiReactions.js +297 -107
  472. package/cjs/ui/EmojiReactions.js.map +1 -1
  473. package/cjs/ui/FileMessageItemBody.js +22 -23
  474. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  475. package/cjs/ui/FileViewer.js +36 -36
  476. package/cjs/ui/FileViewer.js.map +1 -1
  477. package/cjs/ui/Icon.js +447 -623
  478. package/cjs/ui/Icon.js.map +1 -1
  479. package/cjs/ui/IconButton.js +20 -31
  480. package/cjs/ui/IconButton.js.map +1 -1
  481. package/cjs/ui/ImageRenderer.js +34 -43
  482. package/cjs/ui/ImageRenderer.js.map +1 -1
  483. package/cjs/ui/Input.js +16 -16
  484. package/cjs/ui/Input.js.map +1 -1
  485. package/cjs/ui/Label.js +2 -2
  486. package/cjs/ui/LinkLabel.js +4 -3
  487. package/cjs/ui/LinkLabel.js.map +1 -1
  488. package/cjs/ui/Loader.js +10 -12
  489. package/cjs/ui/Loader.js.map +1 -1
  490. package/cjs/ui/MentionLabel.js +58 -65
  491. package/cjs/ui/MentionLabel.js.map +1 -1
  492. package/cjs/ui/MentionUserLabel.js +12 -10
  493. package/cjs/ui/MentionUserLabel.js.map +1 -1
  494. package/cjs/ui/MessageContent.js +203 -545
  495. package/cjs/ui/MessageContent.js.map +1 -1
  496. package/cjs/ui/MessageInput.js +338 -118
  497. package/cjs/ui/MessageInput.js.map +1 -1
  498. package/cjs/ui/MessageItemMenu.js +70 -77
  499. package/cjs/ui/MessageItemMenu.js.map +1 -1
  500. package/cjs/ui/MessageItemReactionMenu.js +56 -61
  501. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  502. package/cjs/ui/MessageSearchFileItem.js +56 -51
  503. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  504. package/cjs/ui/MessageSearchItem.js +42 -41
  505. package/cjs/ui/MessageSearchItem.js.map +1 -1
  506. package/cjs/ui/MessageStatus.js +10 -11
  507. package/cjs/ui/MessageStatus.js.map +1 -1
  508. package/cjs/ui/Modal.js +52 -46
  509. package/cjs/ui/Modal.js.map +1 -1
  510. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  511. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  512. package/cjs/ui/OGMessageItemBody.js +67 -63
  513. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  514. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  515. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  516. package/cjs/ui/OpenChannelAvatar.js +18 -17
  517. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  518. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  519. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  520. package/cjs/ui/OpenchannelFileMessage.js +136 -149
  521. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  522. package/cjs/ui/OpenchannelOGMessage.js +200 -233
  523. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelThumbnailMessage.js +211 -220
  525. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelUserMessage.js +160 -173
  527. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  528. package/cjs/ui/PlaceHolder.js +5 -6
  529. package/cjs/ui/PlaceHolder.js.map +1 -1
  530. package/cjs/ui/PlaybackTime.js +35 -0
  531. package/cjs/ui/PlaybackTime.js.map +1 -0
  532. package/cjs/ui/ProgressBar.js +40 -0
  533. package/cjs/ui/ProgressBar.js.map +1 -0
  534. package/cjs/ui/QuoteMessage.js +50 -44
  535. package/cjs/ui/QuoteMessage.js.map +1 -1
  536. package/cjs/ui/QuoteMessageInput.js +31 -29
  537. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  538. package/cjs/ui/ReactionBadge.js +13 -21
  539. package/cjs/ui/ReactionBadge.js.map +1 -1
  540. package/cjs/ui/ReactionButton.js +27 -26
  541. package/cjs/ui/ReactionButton.js.map +1 -1
  542. package/cjs/ui/SortByRow.js +14 -18
  543. package/cjs/ui/SortByRow.js.map +1 -1
  544. package/cjs/ui/TextButton.js +13 -21
  545. package/cjs/ui/TextButton.js.map +1 -1
  546. package/cjs/ui/TextMessageItemBody.js +41 -48
  547. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  548. package/cjs/ui/ThreadReplies.js +25 -22
  549. package/cjs/ui/ThreadReplies.js.map +1 -1
  550. package/cjs/ui/ThumbnailMessageItemBody.js +43 -45
  551. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  552. package/cjs/ui/Toggle.js +202 -0
  553. package/cjs/ui/Toggle.js.map +1 -0
  554. package/cjs/ui/Tooltip.js +8 -9
  555. package/cjs/ui/Tooltip.js.map +1 -1
  556. package/cjs/ui/TooltipWrapper.js +17 -20
  557. package/cjs/ui/TooltipWrapper.js.map +1 -1
  558. package/cjs/ui/UnknownMessageItemBody.js +21 -22
  559. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  560. package/cjs/ui/UserListItem.js +76 -76
  561. package/cjs/ui/UserListItem.js.map +1 -1
  562. package/cjs/ui/UserProfile.js +31 -29
  563. package/cjs/ui/UserProfile.js.map +1 -1
  564. package/cjs/ui/VoiceMessageItemBody.js +108 -0
  565. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  566. package/cjs/ui/VoiceMessgeInput.js +22 -0
  567. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  568. package/cjs/ui/Word.js +31 -39
  569. package/cjs/ui/Word.js.map +1 -1
  570. package/cjs/useDirtyGetMentions-7b6c8a19.js +77 -0
  571. package/cjs/useDirtyGetMentions-7b6c8a19.js.map +1 -0
  572. package/cjs/useLongPress-4c2e9a3b.js +87 -0
  573. package/cjs/useLongPress-4c2e9a3b.js.map +1 -0
  574. package/cjs/useSendbirdStateContext.js +2 -3
  575. package/cjs/useSendbirdStateContext.js.map +1 -1
  576. package/cjs/utils/message/getOutgoingMessageState.js +16 -21
  577. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  578. package/cjs/utils/message/isVoiceMessage.js +12 -0
  579. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  580. package/cjs/{utils-3714e90e.js → utils-22d05a53.js} +3 -7
  581. package/cjs/{utils-3714e90e.js.map → utils-22d05a53.js.map} +1 -1
  582. package/cjs/{utils-1f6c6626.js → utils-3dacb9bc.js} +1 -1
  583. package/cjs/{utils-1f6c6626.js.map → utils-3dacb9bc.js.map} +1 -1
  584. package/cjs/utils-c5d4c36e.js +35 -0
  585. package/cjs/utils-c5d4c36e.js.map +1 -0
  586. package/cjs/utils-f1c09ec3.js +31 -0
  587. package/cjs/utils-f1c09ec3.js.map +1 -0
  588. package/cjs/uuid-d86ea01f.js +15 -0
  589. package/cjs/{uuid-11d4efe8.js.map → uuid-d86ea01f.js.map} +1 -1
  590. package/cjs/withSendbird.js +5 -6
  591. package/cjs/withSendbird.js.map +1 -1
  592. package/{color-ff5f9069.js → color-4ca8a2ea.js} +5 -14
  593. package/{color-ff5f9069.js.map → color-4ca8a2ea.js.map} +1 -1
  594. package/{compareIds-9430f9d8.js → compareIds-08858dd3.js} +5 -6
  595. package/compareIds-08858dd3.js.map +1 -0
  596. package/{const-83764204.js → const-714046e0.js} +4 -4
  597. package/const-714046e0.js.map +1 -0
  598. package/const-a77c08c9.js +13 -0
  599. package/const-a77c08c9.js.map +1 -0
  600. package/consts-9393e7c8.js +27 -0
  601. package/consts-9393e7c8.js.map +1 -0
  602. package/consts-aecb8fab.js +4 -0
  603. package/consts-aecb8fab.js.map +1 -0
  604. package/consts-d46e0fc1.js +4 -0
  605. package/consts-d46e0fc1.js.map +1 -0
  606. package/consts-decd9c7d.js +4 -0
  607. package/consts-decd9c7d.js.map +1 -0
  608. package/context-9a6b8b8a.js +13 -0
  609. package/{context-9a69e846.js.map → context-9a6b8b8a.js.map} +1 -1
  610. package/dist/index.css +901 -481
  611. package/dist/index.css.map +1 -1
  612. package/handlers/OpenChannelHandler.js.map +1 -1
  613. package/handlers/SessionHandler.js.map +1 -1
  614. package/{index-3f26a31c.js → index-06f34585.js} +2 -2
  615. package/{index-3f26a31c.js.map → index-06f34585.js.map} +1 -1
  616. package/{index-134314e2.js → index-20880943.js} +29 -37
  617. package/index-20880943.js.map +1 -0
  618. package/index-3130ac38.js +51 -0
  619. package/index-3130ac38.js.map +1 -0
  620. package/{index-e5b78039.js → index-3165e396.js} +1 -1
  621. package/index-3165e396.js.map +1 -0
  622. package/index-400417a1.js +154 -0
  623. package/index-400417a1.js.map +1 -0
  624. package/index-5644a6c0.js +283 -0
  625. package/index-5644a6c0.js.map +1 -0
  626. package/{index-defabece.js → index-5db37327.js} +57 -4
  627. package/index-5db37327.js.map +1 -0
  628. package/{index-fc4702b7.js → index-7c9ebc67.js} +55 -63
  629. package/index-7c9ebc67.js.map +1 -0
  630. package/{index-d3f6dbb9.js → index-9781d2b9.js} +2 -2
  631. package/{index-d3f6dbb9.js.map → index-9781d2b9.js.map} +1 -1
  632. package/index-b96440b7.js +76 -0
  633. package/index-b96440b7.js.map +1 -0
  634. package/index-bf72ef7c.js +355 -0
  635. package/index-bf72ef7c.js.map +1 -0
  636. package/{index-1b91b116.js → index-c6df8184.js} +39 -48
  637. package/index-c6df8184.js.map +1 -0
  638. package/{index-07e060cd.js → index-d9c12cf4.js} +1 -1
  639. package/{index-07e060cd.js.map → index-d9c12cf4.js.map} +1 -1
  640. package/{index-44470dab.js → index-e1cd2fcf.js} +11 -25
  641. package/index-e1cd2fcf.js.map +1 -0
  642. package/index-edfb3327.js +413 -0
  643. package/index-edfb3327.js.map +1 -0
  644. package/index-fd51c7d1.js +541 -0
  645. package/index-fd51c7d1.js.map +1 -0
  646. package/index-fd95258e.js +182 -0
  647. package/index-fd95258e.js.map +1 -0
  648. package/index.d.ts +169 -122
  649. package/index.js +77 -58
  650. package/index.js.map +1 -1
  651. package/index.module-8c144786.js +4 -0
  652. package/index.module-8c144786.js.map +1 -0
  653. package/lame.all.js +2537 -0
  654. package/lame.all.js.map +1 -0
  655. package/package.json +61 -41
  656. package/sendbirdSelectors.js +307 -417
  657. package/sendbirdSelectors.js.map +1 -1
  658. package/{stringSet-d555d877.js → stringSet-d368e289.js} +110 -90
  659. package/stringSet-d368e289.js.map +1 -0
  660. package/tokenize-7056afb7.js +159 -0
  661. package/tokenize-7056afb7.js.map +1 -0
  662. package/topics-f9628f1f.js +16 -0
  663. package/topics-f9628f1f.js.map +1 -0
  664. package/types-2b508dbc.js +15 -0
  665. package/types-2b508dbc.js.map +1 -0
  666. package/ui/Accordion.js +21 -24
  667. package/ui/Accordion.js.map +1 -1
  668. package/ui/AccordionGroup.js +10 -13
  669. package/ui/AccordionGroup.js.map +1 -1
  670. package/ui/AdminMessage.js +10 -13
  671. package/ui/AdminMessage.js.map +1 -1
  672. package/ui/Avatar.js +57 -79
  673. package/ui/Avatar.js.map +1 -1
  674. package/ui/Badge.js +16 -15
  675. package/ui/Badge.js.map +1 -1
  676. package/ui/BottomSheet.js +14 -12
  677. package/ui/BottomSheet.js.map +1 -1
  678. package/ui/Button.js +20 -35
  679. package/ui/Button.js.map +1 -1
  680. package/ui/ChannelAvatar.js +38 -41
  681. package/ui/ChannelAvatar.js.map +1 -1
  682. package/ui/Checkbox.js +11 -13
  683. package/ui/Checkbox.js.map +1 -1
  684. package/ui/ConnectionStatus.js +7 -5
  685. package/ui/ConnectionStatus.js.map +1 -1
  686. package/ui/ContextMenu.js +173 -199
  687. package/ui/ContextMenu.js.map +1 -1
  688. package/ui/DateSeparator.js +12 -14
  689. package/ui/DateSeparator.js.map +1 -1
  690. package/ui/EmojiReactions.js +298 -108
  691. package/ui/EmojiReactions.js.map +1 -1
  692. package/ui/FileMessageItemBody.js +22 -23
  693. package/ui/FileMessageItemBody.js.map +1 -1
  694. package/ui/FileViewer.js +36 -36
  695. package/ui/FileViewer.js.map +1 -1
  696. package/ui/Icon.js +448 -622
  697. package/ui/Icon.js.map +1 -1
  698. package/ui/IconButton.js +20 -31
  699. package/ui/IconButton.js.map +1 -1
  700. package/ui/ImageRenderer.js +34 -43
  701. package/ui/ImageRenderer.js.map +1 -1
  702. package/ui/Input.js +16 -16
  703. package/ui/Input.js.map +1 -1
  704. package/ui/Label.js +2 -2
  705. package/ui/LinkLabel.js +4 -3
  706. package/ui/LinkLabel.js.map +1 -1
  707. package/ui/Loader.js +10 -12
  708. package/ui/Loader.js.map +1 -1
  709. package/ui/MentionLabel.js +58 -65
  710. package/ui/MentionLabel.js.map +1 -1
  711. package/ui/MentionUserLabel.js +12 -10
  712. package/ui/MentionUserLabel.js.map +1 -1
  713. package/ui/MessageContent.js +206 -548
  714. package/ui/MessageContent.js.map +1 -1
  715. package/ui/MessageInput.js +338 -119
  716. package/ui/MessageInput.js.map +1 -1
  717. package/ui/MessageItemMenu.js +70 -77
  718. package/ui/MessageItemMenu.js.map +1 -1
  719. package/ui/MessageItemReactionMenu.js +56 -61
  720. package/ui/MessageItemReactionMenu.js.map +1 -1
  721. package/ui/MessageSearchFileItem.js +55 -50
  722. package/ui/MessageSearchFileItem.js.map +1 -1
  723. package/ui/MessageSearchItem.js +41 -40
  724. package/ui/MessageSearchItem.js.map +1 -1
  725. package/ui/MessageStatus.js +10 -11
  726. package/ui/MessageStatus.js.map +1 -1
  727. package/ui/Modal.js +52 -46
  728. package/ui/Modal.js.map +1 -1
  729. package/ui/MutedAvatarOverlay.js +10 -10
  730. package/ui/MutedAvatarOverlay.js.map +1 -1
  731. package/ui/OGMessageItemBody.js +68 -64
  732. package/ui/OGMessageItemBody.js.map +1 -1
  733. package/ui/OpenChannelAdminMessage.js +8 -7
  734. package/ui/OpenChannelAdminMessage.js.map +1 -1
  735. package/ui/OpenChannelAvatar.js +18 -17
  736. package/ui/OpenChannelAvatar.js.map +1 -1
  737. package/ui/OpenchannelConversationHeader.js +17 -13
  738. package/ui/OpenchannelConversationHeader.js.map +1 -1
  739. package/ui/OpenchannelFileMessage.js +136 -149
  740. package/ui/OpenchannelFileMessage.js.map +1 -1
  741. package/ui/OpenchannelOGMessage.js +200 -233
  742. package/ui/OpenchannelOGMessage.js.map +1 -1
  743. package/ui/OpenchannelThumbnailMessage.js +211 -220
  744. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  745. package/ui/OpenchannelUserMessage.js +160 -173
  746. package/ui/OpenchannelUserMessage.js.map +1 -1
  747. package/ui/PlaceHolder.js +5 -6
  748. package/ui/PlaceHolder.js.map +1 -1
  749. package/ui/PlaybackTime.js +26 -0
  750. package/ui/PlaybackTime.js.map +1 -0
  751. package/ui/ProgressBar.js +30 -0
  752. package/ui/ProgressBar.js.map +1 -0
  753. package/ui/QuoteMessage.js +50 -44
  754. package/ui/QuoteMessage.js.map +1 -1
  755. package/ui/QuoteMessageInput.js +31 -29
  756. package/ui/QuoteMessageInput.js.map +1 -1
  757. package/ui/ReactionBadge.js +13 -21
  758. package/ui/ReactionBadge.js.map +1 -1
  759. package/ui/ReactionButton.js +27 -26
  760. package/ui/ReactionButton.js.map +1 -1
  761. package/ui/SortByRow.js +14 -18
  762. package/ui/SortByRow.js.map +1 -1
  763. package/ui/TextButton.js +13 -21
  764. package/ui/TextButton.js.map +1 -1
  765. package/ui/TextMessageItemBody.js +41 -48
  766. package/ui/TextMessageItemBody.js.map +1 -1
  767. package/ui/ThreadReplies.js +25 -22
  768. package/ui/ThreadReplies.js.map +1 -1
  769. package/ui/ThumbnailMessageItemBody.js +43 -45
  770. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  771. package/ui/Toggle.js +191 -0
  772. package/ui/Toggle.js.map +1 -0
  773. package/ui/Tooltip.js +8 -9
  774. package/ui/Tooltip.js.map +1 -1
  775. package/ui/TooltipWrapper.js +17 -20
  776. package/ui/TooltipWrapper.js.map +1 -1
  777. package/ui/UnknownMessageItemBody.js +21 -22
  778. package/ui/UnknownMessageItemBody.js.map +1 -1
  779. package/ui/UserListItem.js +76 -76
  780. package/ui/UserListItem.js.map +1 -1
  781. package/ui/UserProfile.js +31 -29
  782. package/ui/UserProfile.js.map +1 -1
  783. package/ui/VoiceMessageItemBody.js +99 -0
  784. package/ui/VoiceMessageItemBody.js.map +1 -0
  785. package/ui/VoiceMessgeInput.js +14 -0
  786. package/ui/VoiceMessgeInput.js.map +1 -0
  787. package/ui/Word.js +31 -39
  788. package/ui/Word.js.map +1 -1
  789. package/useDirtyGetMentions-e0c0f521.js +75 -0
  790. package/useDirtyGetMentions-e0c0f521.js.map +1 -0
  791. package/useLongPress-685c7391.js +85 -0
  792. package/useLongPress-685c7391.js.map +1 -0
  793. package/useSendbirdStateContext.js +2 -3
  794. package/useSendbirdStateContext.js.map +1 -1
  795. package/utils/message/getOutgoingMessageState.js +9 -15
  796. package/utils/message/getOutgoingMessageState.js.map +1 -1
  797. package/utils/message/isVoiceMessage.js +8 -0
  798. package/utils/message/isVoiceMessage.js.map +1 -0
  799. package/{utils-e720e03a.js → utils-256f157f.js} +1 -1
  800. package/{utils-e720e03a.js.map → utils-256f157f.js.map} +1 -1
  801. package/utils-4979f950.js +31 -0
  802. package/utils-4979f950.js.map +1 -0
  803. package/{utils-8b11ff42.js → utils-f82ad058.js} +3 -7
  804. package/{utils-8b11ff42.js.map → utils-f82ad058.js.map} +1 -1
  805. package/utils-fbc09760.js +29 -0
  806. package/utils-fbc09760.js.map +1 -0
  807. package/uuid-720c99c0.js +13 -0
  808. package/{uuid-286ed926.js.map → uuid-720c99c0.js.map} +1 -1
  809. package/withSendbird.js +5 -6
  810. package/withSendbird.js.map +1 -1
  811. package/ChannelListProvider-f461d265.js.map +0 -1
  812. package/ChannelProvider-554e7116.js.map +0 -1
  813. package/CreateChannelProvider-250cd98e.js +0 -55
  814. package/CreateChannelProvider-250cd98e.js.map +0 -1
  815. package/LocalizationContext-4df0cc32.js +0 -22
  816. package/MediaQueryContext-74183e34.js +0 -90
  817. package/MediaQueryContext-74183e34.js.map +0 -1
  818. package/MemberList-51c7afaa.js +0 -435
  819. package/MemberList-51c7afaa.js.map +0 -1
  820. package/NotificationChannel/components/NotificationChannelUI.js +0 -119
  821. package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  822. package/NotificationChannel/components/NotificationList.js +0 -111
  823. package/NotificationChannel/components/NotificationList.js.map +0 -1
  824. package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
  825. package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  826. package/NotificationChannel/context.js +0 -12
  827. package/NotificationChannel.js +0 -58
  828. package/NotificationChannel.js.map +0 -1
  829. package/NotificationChannelProvider-0d8be1ad.js +0 -535
  830. package/NotificationChannelProvider-0d8be1ad.js.map +0 -1
  831. package/OpenChannelListProvider-8c753945.js +0 -434
  832. package/OpenChannelListProvider-8c753945.js.map +0 -1
  833. package/OpenChannelProvider-2fa01820.js +0 -2000
  834. package/OpenChannelProvider-2fa01820.js.map +0 -1
  835. package/RemoveMessageModal-9762fed1.js +0 -31
  836. package/RemoveMessageModal-9762fed1.js.map +0 -1
  837. package/ThreadProvider-6974fb3e.js +0 -1644
  838. package/ThreadProvider-6974fb3e.js.map +0 -1
  839. package/_rollupPluginBabelHelpers-498add61.js.map +0 -1
  840. package/actionTypes-ad2cbd73.js +0 -6
  841. package/actionTypes-ad2cbd73.js.map +0 -1
  842. package/cjs/ChannelListProvider-c2148b43.js.map +0 -1
  843. package/cjs/ChannelProvider-cf5dc7e3.js.map +0 -1
  844. package/cjs/CreateChannelProvider-c98de398.js +0 -62
  845. package/cjs/CreateChannelProvider-c98de398.js.map +0 -1
  846. package/cjs/MediaQueryContext-71862be1.js +0 -97
  847. package/cjs/MediaQueryContext-71862be1.js.map +0 -1
  848. package/cjs/MemberList-13566703.js +0 -441
  849. package/cjs/MemberList-13566703.js.map +0 -1
  850. package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
  851. package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  852. package/cjs/NotificationChannel/components/NotificationList.js +0 -117
  853. package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
  854. package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
  855. package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  856. package/cjs/NotificationChannel/context.js +0 -21
  857. package/cjs/NotificationChannel.js +0 -64
  858. package/cjs/NotificationChannel.js.map +0 -1
  859. package/cjs/NotificationChannelProvider-8f3b7320.js +0 -543
  860. package/cjs/NotificationChannelProvider-8f3b7320.js.map +0 -1
  861. package/cjs/OpenChannelListProvider-64043b4f.js +0 -443
  862. package/cjs/OpenChannelListProvider-64043b4f.js.map +0 -1
  863. package/cjs/OpenChannelProvider-5b56e629.js +0 -2009
  864. package/cjs/OpenChannelProvider-5b56e629.js.map +0 -1
  865. package/cjs/RemoveMessageModal-c01eb93b.js.map +0 -1
  866. package/cjs/ThreadProvider-d3c0c877.js +0 -1653
  867. package/cjs/ThreadProvider-d3c0c877.js.map +0 -1
  868. package/cjs/_rollupPluginBabelHelpers-a7254c9d.js.map +0 -1
  869. package/cjs/actionTypes-0e8bea91.js +0 -10
  870. package/cjs/actionTypes-0e8bea91.js.map +0 -1
  871. package/cjs/color-89f33656.js.map +0 -1
  872. package/cjs/compareIds-ca869c2e.js.map +0 -1
  873. package/cjs/const-55d167ca.js +0 -20
  874. package/cjs/const-55d167ca.js.map +0 -1
  875. package/cjs/const-db71e993.js.map +0 -1
  876. package/cjs/index-0988ab25.js.map +0 -1
  877. package/cjs/index-21b2339d.js +0 -701
  878. package/cjs/index-21b2339d.js.map +0 -1
  879. package/cjs/index-5c81f847.js +0 -194
  880. package/cjs/index-5c81f847.js.map +0 -1
  881. package/cjs/index-621e74bd.js.map +0 -1
  882. package/cjs/index-8de59744.js +0 -59
  883. package/cjs/index-8de59744.js.map +0 -1
  884. package/cjs/index-a52859ed.js +0 -360
  885. package/cjs/index-a52859ed.js.map +0 -1
  886. package/cjs/index-be9c6237.js.map +0 -1
  887. package/cjs/index-c4d4ef49.js.map +0 -1
  888. package/cjs/index-d6ef2a60.js.map +0 -1
  889. package/cjs/index-e240e852.js.map +0 -1
  890. package/cjs/stringSet-91b919f6.js.map +0 -1
  891. package/cjs/topics-ac9cf7ed.js +0 -22
  892. package/cjs/topics-ac9cf7ed.js.map +0 -1
  893. package/cjs/tslib.es6-43854eb1.js +0 -110
  894. package/cjs/tslib.es6-43854eb1.js.map +0 -1
  895. package/cjs/useLongPress-c7bf12b1.js +0 -118
  896. package/cjs/useLongPress-c7bf12b1.js.map +0 -1
  897. package/cjs/utils-4b529d96.js +0 -38
  898. package/cjs/utils-4b529d96.js.map +0 -1
  899. package/cjs/utils-65a380e8.js +0 -32
  900. package/cjs/utils-65a380e8.js.map +0 -1
  901. package/cjs/uuid-11d4efe8.js +0 -19
  902. package/compareIds-9430f9d8.js.map +0 -1
  903. package/const-83764204.js.map +0 -1
  904. package/const-9d11f204.js +0 -14
  905. package/const-9d11f204.js.map +0 -1
  906. package/context-9a69e846.js +0 -12
  907. package/index-134314e2.js.map +0 -1
  908. package/index-1572c90f.js +0 -57
  909. package/index-1572c90f.js.map +0 -1
  910. package/index-1b91b116.js.map +0 -1
  911. package/index-44470dab.js.map +0 -1
  912. package/index-5f08f486.js +0 -662
  913. package/index-5f08f486.js.map +0 -1
  914. package/index-d8e3ccee.js +0 -179
  915. package/index-d8e3ccee.js.map +0 -1
  916. package/index-defabece.js.map +0 -1
  917. package/index-e5b78039.js.map +0 -1
  918. package/index-ed65ee3b.js +0 -353
  919. package/index-ed65ee3b.js.map +0 -1
  920. package/index-fc4702b7.js.map +0 -1
  921. package/stringSet-d555d877.js.map +0 -1
  922. package/topics-351ea731.js +0 -13
  923. package/topics-351ea731.js.map +0 -1
  924. package/tslib.es6-bcead7e6.js +0 -104
  925. package/tslib.es6-bcead7e6.js.map +0 -1
  926. package/useLongPress-794838b8.js +0 -116
  927. package/useLongPress-794838b8.js.map +0 -1
  928. package/utils-00ac1a7d.js +0 -34
  929. package/utils-00ac1a7d.js.map +0 -1
  930. package/utils-01e76a0c.js +0 -30
  931. package/utils-01e76a0c.js.map +0 -1
  932. package/uuid-286ed926.js +0 -17
@@ -1,182 +1,40 @@
1
- import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-498add61.js';
2
- import React__default, { useLayoutEffect, useState, useEffect, useReducer } from 'react';
3
- import PropTypes from 'prop-types';
1
+ import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-ce69e916.js';
2
+ import React__default, { useLayoutEffect, useState, useEffect, useCallback, useContext, createContext, useMemo, useReducer } from 'react';
4
3
  import { SendbirdSdkContext } from './withSendbird.js';
4
+ import cssVars from 'css-vars-ponyfill';
5
+ import { K } from './index.module-8c144786.js';
6
+ import { U as USER_ACTIONS } from './actionTypes-a5283c75.js';
5
7
  import SendbirdChat, { ConnectionHandler } from '@sendbird/chat';
8
+ import { u as uuidv4 } from './uuid-720c99c0.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-ad2cbd73.js';
9
- import { i as isTextuallyNull } from './index-5f08f486.js';
10
- import { _ as __assign } from './tslib.es6-bcead7e6.js';
11
- import cssVars from 'css-vars-ponyfill';
12
- import { u as uuidv4 } from './uuid-286ed926.js';
13
- import { L as LocalizationProvider } from './LocalizationContext-4df0cc32.js';
14
- import { M as MediaQueryProvider } from './MediaQueryContext-74183e34.js';
15
- import { g as getStringSet } from './stringSet-d555d877.js';
11
+ import { i as isTextuallyNull } from './index-fd51c7d1.js';
12
+ import { V as VoicePlayerProvider } from './index-5644a6c0.js';
13
+ import { VoiceRecorderProvider } from './VoiceRecorder/context.js';
14
+ import { L as LocalizationProvider } from './LocalizationContext-1839d2db.js';
15
+ import { M as MediaQueryProvider } from './MediaQueryContext-0e0b3a1b.js';
16
+ import { g as getStringSet } from './stringSet-d368e289.js';
17
+ import { V as VOICE_RECORDER_DEFAULT_MAX, a as VOICE_RECORDER_DEFAULT_MIN } from './consts-9393e7c8.js';
16
18
  import './utils/message/getOutgoingMessageState.js';
17
- import './index-07e060cd.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-beta.0';
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
- });
19
+ import './useSendbirdStateContext.js';
20
+ import './index-d9c12cf4.js';
81
21
 
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) {
22
+ const isEmpty = obj => {
162
23
  if (obj === null || obj === undefined) {
163
24
  return true;
164
25
  }
165
-
166
- for (var prop in obj) {
26
+ for (const prop in obj) {
167
27
  if (obj.hasOwnProperty(prop)) {
168
28
  return false;
169
29
  }
170
30
  }
171
-
172
31
  return JSON.stringify(obj) === JSON.stringify({});
173
32
  };
174
-
175
- var useTheme = function (overrides) {
176
- useLayoutEffect(function () {
33
+ const useTheme = overrides => {
34
+ useLayoutEffect(() => {
177
35
  if (!isEmpty(overrides)) {
178
36
  cssVars({
179
- variables: __assign({
37
+ variables: _objectSpread2(_objectSpread2({}, {
180
38
  '--sendbird-dark-primary-500': '#4d2aa6',
181
39
  '--sendbird-dark-primary-400': '#6440C4',
182
40
  '--sendbird-dark-primary-300': '#7B53EF',
@@ -253,13 +111,20 @@ var useTheme = function (overrides) {
253
111
  '--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
112
  '--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
113
  '--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)
114
+ }), overrides)
257
115
  });
258
116
  }
259
117
  }, [overrides]);
260
118
  };
261
119
 
262
- var sdkInitialState = {
120
+ const SDK_ACTIONS = {
121
+ INIT_SDK: 'INIT_SDK',
122
+ SET_SDK_LOADING: 'SET_SDK_LOADING',
123
+ RESET_SDK: 'RESET_SDK',
124
+ SDK_ERROR: 'SDK_ERROR'
125
+ };
126
+
127
+ const initialState$1 = {
263
128
  initialized: false,
264
129
  loading: false,
265
130
  sdk: {},
@@ -267,112 +132,124 @@ var sdkInitialState = {
267
132
  };
268
133
 
269
134
  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
- }
135
+ return K(action).with({
136
+ type: SDK_ACTIONS.SET_SDK_LOADING
137
+ }, _ref => {
138
+ let {
139
+ payload
140
+ } = _ref;
141
+ return _objectSpread2(_objectSpread2({}, state), {}, {
142
+ initialized: false,
143
+ loading: payload
144
+ });
145
+ }).with({
146
+ type: SDK_ACTIONS.SDK_ERROR
147
+ }, () => {
148
+ return _objectSpread2(_objectSpread2({}, state), {}, {
149
+ initialized: false,
150
+ loading: false,
151
+ error: true
152
+ });
153
+ }).with({
154
+ type: SDK_ACTIONS.INIT_SDK
155
+ }, _ref2 => {
156
+ let {
157
+ payload
158
+ } = _ref2;
159
+ return {
160
+ sdk: payload,
161
+ initialized: true,
162
+ loading: false,
163
+ error: false
164
+ };
165
+ }).with({
166
+ type: SDK_ACTIONS.RESET_SDK
167
+ }, () => {
168
+ return initialState$1;
169
+ }).otherwise(() => {
170
+ return state;
171
+ });
298
172
  }
299
173
 
300
- var userInitialState = {
174
+ const initialState = {
301
175
  initialized: false,
302
176
  loading: false,
303
177
  user: {}
304
178
  };
305
179
 
306
180
  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
- }
181
+ return K(action).with({
182
+ type: USER_ACTIONS.INIT_USER
183
+ }, _ref => {
184
+ let {
185
+ payload
186
+ } = _ref;
187
+ return {
188
+ initialized: true,
189
+ loading: false,
190
+ user: payload
191
+ };
192
+ }).with({
193
+ type: USER_ACTIONS.RESET_USER
194
+ }, () => {
195
+ return initialState;
196
+ }).with({
197
+ type: USER_ACTIONS.UPDATE_USER_INFO
198
+ }, _ref2 => {
199
+ let {
200
+ payload
201
+ } = _ref2;
202
+ return _objectSpread2(_objectSpread2({}, state), {}, {
203
+ user: payload
204
+ });
205
+ }).otherwise(() => {
206
+ return state;
207
+ });
326
208
  }
327
209
 
328
210
  function useConnectionStatus(sdk, logger) {
329
211
  const [isOnline, setIsOnline] = useState(true);
330
212
  useEffect(() => {
331
213
  const uniqueHandlerId = uuidv4();
332
-
333
214
  try {
334
215
  logger.warning('sdk changed', uniqueHandlerId);
335
216
  const handler = new ConnectionHandler();
336
-
337
217
  handler.onDisconnected = () => {
338
218
  logger.warning('onDisconnected', {
339
219
  isOnline
340
220
  });
341
221
  };
342
-
343
222
  handler.onReconnectStarted = () => {
344
223
  setIsOnline(false);
345
224
  logger.warning('onReconnectStarted', {
346
225
  isOnline
347
226
  });
348
227
  };
349
-
350
228
  handler.onReconnectSucceeded = () => {
351
229
  setIsOnline(true);
352
230
  logger.warning('onReconnectSucceeded', {
353
231
  isOnline
354
232
  });
355
233
  };
356
-
357
234
  handler.onReconnectFailed = () => {
358
235
  sdk.reconnect();
359
236
  logger.warning('onReconnectFailed');
360
237
  };
361
-
362
- logger.info('Added ConnectionHandler', uniqueHandlerId); // workaround -> addConnectionHandler invalidates session handler
238
+ logger.info('Added ConnectionHandler', uniqueHandlerId);
239
+ // workaround -> addConnectionHandler invalidates session handler
363
240
  // provided through configureSession
364
-
365
241
  if (sdk !== null && sdk !== void 0 && sdk.addConnectionHandler) {
366
242
  sdk.addConnectionHandler(uniqueHandlerId, handler);
367
243
  }
368
- } catch (_unused) {//
244
+ } catch (_unused) {
245
+ //
369
246
  }
370
-
371
247
  return () => {
372
248
  try {
373
249
  sdk.removeConnectionHandler(uniqueHandlerId);
374
250
  logger.info('Removed ConnectionHandler', uniqueHandlerId);
375
- } catch (_unused2) {//
251
+ } catch (_unused2) {
252
+ //
376
253
  }
377
254
  };
378
255
  }, [sdk]);
@@ -380,44 +257,491 @@ function useConnectionStatus(sdk, logger) {
380
257
  const tryReconnect = () => {
381
258
  try {
382
259
  logger.warning('Try reconnecting SDK');
383
-
384
260
  if (sdk.connectionState !== 'OPEN') {
385
261
  // connection is not broken yet
386
262
  sdk.reconnect();
387
263
  }
388
- } catch (_unused3) {//
264
+ } catch (_unused3) {
265
+ //
389
266
  }
390
- }; // addEventListener version
391
-
392
-
267
+ };
268
+ // addEventListener version
393
269
  window.addEventListener('online', tryReconnect);
394
270
  return () => {
395
271
  window.removeEventListener('online', tryReconnect);
396
272
  };
397
- }, [sdk]); // add offline-class to body
273
+ }, [sdk]);
398
274
 
275
+ // add offline-class to body
399
276
  useEffect(() => {
400
277
  const body = document.querySelector('body');
401
-
402
278
  if (!isOnline) {
403
279
  try {
404
280
  body.classList.add('sendbird__offline');
405
281
  logger.info('Added class sendbird__offline to body');
406
- } catch (e) {//
282
+ } catch (e) {
283
+ //
407
284
  }
408
285
  } else {
409
286
  try {
410
287
  body.classList.remove('sendbird__offline');
411
288
  logger.info('Removed class sendbird__offline from body');
412
- } catch (e) {//
289
+ } catch (e) {
290
+ //
413
291
  }
414
292
  }
415
293
  }, [isOnline]);
416
294
  return isOnline;
417
295
  }
418
296
 
297
+ function snakeToCamel(obj) {
298
+ if (typeof obj !== 'object' || obj === null) {
299
+ return obj;
300
+ }
301
+ if (Array.isArray(obj)) {
302
+ return obj.map(item => snakeToCamel(item));
303
+ }
304
+ const result = {};
305
+ Object.keys(obj).forEach(key => {
306
+ const camelKey = key.replace(/_\w/g, m => m[1].toUpperCase());
307
+ result[camelKey] = snakeToCamel(obj[key]);
308
+ });
309
+ return result;
310
+ }
311
+
312
+ // @link: https://docs.google.com/spreadsheets/d/1-AozBMHRYOXS74vZ-7x2ptQcBL6nnM-orJWRvUgmkd4/edit#gid=0
313
+ const initialConfig = {
314
+ common: {
315
+ enableUsingDefaultUserProfile: false
316
+ },
317
+ groupChannel: {
318
+ channel: {
319
+ enableMention: false,
320
+ enableOgtag: true,
321
+ enableReactions: true,
322
+ enableTypingIndicator: true,
323
+ enableVoiceMessage: false,
324
+ input: {
325
+ camera: {
326
+ enablePhoto: true,
327
+ enableVideo: true
328
+ },
329
+ enableDocument: true,
330
+ gallery: {
331
+ enablePhoto: true,
332
+ enableVideo: true
333
+ }
334
+ },
335
+ replyType: 'quote_reply',
336
+ threadReplySelectType: 'thread'
337
+ },
338
+ channelList: {
339
+ enableMessageReceiptStatus: false,
340
+ enableTypingIndicator: false
341
+ },
342
+ setting: {
343
+ enableMessageSearch: false
344
+ }
345
+ },
346
+ openChannel: {
347
+ channel: {
348
+ enableOgtag: true,
349
+ input: {
350
+ camera: {
351
+ enablePhoto: true,
352
+ enableVideo: true
353
+ },
354
+ enableDocument: true,
355
+ gallery: {
356
+ enablePhoto: true,
357
+ enableVideo: true
358
+ }
359
+ }
360
+ }
361
+ }
362
+ };
363
+ const UIKitConfigContext = /*#__PURE__*/createContext({
364
+ initDashboardConfigs: () => Promise.resolve(),
365
+ configs: initialConfig
366
+ });
367
+ const UIKitConfigProvider = _ref => {
368
+ let {
369
+ storage,
370
+ children /* appConfigurations */
371
+ } = _ref;
372
+ // TODO: Implement
373
+ // const localConfigs = mergeConfigs(initialConfig, mapToUIKItConfig(configurations));
374
+ const [remoteConfigs, setRemoteConfigs] = useState(initialConfig);
375
+ const initDashboardConfigs = useCallback(async sdk => {
376
+ try {
377
+ // TODO: Implement
378
+ // const manager = new UIKitConfigStorageManager(storage)
379
+ // const storedConfigs = await manager.init(sdk.appId);
380
+
381
+ if (storage == null) {
382
+ const payload = await sdk.getUIKitConfiguration().json;
383
+ setRemoteConfigs(snakeToCamel(payload.uikit_configurations));
384
+ }
385
+
386
+ // TODO: Implement
387
+ // Compare the sdk uikitConfig's lastUpdatedAt <-> stored one
388
+ // if(sdk.appInfo.uikitConfigInfo.lastUpdatedAt === storedConfigs.lastUpdatedAt) {
389
+ // setRemoteConfigs(storedConfigs);
390
+ // } else {
391
+ // const newConfigs = await sdk.getUIKitConfig();
392
+ // const updatedConfigs = await manager.update(newConfigs);
393
+ // setRemoteConfigs(updatedConfigs);
394
+ // }
395
+ } catch (error) {
396
+ //
397
+ }
398
+ }, []);
399
+
400
+ // TODO: Implement
401
+ // const configs = getByPriority(localConfigs, remoteConfigs);
402
+ const configs = remoteConfigs;
403
+ return /*#__PURE__*/React__default.createElement(UIKitConfigContext.Provider, {
404
+ value: {
405
+ initDashboardConfigs,
406
+ configs
407
+ }
408
+ }, children);
409
+ };
410
+ const useUIKitConfig = () => useContext(UIKitConfigContext);
411
+
412
+ async function disconnectSdk(_ref) {
413
+ let {
414
+ sdkDispatcher,
415
+ userDispatcher,
416
+ sdk
417
+ } = _ref;
418
+ return new Promise(resolve => {
419
+ sdkDispatcher({
420
+ type: SDK_ACTIONS.SET_SDK_LOADING,
421
+ payload: true
422
+ });
423
+ if (sdk !== null && sdk !== void 0 && sdk.disconnect) {
424
+ sdk.disconnect().then(() => {
425
+ sdkDispatcher({
426
+ type: SDK_ACTIONS.RESET_SDK
427
+ });
428
+ userDispatcher({
429
+ type: USER_ACTIONS.RESET_USER
430
+ });
431
+ }).finally(() => {
432
+ resolve(true);
433
+ });
434
+ } else {
435
+ resolve(true);
436
+ }
437
+ });
438
+ }
439
+
440
+ const APP_VERSION_STRING = '3.5.0-mobile-web-0';
441
+ const {
442
+ INIT_SDK,
443
+ SET_SDK_LOADING,
444
+ RESET_SDK,
445
+ SDK_ERROR
446
+ } = SDK_ACTIONS;
447
+ const {
448
+ INIT_USER,
449
+ UPDATE_USER_INFO,
450
+ RESET_USER
451
+ } = USER_ACTIONS;
452
+ function getMissingParamError(_ref) {
453
+ let {
454
+ userId,
455
+ appId
456
+ } = _ref;
457
+ return `SendbirdProvider | useConnect/setupConnection/Connection failed UserId: ${userId} or appId: ${appId} missing`;
458
+ }
459
+ function getConnectSbError(error) {
460
+ return `SendbirdProvider | useConnect/setupConnection/Connection failed. ${(error === null || error === void 0 ? void 0 : error.code) || ''} ${(error === null || error === void 0 ? void 0 : error.message) || ''}`;
461
+ }
462
+ function setUpParams(_ref2) {
463
+ let {
464
+ appId,
465
+ customApiHost,
466
+ customWebSocketHost
467
+ } = _ref2;
468
+ const params = {
469
+ appId,
470
+ modules: [new GroupChannelModule(), new OpenChannelModule()]
471
+ };
472
+ if (customApiHost) {
473
+ params['customApiHost'] = customApiHost;
474
+ }
475
+ if (customWebSocketHost) {
476
+ params['customWebSocketHost'] = customWebSocketHost;
477
+ }
478
+ const newSdk = SendbirdChat.init(params);
479
+ return newSdk;
480
+ }
481
+
482
+ // Steps
483
+ // 1. Check if minimum userID/appID is provided
484
+ // 1.a. If not, throw error > !reject
485
+ // 1.b. If yes, continue
486
+ // 2. Set up params with custom host if provided
487
+ // 3. Set up session handler if provided
488
+ // 4. Set up version
489
+ // 5. Connect to Sendbird -> either using user ID or (user ID + access token)
490
+ // 6. If connected, connectCbSucess
491
+ // 6.a check if nickname is to be updated -> no > !resolve immediately
492
+ // 6.b check if nickname is to be updated -> yes > update nickname > !resolve
493
+ // 7. If not connected, connectCbError > !reject
494
+ async function setUpConnection(_ref3) {
495
+ let {
496
+ logger,
497
+ sdkDispatcher,
498
+ userDispatcher,
499
+ initDashboardConfigs,
500
+ userId,
501
+ appId,
502
+ customApiHost,
503
+ customWebSocketHost,
504
+ configureSession,
505
+ nickname,
506
+ profileUrl,
507
+ accessToken
508
+ } = _ref3;
509
+ return new Promise((resolve, reject) => {
510
+ var _logger$info;
511
+ 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', {
512
+ userId,
513
+ appId
514
+ });
515
+ sdkDispatcher({
516
+ type: SET_SDK_LOADING,
517
+ payload: true
518
+ });
519
+ if (userId && appId) {
520
+ var _logger$info3, _logger$info8;
521
+ const newSdk = setUpParams({
522
+ appId,
523
+ customApiHost,
524
+ customWebSocketHost
525
+ });
526
+ if (configureSession && typeof configureSession === 'function') {
527
+ var _logger$info2;
528
+ const sessionHandler = configureSession(newSdk);
529
+ 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);
530
+ newSdk.setSessionHandler(sessionHandler);
531
+ }
532
+ 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', {
533
+ version: APP_VERSION_STRING
534
+ });
535
+ newSdk.addExtension('sb_uikit', APP_VERSION_STRING);
536
+ const connectCbSucess = async user => {
537
+ var _logger$info4;
538
+ 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);
539
+ sdkDispatcher({
540
+ type: INIT_SDK,
541
+ payload: newSdk
542
+ });
543
+ userDispatcher({
544
+ type: INIT_USER,
545
+ payload: user
546
+ });
547
+ initDashboardConfigs(newSdk).then(config => {
548
+ var _logger$info5;
549
+ 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', {
550
+ config
551
+ });
552
+ }).catch(error => {
553
+ var _logger$error;
554
+ 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', {
555
+ error
556
+ });
557
+ });
558
+
559
+ // use nickname/profileUrl if provided
560
+ // or set userID as nickname
561
+ if ((nickname !== user.nickname || profileUrl !== user.profileUrl) && !(isTextuallyNull(nickname) && isTextuallyNull(profileUrl))) {
562
+ var _logger$info6;
563
+ 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', {
564
+ nickname,
565
+ profileUrl
566
+ });
567
+ newSdk.updateCurrentUserInfo({
568
+ nickname: nickname || user.nickname,
569
+ profileUrl: profileUrl || user.profileUrl
570
+ }).then(namedUser => {
571
+ var _logger$info7;
572
+ 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', {
573
+ nickname,
574
+ profileUrl
575
+ });
576
+ userDispatcher({
577
+ type: UPDATE_USER_INFO,
578
+ payload: namedUser
579
+ });
580
+ }).finally(() => {
581
+ resolve();
582
+ });
583
+ } else {
584
+ resolve();
585
+ }
586
+ };
587
+ const connectCbError = e => {
588
+ var _logger$error2;
589
+ const errorMessage = getConnectSbError(e);
590
+ logger === null || logger === void 0 ? void 0 : (_logger$error2 = logger.error) === null || _logger$error2 === void 0 ? void 0 : _logger$error2.call(logger, errorMessage, {
591
+ e,
592
+ appId,
593
+ userId
594
+ });
595
+ sdkDispatcher({
596
+ type: RESET_SDK
597
+ });
598
+ userDispatcher({
599
+ type: RESET_USER
600
+ });
601
+ sdkDispatcher({
602
+ type: SDK_ERROR
603
+ });
604
+ // exit promise with error
605
+ reject(errorMessage);
606
+ };
607
+ 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}`);
608
+ newSdk.connect(userId, accessToken).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
609
+ } else {
610
+ var _logger$error3;
611
+ const errorMessage = getMissingParamError({
612
+ userId,
613
+ appId
614
+ });
615
+ sdkDispatcher({
616
+ type: SDK_ERROR
617
+ });
618
+ logger === null || logger === void 0 ? void 0 : (_logger$error3 = logger.error) === null || _logger$error3 === void 0 ? void 0 : _logger$error3.call(logger, errorMessage);
619
+ // exit promise with error
620
+ reject(errorMessage);
621
+ }
622
+ });
623
+ }
624
+
625
+ async function connect(_ref) {
626
+ let {
627
+ logger,
628
+ sdkDispatcher,
629
+ userDispatcher,
630
+ initDashboardConfigs,
631
+ userId,
632
+ appId,
633
+ customApiHost,
634
+ customWebSocketHost,
635
+ configureSession,
636
+ nickname,
637
+ profileUrl,
638
+ accessToken,
639
+ sdk
640
+ } = _ref;
641
+ await disconnectSdk({
642
+ logger,
643
+ sdkDispatcher,
644
+ userDispatcher,
645
+ sdk
646
+ });
647
+ await setUpConnection({
648
+ logger,
649
+ sdkDispatcher,
650
+ userDispatcher,
651
+ initDashboardConfigs,
652
+ userId,
653
+ appId,
654
+ customApiHost,
655
+ customWebSocketHost,
656
+ configureSession,
657
+ nickname,
658
+ profileUrl,
659
+ accessToken
660
+ });
661
+ }
662
+
663
+ function useConnect(triggerTypes, staticTypes) {
664
+ var _logger$info;
665
+ const {
666
+ userId,
667
+ appId,
668
+ accessToken
669
+ } = triggerTypes;
670
+ const {
671
+ logger,
672
+ nickname,
673
+ profileUrl,
674
+ configureSession,
675
+ customApiHost,
676
+ customWebSocketHost,
677
+ sdk,
678
+ sdkDispatcher,
679
+ userDispatcher
680
+ } = staticTypes;
681
+ 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));
682
+ const {
683
+ initDashboardConfigs
684
+ } = useUIKitConfig();
685
+ useEffect(() => {
686
+ var _logger$info2;
687
+ 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', {
688
+ userId,
689
+ appId,
690
+ accessToken
691
+ });
692
+ try {
693
+ connect({
694
+ userId,
695
+ appId,
696
+ accessToken,
697
+ logger,
698
+ nickname,
699
+ profileUrl,
700
+ configureSession,
701
+ customApiHost,
702
+ customWebSocketHost,
703
+ sdk,
704
+ sdkDispatcher,
705
+ userDispatcher,
706
+ initDashboardConfigs
707
+ });
708
+ } catch (error) {
709
+ var _logger$error;
710
+ 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);
711
+ }
712
+ }, [userId, appId, accessToken]);
713
+ const reconnect = useCallback(() => {
714
+ var _logger$info3;
715
+ 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', {
716
+ sdk
717
+ });
718
+ try {
719
+ connect({
720
+ userId,
721
+ appId,
722
+ accessToken,
723
+ logger,
724
+ nickname,
725
+ profileUrl,
726
+ configureSession,
727
+ customApiHost,
728
+ customWebSocketHost,
729
+ sdk,
730
+ sdkDispatcher,
731
+ userDispatcher,
732
+ initDashboardConfigs
733
+ });
734
+ } catch (error) {
735
+ var _logger$error2;
736
+ 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);
737
+ }
738
+ }, [sdk]);
739
+ return reconnect;
740
+ }
741
+
419
742
  // Logger, pretty much explains it
420
743
  // in SendbirdProvider
744
+
421
745
  // const [logger, setLogger] = useState(LoggerFactory(logLevel));
422
746
  const LOG_LEVELS = {
423
747
  DEBUG: 'debug',
@@ -426,20 +750,16 @@ const LOG_LEVELS = {
426
750
  INFO: 'info',
427
751
  ALL: 'all'
428
752
  };
429
-
430
753
  const colorLog = level => {
431
754
  switch (level) {
432
755
  case LOG_LEVELS.WARNING:
433
756
  return 'color: Orange';
434
-
435
757
  case LOG_LEVELS.ERROR:
436
758
  return 'color: Red';
437
-
438
759
  default:
439
760
  return 'color: Gray';
440
761
  }
441
762
  };
442
-
443
763
  const printLog = _ref => {
444
764
  let {
445
765
  level,
@@ -449,21 +769,20 @@ const printLog = _ref => {
449
769
  // eslint-disable-next-line no-console
450
770
  console.log(`%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level), description);
451
771
  };
772
+ const noop = () => {/* noop */};
452
773
  const getDefaultLogger = () => ({
453
- info: () => {},
454
- error: () => {},
455
- warning: () => {}
774
+ info: noop,
775
+ error: noop,
776
+ warning: noop
456
777
  });
457
778
  const LoggerFactory = (lvl, customInterface) => {
458
779
  const logInterface = customInterface || printLog;
459
780
  const lvlArray = Array.isArray(lvl) ? lvl : [lvl];
460
-
461
781
  const applyLog = lgLvl => (title, description) => logInterface({
462
782
  level: lgLvl,
463
783
  title,
464
784
  description
465
785
  });
466
-
467
786
  const logger = lvlArray.reduce((accumulator, currentLvl) => {
468
787
  if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {
469
788
  return _objectSpread2(_objectSpread2({}, accumulator), {}, {
@@ -472,36 +791,35 @@ const LoggerFactory = (lvl, customInterface) => {
472
791
  warning: applyLog(LOG_LEVELS.WARNING)
473
792
  });
474
793
  }
475
-
476
794
  if (currentLvl === LOG_LEVELS.INFO) {
477
795
  return _objectSpread2(_objectSpread2({}, accumulator), {}, {
478
796
  info: applyLog(LOG_LEVELS.INFO)
479
797
  });
480
798
  }
481
-
482
799
  if (currentLvl === LOG_LEVELS.ERROR) {
483
800
  return _objectSpread2(_objectSpread2({}, accumulator), {}, {
484
801
  error: applyLog(LOG_LEVELS.ERROR)
485
802
  });
486
803
  }
487
-
488
804
  if (currentLvl === LOG_LEVELS.WARNING) {
489
805
  return _objectSpread2(_objectSpread2({}, accumulator), {}, {
490
806
  warning: applyLog(LOG_LEVELS.WARNING)
491
807
  });
492
808
  }
493
-
494
809
  return _objectSpread2({}, accumulator);
495
810
  }, getDefaultLogger());
496
811
  return logger;
497
812
  };
498
813
 
814
+ // TODO: Make this to hook, useLogger
815
+
499
816
  // https://davidwalsh.name/pubsub-javascript
500
817
  // we use pubsub to sync events between multiple components(example - ChannelList, Channel)
501
818
  // for example, if customer sends a message from their custom component
502
819
  // without pubsub,we would not be able to listen to it
503
820
  // in our ChannelList or Conversation
504
- var pubSubFactory = (() => {
821
+
822
+ const pubSubFactory = () => {
505
823
  const topics = {};
506
824
  const hOP = topics.hasOwnProperty;
507
825
  return {
@@ -510,11 +828,12 @@ var pubSubFactory = (() => {
510
828
  // Create the topic's object if not yet created
511
829
  if (!hOP.call(topics, topic)) {
512
830
  topics[topic] = [];
513
- } // Add the listener to queue
514
-
831
+ }
515
832
 
516
- const index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic
833
+ // Add the listener to queue
834
+ const index = topics[topic].push(listener) - 1;
517
835
 
836
+ // Provide handle back for removal of topic
518
837
  return {
519
838
  remove: () => {
520
839
  delete topics[topic][index];
@@ -525,16 +844,17 @@ var pubSubFactory = (() => {
525
844
  // If the topic doesn't exist, or there's no listeners in queue, just leave
526
845
  if (!hOP.call(topics, topic)) {
527
846
  return;
528
- } // Cycle through topics queue, fire!
529
-
847
+ }
530
848
 
849
+ // Cycle through topics queue, fire!
531
850
  topics[topic].forEach(item => {
532
851
  item(info !== undefined ? info : {});
533
852
  });
534
853
  }
535
854
  };
536
- });
855
+ };
537
856
 
857
+ /* eslint-disable default-param-last */
538
858
  function useAppendDomNode() {
539
859
  let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
540
860
  let rootSelector = arguments.length > 1 ? arguments[1] : undefined;
@@ -548,7 +868,6 @@ function useAppendDomNode() {
548
868
  return () => {
549
869
  ids.forEach(id => {
550
870
  const target = document.getElementById(id);
551
-
552
871
  if (target) {
553
872
  root.removeChild(target);
554
873
  }
@@ -557,36 +876,183 @@ function useAppendDomNode() {
557
876
  }, []);
558
877
  }
559
878
 
560
- function Sendbird(props) {
561
- const {
562
- userId,
563
- dateLocale,
879
+ const VoiceMessageProvider = _ref => {
880
+ let {
881
+ children,
882
+ isVoiceMessageEnabled = true
883
+ } = _ref;
884
+ if (!isVoiceMessageEnabled) {
885
+ return /*#__PURE__*/React__default.createElement(VoicePlayerProvider, null, children);
886
+ }
887
+ return /*#__PURE__*/React__default.createElement(VoiceRecorderProvider, null, /*#__PURE__*/React__default.createElement(VoicePlayerProvider, null, children));
888
+ };
889
+
890
+ const TIMEOUT = 2000;
891
+
892
+ /*
893
+ * This is a factory function that returns a scheduler.
894
+ * The scheduler is a queue that calls the callback function on intervals.
895
+ * If interval is empty, the callback function is called immediately.
896
+ * If interval is not empty, the callback function is called after the interval.
897
+ */
898
+ function schedulerFactory(_ref) {
899
+ let {
900
+ logger,
901
+ timeout,
902
+ cb
903
+ } = _ref;
904
+ let queue = [];
905
+ let interval = null;
906
+ const push = channel => {
907
+ const channelPresent = queue.find(c => c.url === channel.url);
908
+ if (!channelPresent) {
909
+ queue.push(channel);
910
+ } else {
911
+ logger.info('Channel: Mark as read already in queue', {
912
+ channel
913
+ });
914
+ }
915
+ // start the interval if it's not already running
916
+ if (interval) {
917
+ return;
918
+ }
919
+ const item = queue.shift();
920
+ if (item) {
921
+ cb(item);
922
+ }
923
+ interval = setInterval(() => {
924
+ if (queue.length === 0 && interval) {
925
+ clearInterval(interval);
926
+ interval = null;
927
+ return;
928
+ }
929
+ const item = queue.shift();
930
+ if (item) {
931
+ cb(item);
932
+ }
933
+ }, timeout || TIMEOUT);
934
+ };
935
+ const clear = () => {
936
+ queue = [];
937
+ if (interval) {
938
+ clearInterval(interval);
939
+ interval = null;
940
+ }
941
+ };
942
+ return {
943
+ push,
944
+ clear,
945
+ getQueue: () => queue
946
+ };
947
+ }
948
+
949
+ // this hook accepts a callback to run component is unmounted
950
+ function useUnmount(callback) {
951
+ useLayoutEffect(() => {
952
+ return () => {
953
+ callback();
954
+ };
955
+ }, []);
956
+ }
957
+
958
+ function useMarkAsReadScheduler(_ref, _ref2) {
959
+ let {
960
+ isConnected
961
+ } = _ref;
962
+ let {
963
+ logger
964
+ } = _ref2;
965
+ const markAsReadScheduler = useMemo(() => schedulerFactory({
966
+ logger,
967
+ cb: channel => {
968
+ try {
969
+ channel.markAsRead();
970
+ } catch (error) {
971
+ logger.warning('Channel: Mark as delivered failed', {
972
+ channel,
973
+ error
974
+ });
975
+ }
976
+ }
977
+ }), []);
978
+ useEffect(() => {
979
+ // for simplicity, we clear the queue when the connection is lost
980
+ if (!isConnected) {
981
+ markAsReadScheduler.clear();
982
+ }
983
+ }, [isConnected]);
984
+ useUnmount(() => {
985
+ markAsReadScheduler.clear();
986
+ });
987
+ return markAsReadScheduler;
988
+ }
989
+
990
+ function useMarkAsDeliveredScheduler(_ref, _ref2) {
991
+ let {
992
+ isConnected
993
+ } = _ref;
994
+ let {
995
+ logger
996
+ } = _ref2;
997
+ const markAsDeliveredScheduler = useMemo(() => schedulerFactory({
998
+ logger,
999
+ cb: channel => {
1000
+ try {
1001
+ channel.markAsDelivered();
1002
+ } catch (error) {
1003
+ logger.warning('Channel: Mark as delivered failed', {
1004
+ channel,
1005
+ error
1006
+ });
1007
+ }
1008
+ }
1009
+ }), []);
1010
+ useEffect(() => {
1011
+ // for simplicity, we clear the queue when the connection is lost
1012
+ if (!isConnected) {
1013
+ markAsDeliveredScheduler.clear();
1014
+ }
1015
+ }, [isConnected]);
1016
+ useUnmount(() => {
1017
+ markAsDeliveredScheduler.clear();
1018
+ });
1019
+ return markAsDeliveredScheduler;
1020
+ }
1021
+
1022
+ const Sendbird = _ref => {
1023
+ let {
564
1024
  appId,
565
- accessToken,
566
- configureSession,
567
- // mediaQueryBreakPoint,
568
- customApiHost,
569
- customWebSocketHost,
1025
+ userId,
570
1026
  children,
571
- disableUserProfile,
572
- disableMarkAsDelivered,
573
- renderUserProfile,
574
- onUserProfileMessage,
575
- allowProfileEdit,
576
- theme,
577
- nickname,
578
- profileUrl,
579
- userListQuery,
1027
+ accessToken = '',
1028
+ customApiHost = '',
1029
+ customWebSocketHost = '',
1030
+ configureSession = null,
1031
+ theme = 'light',
580
1032
  config = {},
581
- colorSet,
582
- stringSet,
583
- imageCompression,
584
- isReactionEnabled,
585
- isMentionEnabled,
586
- isTypingIndicatorEnabledOnChannelList,
587
- isMessageReceiptStatusEnabledOnChannelList,
588
- replyType
589
- } = props;
1033
+ nickname = '',
1034
+ colorSet = null,
1035
+ stringSet = null,
1036
+ replyType = 'NONE',
1037
+ dateLocale = null,
1038
+ profileUrl = '',
1039
+ voiceRecord = {
1040
+ maxRecordingTime: VOICE_RECORDER_DEFAULT_MAX,
1041
+ minRecordingTime: VOICE_RECORDER_DEFAULT_MIN
1042
+ },
1043
+ userListQuery = null,
1044
+ imageCompression = {},
1045
+ allowProfileEdit = false,
1046
+ isMentionEnabled = false,
1047
+ isReactionEnabled = true,
1048
+ disableUserProfile = false,
1049
+ isVoiceMessageEnabled = true,
1050
+ disableMarkAsDelivered = false,
1051
+ isTypingIndicatorEnabledOnChannelList = false,
1052
+ isMessageReceiptStatusEnabledOnChannelList = false,
1053
+ renderUserProfile = null,
1054
+ onUserProfileMessage = null
1055
+ } = _ref;
590
1056
  const mediaQueryBreakPoint = false;
591
1057
  const {
592
1058
  logLevel = '',
@@ -594,39 +1060,33 @@ function Sendbird(props) {
594
1060
  isREMUnitEnabled = false
595
1061
  } = config;
596
1062
  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);
1063
+ const [pubSub] = useState(pubSubFactory());
1064
+ const [sdkStore, sdkDispatcher] = useReducer(reducer$1, initialState$1);
1065
+ const [userStore, userDispatcher] = useReducer(reducer, initialState);
600
1066
  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
1067
+ const reconnect = useConnect({
1068
+ appId,
1069
+ userId,
1070
+ accessToken
1071
+ }, {
1072
+ logger,
1073
+ nickname,
1074
+ profileUrl,
1075
+ configureSession,
1076
+ customApiHost,
1077
+ customWebSocketHost,
1078
+ sdk: sdkStore === null || sdkStore === void 0 ? void 0 : sdkStore.sdk,
1079
+ sdkDispatcher,
1080
+ userDispatcher
1081
+ });
624
1082
 
1083
+ // to create a pubsub to communicate between parent and child
625
1084
  useEffect(() => {
626
1085
  setLogger(LoggerFactory(logLevel));
627
1086
  }, [logLevel]);
628
- useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer
1087
+ useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body');
629
1088
 
1089
+ // should move to reducer
630
1090
  const [currenttheme, setCurrenttheme] = useState(theme);
631
1091
  useEffect(() => {
632
1092
  setCurrenttheme(theme);
@@ -634,41 +1094,65 @@ function Sendbird(props) {
634
1094
  useEffect(() => {
635
1095
  const body = document.querySelector('body');
636
1096
  body.classList.remove('sendbird-experimental__rem__units');
637
-
638
1097
  if (isREMUnitEnabled) {
639
1098
  body.classList.add('sendbird-experimental__rem__units');
640
1099
  }
641
- }, [isREMUnitEnabled]); // add-remove theme from body
642
-
1100
+ }, [isREMUnitEnabled]);
1101
+ // add-remove theme from body
643
1102
  useEffect(() => {
644
1103
  logger.info('Setup theme', `Theme: ${currenttheme}`);
645
-
646
1104
  try {
647
1105
  const body = document.querySelector('body');
648
1106
  body.classList.remove('sendbird-theme--light');
649
1107
  body.classList.remove('sendbird-theme--dark');
650
1108
  body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);
651
- logger.info('Finish setup theme'); // eslint-disable-next-line no-empty
1109
+ logger.info('Finish setup theme');
1110
+ // eslint-disable-next-line no-empty
652
1111
  } catch (e) {
653
1112
  logger.warning('Setup theme failed', `${e}`);
654
1113
  }
655
-
656
1114
  return () => {
657
1115
  try {
658
1116
  const body = document.querySelector('body');
659
1117
  body.classList.remove('sendbird-theme--light');
660
- body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty
1118
+ body.classList.remove('sendbird-theme--dark');
1119
+ // eslint-disable-next-line no-empty
661
1120
  } catch (_unused) {}
662
1121
  };
663
1122
  }, [currenttheme]);
664
1123
  const isOnline = useConnectionStatus(sdkStore.sdk, logger);
1124
+ const markAsReadScheduler = useMarkAsReadScheduler({
1125
+ isConnected: isOnline
1126
+ }, {
1127
+ logger
1128
+ });
1129
+ const markAsDeliveredScheduler = useMarkAsDeliveredScheduler({
1130
+ isConnected: isOnline
1131
+ }, {
1132
+ logger
1133
+ });
665
1134
  const localeStringSet = React__default.useMemo(() => {
666
1135
  if (!stringSet) {
667
1136
  return getStringSet('en');
668
1137
  }
669
-
670
1138
  return _objectSpread2(_objectSpread2({}, getStringSet('en')), stringSet);
671
1139
  }, [stringSet]);
1140
+ const uikitConfigurations = {
1141
+ // common.enable_using_default_user_profile
1142
+ disableUserProfile,
1143
+ // group_channel.enable_reactions
1144
+ isReactionEnabled,
1145
+ // group_channel.enable_mention
1146
+ isMentionEnabled: isMentionEnabled || false,
1147
+ // group_channel.enable_voice_message
1148
+ isVoiceMessageEnabled,
1149
+ // group_channel.reply_type
1150
+ replyType,
1151
+ // group_channel_list.enable_typing_indicator
1152
+ isTypingIndicatorEnabledOnChannelList,
1153
+ // group_channel_list.enable_message_receipt_status
1154
+ isMessageReceiptStatusEnabledOnChannelList
1155
+ };
672
1156
  return /*#__PURE__*/React__default.createElement(SendbirdSdkContext.Provider, {
673
1157
  value: {
674
1158
  stores: {
@@ -678,24 +1162,9 @@ function Sendbird(props) {
678
1162
  dispatchers: {
679
1163
  sdkDispatcher,
680
1164
  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
- }
1165
+ reconnect
696
1166
  },
697
- config: {
698
- disableUserProfile,
1167
+ config: _objectSpread2({
699
1168
  disableMarkAsDelivered,
700
1169
  renderUserProfile,
701
1170
  onUserProfileMessage,
@@ -712,15 +1181,36 @@ function Sendbird(props) {
712
1181
  imageCompression: _objectSpread2({
713
1182
  compressionRate: 0.7
714
1183
  }, imageCompression),
715
- isReactionEnabled,
716
- isMentionEnabled: isMentionEnabled || false,
1184
+ voiceRecord,
717
1185
  userMention: {
718
1186
  maxMentionCount: (userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount) || 10,
719
1187
  maxSuggestionCount: (userMention === null || userMention === void 0 ? void 0 : userMention.maxSuggestionCount) || 15
720
1188
  },
721
- isTypingIndicatorEnabledOnChannelList,
722
- isMessageReceiptStatusEnabledOnChannelList,
723
- replyType
1189
+ markAsReadScheduler,
1190
+ markAsDeliveredScheduler
1191
+ }, uikitConfigurations)
1192
+ }
1193
+ }, /*#__PURE__*/React__default.createElement(UIKitConfigProvider, {
1194
+ appConfigurations: {
1195
+ common: {
1196
+ enableUsingDefaultUserProfile: !uikitConfigurations.disableUserProfile
1197
+ },
1198
+ groupChannel: {
1199
+ channel: {
1200
+ enableReactions: uikitConfigurations.isReactionEnabled,
1201
+ enableMention: uikitConfigurations.isMentionEnabled,
1202
+ enableVoiceMessage: uikitConfigurations.isVoiceMessageEnabled,
1203
+ /**
1204
+ * Since dashbord UIKit Configuration's replyType is consisted of all lowercase letters,
1205
+ * we convert it from here.
1206
+ * i.e. 'THREAD' -> 'thread'
1207
+ */
1208
+ replyType: uikitConfigurations.replyType.toLowerCase()
1209
+ },
1210
+ channelList: {
1211
+ enableTypingIndicator: uikitConfigurations.isTypingIndicatorEnabledOnChannelList,
1212
+ enableMessageReceiptStatus: uikitConfigurations.isMessageReceiptStatusEnabledOnChannelList
1213
+ }
724
1214
  }
725
1215
  }
726
1216
  }, /*#__PURE__*/React__default.createElement(MediaQueryProvider, {
@@ -729,78 +1219,9 @@ function Sendbird(props) {
729
1219
  }, /*#__PURE__*/React__default.createElement(LocalizationProvider, {
730
1220
  stringSet: localeStringSet,
731
1221
  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'
1222
+ }, /*#__PURE__*/React__default.createElement(VoiceMessageProvider, {
1223
+ isVoiceMessageEnabled: isVoiceMessageEnabled
1224
+ }, children)))));
804
1225
  };
805
1226
 
806
1227
  export { Sendbird as default };