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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/App.js +284 -226
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +470 -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 +150 -129
  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 +36 -36
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -8
  41. package/ChannelList/context.js.map +1 -1
  42. package/ChannelList.js +31 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-f461d265.js → ChannelListProvider-86b6d956.js} +233 -285
  45. package/ChannelListProvider-86b6d956.js.map +1 -0
  46. package/{ChannelProvider-554e7116.js → ChannelProvider-b41fde4c.js} +627 -716
  47. package/ChannelProvider-b41fde4c.js.map +1 -0
  48. package/ChannelSettings/components/ChannelProfile.js +33 -46
  49. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  50. package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  51. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  52. package/ChannelSettings/components/EditDetailsModal.js +47 -58
  53. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  54. package/ChannelSettings/components/LeaveChannel.js +40 -46
  55. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  56. package/ChannelSettings/components/ModerationPanel.js +522 -605
  57. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  58. package/ChannelSettings/components/UserListItem.js +71 -72
  59. package/ChannelSettings/components/UserListItem.js.map +1 -1
  60. package/ChannelSettings/components/UserPanel.js +29 -32
  61. package/ChannelSettings/components/UserPanel.js.map +1 -1
  62. package/ChannelSettings/context.js +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-2b669e7e.js +44 -0
  76. package/CreateChannelProvider-2b669e7e.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-57b46f6c.js +20 -0
  90. package/{LocalizationContext-4df0cc32.js.map → LocalizationContext-57b46f6c.js.map} +1 -1
  91. package/MediaQueryContext-fbe7af77.js +87 -0
  92. package/MediaQueryContext-fbe7af77.js.map +1 -0
  93. package/MemberList-6ff1e7fa.js +401 -0
  94. package/MemberList-6ff1e7fa.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 +46 -33
  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-700cf3de.js +429 -0
  128. package/OpenChannelListProvider-700cf3de.js.map +1 -0
  129. package/OpenChannelProvider-b634e564.js +1885 -0
  130. package/OpenChannelProvider-b634e564.js.map +1 -0
  131. package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  132. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  133. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  134. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  135. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  136. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  137. package/OpenChannelSettings/components/OperatorUI.js +516 -586
  138. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  139. package/OpenChannelSettings/components/ParticipantUI.js +15 -16
  140. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  141. package/OpenChannelSettings/context.js +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-625b3778.js +36 -0
  147. package/RemoveMessageModal-625b3778.js.map +1 -0
  148. package/SendbirdProvider.js +897 -408
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +235 -217
  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 +297 -273
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +144 -113
  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-a3d3b241.js +1695 -0
  170. package/ThreadProvider-a3d3b241.js.map +1 -0
  171. package/{UserProfileContext-c58a7b86.js → UserProfileContext-29074346.js} +1 -4
  172. package/{UserProfileContext-c58a7b86.js.map → UserProfileContext-29074346.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-bdc53de4.js +169 -0
  174. package/VoiceMessageInputWrapper-bdc53de4.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-c3ea2db7.js +123 -0
  184. package/WebAudioUtils-c3ea2db7.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-498add61.js → _rollupPluginBabelHelpers-0bc76382.js} +17 -11
  186. package/_rollupPluginBabelHelpers-0bc76382.js.map +1 -0
  187. package/actionTypes-45ec82e6.js +8 -0
  188. package/actionTypes-45ec82e6.js.map +1 -0
  189. package/cjs/App.js +284 -226
  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 +149 -128
  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 +36 -36
  226. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  227. package/cjs/ChannelList/context.js +7 -8
  228. package/cjs/ChannelList/context.js.map +1 -1
  229. package/cjs/ChannelList.js +31 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-c2148b43.js → ChannelListProvider-46e379c7.js} +232 -284
  232. package/cjs/ChannelListProvider-46e379c7.js.map +1 -0
  233. package/cjs/{ChannelProvider-cf5dc7e3.js → ChannelProvider-2bfafa25.js} +626 -714
  234. package/cjs/ChannelProvider-2bfafa25.js.map +1 -0
  235. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
  236. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  237. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  238. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  239. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
  240. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  241. package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
  242. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  243. package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
  244. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  245. package/cjs/ChannelSettings/components/UserListItem.js +71 -72
  246. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  247. package/cjs/ChannelSettings/components/UserPanel.js +29 -32
  248. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  249. package/cjs/ChannelSettings/context.js +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-ef7e4c91.js +52 -0
  263. package/cjs/CreateChannelProvider-ef7e4c91.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-b42fa07d.js} +9 -11
  277. package/cjs/{LocalizationContext-2b3f310d.js.map → LocalizationContext-b42fa07d.js.map} +1 -1
  278. package/cjs/MediaQueryContext-372b55a6.js +94 -0
  279. package/cjs/MediaQueryContext-372b55a6.js.map +1 -0
  280. package/cjs/MemberList-d878307c.js +407 -0
  281. package/cjs/MemberList-d878307c.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 +46 -33
  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-d1cbe71b.js +439 -0
  315. package/cjs/OpenChannelListProvider-d1cbe71b.js.map +1 -0
  316. package/cjs/OpenChannelProvider-94eb45b4.js +1894 -0
  317. package/cjs/OpenChannelProvider-94eb45b4.js.map +1 -0
  318. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  319. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  320. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  321. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  322. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  323. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
  325. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
  327. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/context.js +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-83d3158a.js} +19 -14
  333. package/cjs/RemoveMessageModal-83d3158a.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +897 -409
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +234 -216
  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 +296 -272
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +144 -113
  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-3ff0ff63.js +1704 -0
  356. package/cjs/ThreadProvider-3ff0ff63.js.map +1 -0
  357. package/cjs/{UserProfileContext-9d60cdc4.js → UserProfileContext-c87514d3.js} +1 -4
  358. package/cjs/{UserProfileContext-9d60cdc4.js.map → UserProfileContext-c87514d3.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-6e1d03d7.js +175 -0
  360. package/cjs/VoiceMessageInputWrapper-6e1d03d7.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-de98e939.js +126 -0
  370. package/cjs/WebAudioUtils-de98e939.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-a7254c9d.js → _rollupPluginBabelHelpers-3a9d1641.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-3a9d1641.js.map +1 -0
  373. package/cjs/actionTypes-ecb5bef6.js +10 -0
  374. package/cjs/actionTypes-ecb5bef6.js.map +1 -0
  375. package/cjs/{color-89f33656.js → color-a4e73e6f.js} +13 -21
  376. package/cjs/color-a4e73e6f.js.map +1 -0
  377. package/cjs/{compareIds-ca869c2e.js → compareIds-a7029d6a.js} +5 -6
  378. package/cjs/compareIds-a7029d6a.js.map +1 -0
  379. package/cjs/{const-db71e993.js → const-3ab3e45c.js} +4 -4
  380. package/cjs/const-3ab3e45c.js.map +1 -0
  381. package/cjs/const-68cf2709.js +20 -0
  382. package/cjs/const-68cf2709.js.map +1 -0
  383. package/cjs/consts-26d4668c.js +6 -0
  384. package/cjs/consts-26d4668c.js.map +1 -0
  385. package/cjs/consts-ad8ba629.js +6 -0
  386. package/cjs/consts-ad8ba629.js.map +1 -0
  387. package/cjs/consts-bb2a67c7.js +6 -0
  388. package/cjs/consts-bb2a67c7.js.map +1 -0
  389. package/cjs/consts-f71467c8.js +41 -0
  390. package/cjs/consts-f71467c8.js.map +1 -0
  391. package/cjs/{context-2f5d47fd.js → context-b81d493d.js} +6 -5
  392. package/cjs/{context-2f5d47fd.js.map → context-b81d493d.js.map} +1 -1
  393. package/cjs/dist/index.css +970 -532
  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-0b8a1074.js +590 -0
  398. package/cjs/index-0b8a1074.js.map +1 -0
  399. package/cjs/index-1c18afa8.js +57 -0
  400. package/cjs/index-1c18afa8.js.map +1 -0
  401. package/cjs/index-3f079f3e.js +367 -0
  402. package/cjs/index-3f079f3e.js.map +1 -0
  403. package/cjs/{index-d6ef2a60.js → index-72e412f7.js} +11 -25
  404. package/cjs/index-72e412f7.js.map +1 -0
  405. package/cjs/{index-0988ab25.js → index-7ec4fe06.js} +57 -3
  406. package/cjs/index-7ec4fe06.js.map +1 -0
  407. package/cjs/{index-be9c6237.js → index-811da6ee.js} +55 -63
  408. package/cjs/index-811da6ee.js.map +1 -0
  409. package/cjs/{index-73467e1d.js → index-849f44b0.js} +2 -2
  410. package/cjs/{index-73467e1d.js.map → index-849f44b0.js.map} +1 -1
  411. package/cjs/{index-de151767.js → index-97005534.js} +1 -1
  412. package/cjs/{index-de151767.js.map → index-97005534.js.map} +1 -1
  413. package/cjs/index-9b23b5c2.js +161 -0
  414. package/cjs/index-9b23b5c2.js.map +1 -0
  415. package/cjs/{index-621e74bd.js → index-9d9e563e.js} +29 -37
  416. package/cjs/index-9d9e563e.js.map +1 -0
  417. package/cjs/index-a401f2b6.js +441 -0
  418. package/cjs/index-a401f2b6.js.map +1 -0
  419. package/cjs/{index-2c5dd48c.js → index-afada680.js} +2 -2
  420. package/cjs/{index-2c5dd48c.js.map → index-afada680.js.map} +1 -1
  421. package/cjs/index-c38404d2.js +79 -0
  422. package/cjs/index-c38404d2.js.map +1 -0
  423. package/cjs/index-cb1d7ac4.js +292 -0
  424. package/cjs/index-cb1d7ac4.js.map +1 -0
  425. package/cjs/{index-e240e852.js → index-e1d69370.js} +42 -51
  426. package/cjs/index-e1d69370.js.map +1 -0
  427. package/cjs/{index-c4d4ef49.js → index-e8b83547.js} +1 -1
  428. package/cjs/index-e8b83547.js.map +1 -0
  429. package/cjs/index-f4f6d794.js +202 -0
  430. package/cjs/index-f4f6d794.js.map +1 -0
  431. package/cjs/index.js +77 -58
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-d2876b1c.js +6 -0
  434. package/cjs/index.module-d2876b1c.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-4f30313f.js} +110 -90
  440. package/cjs/stringSet-4f30313f.js.map +1 -0
  441. package/cjs/tokenize-e944d548.js +164 -0
  442. package/cjs/tokenize-e944d548.js.map +1 -0
  443. package/cjs/topics-3226c6ee.js +18 -0
  444. package/cjs/topics-3226c6ee.js.map +1 -0
  445. package/cjs/types-31174fcc.js +17 -0
  446. package/cjs/types-31174fcc.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 +175 -199
  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 +299 -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 +208 -546
  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 +83 -83
  499. package/cjs/ui/MessageItemMenu.js.map +1 -1
  500. package/cjs/ui/MessageItemReactionMenu.js +58 -62
  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 +138 -149
  521. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  522. package/cjs/ui/OpenchannelOGMessage.js +204 -233
  523. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelThumbnailMessage.js +213 -220
  525. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelUserMessage.js +164 -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 +30 -27
  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-97c6e05a.js +77 -0
  571. package/cjs/useDirtyGetMentions-97c6e05a.js.map +1 -0
  572. package/cjs/useLongPress-bf1e8eee.js +87 -0
  573. package/cjs/useLongPress-bf1e8eee.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-1f6c6626.js → utils-146517a9.js} +1 -1
  581. package/cjs/{utils-1f6c6626.js.map → utils-146517a9.js.map} +1 -1
  582. package/cjs/utils-411a893e.js +31 -0
  583. package/cjs/utils-411a893e.js.map +1 -0
  584. package/cjs/{utils-3714e90e.js → utils-dbaff0d0.js} +3 -7
  585. package/cjs/{utils-3714e90e.js.map → utils-dbaff0d0.js.map} +1 -1
  586. package/cjs/utils-de654d3c.js +35 -0
  587. package/cjs/utils-de654d3c.js.map +1 -0
  588. package/cjs/uuid-5ab4f88b.js +15 -0
  589. package/cjs/{uuid-11d4efe8.js.map → uuid-5ab4f88b.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-2ed716e6.js} +5 -14
  593. package/{color-ff5f9069.js.map → color-2ed716e6.js.map} +1 -1
  594. package/{compareIds-9430f9d8.js → compareIds-bc881fe7.js} +5 -6
  595. package/compareIds-bc881fe7.js.map +1 -0
  596. package/{const-83764204.js → const-8daee9fc.js} +4 -4
  597. package/const-8daee9fc.js.map +1 -0
  598. package/const-e51dda0c.js +13 -0
  599. package/const-e51dda0c.js.map +1 -0
  600. package/consts-3c0ff1ed.js +27 -0
  601. package/consts-3c0ff1ed.js.map +1 -0
  602. package/consts-7aab5aff.js +4 -0
  603. package/consts-7aab5aff.js.map +1 -0
  604. package/consts-d0b365df.js +4 -0
  605. package/consts-d0b365df.js.map +1 -0
  606. package/consts-d0cfee49.js +4 -0
  607. package/consts-d0cfee49.js.map +1 -0
  608. package/context-cde5c2bf.js +13 -0
  609. package/{context-9a69e846.js.map → context-cde5c2bf.js.map} +1 -1
  610. package/dist/index.css +970 -532
  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-134314e2.js → index-0f22e96e.js} +29 -37
  615. package/index-0f22e96e.js.map +1 -0
  616. package/index-1e5cf284.js +154 -0
  617. package/index-1e5cf284.js.map +1 -0
  618. package/{index-defabece.js → index-1ec11afb.js} +57 -4
  619. package/index-1ec11afb.js.map +1 -0
  620. package/{index-d3f6dbb9.js → index-37531f98.js} +2 -2
  621. package/{index-d3f6dbb9.js.map → index-37531f98.js.map} +1 -1
  622. package/index-3f1fa3f9.js +76 -0
  623. package/index-3f1fa3f9.js.map +1 -0
  624. package/{index-44470dab.js → index-4023d1b2.js} +11 -25
  625. package/index-4023d1b2.js.map +1 -0
  626. package/index-5141f766.js +51 -0
  627. package/index-5141f766.js.map +1 -0
  628. package/{index-fc4702b7.js → index-5a1c1956.js} +55 -63
  629. package/index-5a1c1956.js.map +1 -0
  630. package/index-735cb5a3.js +360 -0
  631. package/index-735cb5a3.js.map +1 -0
  632. package/{index-e5b78039.js → index-7bff4ce0.js} +1 -1
  633. package/index-7bff4ce0.js.map +1 -0
  634. package/{index-07e060cd.js → index-865112db.js} +1 -1
  635. package/{index-07e060cd.js.map → index-865112db.js.map} +1 -1
  636. package/index-ac642e0b.js +435 -0
  637. package/index-ac642e0b.js.map +1 -0
  638. package/index-d847a382.js +283 -0
  639. package/index-d847a382.js.map +1 -0
  640. package/index-e2601165.js +544 -0
  641. package/index-e2601165.js.map +1 -0
  642. package/{index-3f26a31c.js → index-f1701c11.js} +2 -2
  643. package/{index-3f26a31c.js.map → index-f1701c11.js.map} +1 -1
  644. package/{index-1b91b116.js → index-fa140763.js} +39 -48
  645. package/index-fa140763.js.map +1 -0
  646. package/index-fa37119a.js +187 -0
  647. package/index-fa37119a.js.map +1 -0
  648. package/index.d.ts +171 -123
  649. package/index.js +77 -58
  650. package/index.js.map +1 -1
  651. package/index.module-9202ebbd.js +4 -0
  652. package/index.module-9202ebbd.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-7a8ce1ce.js} +110 -90
  659. package/stringSet-7a8ce1ce.js.map +1 -0
  660. package/tokenize-003bf3f7.js +159 -0
  661. package/tokenize-003bf3f7.js.map +1 -0
  662. package/topics-5ff88d6f.js +16 -0
  663. package/topics-5ff88d6f.js.map +1 -0
  664. package/types-bffbc5f5.js +15 -0
  665. package/types-bffbc5f5.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 +176 -200
  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 +300 -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 +211 -549
  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 +83 -83
  718. package/ui/MessageItemMenu.js.map +1 -1
  719. package/ui/MessageItemReactionMenu.js +58 -62
  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 +138 -149
  740. package/ui/OpenchannelFileMessage.js.map +1 -1
  741. package/ui/OpenchannelOGMessage.js +204 -233
  742. package/ui/OpenchannelOGMessage.js.map +1 -1
  743. package/ui/OpenchannelThumbnailMessage.js +213 -220
  744. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  745. package/ui/OpenchannelUserMessage.js +164 -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 +30 -27
  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-aac697f4.js +75 -0
  790. package/useDirtyGetMentions-aac697f4.js.map +1 -0
  791. package/useLongPress-fbab35a9.js +85 -0
  792. package/useLongPress-fbab35a9.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-8b11ff42.js → utils-0d88f863.js} +3 -7
  800. package/{utils-8b11ff42.js.map → utils-0d88f863.js.map} +1 -1
  801. package/{utils-e720e03a.js → utils-388a790e.js} +1 -1
  802. package/{utils-e720e03a.js.map → utils-388a790e.js.map} +1 -1
  803. package/utils-6f2bb331.js +31 -0
  804. package/utils-6f2bb331.js.map +1 -0
  805. package/utils-af761f03.js +29 -0
  806. package/utils-af761f03.js.map +1 -0
  807. package/uuid-1f1bbd9c.js +13 -0
  808. package/{uuid-286ed926.js.map → uuid-1f1bbd9c.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,191 +1,48 @@
1
1
  'use strict';
2
2
 
3
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-a7254c9d.js');
3
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-3a9d1641.js');
4
4
  var React = require('react');
5
- var PropTypes = require('prop-types');
6
5
  var withSendbird = require('./withSendbird.js');
6
+ var cssVars = require('css-vars-ponyfill');
7
+ var index_module = require('./index.module-d2876b1c.js');
8
+ var actionTypes = require('./actionTypes-ecb5bef6.js');
7
9
  var SendbirdChat = require('@sendbird/chat');
10
+ var uuid = require('./uuid-5ab4f88b.js');
8
11
  var openChannel = require('@sendbird/chat/openChannel');
9
12
  var groupChannel = require('@sendbird/chat/groupChannel');
10
- var actionTypes = require('./actionTypes-0e8bea91.js');
11
- var index = require('./index-21b2339d.js');
12
- var tslib_es6 = require('./tslib.es6-43854eb1.js');
13
- var cssVars = require('css-vars-ponyfill');
14
- var uuid = require('./uuid-11d4efe8.js');
15
- var LocalizationContext = require('./LocalizationContext-2b3f310d.js');
16
- var MediaQueryContext = require('./MediaQueryContext-71862be1.js');
17
- var stringSet = require('./stringSet-91b919f6.js');
13
+ var index = require('./index-0b8a1074.js');
14
+ var VoicePlayer_context = require('./index-cb1d7ac4.js');
15
+ var VoiceRecorder_context = require('./VoiceRecorder/context.js');
16
+ var LocalizationContext = require('./LocalizationContext-b42fa07d.js');
17
+ var MediaQueryContext = require('./MediaQueryContext-372b55a6.js');
18
+ var stringSet = require('./stringSet-4f30313f.js');
19
+ var consts = require('./consts-f71467c8.js');
18
20
  require('./utils/message/getOutgoingMessageState.js');
19
- require('./index-de151767.js');
21
+ require('./useSendbirdStateContext.js');
22
+ require('./index-97005534.js');
20
23
 
21
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
25
 
23
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
25
- var SendbirdChat__default = /*#__PURE__*/_interopDefaultLegacy(SendbirdChat);
26
27
  var cssVars__default = /*#__PURE__*/_interopDefaultLegacy(cssVars);
28
+ var SendbirdChat__default = /*#__PURE__*/_interopDefaultLegacy(SendbirdChat);
27
29
 
28
- const INIT_SDK = 'INIT_SDK';
29
- const SET_SDK_LOADING = 'SET_SDK_LOADING';
30
- const RESET_SDK = 'RESET_SDK';
31
- const SDK_ERROR = 'SDK_ERROR';
32
-
33
- const APP_VERSION_STRING = '3.5.0-beta.0';
34
- const disconnectSdk = _ref => {
35
- let {
36
- sdkDispatcher,
37
- userDispatcher,
38
- sdk,
39
- onDisconnect
40
- } = _ref;
41
- sdkDispatcher({
42
- type: SET_SDK_LOADING,
43
- payload: true
44
- });
45
-
46
- if (sdk && sdk.disconnect) {
47
- sdk.disconnect().then(() => {
48
- sdkDispatcher({
49
- type: RESET_SDK
50
- });
51
- userDispatcher({
52
- type: actionTypes.RESET_USER
53
- });
54
- }).finally(() => {
55
- onDisconnect();
56
- });
57
- } else {
58
- onDisconnect();
59
- }
60
- };
61
- const handleConnection = (_ref2, dispatchers) => {
62
- let {
63
- userId,
64
- appId,
65
- nickname,
66
- profileUrl,
67
- accessToken,
68
- configureSession,
69
- customApiHost,
70
- customWebSocketHost,
71
- sdk,
72
- logger
73
- } = _ref2;
74
- const {
75
- sdkDispatcher,
76
- userDispatcher
77
- } = dispatchers;
78
- disconnectSdk({
79
- sdkDispatcher,
80
- userDispatcher,
81
- sdk,
82
- logger,
83
- onDisconnect: () => {
84
- logger.info('Setup connection');
85
- let sessionHandler = null;
86
- sdkDispatcher({
87
- type: SET_SDK_LOADING,
88
- payload: true
89
- });
90
-
91
- if (userId && appId) {
92
- const params = {
93
- appId,
94
- modules: [new groupChannel.GroupChannelModule(), new openChannel.OpenChannelModule()]
95
- };
96
-
97
- if (customApiHost) {
98
- params.customApiHost = customApiHost;
99
- }
100
-
101
- if (customWebSocketHost) {
102
- params.customWebSocketHost = customWebSocketHost;
103
- }
104
-
105
- const newSdk = SendbirdChat__default["default"].init(params);
106
-
107
- if (configureSession && typeof configureSession === 'function') {
108
- sessionHandler = configureSession(newSdk);
109
- newSdk.setSessionHandler(sessionHandler);
110
- } // to check if code is released version from rollup and *not from storybook*
111
- // see rollup config file
112
-
113
-
114
- {
115
- newSdk.addExtension('sb_uikit', APP_VERSION_STRING);
116
- }
117
-
118
- const connectCbSucess = user => {
119
- sdkDispatcher({
120
- type: INIT_SDK,
121
- payload: newSdk
122
- });
123
- userDispatcher({
124
- type: actionTypes.INIT_USER,
125
- payload: user
126
- }); // use nickname/profileUrl if provided
127
- // or set userID as nickname
128
-
129
- if ((nickname !== user.nickname || profileUrl !== user.profileUrl) && !(index.isTextuallyNull(nickname) && index.isTextuallyNull(profileUrl))) {
130
- newSdk.updateCurrentUserInfo({
131
- nickname: nickname || user.nickname,
132
- profileUrl: profileUrl || user.profileUrl
133
- }).then(namedUser => {
134
- userDispatcher({
135
- type: actionTypes.UPDATE_USER_INFO,
136
- payload: namedUser
137
- });
138
- });
139
- }
140
- };
141
-
142
- const connectCbError = e => {
143
- logger.error('Connection failed', `${e}`);
144
- sdkDispatcher({
145
- type: RESET_SDK
146
- });
147
- sdkDispatcher({
148
- type: actionTypes.RESET_USER
149
- });
150
- sdkDispatcher({
151
- type: SDK_ERROR
152
- });
153
- };
154
-
155
- if (accessToken) {
156
- newSdk.connect(userId, accessToken).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
157
- } else {
158
- newSdk.connect(userId).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
159
- }
160
- } else {
161
- sdkDispatcher({
162
- type: SDK_ERROR
163
- });
164
- logger.warning('Connection failed', 'UserId or appId missing');
165
- }
166
- }
167
- });
168
- };
169
-
170
- var isEmpty = function (obj) {
30
+ const isEmpty = obj => {
171
31
  if (obj === null || obj === undefined) {
172
32
  return true;
173
33
  }
174
-
175
- for (var prop in obj) {
34
+ for (const prop in obj) {
176
35
  if (obj.hasOwnProperty(prop)) {
177
36
  return false;
178
37
  }
179
38
  }
180
-
181
39
  return JSON.stringify(obj) === JSON.stringify({});
182
40
  };
183
-
184
- var useTheme = function (overrides) {
185
- React.useLayoutEffect(function () {
41
+ const useTheme = overrides => {
42
+ React.useLayoutEffect(() => {
186
43
  if (!isEmpty(overrides)) {
187
44
  cssVars__default["default"]({
188
- variables: tslib_es6.__assign({
45
+ variables: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, {
189
46
  '--sendbird-dark-primary-500': '#4d2aa6',
190
47
  '--sendbird-dark-primary-400': '#6440C4',
191
48
  '--sendbird-dark-primary-300': '#7B53EF',
@@ -262,13 +119,20 @@ var useTheme = function (overrides) {
262
119
  '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',
263
120
  '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',
264
121
  '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)'
265
- }, overrides)
122
+ }), overrides)
266
123
  });
267
124
  }
268
125
  }, [overrides]);
269
126
  };
270
127
 
271
- var sdkInitialState = {
128
+ const SDK_ACTIONS = {
129
+ INIT_SDK: 'INIT_SDK',
130
+ SET_SDK_LOADING: 'SET_SDK_LOADING',
131
+ RESET_SDK: 'RESET_SDK',
132
+ SDK_ERROR: 'SDK_ERROR'
133
+ };
134
+
135
+ const initialState$1 = {
272
136
  initialized: false,
273
137
  loading: false,
274
138
  sdk: {},
@@ -276,112 +140,124 @@ var sdkInitialState = {
276
140
  };
277
141
 
278
142
  function reducer$1(state, action) {
279
- switch (action.type) {
280
- case SET_SDK_LOADING:
281
- return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
282
- initialized: false,
283
- loading: action.payload
284
- });
285
-
286
- case SDK_ERROR:
287
- return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
288
- initialized: false,
289
- loading: false,
290
- error: true
291
- });
292
-
293
- case INIT_SDK:
294
- return {
295
- sdk: action.payload,
296
- initialized: true,
297
- loading: false,
298
- error: false
299
- };
300
-
301
- case RESET_SDK:
302
- return sdkInitialState;
303
-
304
- default:
305
- return state;
306
- }
143
+ return index_module.K(action).with({
144
+ type: SDK_ACTIONS.SET_SDK_LOADING
145
+ }, _ref => {
146
+ let {
147
+ payload
148
+ } = _ref;
149
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
150
+ initialized: false,
151
+ loading: payload
152
+ });
153
+ }).with({
154
+ type: SDK_ACTIONS.SDK_ERROR
155
+ }, () => {
156
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
157
+ initialized: false,
158
+ loading: false,
159
+ error: true
160
+ });
161
+ }).with({
162
+ type: SDK_ACTIONS.INIT_SDK
163
+ }, _ref2 => {
164
+ let {
165
+ payload
166
+ } = _ref2;
167
+ return {
168
+ sdk: payload,
169
+ initialized: true,
170
+ loading: false,
171
+ error: false
172
+ };
173
+ }).with({
174
+ type: SDK_ACTIONS.RESET_SDK
175
+ }, () => {
176
+ return initialState$1;
177
+ }).otherwise(() => {
178
+ return state;
179
+ });
307
180
  }
