@sendbird/uikit-react 3.2.6 → 3.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. package/App.js +163 -71
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +40 -0
  4. package/Channel/components/ChannelHeader.js +18 -43
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +28 -23
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +14 -14
  9. package/Channel/components/FrozenNotification.js +4 -4
  10. package/Channel/components/Message.js +49 -24
  11. package/Channel/components/Message.js.map +1 -1
  12. package/Channel/components/MessageInput.js +21 -16
  13. package/Channel/components/MessageInput.js.map +1 -1
  14. package/Channel/components/MessageList.js +30 -32
  15. package/Channel/components/MessageList.js.map +1 -1
  16. package/Channel/components/RemoveMessageModal.js +16 -16
  17. package/Channel/components/SuggestedMentionList.js +54 -48
  18. package/Channel/components/SuggestedMentionList.js.map +1 -1
  19. package/Channel/components/TypingIndicator.js +14 -14
  20. package/Channel/components/UnreadCount.js +4 -4
  21. package/Channel/context.js +13 -13
  22. package/Channel.js +35 -24
  23. package/Channel.js.map +1 -1
  24. package/ChannelList/components/AddChannel.js +14 -14
  25. package/ChannelList/components/ChannelListHeader.js +7 -7
  26. package/ChannelList/components/ChannelListUI.js +28 -27
  27. package/ChannelList/components/ChannelListUI.js.map +1 -1
  28. package/ChannelList/components/ChannelPreview.js +26 -24
  29. package/ChannelList/components/ChannelPreview.js.map +1 -1
  30. package/ChannelList/components/ChannelPreviewAction.js +32 -25
  31. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  32. package/ChannelList/context.js +8 -8
  33. package/ChannelList.js +27 -27
  34. package/{ChannelListProvider-6596e633.js → ChannelListProvider-6916e880.js} +8 -8
  35. package/{ChannelListProvider-6596e633.js.map → ChannelListProvider-6916e880.js.map} +1 -1
  36. package/{ChannelProvider-5e995fe8.js → ChannelProvider-8be62d5d.js} +90 -47
  37. package/ChannelProvider-8be62d5d.js.map +1 -0
  38. package/ChannelSettings/components/ChannelProfile.js +12 -12
  39. package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  40. package/ChannelSettings/components/EditDetailsModal.js +12 -12
  41. package/ChannelSettings/components/LeaveChannel.js +12 -12
  42. package/ChannelSettings/components/ModerationPanel.js +24 -19
  43. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  44. package/ChannelSettings/components/UserListItem.js +13 -13
  45. package/ChannelSettings/components/UserListItem.js.map +1 -1
  46. package/ChannelSettings/components/UserPanel.js +14 -14
  47. package/ChannelSettings/context.js +3 -3
  48. package/ChannelSettings.js +18 -18
  49. package/CreateChannel/components/CreateChannelUI.js +14 -14
  50. package/CreateChannel/components/InviteUsers.js +14 -14
  51. package/CreateChannel/components/SelectChannelType.js +11 -11
  52. package/CreateChannel/context.js +4 -4
  53. package/CreateChannel.js +14 -14
  54. package/{CreateChannelProvider-fc0268d6.js → CreateChannelProvider-4604e579.js} +1 -1
  55. package/{CreateChannelProvider-fc0268d6.js.map → CreateChannelProvider-4604e579.js.map} +1 -1
  56. package/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
  57. package/CreateOpenChannel/context.js +1 -1
  58. package/CreateOpenChannel.js +10 -10
  59. package/EditUserProfile/components/EditUserProfileUI.js +13 -13
  60. package/EditUserProfile.js +13 -13
  61. package/{LocalizationContext-a90809c7.js → LocalizationContext-5920dafc.js} +3 -3
  62. package/{LocalizationContext-a90809c7.js.map → LocalizationContext-5920dafc.js.map} +1 -1
  63. package/{MediaQueryContext-280871f5.js → MediaQueryContext-9c1bb79f.js} +1 -1
  64. package/{MediaQueryContext-280871f5.js.map → MediaQueryContext-9c1bb79f.js.map} +1 -1
  65. package/{MemberList-25c34d5b.js → MemberList-743b0708.js} +7 -6
  66. package/MemberList-743b0708.js.map +1 -0
  67. package/MessageSearch/components/MessageSearchUI.js +11 -11
  68. package/MessageSearch/context.js +2 -2
  69. package/MessageSearch.js +11 -11
  70. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  71. package/OpenChannel/components/OpenChannelHeader.js +13 -13
  72. package/OpenChannel/components/OpenChannelInput.js +15 -15
  73. package/OpenChannel/components/OpenChannelMessage.js +22 -22
  74. package/OpenChannel/components/OpenChannelMessageList.js +24 -24
  75. package/OpenChannel/components/OpenChannelUI.js +24 -24
  76. package/OpenChannel/context.js +9 -9
  77. package/OpenChannel.js +24 -24
  78. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  79. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  80. package/OpenChannelList/context.js +4 -4
  81. package/OpenChannelList.js +13 -13
  82. package/{OpenChannelListProvider-9b77cf19.js → OpenChannelListProvider-8f97ace6.js} +3 -3
  83. package/{OpenChannelListProvider-9b77cf19.js.map → OpenChannelListProvider-8f97ace6.js.map} +1 -1
  84. package/{OpenChannelProvider-911f3536.js → OpenChannelProvider-1438b899.js} +7 -7
  85. package/OpenChannelProvider-1438b899.js.map +1 -0
  86. package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  87. package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
  88. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  89. package/OpenChannelSettings/components/OperatorUI.js +17 -17
  90. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  91. package/OpenChannelSettings/context.js +3 -3
  92. package/OpenChannelSettings.js +18 -18
  93. package/RemoveMessageModal-0ce1f978.js +31 -0
  94. package/RemoveMessageModal-0ce1f978.js.map +1 -0
  95. package/SendbirdProvider.js +18 -14
  96. package/SendbirdProvider.js.map +1 -1
  97. package/Thread/components/ParentMessageInfo.js +360 -0
  98. package/Thread/components/ParentMessageInfo.js.map +1 -0
  99. package/Thread/components/ParentMessageInfoItem.js +197 -0
  100. package/Thread/components/ParentMessageInfoItem.js.map +1 -0
  101. package/Thread/components/ThreadHeader.js +61 -0
  102. package/Thread/components/ThreadHeader.js.map +1 -0
  103. package/Thread/components/ThreadList.js +139 -0
  104. package/Thread/components/ThreadList.js.map +1 -0
  105. package/Thread/components/ThreadListItem.js +522 -0
  106. package/Thread/components/ThreadListItem.js.map +1 -0
  107. package/Thread/components/ThreadMessageInput.js +193 -0
  108. package/Thread/components/ThreadMessageInput.js.map +1 -0
  109. package/Thread/components/ThreadUI.js +314 -0
  110. package/Thread/components/ThreadUI.js.map +1 -0
  111. package/Thread/context/types.js +30 -0
  112. package/Thread/context/types.js.map +1 -0
  113. package/Thread/context.js +18 -0
  114. package/Thread/context.js.map +1 -0
  115. package/Thread.js +112 -0
  116. package/Thread.js.map +1 -0
  117. package/ThreadProvider-4640c6fb.js +1644 -0
  118. package/ThreadProvider-4640c6fb.js.map +1 -0
  119. package/{UserProfileContext-4e70ef73.js → UserProfileContext-749db4f6.js} +1 -1
  120. package/{UserProfileContext-4e70ef73.js.map → UserProfileContext-749db4f6.js.map} +1 -1
  121. package/{_rollupPluginBabelHelpers-51c9f5c3.js → _rollupPluginBabelHelpers-636e674b.js} +1 -1
  122. package/_rollupPluginBabelHelpers-636e674b.js.map +1 -0
  123. package/{actionTypes-3dc172c6.js → actionTypes-9bf40e56.js} +1 -1
  124. package/{actionTypes-3dc172c6.js.map → actionTypes-9bf40e56.js.map} +1 -1
  125. package/cjs/App.js +163 -71
  126. package/cjs/App.js.map +1 -1
  127. package/cjs/Channel/components/ChannelHeader.js +20 -45
  128. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  129. package/cjs/Channel/components/ChannelUI.js +28 -23
  130. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  131. package/cjs/Channel/components/FileViewer.js +14 -14
  132. package/cjs/Channel/components/FrozenNotification.js +4 -4
  133. package/cjs/Channel/components/Message.js +49 -24
  134. package/cjs/Channel/components/Message.js.map +1 -1
  135. package/cjs/Channel/components/MessageInput.js +21 -16
  136. package/cjs/Channel/components/MessageInput.js.map +1 -1
  137. package/cjs/Channel/components/MessageList.js +30 -32
  138. package/cjs/Channel/components/MessageList.js.map +1 -1
  139. package/cjs/Channel/components/RemoveMessageModal.js +16 -16
  140. package/cjs/Channel/components/SuggestedMentionList.js +54 -48
  141. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  142. package/cjs/Channel/components/TypingIndicator.js +14 -14
  143. package/cjs/Channel/components/UnreadCount.js +4 -4
  144. package/cjs/Channel/context.js +14 -13
  145. package/cjs/Channel/context.js.map +1 -1
  146. package/cjs/Channel.js +35 -24
  147. package/cjs/Channel.js.map +1 -1
  148. package/cjs/ChannelList/components/AddChannel.js +14 -14
  149. package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
  150. package/cjs/ChannelList/components/ChannelListUI.js +28 -27
  151. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  152. package/cjs/ChannelList/components/ChannelPreview.js +26 -24
  153. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  154. package/cjs/ChannelList/components/ChannelPreviewAction.js +32 -25
  155. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  156. package/cjs/ChannelList/context.js +8 -8
  157. package/cjs/ChannelList.js +27 -27
  158. package/cjs/{ChannelListProvider-a61b57d9.js → ChannelListProvider-d04a3815.js} +8 -8
  159. package/cjs/{ChannelListProvider-a61b57d9.js.map → ChannelListProvider-d04a3815.js.map} +1 -1
  160. package/cjs/{ChannelProvider-4dd6e426.js → ChannelProvider-6fd99b0a.js} +90 -46
  161. package/cjs/ChannelProvider-6fd99b0a.js.map +1 -0
  162. package/cjs/ChannelSettings/components/ChannelProfile.js +12 -12
  163. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  164. package/cjs/ChannelSettings/components/EditDetailsModal.js +12 -12
  165. package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
  166. package/cjs/ChannelSettings/components/ModerationPanel.js +24 -19
  167. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  168. package/cjs/ChannelSettings/components/UserListItem.js +13 -13
  169. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  170. package/cjs/ChannelSettings/components/UserPanel.js +14 -14
  171. package/cjs/ChannelSettings/context.js +3 -3
  172. package/cjs/ChannelSettings.js +18 -18
  173. package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
  174. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  175. package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
  176. package/cjs/CreateChannel/context.js +4 -4
  177. package/cjs/CreateChannel.js +14 -14
  178. package/cjs/{CreateChannelProvider-29af9e9c.js → CreateChannelProvider-a096e766.js} +1 -1
  179. package/cjs/{CreateChannelProvider-29af9e9c.js.map → CreateChannelProvider-a096e766.js.map} +1 -1
  180. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
  181. package/cjs/CreateOpenChannel/context.js +1 -1
  182. package/cjs/CreateOpenChannel.js +10 -10
  183. package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
  184. package/cjs/EditUserProfile.js +13 -13
  185. package/cjs/{LocalizationContext-3c85c616.js → LocalizationContext-9c61d945.js} +3 -3
  186. package/cjs/{LocalizationContext-3c85c616.js.map → LocalizationContext-9c61d945.js.map} +1 -1
  187. package/cjs/{MediaQueryContext-c8f557d1.js → MediaQueryContext-19197e12.js} +1 -1
  188. package/cjs/{MediaQueryContext-c8f557d1.js.map → MediaQueryContext-19197e12.js.map} +1 -1
  189. package/cjs/{MemberList-0861d5f8.js → MemberList-82cd8a28.js} +7 -6
  190. package/cjs/MemberList-82cd8a28.js.map +1 -0
  191. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  192. package/cjs/MessageSearch/context.js +2 -2
  193. package/cjs/MessageSearch.js +11 -11
  194. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  195. package/cjs/OpenChannel/components/OpenChannelHeader.js +13 -13
  196. package/cjs/OpenChannel/components/OpenChannelInput.js +15 -15
  197. package/cjs/OpenChannel/components/OpenChannelMessage.js +22 -22
  198. package/cjs/OpenChannel/components/OpenChannelMessageList.js +24 -24
  199. package/cjs/OpenChannel/components/OpenChannelUI.js +24 -24
  200. package/cjs/OpenChannel/context.js +9 -9
  201. package/cjs/OpenChannel.js +24 -24
  202. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  203. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  204. package/cjs/OpenChannelList/context.js +4 -4
  205. package/cjs/OpenChannelList.js +13 -13
  206. package/cjs/{OpenChannelListProvider-934729b4.js → OpenChannelListProvider-3998074a.js} +3 -3
  207. package/cjs/{OpenChannelListProvider-934729b4.js.map → OpenChannelListProvider-3998074a.js.map} +1 -1
  208. package/cjs/{OpenChannelProvider-c05255cc.js → OpenChannelProvider-7bd784c2.js} +7 -7
  209. package/cjs/OpenChannelProvider-7bd784c2.js.map +1 -0
  210. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  211. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
  212. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  213. package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
  214. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  215. package/cjs/OpenChannelSettings/context.js +3 -3
  216. package/cjs/OpenChannelSettings.js +18 -18
  217. package/cjs/RemoveMessageModal-81ca8cf7.js +37 -0
  218. package/cjs/RemoveMessageModal-81ca8cf7.js.map +1 -0
  219. package/cjs/SendbirdProvider.js +18 -14
  220. package/cjs/SendbirdProvider.js.map +1 -1
  221. package/cjs/Thread/components/ParentMessageInfo.js +366 -0
  222. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -0
  223. package/cjs/Thread/components/ParentMessageInfoItem.js +203 -0
  224. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -0
  225. package/cjs/Thread/components/ThreadHeader.js +67 -0
  226. package/cjs/Thread/components/ThreadHeader.js.map +1 -0
  227. package/cjs/Thread/components/ThreadList.js +145 -0
  228. package/cjs/Thread/components/ThreadList.js.map +1 -0
  229. package/cjs/Thread/components/ThreadListItem.js +528 -0
  230. package/cjs/Thread/components/ThreadListItem.js.map +1 -0
  231. package/cjs/Thread/components/ThreadMessageInput.js +199 -0
  232. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -0
  233. package/cjs/Thread/components/ThreadUI.js +320 -0
  234. package/cjs/Thread/components/ThreadUI.js.map +1 -0
  235. package/cjs/Thread/context/types.js +32 -0
  236. package/cjs/Thread/context/types.js.map +1 -0
  237. package/cjs/Thread/context.js +27 -0
  238. package/cjs/Thread/context.js.map +1 -0
  239. package/cjs/Thread.js +118 -0
  240. package/cjs/Thread.js.map +1 -0
  241. package/cjs/ThreadProvider-acb1ddb1.js +1653 -0
  242. package/cjs/ThreadProvider-acb1ddb1.js.map +1 -0
  243. package/cjs/{UserProfileContext-c16bb529.js → UserProfileContext-637e5f40.js} +1 -1
  244. package/cjs/{UserProfileContext-c16bb529.js.map → UserProfileContext-637e5f40.js.map} +1 -1
  245. package/cjs/{_rollupPluginBabelHelpers-23c0e950.js → _rollupPluginBabelHelpers-20ad87c1.js} +1 -1
  246. package/cjs/_rollupPluginBabelHelpers-20ad87c1.js.map +1 -0
  247. package/cjs/{actionTypes-d80c4fb6.js → actionTypes-7ba29408.js} +1 -1
  248. package/cjs/{actionTypes-d80c4fb6.js.map → actionTypes-7ba29408.js.map} +1 -1
  249. package/cjs/{color-03c2ecf2.js → color-da1f2f09.js} +1 -1
  250. package/cjs/{color-03c2ecf2.js.map → color-da1f2f09.js.map} +1 -1
  251. package/cjs/{compareIds-c670ae57.js → compareIds-a7a8f34b.js} +1 -1
  252. package/cjs/{compareIds-c670ae57.js.map → compareIds-a7a8f34b.js.map} +1 -1
  253. package/cjs/{const-fe6f002d.js → const-5f50d896.js} +1 -1
  254. package/cjs/{const-fe6f002d.js.map → const-5f50d896.js.map} +1 -1
  255. package/cjs/{const-0095baf3.js → const-c5332da3.js} +7 -1
  256. package/cjs/const-c5332da3.js.map +1 -0
  257. package/cjs/{context-0fb617f1.js → context-3063790f.js} +2 -2
  258. package/cjs/{context-0fb617f1.js.map → context-3063790f.js.map} +1 -1
  259. package/cjs/dist/index.css +1044 -191
  260. package/cjs/dist/index.css.map +1 -1
  261. package/cjs/{index-1218eab2.js → index-0418c426.js} +7 -7
  262. package/cjs/index-0418c426.js.map +1 -0
  263. package/cjs/{index-1042f264.js → index-566a2b96.js} +2 -2
  264. package/cjs/{index-1042f264.js.map → index-566a2b96.js.map} +1 -1
  265. package/cjs/{index-fab17fef.js → index-568f12d2.js} +4 -4
  266. package/cjs/{index-fab17fef.js.map → index-568f12d2.js.map} +1 -1
  267. package/cjs/{index-0854d1ea.js → index-5d551bb1.js} +2 -2
  268. package/cjs/{index-0854d1ea.js.map → index-5d551bb1.js.map} +1 -1
  269. package/cjs/{index-1b69f7d2.js → index-6a32eea2.js} +1 -1
  270. package/cjs/{index-1b69f7d2.js.map → index-6a32eea2.js.map} +1 -1
  271. package/cjs/{index-b1a4b6f0.js → index-795706d2.js} +2 -2
  272. package/cjs/{index-b1a4b6f0.js.map → index-795706d2.js.map} +1 -1
  273. package/cjs/{index-039012c4.js → index-94a96213.js} +4 -4
  274. package/cjs/{index-039012c4.js.map → index-94a96213.js.map} +1 -1
  275. package/cjs/{index-475ae379.js → index-99943583.js} +5 -5
  276. package/cjs/{index-475ae379.js.map → index-99943583.js.map} +1 -1
  277. package/cjs/{index-97e2a887.js → index-ac7ef6d8.js} +9 -9
  278. package/cjs/index-ac7ef6d8.js.map +1 -0
  279. package/cjs/{index-607cb4ff.js → index-b82af371.js} +1 -1
  280. package/cjs/{index-607cb4ff.js.map → index-b82af371.js.map} +1 -1
  281. package/cjs/{index-27c6a6bc.js → index-d0d7cb2e.js} +2 -2
  282. package/cjs/{index-27c6a6bc.js.map → index-d0d7cb2e.js.map} +1 -1
  283. package/cjs/index.js +82 -68
  284. package/cjs/index.js.map +1 -1
  285. package/cjs/sendbirdSelectors.js +2 -2
  286. package/cjs/{stringSet-da2fe019.js → stringSet-520996cb.js} +17 -3
  287. package/cjs/stringSet-520996cb.js.map +1 -0
  288. package/cjs/{topics-fd2124f5.js → topics-e5734128.js} +1 -1
  289. package/cjs/{topics-fd2124f5.js.map → topics-e5734128.js.map} +1 -1
  290. package/cjs/tslib.es6-29ba80a6.js +97 -0
  291. package/cjs/{tslib.es6-bce345aa.js.map → tslib.es6-29ba80a6.js.map} +1 -1
  292. package/cjs/ui/Accordion.js +3 -3
  293. package/cjs/ui/AccordionGroup.js +2 -2
  294. package/cjs/ui/AdminMessage.js +3 -3
  295. package/cjs/ui/AdminMessage.js.map +1 -1
  296. package/cjs/ui/Avatar.js +2 -2
  297. package/cjs/ui/Badge.js +5 -5
  298. package/cjs/ui/BottomSheet.js +1 -1
  299. package/cjs/ui/Button.js +3 -3
  300. package/cjs/ui/ChannelAvatar.js +3 -3
  301. package/cjs/ui/ConnectionStatus.js +4 -4
  302. package/cjs/ui/ContextMenu.js +15 -11
  303. package/cjs/ui/ContextMenu.js.map +1 -1
  304. package/cjs/ui/DateSeparator.js +4 -4
  305. package/cjs/ui/EmojiReactions.js +26 -14
  306. package/cjs/ui/EmojiReactions.js.map +1 -1
  307. package/cjs/ui/FileMessageItemBody.js +11 -8
  308. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  309. package/cjs/ui/FileViewer.js +8 -8
  310. package/cjs/ui/IconButton.js +1 -1
  311. package/cjs/ui/ImageRenderer.js +1 -1
  312. package/cjs/ui/Input.js +2 -2
  313. package/cjs/ui/Label.js +2 -2
  314. package/cjs/ui/LinkLabel.js +2 -2
  315. package/cjs/ui/Loader.js +1 -1
  316. package/cjs/ui/MentionLabel.js +15 -14
  317. package/cjs/ui/MentionLabel.js.map +1 -1
  318. package/cjs/ui/MessageContent.js +104 -56
  319. package/cjs/ui/MessageContent.js.map +1 -1
  320. package/cjs/ui/MessageInput.js +17 -13
  321. package/cjs/ui/MessageInput.js.map +1 -1
  322. package/cjs/ui/MessageItemMenu.js +40 -16
  323. package/cjs/ui/MessageItemMenu.js.map +1 -1
  324. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  325. package/cjs/ui/MessageSearchFileItem.js +9 -9
  326. package/cjs/ui/MessageSearchItem.js +9 -9
  327. package/cjs/ui/MessageStatus.js +11 -11
  328. package/cjs/ui/MessageStatus.js.map +1 -1
  329. package/cjs/ui/Modal.js +7 -7
  330. package/cjs/ui/Modal.js.map +1 -1
  331. package/cjs/ui/OGMessageItemBody.js +11 -13
  332. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  333. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  334. package/cjs/ui/OpenChannelAvatar.js +6 -6
  335. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  336. package/cjs/ui/OpenchannelFileMessage.js +21 -19
  337. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  338. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  339. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  340. package/cjs/ui/OpenchannelThumbnailMessage.js +17 -17
  341. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  342. package/cjs/ui/OpenchannelUserMessage.js +16 -16
  343. package/cjs/ui/PlaceHolder.js +6 -6
  344. package/cjs/ui/QuoteMessage.js +34 -16
  345. package/cjs/ui/QuoteMessage.js.map +1 -1
  346. package/cjs/ui/QuoteMessageInput.js +6 -6
  347. package/cjs/ui/ReactionBadge.js +3 -3
  348. package/cjs/ui/ReactionButton.js +1 -1
  349. package/cjs/ui/SortByRow.js +2 -2
  350. package/cjs/ui/SortByRow.js.map +1 -1
  351. package/cjs/ui/TextButton.js +2 -2
  352. package/cjs/ui/TextMessageItemBody.js +11 -11
  353. package/cjs/ui/ThreadReplies.js +82 -0
  354. package/cjs/ui/ThreadReplies.js.map +1 -0
  355. package/cjs/ui/ThumbnailMessageItemBody.js +14 -12
  356. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  357. package/cjs/ui/Tooltip.js +3 -3
  358. package/cjs/ui/TooltipWrapper.js +1 -1
  359. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  360. package/cjs/ui/UserListItem.js +17 -17
  361. package/cjs/ui/UserListItem.js.map +1 -1
  362. package/cjs/ui/UserProfile.js +14 -12
  363. package/cjs/ui/UserProfile.js.map +1 -1
  364. package/cjs/ui/Word.js +11 -11
  365. package/cjs/{useLongPress-698416e4.js → useLongPress-9c1d0d7e.js} +3 -3
  366. package/cjs/{useLongPress-698416e4.js.map → useLongPress-9c1d0d7e.js.map} +1 -1
  367. package/cjs/useSendbirdStateContext.js +1 -1
  368. package/cjs/utils-88f4aff4.js +32 -0
  369. package/cjs/utils-88f4aff4.js.map +1 -0
  370. package/cjs/{utils-0d32641e.js → utils-c137a361.js} +1 -1
  371. package/cjs/{utils-0d32641e.js.map → utils-c137a361.js.map} +1 -1
  372. package/cjs/{utils-557bb5d2.js → utils-ee8b0f03.js} +1 -1
  373. package/cjs/{utils-557bb5d2.js.map → utils-ee8b0f03.js.map} +1 -1
  374. package/cjs/{utils-8a793976.js → utils-f215ace1.js} +1 -1
  375. package/cjs/{utils-8a793976.js.map → utils-f215ace1.js.map} +1 -1
  376. package/cjs/{uuid-2a459d4b.js → uuid-ed079835.js} +1 -1
  377. package/cjs/{uuid-2a459d4b.js.map → uuid-ed079835.js.map} +1 -1
  378. package/cjs/withSendbird.js +1 -1
  379. package/{color-e740c17f.js → color-253fcdc4.js} +1 -1
  380. package/{color-e740c17f.js.map → color-253fcdc4.js.map} +1 -1
  381. package/{compareIds-e84966df.js → compareIds-5494c074.js} +1 -1
  382. package/{compareIds-e84966df.js.map → compareIds-5494c074.js.map} +1 -1
  383. package/{const-3c9680d2.js → const-2aae43f2.js} +1 -1
  384. package/{const-3c9680d2.js.map → const-2aae43f2.js.map} +1 -1
  385. package/const-8bb8cc10.js +14 -0
  386. package/const-8bb8cc10.js.map +1 -0
  387. package/{context-3adaf9b3.js → context-8c660706.js} +2 -2
  388. package/{context-3adaf9b3.js.map → context-8c660706.js.map} +1 -1
  389. package/dist/index.css +1044 -191
  390. package/dist/index.css.map +1 -1
  391. package/{index-ca3ba8a0.js → index-1a59aaa9.js} +7 -7
  392. package/index-1a59aaa9.js.map +1 -0
  393. package/{index-fb4777a9.js → index-358a6180.js} +4 -4
  394. package/{index-fb4777a9.js.map → index-358a6180.js.map} +1 -1
  395. package/{index-64740116.js → index-4a23e6ff.js} +2 -2
  396. package/{index-64740116.js.map → index-4a23e6ff.js.map} +1 -1
  397. package/{index-041c94d3.js → index-4f51d577.js} +2 -2
  398. package/{index-041c94d3.js.map → index-4f51d577.js.map} +1 -1
  399. package/{index-0fa44537.js → index-8b94db1e.js} +2 -2
  400. package/{index-0fa44537.js.map → index-8b94db1e.js.map} +1 -1
  401. package/{index-cfdf3b6d.js → index-a6dbcbe1.js} +2 -2
  402. package/{index-cfdf3b6d.js.map → index-a6dbcbe1.js.map} +1 -1
  403. package/{index-8e0d1cc6.js → index-b5b56cb7.js} +1 -1
  404. package/{index-8e0d1cc6.js.map → index-b5b56cb7.js.map} +1 -1
  405. package/{index-8ce0c4b6.js → index-b932b49d.js} +5 -5
  406. package/{index-8ce0c4b6.js.map → index-b932b49d.js.map} +1 -1
  407. package/{index-873ffa33.js → index-cb6348b0.js} +4 -4
  408. package/{index-873ffa33.js.map → index-cb6348b0.js.map} +1 -1
  409. package/{index-8d74bd4b.js → index-d2dd3ae2.js} +1 -1
  410. package/{index-8d74bd4b.js.map → index-d2dd3ae2.js.map} +1 -1
  411. package/{index-05c36d6c.js → index-d5896de7.js} +9 -9
  412. package/index-d5896de7.js.map +1 -0
  413. package/index.d.ts +224 -13
  414. package/index.js +82 -68
  415. package/index.js.map +1 -1
  416. package/package.json +1 -1
  417. package/sendbirdSelectors.js +2 -2
  418. package/{stringSet-e413411d.js → stringSet-f0e25f08.js} +17 -3
  419. package/stringSet-f0e25f08.js.map +1 -0
  420. package/{topics-b81e5b9b.js → topics-d2e15fe6.js} +1 -1
  421. package/{topics-b81e5b9b.js.map → topics-d2e15fe6.js.map} +1 -1
  422. package/tslib.es6-279bc71d.js +92 -0
  423. package/{tslib.es6-e592f653.js.map → tslib.es6-279bc71d.js.map} +1 -1
  424. package/ui/Accordion.js +3 -3
  425. package/ui/AccordionGroup.js +2 -2
  426. package/ui/AdminMessage.js +3 -3
  427. package/ui/AdminMessage.js.map +1 -1
  428. package/ui/Avatar.js +2 -2
  429. package/ui/Badge.js +5 -5
  430. package/ui/BottomSheet.js +1 -1
  431. package/ui/Button.js +3 -3
  432. package/ui/ChannelAvatar.js +3 -3
  433. package/ui/ConnectionStatus.js +4 -4
  434. package/ui/ContextMenu.js +15 -11
  435. package/ui/ContextMenu.js.map +1 -1
  436. package/ui/DateSeparator.js +4 -4
  437. package/ui/EmojiReactions.js +26 -14
  438. package/ui/EmojiReactions.js.map +1 -1
  439. package/ui/FileMessageItemBody.js +11 -8
  440. package/ui/FileMessageItemBody.js.map +1 -1
  441. package/ui/FileViewer.js +8 -8
  442. package/ui/IconButton.js +1 -1
  443. package/ui/ImageRenderer.js +1 -1
  444. package/ui/Input.js +2 -2
  445. package/ui/Label.js +2 -2
  446. package/ui/LinkLabel.js +2 -2
  447. package/ui/Loader.js +1 -1
  448. package/ui/MentionLabel.js +15 -14
  449. package/ui/MentionLabel.js.map +1 -1
  450. package/ui/MessageContent.js +104 -56
  451. package/ui/MessageContent.js.map +1 -1
  452. package/ui/MessageInput.js +17 -13
  453. package/ui/MessageInput.js.map +1 -1
  454. package/ui/MessageItemMenu.js +40 -16
  455. package/ui/MessageItemMenu.js.map +1 -1
  456. package/ui/MessageItemReactionMenu.js +5 -5
  457. package/ui/MessageSearchFileItem.js +9 -9
  458. package/ui/MessageSearchItem.js +9 -9
  459. package/ui/MessageStatus.js +11 -11
  460. package/ui/MessageStatus.js.map +1 -1
  461. package/ui/Modal.js +7 -7
  462. package/ui/Modal.js.map +1 -1
  463. package/ui/OGMessageItemBody.js +11 -13
  464. package/ui/OGMessageItemBody.js.map +1 -1
  465. package/ui/OpenChannelAdminMessage.js +3 -3
  466. package/ui/OpenChannelAvatar.js +6 -6
  467. package/ui/OpenchannelConversationHeader.js +6 -6
  468. package/ui/OpenchannelFileMessage.js +21 -19
  469. package/ui/OpenchannelFileMessage.js.map +1 -1
  470. package/ui/OpenchannelOGMessage.js +18 -18
  471. package/ui/OpenchannelOGMessage.js.map +1 -1
  472. package/ui/OpenchannelThumbnailMessage.js +17 -17
  473. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  474. package/ui/OpenchannelUserMessage.js +16 -16
  475. package/ui/PlaceHolder.js +6 -6
  476. package/ui/QuoteMessage.js +34 -16
  477. package/ui/QuoteMessage.js.map +1 -1
  478. package/ui/QuoteMessageInput.js +6 -6
  479. package/ui/ReactionBadge.js +3 -3
  480. package/ui/ReactionButton.js +1 -1
  481. package/ui/SortByRow.js +2 -2
  482. package/ui/SortByRow.js.map +1 -1
  483. package/ui/TextButton.js +2 -2
  484. package/ui/TextMessageItemBody.js +11 -11
  485. package/ui/ThreadReplies.js +76 -0
  486. package/ui/ThreadReplies.js.map +1 -0
  487. package/ui/ThumbnailMessageItemBody.js +14 -12
  488. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  489. package/ui/Tooltip.js +3 -3
  490. package/ui/TooltipWrapper.js +1 -1
  491. package/ui/UnknownMessageItemBody.js +6 -6
  492. package/ui/UserListItem.js +17 -17
  493. package/ui/UserListItem.js.map +1 -1
  494. package/ui/UserProfile.js +14 -12
  495. package/ui/UserProfile.js.map +1 -1
  496. package/ui/Word.js +11 -11
  497. package/{useLongPress-8cda7590.js → useLongPress-53f7929a.js} +3 -3
  498. package/{useLongPress-8cda7590.js.map → useLongPress-53f7929a.js.map} +1 -1
  499. package/useSendbirdStateContext.js +1 -1
  500. package/{utils-f95bafde.js → utils-128b3636.js} +1 -1
  501. package/{utils-f95bafde.js.map → utils-128b3636.js.map} +1 -1
  502. package/{utils-c2438081.js → utils-5a4995e3.js} +1 -1
  503. package/{utils-c2438081.js.map → utils-5a4995e3.js.map} +1 -1
  504. package/utils-ad636dfd.js +30 -0
  505. package/utils-ad636dfd.js.map +1 -0
  506. package/{utils-90964f90.js → utils-afd23bb8.js} +1 -1
  507. package/{utils-90964f90.js.map → utils-afd23bb8.js.map} +1 -1
  508. package/{uuid-c41826f3.js → uuid-636df95b.js} +1 -1
  509. package/{uuid-c41826f3.js.map → uuid-636df95b.js.map} +1 -1
  510. package/withSendbird.js +1 -1
  511. package/ChannelProvider-5e995fe8.js.map +0 -1
  512. package/MemberList-25c34d5b.js.map +0 -1
  513. package/OpenChannelProvider-911f3536.js.map +0 -1
  514. package/_rollupPluginBabelHelpers-51c9f5c3.js.map +0 -1
  515. package/cjs/ChannelProvider-4dd6e426.js.map +0 -1
  516. package/cjs/MemberList-0861d5f8.js.map +0 -1
  517. package/cjs/OpenChannelProvider-c05255cc.js.map +0 -1
  518. package/cjs/_rollupPluginBabelHelpers-23c0e950.js.map +0 -1
  519. package/cjs/const-0095baf3.js.map +0 -1
  520. package/cjs/index-1218eab2.js.map +0 -1
  521. package/cjs/index-97e2a887.js.map +0 -1
  522. package/cjs/stringSet-da2fe019.js.map +0 -1
  523. package/cjs/tslib.es6-bce345aa.js +0 -57
  524. package/const-630a8129.js +0 -8
  525. package/const-630a8129.js.map +0 -1
  526. package/index-05c36d6c.js.map +0 -1
  527. package/index-ca3ba8a0.js.map +0 -1
  528. package/stringSet-e413411d.js.map +0 -1
  529. package/tslib.es6-e592f653.js +0 -54
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var LocalizationContext = require('../../LocalizationContext-3c85c616.js');
4
+ var LocalizationContext = require('../../LocalizationContext-9c61d945.js');
5
5
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
6
- var ui_Label = require('../../index-b1a4b6f0.js');
6
+ var ui_Label = require('../../index-795706d2.js');
7
7
  var ui_IconButton = require('../../ui/IconButton.js');
