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