308
181
 
309
- var userInitialState = {
182
+ const initialState = {
310
183
  initialized: false,
311
184
  loading: false,
312
185
  user: {}
313
186
  };
314
187
 
315
188
  function reducer(state, action) {
316
- switch (action.type) {
317
- case actionTypes.INIT_USER:
318
- return {
319
- initialized: true,
320
- loading: false,
321
- user: action.payload
322
- };
323
-
324
- case actionTypes.RESET_USER:
325
- return userInitialState;
326
-
327
- case actionTypes.UPDATE_USER_INFO:
328
- return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
329
- user: action.payload
330
- });
331
-
332
- default:
333
- return state;
334
- }
189
+ return index_module.K(action).with({
190
+ type: actionTypes.USER_ACTIONS.INIT_USER
191
+ }, _ref => {
192
+ let {
193
+ payload
194
+ } = _ref;
195
+ return {
196
+ initialized: true,
197
+ loading: false,
198
+ user: payload
199
+ };
200
+ }).with({
201
+ type: actionTypes.USER_ACTIONS.RESET_USER
202
+ }, () => {
203
+ return initialState;
204
+ }).with({
205
+ type: actionTypes.USER_ACTIONS.UPDATE_USER_INFO
206
+ }, _ref2 => {
207
+ let {
208
+ payload
209
+ } = _ref2;
210
+ return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
211
+ user: payload
212
+ });
213
+ }).otherwise(() => {
214
+ return state;
215
+ });
335
216
  }