8
8
  var ui_Avatar = require('../../ui/Avatar.js');
9
- require('../../stringSet-da2fe019.js');
10
- require('../../index-607cb4ff.js');
9
+ require('../../stringSet-520996cb.js');
10
+ require('../../index-b82af371.js');
11
11
  require('../../withSendbird.js');
12
- require('../../_rollupPluginBabelHelpers-23c0e950.js');
12
+ require('../../_rollupPluginBabelHelpers-20ad87c1.js');
13
13
  require('prop-types');
14
- require('../../tslib.es6-bce345aa.js');
14
+ require('../../tslib.es6-29ba80a6.js');
15
15
  require('../../ui/ImageRenderer.js');
16
16
  require('../../ui/Icon.js');
17
- require('../../uuid-2a459d4b.js');
17
+ require('../../uuid-ed079835.js');
18
18
 
19
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
20
 
@@ -5,67 +5,67 @@ var ChannelList_components_ChannelListHeader = require('./ChannelListHeader.js')
5
5
  var ChannelList_components_AddChannel = require('./AddChannel.js');
6
6
  var ChannelList_components_ChannelPreview = require('./ChannelPreview.js');
7
7
  var ChannelList_components_ChannelPreviewAction = require('./ChannelPreviewAction.js');
8
- var ChannelList_context = require('../../ChannelListProvider-a61b57d9.js');
8
+ var ChannelList_context = require('../../ChannelListProvider-d04a3815.js');
9
9
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
10
10
  var EditUserProfile = require('../../EditUserProfile.js');