336
217
 
337
218
  function useConnectionStatus(sdk, logger) {
338
219
  const [isOnline, setIsOnline] = React.useState(true);
339
220
  React.useEffect(() => {
340
221
  const uniqueHandlerId = uuid.uuidv4();
341
-
342
222
  try {
343
223
  logger.warning('sdk changed', uniqueHandlerId);
344
224
  const handler = new SendbirdChat.ConnectionHandler();
345
-
346
225
  handler.onDisconnected = () => {
347
226
  logger.warning('onDisconnected', {
348
227
  isOnline
349
228
  });
350
229
  };
351
-
352
230
  handler.onReconnectStarted = () => {
353
231
  setIsOnline(false);
354
232
  logger.warning('onReconnectStarted', {
355
233
  isOnline
356
234
  });
357
235
  };
358
-
359
236
  handler.onReconnectSucceeded = () => {
360
237
  setIsOnline(true);
361
238
  logger.warning('onReconnectSucceeded', {
362
239
  isOnline
363
240
  });
364
241
  };
365
-
366
242
  handler.onReconnectFailed = () => {
367
243
  sdk.reconnect();
368
244
  logger.warning('onReconnectFailed');
369
245
  };
370
-
371
- logger.info('Added ConnectionHandler', uniqueHandlerId); // workaround -> addConnectionHandler invalidates session handler
246
+ logger.info('Added ConnectionHandler', uniqueHandlerId);
247
+ // workaround -> addConnectionHandler invalidates session handler
372
248
  // provided through configureSession
373
-
374
249
  if (sdk !== null && sdk !== void 0 && sdk.addConnectionHandler) {
375
250
  sdk.addConnectionHandler(uniqueHandlerId, handler);
376
251
  }
377
- } catch (_unused) {//
252
+ } catch (_unused) {
253
+ //
378
254
  }
379
-
380
255
  return () => {
381
256
  try {
382
257
  sdk.removeConnectionHandler(uniqueHandlerId);
383
258
  logger.info('Removed ConnectionHandler', uniqueHandlerId);
384
- } catch (_unused2) {//
259
+ } catch (_unused2) {
260
+ //
385
261
  }
386
262
  };
387
263
  }, [sdk]);
@@ -389,44 +265,374 @@ function useConnectionStatus(sdk, logger) {
389
265
  const tryReconnect = () => {
390
266
  try {
391
267
  logger.warning('Try reconnecting SDK');
392
-
393
268
  if (sdk.connectionState !== 'OPEN') {
394
269
  // connection is not broken yet
395
270
  sdk.reconnect();
396
271
  }
397
- } catch (_unused3) {//
272
+ } catch (_unused3) {
273
+ //
398
274
  }
399
- }; // addEventListener version
400
-
401
-
275
+ };
276
+ // addEventListener version
402
277
  window.addEventListener('online', tryReconnect);
403
278
  return () => {
404
279
  window.removeEventListener('online', tryReconnect);
405
280
  };
406
- }, [sdk]); // add offline-class to body
281
+ }, [sdk]);
407
282
 