11
- var ui_PlaceHolder = require('../../index-039012c4.js');
12
- require('../../LocalizationContext-3c85c616.js');
13
- require('../../stringSet-da2fe019.js');
14
- require('../../index-607cb4ff.js');
15
- require('../../index-b1a4b6f0.js');
11
+ var ui_PlaceHolder = require('../../index-94a96213.js');
12
+ require('../../LocalizationContext-9c61d945.js');
13
+ require('../../stringSet-520996cb.js');
14
+ require('../../index-b82af371.js');
15
+ require('../../index-795706d2.js');
16
16
  require('prop-types');
17
17
  require('../../ui/IconButton.js');
18
- require('../../tslib.es6-bce345aa.js');
18
+ require('../../tslib.es6-29ba80a6.js');
19
19
  require('../../ui/Avatar.js');
20
20
  require('../../ui/ImageRenderer.js');
21
21
  require('../../ui/Icon.js');
22
- require('../../uuid-2a459d4b.js');
22
+ require('../../uuid-ed079835.js');
23
23
  require('../../CreateChannel.js');
24
24
  require('../../CreateChannel/components/CreateChannelUI.js');
25
- require('../../CreateChannelProvider-29af9e9c.js');
25
+ require('../../CreateChannelProvider-a096e766.js');
26
26
  require('../../sendbirdSelectors.js');