283
+ // add offline-class to body
408
284
  React.useEffect(() => {
409
285
  const body = document.querySelector('body');
410
-
411
286
  if (!isOnline) {
412
287
  try {
413
288
  body.classList.add('sendbird__offline');
414
289
  logger.info('Added class sendbird__offline to body');
415
- } catch (e) {//
290
+ } catch (e) {
291
+ //
416
292
  }
417
293
  } else {
418
294
  try {
419
295
  body.classList.remove('sendbird__offline');
420
296
  logger.info('Removed class sendbird__offline from body');
421
- } catch (e) {//
297
+ } catch (e) {
298
+ //
422
299
  }
423
300
  }
424
301
  }, [isOnline]);
425
302
  return isOnline;
426
303
  }
427
304
 
305
+ async function disconnectSdk(_ref) {
306
+ let {
307
+ sdkDispatcher,
308
+ userDispatcher,
309
+ sdk
310
+ } = _ref;
311
+ return new Promise(resolve => {
312
+ sdkDispatcher({
313
+ type: SDK_ACTIONS.SET_SDK_LOADING,
314
+ payload: true
315
+ });
316
+ if (sdk !== null && sdk !== void 0 && sdk.disconnect) {
317
+ sdk.disconnect().then(() => {
318
+ sdkDispatcher({
319
+ type: SDK_ACTIONS.RESET_SDK
320
+ });
321
+ userDispatcher({
322
+ type: actionTypes.USER_ACTIONS.RESET_USER
323
+ });
324
+ }).finally(() => {
325
+ resolve(true);
326
+ });
327
+ } else {
328
+ resolve(true);
329
+ }
330
+ });
331
+ }
332
+
333
+ const APP_VERSION_STRING = '3.5.0-mobile-web-1';
334
+ const {
335
+ INIT_SDK,
336
+ SET_SDK_LOADING,
337
+ RESET_SDK,
338
+ SDK_ERROR
339
+ } = SDK_ACTIONS;
340
+ const {
341
+ INIT_USER,
342
+ UPDATE_USER_INFO,
343
+ RESET_USER
344
+ } = actionTypes.USER_ACTIONS;
345
+ function getMissingParamError(_ref) {
346
+ let {
347
+ userId,
348
+ appId
349
+ } = _ref;
350
+ return `SendbirdProvider | useConnect/setupConnection/Connection failed UserId: ${userId} or appId: ${appId} missing`;
351
+ }
352
+ function getConnectSbError(error) {
353
+ return `SendbirdProvider | useConnect/setupConnection/Connection failed. ${(error === null || error === void 0 ? void 0 : error.code) || ''} ${(error === null || error === void 0 ? void 0 : error.message) || ''}`;
354
+ }
355
+ function setUpParams(_ref2) {
356
+ let {
357
+ appId,
358
+ customApiHost,
359
+ customWebSocketHost
360
+ } = _ref2;
361
+ const params = {
362
+ appId,
363
+ modules: [new groupChannel.GroupChannelModule(), new openChannel.OpenChannelModule()]
364
+ };
365
+ if (customApiHost) {
366
+ params['customApiHost'] = customApiHost;
367
+ }
368
+ if (customWebSocketHost) {
369
+ params['customWebSocketHost'] = customWebSocketHost;
370
+ }
371
+ const newSdk = SendbirdChat__default["default"].init(params);
372
+ return newSdk;
373
+ }
374
+
375
+ // Steps
376
+ // 1. Check if minimum userID/appID is provided
377
+ // 1.a. If not, throw error > !reject
378
+ // 1.b. If yes, continue
379
+ // 2. Set up params with custom host if provided
380
+ // 3. Set up session handler if provided
381
+ // 4. Set up version
382
+ // 5. Connect to Sendbird -> either using user ID or (user ID + access token)
383
+ // 6. If connected, connectCbSucess
384
+ // 6.a check if nickname is to be updated -> no > !resolve immediately
385
+ // 6.b check if nickname is to be updated -> yes > update nickname > !resolve
386
+ // 7. If not connected, connectCbError > !reject
387
+ async function setUpConnection(_ref3) {
388
+ let {
389
+ logger,
390
+ sdkDispatcher,
391
+ userDispatcher,
392
+ initDashboardConfigs,
393
+ userId,
394
+ appId,
395
+ customApiHost,
396
+ customWebSocketHost,
397
+ configureSession,
398
+ nickname,
399
+ profileUrl,
400
+ accessToken
401
+ } = _ref3;
402
+ return new Promise((resolve, reject) => {
403
+ var _logger$info;
404
+ 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', {
405
+ userId,
406
+ appId
407
+ });
408
+ sdkDispatcher({
409
+ type: SET_SDK_LOADING,
410
+ payload: true
411
+ });
412
+ if (userId && appId) {
413
+ var _logger$info3, _logger$info8;
414
+ const newSdk = setUpParams({
415
+ appId,
416
+ customApiHost,
417
+ customWebSocketHost
418
+ });
419
+ if (configureSession && typeof configureSession === 'function') {
420
+ var _logger$info2;
421
+ const sessionHandler = configureSession(newSdk);
422
+ 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);
423
+ newSdk.setSessionHandler(sessionHandler);
424
+ }
425
+ 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', {
426
+ version: APP_VERSION_STRING
427
+ });
428
+ newSdk.addExtension('sb_uikit', APP_VERSION_STRING);
429
+ const connectCbSucess = async user => {
430
+ var _logger$info4;
431
+ 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);
432
+ sdkDispatcher({
433
+ type: INIT_SDK,
434
+ payload: newSdk
435
+ });
436
+ userDispatcher({
437
+ type: INIT_USER,
438
+ payload: user
439
+ });
440
+ initDashboardConfigs(newSdk).then(config => {
441
+ var _logger$info5;
442
+ 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', {
443
+ config
444
+ });
445
+ }).catch(error => {
446
+ var _logger$error;
447
+ 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', {
448
+ error
449
+ });
450
+ });
451
+
452
+ // use nickname/profileUrl if provided
453
+ // or set userID as nickname
454
+ if ((nickname !== user.nickname || profileUrl !== user.profileUrl) && !(index.isTextuallyNull(nickname) && index.isTextuallyNull(profileUrl))) {
455
+ var _logger$info6;
456
+ 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', {
457
+ nickname,
458
+ profileUrl
459
+ });
460
+ newSdk.updateCurrentUserInfo({
461
+ nickname: nickname || user.nickname,
462
+ profileUrl: profileUrl || user.profileUrl
463
+ }).then(namedUser => {
464
+ var _logger$info7;
465
+ 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', {
466
+ nickname,
467
+ profileUrl
468
+ });
469
+ userDispatcher({
470
+ type: UPDATE_USER_INFO,
471
+ payload: namedUser
472
+ });
473
+ }).finally(() => {
474
+ resolve();
475
+ });
476
+ } else {
477
+ resolve();
478
+ }
479
+ };
480
+ const connectCbError = e => {
481
+ var _logger$error2;
482
+ const errorMessage = getConnectSbError(e);
483
+ logger === null || logger === void 0 ? void 0 : (_logger$error2 = logger.error) === null || _logger$error2 === void 0 ? void 0 : _logger$error2.call(logger, errorMessage, {
484
+ e,
485
+ appId,
486
+ userId
487
+ });
488
+ sdkDispatcher({
489
+ type: RESET_SDK
490
+ });
491
+ userDispatcher({
492
+ type: RESET_USER
493
+ });
494
+ sdkDispatcher({
495
+ type: SDK_ERROR
496
+ });
497
+ // exit promise with error
498
+ reject(errorMessage);
499
+ };
500
+ 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}`);
501
+ newSdk.connect(userId, accessToken).then(res => connectCbSucess(res)).catch(err => connectCbError(err));
502
+ } else {
503
+ var _logger$error3;
504
+ const errorMessage = getMissingParamError({
505
+ userId,
506
+ appId
507
+ });
508
+ sdkDispatcher({
509
+ type: SDK_ERROR
510
+ });
511
+ logger === null || logger === void 0 ? void 0 : (_logger$error3 = logger.error) === null || _logger$error3 === void 0 ? void 0 : _logger$error3.call(logger, errorMessage);
512
+ // exit promise with error
513
+ reject(errorMessage);
514
+ }
515
+ });
516
+ }
517
+
518
+ async function connect(_ref) {
519
+ let {
520
+ logger,
521
+ sdkDispatcher,
522
+ userDispatcher,
523
+ initDashboardConfigs,
524
+ userId,
525
+ appId,
526
+ customApiHost,
527
+ customWebSocketHost,
528
+ configureSession,
529
+ nickname,
530
+ profileUrl,
531
+ accessToken,
532
+ sdk
533
+ } = _ref;
534
+ await disconnectSdk({
535
+ logger,
536
+ sdkDispatcher,
537
+ userDispatcher,
538
+ sdk
539
+ });
540
+ await setUpConnection({
541
+ logger,
542
+ sdkDispatcher,
543
+ userDispatcher,
544
+ initDashboardConfigs,
545
+ userId,
546
+ appId,
547
+ customApiHost,
548
+ customWebSocketHost,
549
+ configureSession,
550
+ nickname,
551
+ profileUrl,
552
+ accessToken
553
+ });
554
+ }
555
+
556
+ function useConnect(triggerTypes, staticTypes) {
557
+ var _logger$info;
558
+ const {
559
+ userId,
560
+ appId,
561
+ accessToken
562
+ } = triggerTypes;
563
+ const {
564
+ logger,
565
+ nickname,
566
+ profileUrl,
567
+ configureSession,
568
+ customApiHost,
569
+ customWebSocketHost,
570
+ sdk,
571
+ sdkDispatcher,
572
+ userDispatcher,
573
+ initDashboardConfigs
574
+ } = staticTypes;
575
+ logger === null || logger === void 0 ? void 0 : (_logger$info = logger.info) === null || _logger$info === void 0 ? void 0 : _logger$info.call(logger, 'SendbirdProvider | useConnect', _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, triggerTypes), staticTypes));
576
+ React.useEffect(() => {
577
+ var _logger$info2;
578
+ 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', {
579
+ userId,
580
+ appId,
581
+ accessToken
582
+ });
583
+ try {
584
+ connect({
585
+ userId,
586
+ appId,
587
+ accessToken,
588
+ logger,
589
+ nickname,
590
+ profileUrl,
591
+ configureSession,
592
+ customApiHost,
593
+ customWebSocketHost,
594
+ sdk,
595
+ sdkDispatcher,
596
+ userDispatcher,
597
+ initDashboardConfigs
598
+ });
599
+ } catch (error) {
600
+ var _logger$error;
601
+ 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);
602
+ }
603
+ }, [userId, appId, accessToken]);
604
+ const reconnect = React.useCallback(() => {
605
+ var _logger$info3;
606
+ 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', {
607
+ sdk
608
+ });
609
+ try {
610
+ connect({
611
+ userId,
612
+ appId,
613
+ accessToken,
614
+ logger,
615
+ nickname,
616
+ profileUrl,
617
+ configureSession,
618
+ customApiHost,
619
+ customWebSocketHost,
620
+ sdk,
621
+ sdkDispatcher,
622
+ userDispatcher,
623
+ initDashboardConfigs
624
+ });
625
+ } catch (error) {
626
+ var _logger$error2;
627
+ 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);
628
+ }
629
+ }, [sdk]);
630
+ return reconnect;
631
+ }
632
+
428
633
  // Logger, pretty much explains it
429
634
  // in SendbirdProvider
635
+
430
636
  // const [logger, setLogger] = useState(LoggerFactory(logLevel));
431
637
  const LOG_LEVELS = {
432
638
  DEBUG: 'debug',
@@ -435,20 +641,16 @@ const LOG_LEVELS = {
435
641
  INFO: 'info',
436
642
  ALL: 'all'
437
643
  };
438
-
439
644
  const colorLog = level => {
440
645
  switch (level) {
441
646
  case LOG_LEVELS.WARNING:
442
647
  return 'color: Orange';
443
-
444
648
  case LOG_LEVELS.ERROR:
445
649
  return 'color: Red';
446
-
447
650
  default:
448
651
  return 'color: Gray';
449
652
  }
450
653
  };
451
-
452
654
  const printLog = _ref => {
453
655
  let {
454
656
  level,
@@ -458,21 +660,20 @@ const printLog = _ref => {
458
660
  // eslint-disable-next-line no-console
459
661
  console.log(`%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level), description);