27
- require('../../topics-fd2124f5.js');
28
- require('../../utils-557bb5d2.js');
27
+ require('../../topics-e5734128.js');
28
+ require('../../utils-ee8b0f03.js');
29
29
  require('../../CreateChannel/components/InviteUsers.js');
30
30
  require('../../ui/Modal.js');
31
31
  require('react-dom');
32
- require('../../index-1b69f7d2.js');
32
+ require('../../index-6a32eea2.js');
33
33
  require('../../ui/Button.js');
34
- require('../../MediaQueryContext-c8f557d1.js');
34
+ require('../../MediaQueryContext-19197e12.js');
35
35
  require('../../ui/UserListItem.js');
36
- require('../../UserProfileContext-c16bb529.js');
36
+ require('../../UserProfileContext-637e5f40.js');
37
37
  require('../../ui/MutedAvatarOverlay.js');
38
38
  require('../../ui/Checkbox.js');
39
39
  require('../../ui/UserProfile.js');
40
40
  require('../../withSendbird.js');
41
- require('../../_rollupPluginBabelHelpers-23c0e950.js');
41
+ require('../../_rollupPluginBabelHelpers-20ad87c1.js');
42
42
  require('../../ui/ContextMenu.js');
43
43
  require('../../ui/SortByRow.js');
44
- require('../../index-1218eab2.js');
44
+ require('../../index-0418c426.js');
45
45
  require('../../utils/message/getOutgoingMessageState.js');
46
46
  require('../../CreateChannel/components/SelectChannelType.js');
47
47
  require('../../ui/ChannelAvatar.js');
48
- require('../../utils-0d32641e.js');
48
+ require('../../utils-c137a361.js');
49
49
  require('../../ui/Badge.js');
50
- require('../../index-fab17fef.js');
51
- require('../../index-0854d1ea.js');
52
- require('../../index-1042f264.js');
50
+ require('../../index-568f12d2.js');
51
+ require('../../index-5d551bb1.js');
52
+ require('../../index-566a2b96.js');
53
53
  require('../../ui/MentionUserLabel.js');
54
54
  require('../../ui/TextButton.js');
55
- require('../../color-03c2ecf2.js');
55
+ require('../../color-da1f2f09.js');
56
56
  require('../../Channel/components/TypingIndicator.js');
57
57
  require('@sendbird/chat/groupChannel');
58
- require('../../ChannelProvider-4dd6e426.js');
59
- require('../../compareIds-c670ae57.js');
60
- require('../../const-0095baf3.js');
58
+ require('../../ChannelProvider-6fd99b0a.js');
59
+ require('../../compareIds-a7a8f34b.js');
60
+ require('../../const-c5332da3.js');
61
61
  require('@sendbird/chat/message');
62
62
  require('../../ui/ReactionButton.js');
63
63
  require('../../ui/MessageStatus.js');
64
64
  require('../../ui/Loader.js');
65
- require('../../useLongPress-698416e4.js');
66
- require('../../index-475ae379.js');
65
+ require('../../useLongPress-9c1d0d7e.js');
66
+ require('../../index-99943583.js');
67
67
  require('../../ui/Input.js');
68
- require('../../actionTypes-d80c4fb6.js');
68
+ require('../../actionTypes-7ba29408.js');
69
69
 
70
70
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
71
71
 
@@ -255,6 +255,7 @@ var ChannelListUI = function (props) {
255
255
  }),
256
256
  renderChannelAction: function () {
257
257
  return /*#__PURE__*/React__default["default"].createElement(ChannelList_components_ChannelPreviewAction, {
258
+ channel: channel,
258
259
  disabled: !isOnline,
259
260
  onLeaveChannel: function () {
260
261
  return onLeaveChannel(channel, null);
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelListUI.js","sources":["../../../../src/smart-components/ChannelList/components/utils.js","../../../../src/smart-components/ChannelList/components/ChannelListUI/index.tsx"],"sourcesContent":["export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n if (sdk?.createApplicationUserListQuery) {\n const params = sdk?.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n }\n return null;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const isAboutSame = (a, b, px) => (Math.abs(a - b) <= px);\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.groupChannel.createChannel(params).then((groupChannel) => {\n resolve(groupChannel);\n }).catch((err) => { reject(err); });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.groupChannel.createChannel(params).then((groupChannel) => {\n resolve(groupChannel);\n }).catch((err) => { resolve(err); });\n});\n\nexport default createChannel;\n","import './channel-list-ui.scss';\n\nimport React, { useState, useEffect } from 'react';\nimport type { GroupChannel, Member, SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport type { User } from '@sendbird/chat';\n\nimport ChannelListHeader from '../ChannelListHeader';\nimport AddChannel from '../AddChannel';\nimport ChannelPreview from '../ChannelPreview';\nimport ChannelPreviewAction from '../ChannelPreviewAction';\nimport { useChannelListContext } from '../../context/ChannelListProvider';\nimport * as channelListActions from '../../dux/actionTypes';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport EditUserProfile from '../../../EditUserProfile';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport { isAboutSame } from '../utils';\n\nconst DELIVERY_RECIPT = 'delivery_receipt';\n\ninterface RenderChannelPreviewProps {\n channel: GroupChannel;\n onLeaveChannel(\n channel: GroupChannel,\n onLeaveChannelCb?: (c: GroupChannel) => void,\n );\n}\n\ninterface RenderUserProfileProps {\n user: Member | User;\n currentUserId: string;\n close(): void;\n}\n\nexport interface ChannelListUIProps {\n renderChannelPreview?: (props: RenderChannelPreviewProps) => React.ReactElement;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactElement;\n renderHeader?: (props: void) => React.ReactElement;\n renderPlaceHolderError?: (props: void) => React.ReactElement;\n renderPlaceHolderLoading?: (props: void) => React.ReactElement;\n renderPlaceHolderEmptyList?: (props: void) => React.ReactElement;\n}\n\nconst ChannelListUI: React.FC<ChannelListUIProps> = (props: ChannelListUIProps) => {\n const {\n renderHeader,\n renderChannelPreview,\n renderPlaceHolderError,\n renderPlaceHolderLoading,\n renderPlaceHolderEmptyList,\n } = props;\n\n const [showProfileEdit, setShowProfileEdit] = useState(false);\n\n const {\n onThemeChange,\n allowProfileEdit,\n allChannels,\n loading,\n currentChannel,\n channelListDispatcher,\n channelSource,\n typingChannels,\n initialized,\n } = useChannelListContext();\n\n const state = useSendbirdStateContext();\n\n const sdkStore = state?.stores?.sdkStore;\n const config = state?.config;\n const {\n logger = null,\n isOnline = false,\n disableMarkAsDelivered = false,\n } = config;\n\n const sdk = sdkStore?.sdk as SendbirdGroupChat;\n const sdkError = sdkStore?.error;\n\n const [channelsTomarkAsRead, setChannelsToMarkAsRead] = useState([]);\n useEffect(() => {\n // https://stackoverflow.com/a/60907638\n let isMounted = true;\n if (channelsTomarkAsRead?.length > 0 && !disableMarkAsDelivered) {\n channelsTomarkAsRead?.forEach((c, idx) => {\n // Plan-based rate limits - minimum limit is 5 requests per second\n setTimeout(() => {\n if (isMounted) {\n c?.markAsDelivered();\n }\n }, 2000 * idx);\n });\n }\n return () => {\n isMounted = false;\n }\n }, [channelsTomarkAsRead]);\n\n return (\n <>\n <div className=\"sendbird-channel-list__header\">\n <ChannelListHeader\n renderHeader={renderHeader}\n onEdit={() => {\n if (allowProfileEdit) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={allowProfileEdit}\n renderIconButton={() => (\n <AddChannel />\n )}\n />\n </div>\n {\n showProfileEdit && (\n <EditUserProfile\n onThemeChange={onThemeChange}\n onCancel={() => { setShowProfileEdit(false); }}\n onEditProfile={() => {\n setShowProfileEdit(false);\n }}\n />\n )\n }\n <div\n className=\"sendbird-channel-list__body\"\n onScroll={(e) => {\n const target = e?.target as HTMLDivElement;\n const fetchMore = isAboutSame(target.clientHeight + target.scrollTop, target.scrollHeight, 10);\n if (fetchMore && channelSource?.hasNext) {\n logger.info('ChannelList: Fetching more channels');\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_START,\n payload: null,\n });\n channelSource.next().then((channelList) => {\n logger.info('ChannelList: Fetching channels successful', channelList);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_SUCCESS,\n payload: channelList,\n });\n const canSetMarkAsDelivered = sdk?.appInfo?.premiumFeatureList\n ?.find((feature) => (feature === DELIVERY_RECIPT));\n\n if (canSetMarkAsDelivered) {\n logger.info('ChannelList: Marking all channels as read');\n // eslint-disable-next-line no-unused-expressions\n setChannelsToMarkAsRead(channelList);\n }\n }).catch((err) => {\n logger.info('ChannelList: Fetching channels failed', err);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_FAILURE,\n payload: err,\n });\n });\n }\n }}\n >\n {\n (sdkError && !loading) && (\n (renderPlaceHolderError && typeof renderPlaceHolderError === 'function') ? (\n renderPlaceHolderError?.()\n ) : (\n <PlaceHolder type={PlaceHolderTypes.WRONG} />\n )\n )\n }\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n <div>\n {\n allChannels && allChannels.map((channel, idx) => {\n // todo: Refactor and move this inside channel - preview\n const onLeaveChannel = (c, cb) => {\n logger.info('ChannelList: Leaving channel', c);\n c.leave()\n .then((res) => {\n logger.info('ChannelList: Leaving channel success', res);\n if (cb && typeof cb === 'function') {\n cb(res, null);\n }\n channelListDispatcher({\n type: channelListActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel?.url,\n });\n })\n .catch((err) => {\n logger.error('ChannelList: Leaving channel failed', err);\n if (cb && typeof cb === 'function') {\n cb(null, err);\n }\n });\n };\n\n const onClick = () => {\n if (!isOnline) { return; }\n logger.info('ChannelList: Clicked on channel:', channel);\n channelListDispatcher({\n type: channelListActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n };\n\n return (\n (renderChannelPreview)\n ? (\n // eslint-disable-next-line\n <div key={channel?.url} onClick={onClick}>\n {renderChannelPreview({ channel, onLeaveChannel })}\n </div>\n )\n : (\n <ChannelPreview\n key={channel?.url}\n tabIndex={idx}\n onClick={onClick}\n channel={channel}\n onLeaveChannel={() => onLeaveChannel(channel, null)}\n isActive={channel?.url === currentChannel?.url}\n isTyping={typingChannels?.some(({ url }) => url === channel?.url)}\n renderChannelAction={(() => (\n <ChannelPreviewAction\n disabled={!isOnline}\n onLeaveChannel={() => onLeaveChannel(channel, null)}\n />\n ))}\n />\n )\n );\n })\n }\n </div>\n {\n (!initialized && loading) && (\n (renderPlaceHolderLoading && typeof renderPlaceHolderLoading === 'function') ? (\n renderPlaceHolderLoading?.()\n ) : (\n <PlaceHolder type={PlaceHolderTypes.LOADING} />\n )\n )\n }\n {\n (initialized && allChannels?.length === 0) && (\n (renderPlaceHolderEmptyList && typeof renderPlaceHolderEmptyList === 'function') ? (\n renderPlaceHolderEmptyList?.()\n ) : (\n <PlaceHolder type={PlaceHolderTypes.NO_CHANNELS} />\n )\n )\n }\n </div>\n </>\n );\n}\n\nexport default ChannelListUI;\n"],"names":["isAboutSame","a","b","px","Math","abs","DELIVERY_RECIPT","ChannelListUI","props","renderHeader","renderChannelPreview","renderPlaceHolderError","renderPlaceHolderLoading","renderPlaceHolderEmptyList","_b","useState","showProfileEdit","setShowProfileEdit","_c","useChannelListContext","onThemeChange","allowProfileEdit","allChannels","loading","currentChannel","channelListDispatcher","channelSource","typingChannels","initialized","state","useSendbirdStateContext","sdkStore","_a","stores","config","_d","logger","_e","isOnline","_f","disableMarkAsDelivered","sdk","sdkError","error","_g","channelsTomarkAsRead","setChannelsToMarkAsRead","useEffect","isMounted","length","forEach","c","idx","setTimeout","markAsDelivered","React","ChannelListHeader","AddChannel","e","target","fetchMore","clientHeight","scrollTop","scrollHeight","hasNext","info","type","channelListActions","payload","next","then","channelList","canSetMarkAsDelivered","appInfo","premiumFeatureList","find","feature","catch","err","PlaceHolder","PlaceHolderTypes","WRONG","map","channel","onLeaveChannel","cb","leave","res","url","onClick","ChannelPreview","some","ChannelPreviewAction","LOADING","NO_CHANNELS"],"mappings":"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"}
1
+ {"version":3,"file":"ChannelListUI.js","sources":["../../../../src/smart-components/ChannelList/components/utils.js","../../../../src/smart-components/ChannelList/components/ChannelListUI/index.tsx"],"sourcesContent":["export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n if (sdk?.createApplicationUserListQuery) {\n const params = sdk?.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n }\n return null;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const isAboutSame = (a, b, px) => (Math.abs(a - b) <= px);\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.groupChannel.createChannel(params).then((groupChannel) => {\n resolve(groupChannel);\n }).catch((err) => { reject(err); });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.groupChannel.createChannel(params).then((groupChannel) => {\n resolve(groupChannel);\n }).catch((err) => { resolve(err); });\n});\n\nexport default createChannel;\n","import './channel-list-ui.scss';\n\nimport React, { useState, useEffect } from 'react';\nimport type { GroupChannel, Member, SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport type { User } from '@sendbird/chat';\n\nimport ChannelListHeader from '../ChannelListHeader';\nimport AddChannel from '../AddChannel';\nimport ChannelPreview from '../ChannelPreview';\nimport ChannelPreviewAction from '../ChannelPreviewAction';\nimport { useChannelListContext } from '../../context/ChannelListProvider';\nimport * as channelListActions from '../../dux/actionTypes';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport EditUserProfile from '../../../EditUserProfile';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport { isAboutSame } from '../utils';\n\nconst DELIVERY_RECIPT = 'delivery_receipt';\n\ninterface RenderChannelPreviewProps {\n channel: GroupChannel;\n onLeaveChannel(\n channel: GroupChannel,\n onLeaveChannelCb?: (c: GroupChannel) => void,\n );\n}\n\ninterface RenderUserProfileProps {\n user: Member | User;\n currentUserId: string;\n close(): void;\n}\n\nexport interface ChannelListUIProps {\n renderChannelPreview?: (props: RenderChannelPreviewProps) => React.ReactElement;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactElement;\n renderHeader?: (props: void) => React.ReactElement;\n renderPlaceHolderError?: (props: void) => React.ReactElement;\n renderPlaceHolderLoading?: (props: void) => React.ReactElement;\n renderPlaceHolderEmptyList?: (props: void) => React.ReactElement;\n}\n\nconst ChannelListUI: React.FC<ChannelListUIProps> = (props: ChannelListUIProps) => {\n const {\n renderHeader,\n renderChannelPreview,\n renderPlaceHolderError,\n renderPlaceHolderLoading,\n renderPlaceHolderEmptyList,\n } = props;\n\n const [showProfileEdit, setShowProfileEdit] = useState(false);\n\n const {\n onThemeChange,\n allowProfileEdit,\n allChannels,\n loading,\n currentChannel,\n channelListDispatcher,\n channelSource,\n typingChannels,\n initialized,\n } = useChannelListContext();\n\n const state = useSendbirdStateContext();\n\n const sdkStore = state?.stores?.sdkStore;\n const config = state?.config;\n const {\n logger = null,\n isOnline = false,\n disableMarkAsDelivered = false,\n } = config;\n\n const sdk = sdkStore?.sdk as SendbirdGroupChat;\n const sdkError = sdkStore?.error;\n\n const [channelsTomarkAsRead, setChannelsToMarkAsRead] = useState([]);\n useEffect(() => {\n // https://stackoverflow.com/a/60907638\n let isMounted = true;\n if (channelsTomarkAsRead?.length > 0 && !disableMarkAsDelivered) {\n channelsTomarkAsRead?.forEach((c, idx) => {\n // Plan-based rate limits - minimum limit is 5 requests per second\n setTimeout(() => {\n if (isMounted) {\n c?.markAsDelivered();\n }\n }, 2000 * idx);\n });\n }\n return () => {\n isMounted = false;\n }\n }, [channelsTomarkAsRead]);\n\n return (\n <>\n <div className=\"sendbird-channel-list__header\">\n <ChannelListHeader\n renderHeader={renderHeader}\n onEdit={() => {\n if (allowProfileEdit) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={allowProfileEdit}\n renderIconButton={() => (\n <AddChannel />\n )}\n />\n </div>\n {\n showProfileEdit && (\n <EditUserProfile\n onThemeChange={onThemeChange}\n onCancel={() => { setShowProfileEdit(false); }}\n onEditProfile={() => {\n setShowProfileEdit(false);\n }}\n />\n )\n }\n <div\n className=\"sendbird-channel-list__body\"\n onScroll={(e) => {\n const target = e?.target as HTMLDivElement;\n const fetchMore = isAboutSame(target.clientHeight + target.scrollTop, target.scrollHeight, 10);\n if (fetchMore && channelSource?.hasNext) {\n logger.info('ChannelList: Fetching more channels');\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_START,\n payload: null,\n });\n channelSource.next().then((channelList) => {\n logger.info('ChannelList: Fetching channels successful', channelList);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_SUCCESS,\n payload: channelList,\n });\n const canSetMarkAsDelivered = sdk?.appInfo?.premiumFeatureList\n ?.find((feature) => (feature === DELIVERY_RECIPT));\n\n if (canSetMarkAsDelivered) {\n logger.info('ChannelList: Marking all channels as read');\n // eslint-disable-next-line no-unused-expressions\n setChannelsToMarkAsRead(channelList);\n }\n }).catch((err) => {\n logger.info('ChannelList: Fetching channels failed', err);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_FAILURE,\n payload: err,\n });\n });\n }\n }}\n >\n {\n (sdkError && !loading) && (\n (renderPlaceHolderError && typeof renderPlaceHolderError === 'function') ? (\n renderPlaceHolderError?.()\n ) : (\n <PlaceHolder type={PlaceHolderTypes.WRONG} />\n )\n )\n }\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n <div>\n {\n allChannels && allChannels.map((channel, idx) => {\n // todo: Refactor and move this inside channel - preview\n const onLeaveChannel = (c, cb) => {\n logger.info('ChannelList: Leaving channel', c);\n c.leave()\n .then((res) => {\n logger.info('ChannelList: Leaving channel success', res);\n if (cb && typeof cb === 'function') {\n cb(res, null);\n }\n channelListDispatcher({\n type: channelListActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel?.url,\n });\n })\n .catch((err) => {\n logger.error('ChannelList: Leaving channel failed', err);\n if (cb && typeof cb === 'function') {\n cb(null, err);\n }\n });\n };\n\n const onClick = () => {\n if (!isOnline) { return; }\n logger.info('ChannelList: Clicked on channel:', channel);\n channelListDispatcher({\n type: channelListActions.SET_CURRENT_CHANNEL,\n payload: channel,\n });\n };\n\n return (\n (renderChannelPreview)\n ? (\n // eslint-disable-next-line\n <div key={channel?.url} onClick={onClick}>\n {renderChannelPreview({ channel, onLeaveChannel })}\n </div>\n )\n : (\n <ChannelPreview\n key={channel?.url}\n tabIndex={idx}\n onClick={onClick}\n channel={channel}\n onLeaveChannel={() => onLeaveChannel(channel, null)}\n isActive={channel?.url === currentChannel?.url}\n isTyping={typingChannels?.some(({ url }) => url === channel?.url)}\n renderChannelAction={(() => (\n <ChannelPreviewAction\n channel={channel}\n disabled={!isOnline}\n onLeaveChannel={() => onLeaveChannel(channel, null)}\n />\n ))}\n />\n )\n );\n })\n }\n </div>\n {\n (!initialized && loading) && (\n (renderPlaceHolderLoading && typeof renderPlaceHolderLoading === 'function') ? (\n renderPlaceHolderLoading?.()\n ) : (\n <PlaceHolder type={PlaceHolderTypes.LOADING} />\n )\n )\n }\n {\n (initialized && allChannels?.length === 0) && (\n (renderPlaceHolderEmptyList && typeof renderPlaceHolderEmptyList === 'function') ? (\n renderPlaceHolderEmptyList?.()\n ) : (\n <PlaceHolder type={PlaceHolderTypes.NO_CHANNELS} />\n )\n )\n }\n </div>\n </>\n );\n}\n\nexport default ChannelListUI;\n"],"names":["isAboutSame","a","b","px","Math","abs","DELIVERY_RECIPT","ChannelListUI","props","renderHeader","renderChannelPreview","renderPlaceHolderError","renderPlaceHolderLoading","renderPlaceHolderEmptyList","_b","useState","showProfileEdit","setShowProfileEdit","_c","useChannelListContext","onThemeChange","allowProfileEdit","allChannels","loading","currentChannel","channelListDispatcher","channelSource","typingChannels","initialized","state","useSendbirdStateContext","sdkStore","_a","stores","config","_d","logger","_e","isOnline","_f","disableMarkAsDelivered","sdk","sdkError","error","_g","channelsTomarkAsRead","setChannelsToMarkAsRead","useEffect","isMounted","length","forEach","c","idx","setTimeout","markAsDelivered","React","ChannelListHeader","AddChannel","e","target","fetchMore","clientHeight","scrollTop","scrollHeight","hasNext","info","type","channelListActions","payload","next","then","channelList","canSetMarkAsDelivered","appInfo","premiumFeatureList","find","feature","catch","err","PlaceHolder","PlaceHolderTypes","WRONG","map","channel","onLeaveChannel","cb","leave","res","url","onClick","ChannelPreview","some","ChannelPreviewAction","LOADING","NO_CHANNELS"],"mappings":"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"}
@@ -1,47 +1,47 @@
1
1
  'use strict';
2
2
 
3
- var _rollupPluginBabelHelpers = require('../../_rollupPluginBabelHelpers-23c0e950.js');
4
- var tslib_es6 = require('../../tslib.es6-bce345aa.js');
3
+ var _rollupPluginBabelHelpers = require('../../_rollupPluginBabelHelpers-20ad87c1.js');
4
+ var tslib_es6 = require('../../tslib.es6-29ba80a6.js');
5
5
  var React = require('react');
6
6
  var ui_ChannelAvatar = require('../../ui/ChannelAvatar.js');
7
7
  var ui_Badge = require('../../ui/Badge.js');
8
8
  var ui_Icon = require('../../ui/Icon.js');
9
- var ui_Label = require('../../index-b1a4b6f0.js');
10
- var index = require('../../index-fab17fef.js');
11
- var index$1 = require('../../index-1042f264.js');
12
- var index$2 = require('../../index-1218eab2.js');
9
+ var ui_Label = require('../../index-795706d2.js');
10
+ var index = require('../../index-568f12d2.js');
11
+ var index$1 = require('../../index-566a2b96.js');
12
+ var index$2 = require('../../index-0418c426.js');
13
13
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
14
- var LocalizationContext = require('../../LocalizationContext-3c85c616.js');
14
+ var LocalizationContext = require('../../LocalizationContext-9c61d945.js');
15
15
  var ui_MentionUserLabel = require('../../ui/MentionUserLabel.js');
16
16
  var ui_Modal = require('../../ui/Modal.js');
17
17
  var ui_TextButton = require('../../ui/TextButton.js');
18
- var ChannelList_context = require('../../ChannelListProvider-a61b57d9.js');
18
+ var ChannelList_context = require('../../ChannelListProvider-d04a3815.js');
19
19
  var Channel_components_TypingIndicator = require('../../Channel/components/TypingIndicator.js');
20
20
  var ui_MessageStatus = require('../../ui/MessageStatus.js');
21
- var MediaQueryContext = require('../../MediaQueryContext-c8f557d1.js');
22
- var useLongPress = require('../../useLongPress-698416e4.js');
21
+ var MediaQueryContext = require('../../MediaQueryContext-19197e12.js');
22
+ var useLongPress = require('../../useLongPress-9c1d0d7e.js');
23
23
  require('../../ui/Avatar.js');
24
24
  require('../../ui/ImageRenderer.js');
25
- require('../../uuid-2a459d4b.js');
26
- require('../../utils-0d32641e.js');
25
+ require('../../uuid-ed079835.js');
26
+ require('../../utils-c137a361.js');
27
27
  require('prop-types');
28
- require('../../stringSet-da2fe019.js');
29
- require('../../index-0854d1ea.js');
30
- require('../../index-607cb4ff.js');
28
+ require('../../stringSet-520996cb.js');
29
+ require('../../index-5d551bb1.js');
30
+ require('../../index-b82af371.js');
31
31
  require('../../utils/message/getOutgoingMessageState.js');
32
32
  require('../../withSendbird.js');
33
33
  require('react-dom');
34
- require('../../index-1b69f7d2.js');
34
+ require('../../index-6a32eea2.js');
35
35
  require('../../ui/Button.js');
36
36
  require('../../ui/IconButton.js');
37
- require('../../color-03c2ecf2.js');
37
+ require('../../color-da1f2f09.js');
38
38
  require('@sendbird/chat/groupChannel');
39
- require('../../topics-fd2124f5.js');
40
- require('../../utils-557bb5d2.js');
41
- require('../../UserProfileContext-c16bb529.js');
42
- require('../../ChannelProvider-4dd6e426.js');
43
- require('../../compareIds-c670ae57.js');
44
- require('../../const-0095baf3.js');
39
+ require('../../topics-e5734128.js');
40
+ require('../../utils-ee8b0f03.js');
41
+ require('../../UserProfileContext-637e5f40.js');
42
+ require('../../ChannelProvider-6fd99b0a.js');
43
+ require('../../compareIds-a7a8f34b.js');
44
+ require('../../const-c5332da3.js');
45
45
  require('@sendbird/chat/message');
46
46
  require('../../ui/ContextMenu.js');
47
47
  require('../../ui/SortByRow.js');
@@ -164,7 +164,9 @@ var ChannelPreview = function (_a) {
164
164
  var isMessageStatusEnabled = isMessageReceiptStatusEnabled && (((_g = channel === null || channel === void 0 ? void 0 : channel.lastMessage) === null || _g === void 0 ? void 0 : _g.messageType) === 'user' || ((_h = channel === null || channel === void 0 ? void 0 : channel.lastMessage) === null || _h === void 0 ? void 0 : _h.messageType) === 'file') && ((_k = (_j = channel === null || channel === void 0 ? void 0 : channel.lastMessage) === null || _j === void 0 ? void 0 : _j.sender) === null || _k === void 0 ? void 0 : _k.userId) === userId;
165
165
  var onLongPress = useLongPress.useLongPress({
166
166
  onLongPress: function () {
167
- setShowMobileLeave(true);
167
+ if (isMobile) {
168
+ setShowMobileLeave(true);
169
+ }
168
170
  },
169
171
  onClick: onClick
170
172
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelPreview.js","sources":["../../../../src/smart-components/ChannelList/components/ChannelPreview/utils.js","../../../../src/smart-components/ChannelList/components/ChannelPreview/index.tsx"],"sourcesContent":["import isToday from 'date-fns/isToday';\nimport format from 'date-fns/format';\nimport formatRelative from 'date-fns/formatRelative';\nimport isYesterday from 'date-fns/isYesterday';\n\nimport { truncateString } from '../../../../utils';\nimport { LabelStringSet } from '../../../../ui/Label';\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel?.name && !channel?.members) {\n return stringSet.NO_TITLE;\n }\n if (channel?.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel?.members?.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n return (channel?.members || [])\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n\nexport const getLastMessageCreatedAt = (channel, locale) => {\n const createdAt = channel?.lastMessage?.createdAt;\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return formatRelative(createdAt, new Date(), optionalParam);\n }\n return format(createdAt, 'MMM dd', optionalParam);\n};\n\nexport const getTotalMembers = (channel) => (\n channel?.memberCount\n ? channel.memberCount\n : 0\n);\n\nconst getPrettyLastMessage = (message = {}) => {\n const MAXLEN = 30;\n const { messageType, name } = message;\n if (messageType === 'file') {\n return truncateString(name, MAXLEN);\n }\n return message.message;\n};\n\nexport const getLastMessage = (channel) => (\n channel?.lastMessage\n ? getPrettyLastMessage(channel.lastMessage)\n : ''\n);\n\nexport const getChannelUnreadMessageCount = (channel) => (\n channel?.unreadMessageCount\n ? channel.unreadMessageCount\n : 0\n);\n","import './channel-preview.scss';\n\nimport React, { useState } from 'react';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport ChannelAvatar from '../../../../ui/ChannelAvatar';\nimport Badge from '../../../../ui/Badge';\nimport Icon, { IconColors, IconTypes } from '../../../../ui/Icon';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\n\nimport * as utils from './utils';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport MentionUserLabel from '../../../../ui/MentionUserLabel';\nimport Modal from '../../../../ui/Modal';\nimport TextButton from '../../../../ui/TextButton';\nimport { useChannelListContext } from '../../context/ChannelListProvider';\nimport { TypingIndicatorText } from '../../../Channel/components/TypingIndicator';\nimport MessageStatus from '../../../../ui/MessageStatus';\nimport { isEditedMessage } from '../../../../utils';\nimport { useMediaQueryContext } from '../../../../lib/MediaQueryContext';\nimport useLongPress from '../../../../hooks/useLongPress';\n\ninterface ChannelPreviewInterface {\n channel: GroupChannel;\n isActive?: boolean;\n isTyping?: boolean;\n onClick: () => void;\n onLeaveChannel?: () => void;\n renderChannelAction: (props: { channel: GroupChannel }) => React.ReactElement;\n tabIndex: number;\n}\n\nconst ChannelPreview: React.FC<ChannelPreviewInterface> = ({\n channel,\n isActive = false,\n isTyping = false,\n renderChannelAction,\n onLeaveChannel,\n onClick,\n tabIndex,\n}: ChannelPreviewInterface) => {\n const sbState = useSendbirdStateContext();\n const {\n isTypingIndicatorEnabled = false,\n isMessageReceiptStatusEnabled = false,\n } = useChannelListContext();\n const { dateLocale, stringSet } = useLocalization();\n const { isMobile } = useMediaQueryContext();\n\n const [showMobileLeave, setShowMobileLeave] = useState(false);\n\n const userId = sbState?.stores?.userStore?.user?.userId;\n const theme = sbState?.config?.theme;\n const isMentionEnabled = sbState?.config?.isMentionEnabled;\n const isFrozen = channel?.isFrozen || false;\n const isBroadcast = channel?.isBroadcast || false;\n const isChannelTyping = isTypingIndicatorEnabled && isTyping;\n const isMessageStatusEnabled = isMessageReceiptStatusEnabled\n && (channel?.lastMessage?.messageType === 'user' || channel?.lastMessage?.messageType === 'file')\n && (channel?.lastMessage as UserMessage | FileMessage)?.sender?.userId === userId;\n\n const onLongPress = useLongPress({\n onLongPress: () => {\n setShowMobileLeave(true);\n },\n onClick,\n }, {\n delay: 1000,\n });\n const channelName = utils.getChannelTitle(channel, userId, stringSet);\n return (\n <>\n <div\n className={[\n 'sendbird-channel-preview',\n isActive ? 'sendbird-channel-preview--active' : '',\n ].join(' ')}\n role=\"link\"\n tabIndex={tabIndex}\n {...(isMobile ? { ...onLongPress } : { onClick })}\n >\n <div\n className=\"sendbird-channel-preview__avatar\"\n >\n <ChannelAvatar\n channel={channel}\n userId={userId}\n theme={theme}\n />\n </div>\n <div className=\"sendbird-channel-preview__content\">\n <div className=\"sendbird-channel-preview__content__upper\">\n <div className=\"sendbird-channel-preview__content__upper__header\">\n {\n isBroadcast\n && (\n <div className=\"sendbird-channel-preview__content__upper__header__broadcast-icon\">\n <Icon\n type={IconTypes.BROADCAST}\n fillColor={IconColors.SECONDARY}\n height=\"16px\"\n width=\"16px\"\n />\n </div>\n )\n }\n <Label\n className=\"sendbird-channel-preview__content__upper__header__channel-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n <div>\n { channelName }\n </div>\n </Label>\n <Label\n className=\"sendbird-channel-preview__content__upper__header__total-members\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getTotalMembers(channel)}\n </Label>\n {\n isFrozen\n && (\n <div title=\"Frozen\" className=\"sendbird-channel-preview__content__upper__header__frozen-icon\">\n <Icon\n type={IconTypes.FREEZE}\n fillColor={IconColors.PRIMARY}\n height={12}\n width={12}\n />\n </div>\n )\n }\n </div>\n {\n isMessageStatusEnabled\n ? (\n <MessageStatus\n className=\"sendbird-channel-preview__content__upper__last-message-at\"\n channel={channel}\n message={channel?.lastMessage as UserMessage | FileMessage}\n />\n )\n : (\n <Label\n className=\"sendbird-channel-preview__content__upper__last-message-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getLastMessageCreatedAt(channel, dateLocale)}\n </Label>\n )\n }\n </div>\n <div className=\"sendbird-channel-preview__content__lower\">\n <Label\n className=\"sendbird-channel-preview__content__lower__last-message\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {\n isChannelTyping && (\n <TypingIndicatorText members={channel?.getTypingUsers()} />\n )\n }\n {\n !isChannelTyping && (\n utils.getLastMessage(channel) + (isEditedMessage(channel?.lastMessage as UserMessage | FileMessage) ? ` ${stringSet.MESSAGE_EDITED}` : '')\n )\n }\n </Label>\n <div className=\"sendbird-channel-preview__content__lower__unread-message-count\">\n {\n (isMentionEnabled && channel?.unreadMentionCount > 0)\n ? (\n <MentionUserLabel\n className=\"sendbird-channel-preview__content__lower__unread-message-count__mention\"\n color=\"purple\"\n >\n {'@'}\n </MentionUserLabel>\n )\n : null\n }\n {\n utils.getChannelUnreadMessageCount(channel) // return number\n ? <Badge count={utils.getChannelUnreadMessageCount(channel)} />\n : null\n }\n </div>\n </div>\n </div>\n {\n !isMobile && (\n <div\n className=\"sendbird-channel-preview__action\"\n >\n {renderChannelAction({ channel })}\n </div>\n )\n }\n </div>\n {/*\n Event from portal is transferred to parent\n If this modal goes inside channel preview, it will propogate event to\n ChannelPreview and cause many issues with click/touchEnd etc\n https://github.com/facebook/react/issues/11387#issuecomment-340019419\n */}\n {\n showMobileLeave && isMobile && (\n <Modal\n className=\"sendbird-channel-preview__leave--mobile\"\n titleText={channelName}\n hideFooter\n isCloseOnClickOutside\n onCancel={() => setShowMobileLeave(false)}\n >\n <TextButton\n onClick={() => {\n onLeaveChannel();\n setShowMobileLeave(false);\n }}\n className=\"sendbird-channel-preview__leave-label--mobile\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_PREVIEW_MOBILE_LEAVE}\n </Label>\n </TextButton>\n </Modal>\n )\n }\n </>\n );\n}\n\nexport default ChannelPreview;\n"],"names":["getChannelTitle","channel","currentUserId","stringSet","LabelStringSet","name","members","NO_TITLE","length","NO_MEMBERS","filter","userId","map","nickname","NO_NAME","join","getLastMessageCreatedAt","locale","createdAt","lastMessage","optionalParam","isToday","format","isYesterday","formatRelative","Date","getTotalMembers","memberCount","getPrettyLastMessage","message","MAXLEN","messageType","truncateString","getLastMessage","getChannelUnreadMessageCount","unreadMessageCount","ChannelPreview","_a","_l","isActive","_m","isTyping","renderChannelAction","onLeaveChannel","onClick","tabIndex","sbState","useSendbirdStateContext","_o","useChannelListContext","_p","isTypingIndicatorEnabled","_q","isMessageReceiptStatusEnabled","_r","useLocalization","dateLocale","isMobile","useMediaQueryContext","_s","useState","showMobileLeave","setShowMobileLeave","_d","_b","stores","userStore","user","theme","_e","config","isMentionEnabled","_f","isFrozen","isBroadcast","isChannelTyping","isMessageStatusEnabled","_g","_h","_k","_j","sender","onLongPress","useLongPress","delay","channelName","utils","React","_extends","__assign","ChannelAvatar","Icon","IconTypes","BROADCAST","IconColors","SECONDARY","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","CAPTION_2","ONBACKGROUND_2","FREEZE","PRIMARY","MessageStatus","CAPTION_3","BODY_2","ONBACKGROUND_3","TypingIndicatorText","getTypingUsers","isEditedMessage","MESSAGE_EDITED","unreadMentionCount","MentionUserLabel","Badge","Modal","TextButton","SUBTITLE_1","CHANNEL_PREVIEW_MOBILE_LEAVE"],"mappings":"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"}
1
+ {"version":3,"file":"ChannelPreview.js","sources":["../../../../src/smart-components/ChannelList/components/ChannelPreview/utils.js","../../../../src/smart-components/ChannelList/components/ChannelPreview/index.tsx"],"sourcesContent":["import isToday from 'date-fns/isToday';\nimport format from 'date-fns/format';\nimport formatRelative from 'date-fns/formatRelative';\nimport isYesterday from 'date-fns/isYesterday';\n\nimport { truncateString } from '../../../../utils';\nimport { LabelStringSet } from '../../../../ui/Label';\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel?.name && !channel?.members) {\n return stringSet.NO_TITLE;\n }\n if (channel?.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel?.members?.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n return (channel?.members || [])\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n\nexport const getLastMessageCreatedAt = (channel, locale) => {\n const createdAt = channel?.lastMessage?.createdAt;\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return formatRelative(createdAt, new Date(), optionalParam);\n }\n return format(createdAt, 'MMM dd', optionalParam);\n};\n\nexport const getTotalMembers = (channel) => (\n channel?.memberCount\n ? channel.memberCount\n : 0\n);\n\nconst getPrettyLastMessage = (message = {}) => {\n const MAXLEN = 30;\n const { messageType, name } = message;\n if (messageType === 'file') {\n return truncateString(name, MAXLEN);\n }\n return message.message;\n};\n\nexport const getLastMessage = (channel) => (\n channel?.lastMessage\n ? getPrettyLastMessage(channel.lastMessage)\n : ''\n);\n\nexport const getChannelUnreadMessageCount = (channel) => (\n channel?.unreadMessageCount\n ? channel.unreadMessageCount\n : 0\n);\n","import './channel-preview.scss';\n\nimport React, { useState } from 'react';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport ChannelAvatar from '../../../../ui/ChannelAvatar';\nimport Badge from '../../../../ui/Badge';\nimport Icon, { IconColors, IconTypes } from '../../../../ui/Icon';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\n\nimport * as utils from './utils';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport MentionUserLabel from '../../../../ui/MentionUserLabel';\nimport Modal from '../../../../ui/Modal';\nimport TextButton from '../../../../ui/TextButton';\nimport { useChannelListContext } from '../../context/ChannelListProvider';\nimport { TypingIndicatorText } from '../../../Channel/components/TypingIndicator';\nimport MessageStatus from '../../../../ui/MessageStatus';\nimport { isEditedMessage } from '../../../../utils';\nimport { useMediaQueryContext } from '../../../../lib/MediaQueryContext';\nimport useLongPress from '../../../../hooks/useLongPress';\n\ninterface ChannelPreviewInterface {\n channel: GroupChannel;\n isActive?: boolean;\n isTyping?: boolean;\n onClick: () => void;\n onLeaveChannel?: () => void;\n renderChannelAction: (props: { channel: GroupChannel }) => React.ReactElement;\n tabIndex: number;\n}\n\nconst ChannelPreview: React.FC<ChannelPreviewInterface> = ({\n channel,\n isActive = false,\n isTyping = false,\n renderChannelAction,\n onLeaveChannel,\n onClick,\n tabIndex,\n}: ChannelPreviewInterface) => {\n const sbState = useSendbirdStateContext();\n const {\n isTypingIndicatorEnabled = false,\n isMessageReceiptStatusEnabled = false,\n } = useChannelListContext();\n const { dateLocale, stringSet } = useLocalization();\n const { isMobile } = useMediaQueryContext();\n\n const [showMobileLeave, setShowMobileLeave] = useState(false);\n\n const userId = sbState?.stores?.userStore?.user?.userId;\n const theme = sbState?.config?.theme;\n const isMentionEnabled = sbState?.config?.isMentionEnabled;\n const isFrozen = channel?.isFrozen || false;\n const isBroadcast = channel?.isBroadcast || false;\n const isChannelTyping = isTypingIndicatorEnabled && isTyping;\n const isMessageStatusEnabled = isMessageReceiptStatusEnabled\n && (channel?.lastMessage?.messageType === 'user' || channel?.lastMessage?.messageType === 'file')\n && (channel?.lastMessage as UserMessage | FileMessage)?.sender?.userId === userId;\n\n const onLongPress = useLongPress({\n onLongPress: () => {\n if (isMobile) {\n setShowMobileLeave(true);\n }\n },\n onClick,\n }, {\n delay: 1000,\n });\n const channelName = utils.getChannelTitle(channel, userId, stringSet);\n return (\n <>\n <div\n className={[\n 'sendbird-channel-preview',\n isActive ? 'sendbird-channel-preview--active' : '',\n ].join(' ')}\n role=\"link\"\n tabIndex={tabIndex}\n {...(isMobile ? { ...onLongPress } : { onClick })}\n >\n <div\n className=\"sendbird-channel-preview__avatar\"\n >\n <ChannelAvatar\n channel={channel}\n userId={userId}\n theme={theme}\n />\n </div>\n <div className=\"sendbird-channel-preview__content\">\n <div className=\"sendbird-channel-preview__content__upper\">\n <div className=\"sendbird-channel-preview__content__upper__header\">\n {\n isBroadcast\n && (\n <div className=\"sendbird-channel-preview__content__upper__header__broadcast-icon\">\n <Icon\n type={IconTypes.BROADCAST}\n fillColor={IconColors.SECONDARY}\n height=\"16px\"\n width=\"16px\"\n />\n </div>\n )\n }\n <Label\n className=\"sendbird-channel-preview__content__upper__header__channel-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n <div>\n { channelName }\n </div>\n </Label>\n <Label\n className=\"sendbird-channel-preview__content__upper__header__total-members\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getTotalMembers(channel)}\n </Label>\n {\n isFrozen\n && (\n <div title=\"Frozen\" className=\"sendbird-channel-preview__content__upper__header__frozen-icon\">\n <Icon\n type={IconTypes.FREEZE}\n fillColor={IconColors.PRIMARY}\n height={12}\n width={12}\n />\n </div>\n )\n }\n </div>\n {\n isMessageStatusEnabled\n ? (\n <MessageStatus\n className=\"sendbird-channel-preview__content__upper__last-message-at\"\n channel={channel}\n message={channel?.lastMessage as UserMessage | FileMessage}\n />\n )\n : (\n <Label\n className=\"sendbird-channel-preview__content__upper__last-message-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getLastMessageCreatedAt(channel, dateLocale)}\n </Label>\n )\n }\n </div>\n <div className=\"sendbird-channel-preview__content__lower\">\n <Label\n className=\"sendbird-channel-preview__content__lower__last-message\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {\n isChannelTyping && (\n <TypingIndicatorText members={channel?.getTypingUsers()} />\n )\n }\n {\n !isChannelTyping && (\n utils.getLastMessage(channel) + (isEditedMessage(channel?.lastMessage as UserMessage | FileMessage) ? ` ${stringSet.MESSAGE_EDITED}` : '')\n )\n }\n </Label>\n <div className=\"sendbird-channel-preview__content__lower__unread-message-count\">\n {\n (isMentionEnabled && channel?.unreadMentionCount > 0)\n ? (\n <MentionUserLabel\n className=\"sendbird-channel-preview__content__lower__unread-message-count__mention\"\n color=\"purple\"\n >\n {'@'}\n </MentionUserLabel>\n )\n : null\n }\n {\n utils.getChannelUnreadMessageCount(channel) // return number\n ? <Badge count={utils.getChannelUnreadMessageCount(channel)} />\n : null\n }\n </div>\n </div>\n </div>\n {\n !isMobile && (\n <div\n className=\"sendbird-channel-preview__action\"\n >\n {renderChannelAction({ channel })}\n </div>\n )\n }\n </div>\n {/*\n Event from portal is transferred to parent\n If this modal goes inside channel preview, it will propogate event to\n ChannelPreview and cause many issues with click/touchEnd etc\n https://github.com/facebook/react/issues/11387#issuecomment-340019419\n */}\n {\n showMobileLeave && isMobile && (\n <Modal\n className=\"sendbird-channel-preview__leave--mobile\"\n titleText={channelName}\n hideFooter\n isCloseOnClickOutside\n onCancel={() => setShowMobileLeave(false)}\n >\n <TextButton\n onClick={() => {\n onLeaveChannel();\n setShowMobileLeave(false);\n }}\n className=\"sendbird-channel-preview__leave-label--mobile\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_PREVIEW_MOBILE_LEAVE}\n </Label>\n </TextButton>\n </Modal>\n )\n }\n </>\n );\n}\n\nexport default ChannelPreview;\n"],"names":["getChannelTitle","channel","currentUserId","stringSet","LabelStringSet","name","members","NO_TITLE","length","NO_MEMBERS","filter","userId","map","nickname","NO_NAME","join","getLastMessageCreatedAt","locale","createdAt","lastMessage","optionalParam","isToday","format","isYesterday","formatRelative","Date","getTotalMembers","memberCount","getPrettyLastMessage","message","MAXLEN","messageType","truncateString","getLastMessage","getChannelUnreadMessageCount","unreadMessageCount","ChannelPreview","_a","_l","isActive","_m","isTyping","renderChannelAction","onLeaveChannel","onClick","tabIndex","sbState","useSendbirdStateContext","_o","useChannelListContext","_p","isTypingIndicatorEnabled","_q","isMessageReceiptStatusEnabled","_r","useLocalization","dateLocale","isMobile","useMediaQueryContext","_s","useState","showMobileLeave","setShowMobileLeave","_d","_b","stores","userStore","user","theme","_e","config","isMentionEnabled","_f","isFrozen","isBroadcast","isChannelTyping","isMessageStatusEnabled","_g","_h","_k","_j","sender","onLongPress","useLongPress","delay","channelName","utils","React","_extends","__assign","ChannelAvatar","Icon","IconTypes","BROADCAST","IconColors","SECONDARY","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","CAPTION_2","ONBACKGROUND_2","FREEZE","PRIMARY","MessageStatus","CAPTION_3","BODY_2","ONBACKGROUND_3","TypingIndicatorText","getTypingUsers","isEditedMessage","MESSAGE_EDITED","unreadMentionCount","MentionUserLabel","Badge","Modal","TextButton","SUBTITLE_1","CHANNEL_PREVIEW_MOBILE_LEAVE"],"mappings":"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"}
@@ -2,31 +2,31 @@
2
2
 
3
3
  var React = require('react');
4
4
  var PropTypes = require('prop-types');
5
- var LocalizationContext = require('../../LocalizationContext-3c85c616.js');
5
+ var LocalizationContext = require('../../LocalizationContext-9c61d945.js');
6
6
  var ui_ContextMenu = require('../../ui/ContextMenu.js');
7
7
  var ui_IconButton = require('../../ui/IconButton.js');
8
8
  var ui_Icon = require('../../ui/Icon.js');
9
9
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
10
- var utils = require('../../utils-557bb5d2.js');
10
+ var utils = require('../../utils-ee8b0f03.js');
11
11
  var ui_Modal = require('../../ui/Modal.js');
12
- var ChannelList_context = require('../../ChannelListProvider-a61b57d9.js');
13
- require('../../stringSet-da2fe019.js');
14
- require('../../index-607cb4ff.js');
15
- require('../../tslib.es6-bce345aa.js');
12
+ var ChannelList_context = require('../../ChannelListProvider-d04a3815.js');
13
+ require('../../stringSet-520996cb.js');
14
+ require('../../index-b82af371.js');
15
+ require('../../tslib.es6-29ba80a6.js');
16
16
  require('react-dom');
17
17
  require('../../ui/SortByRow.js');
18
- require('../../uuid-2a459d4b.js');
19
- require('../../index-1218eab2.js');
18
+ require('../../uuid-ed079835.js');
19
+ require('../../index-0418c426.js');
20
20
  require('../../utils/message/getOutgoingMessageState.js');
21
- require('../../index-b1a4b6f0.js');
21
+ require('../../index-795706d2.js');
22
22
  require('../../withSendbird.js');
23
- require('../../_rollupPluginBabelHelpers-23c0e950.js');
24
- require('../../index-1b69f7d2.js');
23
+ require('../../_rollupPluginBabelHelpers-20ad87c1.js');
24
+ require('../../index-6a32eea2.js');
25
25
  require('../../ui/Button.js');
26
- require('../../MediaQueryContext-c8f557d1.js');
26
+ require('../../MediaQueryContext-19197e12.js');
27
27
  require('@sendbird/chat/groupChannel');
28
- require('../../topics-fd2124f5.js');
29
- require('../../UserProfileContext-c16bb529.js');
28
+ require('../../topics-e5734128.js');
29
+ require('../../UserProfileContext-637e5f40.js');
30
30
 
31
31
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
32
32
 
@@ -36,24 +36,27 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
36
36
  var LeaveChannel = function (props) {
37
37
  var _a, _b, _c;
38
38
 
39
- var _d = props.onSubmit,
40
- onSubmit = _d === void 0 ? utils.noop : _d,
41
- _e = props.onCancel,
42
- onCancel = _e === void 0 ? utils.noop : _e;
43
- var channel = (_a = ChannelList_context.useChannelListContext()) === null || _a === void 0 ? void 0 : _a.currentChannel;
39
+ var _d = props.channel,
40
+ channel = _d === void 0 ? null : _d,
41
+ _e = props.onSubmit,
42
+ onSubmit = _e === void 0 ? utils.noop : _e,
43
+ _f = props.onCancel,
44
+ onCancel = _f === void 0 ? utils.noop : _f;
45
+ var channelFromContext = (_a = ChannelList_context.useChannelListContext()) === null || _a === void 0 ? void 0 : _a.currentChannel;
46
+ var leavingChannel = channel || channelFromContext;
44
47
  var state = useSendbirdStateContext();
45
48
  var stringSet = LocalizationContext.useLocalization().stringSet;
46
49
  var logger = (_b = state === null || state === void 0 ? void 0 : state.config) === null || _b === void 0 ? void 0 : _b.logger;
47
50
  var isOnline = (_c = state === null || state === void 0 ? void 0 : state.config) === null || _c === void 0 ? void 0 : _c.isOnline;
48
51
 
49
- if (channel) {
52
+ if (leavingChannel) {
50
53
  return /*#__PURE__*/React__default["default"].createElement(ui_Modal["default"], {
51
54
  disabled: !isOnline,
52
55
  onCancel: onCancel,
53
56
  onSubmit: function () {
54
- logger.info('ChannelSettings: Leaving channel', channel);
55
- channel === null || channel === void 0 ? void 0 : channel.leave().then(function () {
56
- logger.info('ChannelSettings: Leaving channel successful!', channel);
57
+ logger.info('ChannelSettings: Leaving channel', leavingChannel);
58
+ leavingChannel === null || leavingChannel === void 0 ? void 0 : leavingChannel.leave().then(function () {
59
+ logger.info('ChannelSettings: Leaving channel successful!', leavingChannel);
57
60
  onSubmit();
58
61
  });
59
62
  },
@@ -65,6 +68,7 @@ var LeaveChannel = function (props) {
65
68
 
66
69
  function ChannelPreviewAction(_ref) {
67
70
  let {
71
+ channel,
68
72
  disabled,
69
73
  onLeaveChannel
70
74
  } = _ref;
@@ -114,6 +118,7 @@ function ChannelPreviewAction(_ref) {
114
118
  }
115
119
  }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE))
116
120
  }), showModal && /*#__PURE__*/React__default["default"].createElement(LeaveChannel, {
121
+ channel: channel,
117
122
  onSubmit: () => {
118
123
  setShowModal(false);
119
124
  onLeaveChannel();
@@ -123,10 +128,12 @@ function ChannelPreviewAction(_ref) {
123
128
  }
124
129
  ChannelPreviewAction.propTypes = {
125
130
  disabled: PropTypes__default["default"].bool,
126
- onLeaveChannel: PropTypes__default["default"].func.isRequired
131
+ onLeaveChannel: PropTypes__default["default"].func.isRequired,
132
+ channel: PropTypes__default["default"].shape({})
127
133
  };
128
134
  ChannelPreviewAction.defaultProps = {
129
- disabled: false
135
+ disabled: false,
136
+ channel: null
130
137
  };
131
138
 
132
139
  module.exports = ChannelPreviewAction;
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelPreviewAction.js","sources":["../../../../src/smart-components/ChannelList/components/LeaveChannel/index.tsx","../../../../src/smart-components/ChannelList/components/ChannelPreviewAction.jsx"],"sourcesContent":["import React from 'react';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { noop } from '../../../../utils/utils';\n\nimport Modal from '../../../../ui/Modal';\nimport { useChannelListContext } from '../../context/ChannelListProvider';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\n\nexport type LeaveChannelProps = {\n onSubmit: () => void;\n onCancel: () => void;\n}\n\nconst LeaveChannel: React.FC<LeaveChannelProps> = (props: LeaveChannelProps) => {\n const {\n onSubmit = noop,\n onCancel = noop,\n } = props;\n\n const channel = useChannelListContext()?.currentChannel;\n const state = useSendbirdStateContext();\n const { stringSet } = useLocalization();\n\n const logger = state?.config?.logger;\n const isOnline = state?.config?.isOnline;\n if (channel) {\n return (\n <Modal\n disabled={!isOnline}\n onCancel={onCancel}\n onSubmit={() => {\n logger.info('ChannelSettings: Leaving channel', channel);\n channel?.leave()\n .then(() => {\n logger.info('ChannelSettings: Leaving channel successful!', channel);\n onSubmit();\n });\n }}\n submitText={stringSet.MODAL__LEAVE_CHANNEL__FOOTER}\n titleText={stringSet.MODAL__LEAVE_CHANNEL__TITLE}\n />\n );\n }\n};\n\nexport default LeaveChannel;\n","import React, {\n useState,\n useRef,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../ui/ContextMenu';\nimport IconButton from '../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport LeaveChannelModal from './LeaveChannel';\n\nexport default function ChannelPreviewAction({ disabled, onLeaveChannel }) {\n const parentRef = useRef(null);\n const parentContainerRef = useRef(null);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n <div\n role=\"button\"\n style={{ display: 'inline-block' }}\n onKeyDown={(e) => { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n ref={parentContainerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRef}\n onClick={toggleDropdown}\n height=\"32px\"\n width=\"32px\"\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRef}\n parentContainRef={parentContainerRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n showModal && (\n <LeaveChannelModal\n onSubmit={() => {\n setShowModal(false);\n onLeaveChannel();\n }}\n onCancel={() => setShowModal(false)}\n />\n )\n }\n </div>\n );\n}\n\nChannelPreviewAction.propTypes = {\n disabled: PropTypes.bool,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nChannelPreviewAction.defaultProps = {\n disabled: false,\n};\n"],"names":["LeaveChannel","props","_d","onSubmit","noop","_e","onCancel","channel","_a","useChannelListContext","currentChannel","state","useSendbirdStateContext","stringSet","useLocalization","logger","_b","config","isOnline","_c","React","Modal","info","leave","then","MODAL__LEAVE_CHANNEL__FOOTER","MODAL__LEAVE_CHANNEL__TITLE","ChannelPreviewAction","disabled","onLeaveChannel","parentRef","useRef","parentContainerRef","showModal","setShowModal","useState","useContext","LocalizationContext","display","e","stopPropagation","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","MORE","IconColors","PRIMARY","closeDropdown","MenuItems","MenuItem","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","LeaveChannelModal","propTypes","PropTypes","bool","func","isRequired","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"ChannelPreviewAction.js","sources":["../../../../src/smart-components/ChannelList/components/LeaveChannel/index.tsx","../../../../src/smart-components/ChannelList/components/ChannelPreviewAction.jsx"],"sourcesContent":["import React from 'react';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { noop } from '../../../../utils/utils';\n\nimport Modal from '../../../../ui/Modal';\nimport { useChannelListContext } from '../../context/ChannelListProvider';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\n\nexport type LeaveChannelProps = {\n channel?: GroupChannel;\n onSubmit: () => void;\n onCancel: () => void;\n}\n\nconst LeaveChannel: React.FC<LeaveChannelProps> = (props: LeaveChannelProps) => {\n const {\n channel = null,\n onSubmit = noop,\n onCancel = noop,\n } = props;\n\n const channelFromContext = useChannelListContext()?.currentChannel;\n const leavingChannel = channel || channelFromContext;\n const state = useSendbirdStateContext();\n const { stringSet } = useLocalization();\n\n const logger = state?.config?.logger;\n const isOnline = state?.config?.isOnline;\n if (leavingChannel) {\n return (\n <Modal\n disabled={!isOnline}\n onCancel={onCancel}\n onSubmit={() => {\n logger.info('ChannelSettings: Leaving channel', leavingChannel);\n leavingChannel?.leave()\n .then(() => {\n logger.info('ChannelSettings: Leaving channel successful!', leavingChannel);\n onSubmit();\n });\n }}\n submitText={stringSet.MODAL__LEAVE_CHANNEL__FOOTER}\n titleText={stringSet.MODAL__LEAVE_CHANNEL__TITLE}\n />\n );\n }\n};\n\nexport default LeaveChannel;\n","import React, {\n useState,\n useRef,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../ui/ContextMenu';\nimport IconButton from '../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport LeaveChannelModal from './LeaveChannel';\n\nexport default function ChannelPreviewAction({\n channel,\n disabled,\n onLeaveChannel,\n}) {\n const parentRef = useRef(null);\n const parentContainerRef = useRef(null);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n <div\n role=\"button\"\n style={{ display: 'inline-block' }}\n onKeyDown={(e) => { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n ref={parentContainerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRef}\n onClick={toggleDropdown}\n height=\"32px\"\n width=\"32px\"\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRef}\n parentContainRef={parentContainerRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n showModal && (\n <LeaveChannelModal\n channel={channel}\n onSubmit={() => {\n setShowModal(false);\n onLeaveChannel();\n }}\n onCancel={() => setShowModal(false)}\n />\n )\n }\n </div>\n );\n}\n\nChannelPreviewAction.propTypes = {\n disabled: PropTypes.bool,\n onLeaveChannel: PropTypes.func.isRequired,\n channel: PropTypes.shape({}),\n};\n\nChannelPreviewAction.defaultProps = {\n disabled: false,\n channel: null,\n};\n"],"names":["LeaveChannel","props","_d","channel","_e","onSubmit","noop","_f","onCancel","channelFromContext","_a","useChannelListContext","currentChannel","leavingChannel","state","useSendbirdStateContext","stringSet","useLocalization","logger","_b","config","isOnline","_c","React","Modal","info","leave","then","MODAL__LEAVE_CHANNEL__FOOTER","MODAL__LEAVE_CHANNEL__TITLE","ChannelPreviewAction","disabled","onLeaveChannel","parentRef","useRef","parentContainerRef","showModal","setShowModal","useState","useContext","LocalizationContext","display","e","stopPropagation","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","MORE","IconColors","PRIMARY","closeDropdown","MenuItems","MenuItem","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","LeaveChannelModal","propTypes","PropTypes","bool","func","isRequired","shape","defaultProps"],"mappings":"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"}