460
662
  };
663
+ const noop = () => {/* noop */};
461
664
  const getDefaultLogger = () => ({
462
- info: () => {},
463
- error: () => {},
464
- warning: () => {}
665
+ info: noop,
666
+ error: noop,
667
+ warning: noop
465
668
  });
466
669
  const LoggerFactory = (lvl, customInterface) => {
467
670
  const logInterface = customInterface || printLog;
468
671
  const lvlArray = Array.isArray(lvl) ? lvl : [lvl];
469
-
470
672
  const applyLog = lgLvl => (title, description) => logInterface({
471
673
  level: lgLvl,
472
674
  title,
473
675
  description
474
676
  });
475
-
476
677
  const logger = lvlArray.reduce((accumulator, currentLvl) => {
477
678
  if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {
478
679
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
@@ -481,36 +682,35 @@ const LoggerFactory = (lvl, customInterface) => {
481
682
  warning: applyLog(LOG_LEVELS.WARNING)
482
683
  });
483
684
  }
484
-
485
685
  if (currentLvl === LOG_LEVELS.INFO) {
486
686
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
487
687
  info: applyLog(LOG_LEVELS.INFO)
488
688
  });
489
689
  }
490
-
491
690
  if (currentLvl === LOG_LEVELS.ERROR) {
492
691
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
493
692
  error: applyLog(LOG_LEVELS.ERROR)
494
693
  });
495
694
  }
496
-
497
695
  if (currentLvl === LOG_LEVELS.WARNING) {
498
696
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, accumulator), {}, {
499
697
  warning: applyLog(LOG_LEVELS.WARNING)
500
698
  });
501
699
  }
502
-
503
700
  return _rollupPluginBabelHelpers._objectSpread2({}, accumulator);
504
701
  }, getDefaultLogger());
505
702
  return logger;
506
703
  };
507
704
 
705
+ // TODO: Make this to hook, useLogger
706
+
508
707
  // https://davidwalsh.name/pubsub-javascript
509
708
  // we use pubsub to sync events between multiple components(example - ChannelList, Channel)
510
709
  // for example, if customer sends a message from their custom component
511
710
  // without pubsub,we would not be able to listen to it
512
711
  // in our ChannelList or Conversation
513
- var pubSubFactory = (() => {
712
+
713
+ const pubSubFactory = () => {
514
714
  const topics = {};
515
715
  const hOP = topics.hasOwnProperty;
516
716
  return {
@@ -519,11 +719,12 @@ var pubSubFactory = (() => {
519
719
  // Create the topic's object if not yet created
520
720
  if (!hOP.call(topics, topic)) {
521
721
  topics[topic] = [];
522
- } // Add the listener to queue
523
-
722
+ }
524
723
 
525
- const index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic
724
+ // Add the listener to queue
725
+ const index = topics[topic].push(listener) - 1;
526
726
 
727
+ // Provide handle back for removal of topic
527
728
  return {
528
729
  remove: () => {
529
730
  delete topics[topic][index];
@@ -534,16 +735,17 @@ var pubSubFactory = (() => {
534
735
  // If the topic doesn't exist, or there's no listeners in queue, just leave
535
736
  if (!hOP.call(topics, topic)) {
536
737
  return;
537
- } // Cycle through topics queue, fire!
538
-
738
+ }
539
739
 
740
+ // Cycle through topics queue, fire!
540
741
  topics[topic].forEach(item => {
541
742
  item(info !== undefined ? info : {});
542
743
  });
543
744
  }
544
745
  };
545
- });
746
+ };
546
747
 
748
+ /* eslint-disable default-param-last */
547
749
  function useAppendDomNode() {
548
750
  let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
549
751
  let rootSelector = arguments.length > 1 ? arguments[1] : undefined;
@@ -557,7 +759,6 @@ function useAppendDomNode() {
557
759
  return () => {
558
760
  ids.forEach(id => {
559
761
  const target = document.getElementById(id);
560
-
561
762
  if (target) {
562
763
  root.removeChild(target);
563
764
  }
@@ -566,76 +767,425 @@ function useAppendDomNode() {
566
767
  }, []);
567
768
  }
568
769
 
770
+ function snakeToCamel(obj) {
771
+ if (typeof obj !== 'object' || obj === null) {
772
+ return obj;
773
+ }
774
+ if (Array.isArray(obj)) {
775
+ return obj.map(item => snakeToCamel(item));
776
+ }
777
+ const result = {};
778
+ Object.keys(obj).forEach(key => {
779
+ const camelKey = key.replace(/_\w/g, m => m[1].toUpperCase());
780
+ result[camelKey] = snakeToCamel(obj[key]);
781
+ });
782
+ return result;
783
+ }
784
+
785
+ // @link https://gist.github.com/navix/6c25c15e0a2d3cd0e5bce999e0086fc9
786
+ /* eslint-disable @typescript-eslint/ban-types */
787
+
788
+ function isSameType(a, b) {
789
+ // we do this cause typeof can't differenciate object/ array/ null
790
+ return Object.prototype.toString.call(a) === Object.prototype.toString.call(b);
791
+ }
792
+
793
+ /**
794
+ * @param localConfigs Set directly in code level. It has higher priority than remote ones
795
+ * @param remoteConfigs Set by Feature Config setting in Dashboard
796
+ * @returns
797
+ */
798
+ function getConfigsByPriority(localConfigs, remoteConfigs) {
799
+ const prioritizedConfigs = _rollupPluginBabelHelpers._objectSpread2({}, remoteConfigs); // copy remoteConfigs to prevent mutation
800
+
801
+ Object.keys(localConfigs).forEach(key => {
802
+ if (prioritizedConfigs.hasOwnProperty(key) && isSameType(localConfigs[key], prioritizedConfigs[key])) {
803
+ prioritizedConfigs[key] = typeof localConfigs[key] === 'object'
804
+ // Recursively call getConfigsByPriority only when the value of the key is Object
805
+ ? getConfigsByPriority(localConfigs[key], prioritizedConfigs[key]) : localConfigs[key];
806
+ }
807
+ });
808
+ return prioritizedConfigs;
809
+ }
810
+
811
+ // @link: https://docs.google.com/spreadsheets/d/1-AozBMHRYOXS74vZ-7x2ptQcBL6nnM-orJWRvUgmkd4/edit#gid=0
812
+ const initialConfig = {
813
+ common: {
814
+ enableUsingDefaultUserProfile: false
815
+ },
816
+ groupChannel: {
817
+ channel: {
818
+ enableMention: false,
819
+ enableOgtag: true,
820
+ enableReactions: true,
821
+ enableTypingIndicator: true,
822
+ enableVoiceMessage: false,
823
+ input: {
824
+ camera: {
825
+ enablePhoto: true,
826
+ enableVideo: true
827
+ },
828
+ enableDocument: true,
829
+ gallery: {
830
+ enablePhoto: true,
831
+ enableVideo: true
832
+ }
833
+ },
834
+ replyType: 'quote_reply',
835
+ threadReplySelectType: 'thread'
836
+ },
837
+ channelList: {
838
+ enableMessageReceiptStatus: false,
839
+ enableTypingIndicator: false
840
+ },
841
+ setting: {
842
+ enableMessageSearch: false
843
+ }
844
+ },
845
+ openChannel: {
846
+ channel: {
847
+ enableOgtag: true,
848
+ input: {
849
+ camera: {
850
+ enablePhoto: true,
851
+ enableVideo: true
852
+ },
853
+ enableDocument: true,
854
+ gallery: {
855
+ enablePhoto: true,
856
+ enableVideo: true
857
+ }
858
+ }
859
+ }
860
+ }
861
+ };
862
+
863
+ class UIKitConfigStorageManager {
864
+ constructor(storage) {
865
+ _rollupPluginBabelHelpers._defineProperty(this, "key", void 0);
866
+ _rollupPluginBabelHelpers._defineProperty(this, "storage", void 0);
867
+ this.storage = storage;
868
+ }
869
+ init(appId) {
870
+ this.key = `sbu@${appId}.uikitConfiguration`;
871
+ return this.get();
872
+ }
873
+ async update(payload) {
874
+ const storedConfig = await this.get();
875
+ const mergedConfig = {
876
+ lastUpdatedAt: payload.lastUpdatedAt,
877
+ uikitConfigurations: getConfigsByPriority(payload === null || payload === void 0 ? void 0 : payload.uikitConfigurations, storedConfig === null || storedConfig === void 0 ? void 0 : storedConfig.uikitConfigurations)
878
+ };
879
+ await this.storage.setItem(this.key, JSON.stringify(mergedConfig));
880
+ return mergedConfig;
881
+ }
882
+ async get() {
883
+ const initialPayload = {
884
+ lastUpdatedAt: 0,
885
+ uikitConfigurations: initialConfig
886
+ };
887
+ try {
888
+ const storedConfig = await this.storage.getItem(this.key);
889
+ if (storedConfig) {
890
+ // TODO: Validation
891
+ return JSON.parse(storedConfig);
892
+ } else {
893
+ return initialPayload;
894
+ }
895
+ } catch (_unused) {
896
+ return initialPayload;
897
+ }
898
+ }
899
+ }
900
+
901
+ const UIKitConfigContext = /*#__PURE__*/React.createContext({
902
+ initDashboardConfigs: () => Promise.resolve(),
903
+ configs: initialConfig
904
+ });
905
+ const UIKitConfigProvider = _ref => {
906
+ let {
907
+ storage,
908
+ children,
909
+ localConfigs
910
+ } = _ref;
911
+ // Set by Feature Config setting in Dashboard
912
+ const [remoteConfigs, setRemoteConfigs] = React.useState(initialConfig);
913
+ const initDashboardConfigs = React.useCallback(async sdk => {
914
+ try {
915
+ if (storage == null) {
916
+ const payload = await sdk.getUIKitConfiguration();
917
+ setRemoteConfigs(snakeToCamel(payload.json.uikit_configurations));
918
+ return;
919
+ }
920
+
921
+ // Compare the sdk uikitConfig's lastUpdatedAt <-> stored one
922
+ const manager = new UIKitConfigStorageManager(storage);
923
+ const storedConfigs = await manager.init(sdk.appId);
924
+ if (sdk.appInfo.uikitConfigInfo.lastUpdatedAt === storedConfigs.lastUpdatedAt) {
925
+ setRemoteConfigs(storedConfigs.uikitConfigurations);
926
+ } else {
927
+ const payload = await sdk.getUIKitConfiguration();
928
+ const updatedPayloed = await manager.update(snakeToCamel(payload.json));
929
+ setRemoteConfigs(updatedPayloed.uikitConfigurations);
930
+ }
931
+ } catch (error) {
932
+ //
933
+ }
934
+ }, []);
935
+ const configs = getConfigsByPriority(localConfigs, remoteConfigs);
936
+ return /*#__PURE__*/React__default["default"].createElement(UIKitConfigContext.Provider, {
937
+ value: {
938
+ initDashboardConfigs,
939
+ configs
940
+ }
941
+ }, children);
942
+ };
943
+ const useUIKitConfig = () => React.useContext(UIKitConfigContext);
944
+
945
+ const VoiceMessageProvider = _ref => {
946
+ let {
947
+ children,
948
+ isVoiceMessageEnabled = true
949
+ } = _ref;
950
+ if (!isVoiceMessageEnabled) {
951
+ return /*#__PURE__*/React__default["default"].createElement(VoicePlayer_context.VoicePlayerProvider, null, children);
952
+ }
953
+ return /*#__PURE__*/React__default["default"].createElement(VoiceRecorder_context.VoiceRecorderProvider, null, /*#__PURE__*/React__default["default"].createElement(VoicePlayer_context.VoicePlayerProvider, null, children));
954
+ };
955
+
956
+ const TIMEOUT = 2000;
957
+
958
+ /*
959
+ * This is a factory function that returns a scheduler.
960
+ * The scheduler is a queue that calls the callback function on intervals.
961
+ * If interval is empty, the callback function is called immediately.
962
+ * If interval is not empty, the callback function is called after the interval.
963
+ */
964
+ function schedulerFactory(_ref) {
965
+ let {
966
+ logger,
967
+ timeout,
968
+ cb
969
+ } = _ref;
970
+ let queue = [];
971
+ let interval = null;
972
+ const push = channel => {
973
+ const channelPresent = queue.find(c => c.url === channel.url);
974
+ if (!channelPresent) {
975
+ queue.push(channel);
976
+ } else {
977
+ logger.info('Channel: Mark as read already in queue', {
978
+ channel
979
+ });
980
+ }
981
+ // start the interval if it's not already running
982
+ if (interval) {
983
+ return;
984
+ }
985
+ const item = queue.shift();
986
+ if (item) {
987
+ cb(item);
988
+ }
989
+ interval = setInterval(() => {
990
+ if (queue.length === 0 && interval) {
991
+ clearInterval(interval);
992
+ interval = null;
993
+ return;
994
+ }
995
+ const item = queue.shift();
996
+ if (item) {
997
+ cb(item);
998
+ }
999
+ }, timeout || TIMEOUT);
1000
+ };
1001
+ const clear = () => {
1002
+ queue = [];
1003
+ if (interval) {
1004
+ clearInterval(interval);
1005
+ interval = null;
1006
+ }
1007
+ };
1008
+ return {
1009
+ push,
1010
+ clear,
1011
+ getQueue: () => queue
1012
+ };
1013
+ }
1014
+
1015
+ // this hook accepts a callback to run component is unmounted
1016
+ function useUnmount(callback) {
1017
+ React.useLayoutEffect(() => {
1018
+ return () => {
1019
+ callback();
1020
+ };
1021
+ }, []);
1022
+ }
1023
+
1024
+ function useMarkAsReadScheduler(_ref, _ref2) {
1025
+ let {
1026
+ isConnected
1027
+ } = _ref;
1028
+ let {
1029
+ logger
1030
+ } = _ref2;
1031
+ const markAsReadScheduler = React.useMemo(() => schedulerFactory({
1032
+ logger,
1033
+ cb: channel => {
1034
+ try {
1035
+ channel.markAsRead();
1036
+ } catch (error) {
1037
+ logger.warning('Channel: Mark as delivered failed', {
1038
+ channel,
1039
+ error
1040
+ });
1041
+ }
1042
+ }
1043
+ }), []);
1044
+ React.useEffect(() => {
1045
+ // for simplicity, we clear the queue when the connection is lost
1046
+ if (!isConnected) {
1047
+ markAsReadScheduler.clear();
1048
+ }
1049
+ }, [isConnected]);
1050
+ useUnmount(() => {
1051
+ markAsReadScheduler.clear();
1052
+ });
1053
+ return markAsReadScheduler;
1054
+ }
1055
+
1056
+ function useMarkAsDeliveredScheduler(_ref, _ref2) {
1057
+ let {
1058
+ isConnected
1059
+ } = _ref;
1060
+ let {
1061
+ logger
1062
+ } = _ref2;
1063
+ const markAsDeliveredScheduler = React.useMemo(() => schedulerFactory({
1064
+ logger,
1065
+ cb: channel => {
1066
+ try {
1067
+ channel.markAsDelivered();
1068
+ } catch (error) {
1069
+ logger.warning('Channel: Mark as delivered failed', {
1070
+ channel,
1071
+ error
1072
+ });
1073
+ }
1074
+ }
1075
+ }), []);
1076
+ React.useEffect(() => {
1077
+ // for simplicity, we clear the queue when the connection is lost
1078
+ if (!isConnected) {
1079
+ markAsDeliveredScheduler.clear();
1080
+ }
1081
+ }, [isConnected]);
1082
+ useUnmount(() => {
1083
+ markAsDeliveredScheduler.clear();
1084
+ });
1085
+ return markAsDeliveredScheduler;
1086
+ }
1087
+
569
1088
  function Sendbird(props) {
570
1089
  const {
571
- userId,
572
- dateLocale,
573
- appId,
574
- accessToken,
575
- configureSession,
576
- // mediaQueryBreakPoint,
577
- customApiHost,
578
- customWebSocketHost,
579
- children,
580
- disableUserProfile,
581
- disableMarkAsDelivered,
582
- renderUserProfile,
583
- onUserProfileMessage,
584
- allowProfileEdit,
585
- theme,
586
- nickname,
587
- profileUrl,
588
- userListQuery,
589
- config = {},
590
- colorSet,
591
- stringSet: stringSet$1,
592
- imageCompression,
593
- isReactionEnabled,
1090
+ replyType,
594
1091
  isMentionEnabled,
1092
+ isReactionEnabled,
1093
+ disableUserProfile,
1094
+ isVoiceMessageEnabled,
595
1095
  isTypingIndicatorEnabledOnChannelList,
596
- isMessageReceiptStatusEnabledOnChannelList,
597
- replyType
1096
+ isMessageReceiptStatusEnabledOnChannelList
598
1097
  } = props;
599
- const mediaQueryBreakPoint = false;
1098
+ return /*#__PURE__*/React__default["default"].createElement(UIKitConfigProvider, {
1099
+ localConfigs: {
1100
+ common: {
1101
+ enableUsingDefaultUserProfile: !disableUserProfile
1102
+ },
1103
+ groupChannel: {
1104
+ channel: {
1105
+ enableReactions: isReactionEnabled,
1106
+ enableMention: isMentionEnabled,
1107
+ enableVoiceMessage: isVoiceMessageEnabled,
1108
+ /**
1109
+ * Since dashbord UIKit Configuration's replyType is consisted of all lowercase letters,
1110
+ * we convert it from here.
1111
+ * i.e. 'THREAD' -> 'thread'
1112
+ */
1113
+ replyType: replyType.toLowerCase()
1114
+ },
1115
+ channelList: {
1116
+ enableTypingIndicator: isTypingIndicatorEnabledOnChannelList,
1117
+ enableMessageReceiptStatus: isMessageReceiptStatusEnabledOnChannelList
1118
+ }
1119
+ }
1120
+ }
1121
+ }, /*#__PURE__*/React__default["default"].createElement(SendbirdSDK, props));
1122
+ }
1123
+ const SendbirdSDK = _ref => {
1124
+ let {
1125
+ appId,
1126
+ userId,
1127
+ children,
1128
+ accessToken = '',
1129
+ customApiHost = '',
1130
+ customWebSocketHost = '',
1131
+ configureSession = null,
1132
+ theme = 'light',
1133
+ config = {},
1134
+ nickname = '',
1135
+ colorSet = null,
1136
+ stringSet: stringSet$1 = null,
1137
+ dateLocale = null,
1138
+ profileUrl = '',
1139
+ voiceRecord = {
1140
+ maxRecordingTime: consts.VOICE_RECORDER_DEFAULT_MAX,
1141
+ minRecordingTime: consts.VOICE_RECORDER_DEFAULT_MIN
1142
+ },
1143
+ userListQuery = null,
1144
+ imageCompression = {},
1145
+ allowProfileEdit = false,
1146
+ disableMarkAsDelivered = false,
1147
+ renderUserProfile = null,
1148
+ onUserProfileMessage = null
1149
+ } = _ref;
1150
+ const breakpoint = false;
600
1151
  const {
601
1152
  logLevel = '',
602
1153
  userMention = {},
603
1154
  isREMUnitEnabled = false
604
1155
  } = config;
605
1156
  const [logger, setLogger] = React.useState(LoggerFactory(logLevel));
606
- const [pubSub, setPubSub] = React.useState();
607
- const [sdkStore, sdkDispatcher] = React.useReducer(reducer$1, sdkInitialState);
608
- const [userStore, userDispatcher] = React.useReducer(reducer, userInitialState);
1157
+ const [pubSub] = React.useState(pubSubFactory());
1158
+ const [sdkStore, sdkDispatcher] = React.useReducer(reducer$1, initialState$1);
1159
+ const [userStore, userDispatcher] = React.useReducer(reducer, initialState);
1160
+ const {
1161
+ configs,
1162
+ initDashboardConfigs
1163
+ } = useUIKitConfig();
609
1164
  useTheme(colorSet);
610
- React.useEffect(() => {
611
- setPubSub(pubSubFactory());
612
- }, []);
613
- React.useEffect(() => {
614
- logger.info('App Init'); // dispatch action
615
-
616
- handleConnection({
617
- userId,
618
- appId,
619
- accessToken,
620
- sdkStore,
621
- nickname,
622
- profileUrl,
623
- configureSession,
624
- customApiHost,
625
- customWebSocketHost,
626
- sdk: sdkStore.sdk,
627
- logger
628
- }, {
629
- sdkDispatcher,
630
- userDispatcher
631
- });
632
- }, [userId, appId, accessToken]); // to create a pubsub to communicate between parent and child
1165
+ const reconnect = useConnect({
1166
+ appId,
1167
+ userId,
1168
+ accessToken
1169
+ }, {
1170
+ logger,
1171
+ nickname,
1172
+ profileUrl,
1173
+ configureSession,
1174
+ customApiHost,
1175
+ customWebSocketHost,
1176
+ sdk: sdkStore === null || sdkStore === void 0 ? void 0 : sdkStore.sdk,
1177
+ sdkDispatcher,
1178
+ userDispatcher,
1179
+ initDashboardConfigs
1180
+ });
633
1181
 
1182
+ // to create a pubsub to communicate between parent and child
634
1183
  React.useEffect(() => {
635
1184
  setLogger(LoggerFactory(logLevel));
636
1185
  }, [logLevel]);
637
- useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer
1186
+ useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body');
638
1187
 
1188
+ // should move to reducer
639
1189
  const [currenttheme, setCurrenttheme] = React.useState(theme);
640
1190
  React.useEffect(() => {
641
1191
  setCurrenttheme(theme);
@@ -643,39 +1193,47 @@ function Sendbird(props) {
643
1193
  React.useEffect(() => {
644
1194
  const body = document.querySelector('body');
645
1195
  body.classList.remove('sendbird-experimental__rem__units');
646
-
647
1196
  if (isREMUnitEnabled) {
648
1197
  body.classList.add('sendbird-experimental__rem__units');
649
1198
  }
650
- }, [isREMUnitEnabled]); // add-remove theme from body
651
-
1199
+ }, [isREMUnitEnabled]);
1200
+ // add-remove theme from body
652
1201
  React.useEffect(() => {
653
1202
  logger.info('Setup theme', `Theme: ${currenttheme}`);
654
-
655
1203
  try {
656
1204
  const body = document.querySelector('body');
657
1205
  body.classList.remove('sendbird-theme--light');
658
1206
  body.classList.remove('sendbird-theme--dark');
659
1207
  body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);
660
- logger.info('Finish setup theme'); // eslint-disable-next-line no-empty
1208
+ logger.info('Finish setup theme');
1209
+ // eslint-disable-next-line no-empty
661
1210
  } catch (e) {
662
1211
  logger.warning('Setup theme failed', `${e}`);
663
1212
  }
664
-
665
1213
  return () => {
666
1214
  try {
667
1215
  const body = document.querySelector('body');
668
1216
  body.classList.remove('sendbird-theme--light');
669
- body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty
1217
+ body.classList.remove('sendbird-theme--dark');
1218
+ // eslint-disable-next-line no-empty
670
1219
  } catch (_unused) {}
671
1220
  };
672
1221
  }, [currenttheme]);
673
1222
  const isOnline = useConnectionStatus(sdkStore.sdk, logger);
1223
+ const markAsReadScheduler = useMarkAsReadScheduler({
1224
+ isConnected: isOnline
1225
+ }, {
1226
+ logger
1227
+ });
1228
+ const markAsDeliveredScheduler = useMarkAsDeliveredScheduler({
1229
+ isConnected: isOnline
1230
+ }, {
1231
+ logger
1232
+ });
674
1233
  const localeStringSet = React__default["default"].useMemo(() => {
675
1234
  if (!stringSet$1) {
676
1235
  return stringSet.getStringSet('en');
677
1236
  }
678
-
679
1237
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, stringSet.getStringSet('en')), stringSet$1);
680
1238
  }, [stringSet$1]);
681
1239
  return /*#__PURE__*/React__default["default"].createElement(withSendbird.SendbirdSdkContext.Provider, {
@@ -687,24 +1245,9 @@ function Sendbird(props) {
687
1245
  dispatchers: {
688
1246
  sdkDispatcher,
689
1247
  userDispatcher,
690
- reconnect: () => {
691
- handleConnection({
692
- userId,
693
- appId,
694
- accessToken,
695
- sdkStore,
696
- nickname,
697
- profileUrl,
698
- logger,
699
- sdk: sdkStore.sdk
700
- }, {
701
- sdkDispatcher,
702
- userDispatcher
703
- });
704
- }
1248
+ reconnect
705
1249
  },
706
1250
  config: {
707
- disableUserProfile,
708
1251
  disableMarkAsDelivered,
709
1252
  renderUserProfile,
710
1253
  onUserProfileMessage,
@@ -721,95 +1264,40 @@ function Sendbird(props) {
721
1264
  imageCompression: _rollupPluginBabelHelpers._objectSpread2({
722
1265
  compressionRate: 0.7
723
1266
  }, imageCompression),
724
- isReactionEnabled,
725
- isMentionEnabled: isMentionEnabled || false,
1267
+ voiceRecord,
726
1268
  userMention: {
727
1269
  maxMentionCount: (userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount) || 10,
728
1270
  maxSuggestionCount: (userMention === null || userMention === void 0 ? void 0 : userMention.maxSuggestionCount) || 15
729
1271
  },
730
- isTypingIndicatorEnabledOnChannelList,
731
- isMessageReceiptStatusEnabledOnChannelList,
732
- replyType
1272
+ markAsReadScheduler,
1273
+ markAsDeliveredScheduler,
1274
+ // From UIKitConfigProvider.localConfigs
1275
+ disableUserProfile: !configs.common.enableUsingDefaultUserProfile,
1276
+ isReactionEnabled: configs.groupChannel.channel.enableReactions,
1277
+ isMentionEnabled: configs.groupChannel.channel.enableMention,
1278
+ isVoiceMessageEnabled: configs.groupChannel.channel.enableVoiceMessage,
1279
+ replyType:
1280
+ /**
1281
+ * Since UIKitConfigContext's replyType is consisted of all lowercase letters,
1282
+ * we need to convert it into all uppercase ones like
1283
+ * - 'thread' -> 'THREAD'
1284
+ * - 'quote_reply' -> 'QUOTE_REPLY'
1285
+ */
1286
+ configs.groupChannel.channel.replyType.toUpperCase(),
1287
+ isTypingIndicatorEnabledOnChannelList: configs.groupChannel.channelList.enableTypingIndicator,
1288
+ isMessageReceiptStatusEnabledOnChannelList: configs.groupChannel.channelList.enableMessageReceiptStatus
1289
+ // TODO(Ahyoung): add more configs from UIKitConfigProvider.remoteConfigs
733
1290
  }
734
1291
  }
735
1292
  }, /*#__PURE__*/React__default["default"].createElement(MediaQueryContext.MediaQueryProvider, {
736
1293
  logger: logger,
737
- mediaQueryBreakPoint: mediaQueryBreakPoint
1294
+ breakpoint: breakpoint
738
1295
  }, /*#__PURE__*/React__default["default"].createElement(LocalizationContext.LocalizationProvider, {
739
1296
  stringSet: localeStringSet,
740
1297
  dateLocale: dateLocale
741
- }, children)));
742
- }
743
- Sendbird.propTypes = {
744
- userId: PropTypes__default["default"].string.isRequired,
745
- appId: PropTypes__default["default"].string.isRequired,
746
- accessToken: PropTypes__default["default"].string,
747
- customApiHost: PropTypes__default["default"].string,
748
- customWebSocketHost: PropTypes__default["default"].string,
749
- // mediaQueryBreakPoint: PropTypes.string,
750
- configureSession: PropTypes__default["default"].func,
751
- children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].element, PropTypes__default["default"].arrayOf(PropTypes__default["default"].element), PropTypes__default["default"].any]).isRequired,
752
- theme: PropTypes__default["default"].string,
753
- nickname: PropTypes__default["default"].string,
754
- dateLocale: PropTypes__default["default"].shape({}),
755
- profileUrl: PropTypes__default["default"].string,
756
- disableUserProfile: PropTypes__default["default"].bool,
757
- disableMarkAsDelivered: PropTypes__default["default"].bool,
758
- renderUserProfile: PropTypes__default["default"].func,
759
- onUserProfileMessage: PropTypes__default["default"].func,
760
- allowProfileEdit: PropTypes__default["default"].bool,
761
- userListQuery: PropTypes__default["default"].func,
762
- config: PropTypes__default["default"].shape({
763
- // None Error Warning Info 'All/Debug'
764
- logLevel: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)]),
765
- pubSub: PropTypes__default["default"].shape({
766
- subscribe: PropTypes__default["default"].func,
767
- publish: PropTypes__default["default"].func
768
- }),
769
- userMention: PropTypes__default["default"].shape({
770
- maxMentionCount: PropTypes__default["default"].number,
771
- maxSuggestionCount: PropTypes__default["default"].number
772
- }),
773
- isREMUnitEnabled: PropTypes__default["default"].bool
774
- }),
775
- stringSet: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
776
- colorSet: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
777
- isReactionEnabled: PropTypes__default["default"].bool,
778
- isMentionEnabled: PropTypes__default["default"].bool,
779
- imageCompression: PropTypes__default["default"].shape({
780
- compressionRate: PropTypes__default["default"].number,
781
- resizingWidth: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
782
- resizingHeight: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string])
783
- }),
784
- isTypingIndicatorEnabledOnChannelList: PropTypes__default["default"].bool,
785
- isMessageReceiptStatusEnabledOnChannelList: PropTypes__default["default"].bool,
786
- replyType: PropTypes__default["default"].oneOf(['NONE', 'QUOTE_REPLY', 'THREAD'])
787
- };
788
- Sendbird.defaultProps = {
789
- accessToken: '',
790
- customApiHost: null,
791
- customWebSocketHost: null,
792
- configureSession: null,
793
- theme: 'light',
794
- // mediaQueryBreakPoint: null,
795
- nickname: '',
796
- dateLocale: null,
797
- profileUrl: '',
798
- disableUserProfile: false,
799
- disableMarkAsDelivered: false,
800
- renderUserProfile: null,
801
- onUserProfileMessage: null,
802
- allowProfileEdit: false,
803
- userListQuery: null,
804
- config: {},
805
- stringSet: null,
806
- colorSet: null,
807
- imageCompression: {},
808
- isReactionEnabled: true,
809
- isMentionEnabled: false,
810
- isTypingIndicatorEnabledOnChannelList: false,
811
- isMessageReceiptStatusEnabledOnChannelList: false,
812
- replyType: 'NONE'
1298
+ }, /*#__PURE__*/React__default["default"].createElement(VoiceMessageProvider, {
1299
+ isVoiceMessageEnabled: configs.groupChannel.channel.enableVoiceMessage
1300
+ }, children))));
813
1301
  };
814
1302
 
815
1303
  module.exports = Sendbird;