@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
@@ -0,0 +1,522 @@
1
+ import { a as __spreadArray } from '../../tslib.es6-279bc71d.js';
2
+ import React__default, { useState, useContext, useRef, useLayoutEffect, useEffect, useMemo } from 'react';
3
+ import { f as format } from '../../index-4f51d577.js';
4
+ import { u as useLocalization } from '../../LocalizationContext-5920dafc.js';
5
+ import DateSeparator from '../../ui/DateSeparator.js';
6
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../../index-4a23e6ff.js';
7
+ import { R as RemoveMessage } from '../../RemoveMessageModal-0ce1f978.js';
8
+ import FileViewer from '../../ui/FileViewer.js';
9
+ import { u as useThreadContext } from '../../ThreadProvider-4640c6fb.js';
10
+ import useSendbirdStateContext from '../../useSendbirdStateContext.js';
11
+ import SuggestedMentionList from '../../Channel/components/SuggestedMentionList.js';
12
+ import MessageInput from '../../ui/MessageInput.js';
13
+ import { ThreadListStateTypes } from '../context/types.js';
14
+ import { M as MessageInputKeys } from '../../const-2aae43f2.js';
15
+ import ContextMenu, { MenuItems } from '../../ui/ContextMenu.js';
16
+ import Avatar from '../../ui/Avatar.js';
17
+ import { a as UserProfileContext } from '../../UserProfileContext-749db4f6.js';
18
+ import ConnectedUserProfile from '../../ui/UserProfile.js';
19
+ import MessageItemMenu from '../../ui/MessageItemMenu.js';
20
+ import MessageItemReactionMenu from '../../ui/MessageItemReactionMenu.js';
21
+ import { y as getUIKitMessageTypes, z as getSenderName, h as getClassName, A as isTextMessage, B as isOGMessage, C as getUIKitMessageType, n as isThumbnailMessage } from '../../index-1a59aaa9.js';
22
+ import MessageStatus from '../../ui/MessageStatus.js';
23
+ import EmojiReactions from '../../ui/EmojiReactions.js';
24
+ import TextMessageItemBody from '../../ui/TextMessageItemBody.js';
25
+ import OGMessageItemBody from '../../ui/OGMessageItemBody.js';
26
+ import FileMessageItemBody from '../../ui/FileMessageItemBody.js';
27
+ import ThumbnailMessageItemBody from '../../ui/ThumbnailMessageItemBody.js';
28
+ import UnknownMessageItemBody from '../../ui/UnknownMessageItemBody.js';
29
+ import { Role } from '@sendbird/chat';
30
+ import '../../index-b5b56cb7.js';
31
+ import '../../stringSet-f0e25f08.js';
32
+ import '../../color-253fcdc4.js';
33
+ import 'prop-types';
34
+ import '../../ui/Modal.js';
35
+ import 'react-dom';
36
+ import '../../index-d2dd3ae2.js';
37
+ import '../../ui/Button.js';
38
+ import '../../ui/Icon.js';
39
+ import '../../ui/IconButton.js';
40
+ import '../../MediaQueryContext-9c1bb79f.js';
41
+ import '../../utils/message/getOutgoingMessageState.js';
42
+ import '../../ui/ImageRenderer.js';
43
+ import '../../uuid-636df95b.js';
44
+ import '../../topics-d2e15fe6.js';
45
+ import '@sendbird/chat/groupChannel';
46
+ import '@sendbird/chat/message';
47
+ import '../../withSendbird.js';
48
+ import '../../_rollupPluginBabelHelpers-636e674b.js';
49
+ import '../../ChannelProvider-8be62d5d.js';
50
+ import '../../compareIds-5494c074.js';
51
+ import '../../const-8bb8cc10.js';
52
+ import '../../ui/ReactionButton.js';
53
+ import '../../ui/SortByRow.js';
54
+ import 'react-dom/server';
55
+ import '../../ui/MentionUserLabel.js';
56
+ import '../../sendbirdSelectors.js';
57
+ import '../../utils-5a4995e3.js';
58
+ import '../../ui/Loader.js';
59
+ import '../../ui/Tooltip.js';
60
+ import '../../ui/TooltipWrapper.js';
61
+ import '../../ui/ReactionBadge.js';
62
+ import '../../ui/Word.js';
63
+ import '../../ui/LinkLabel.js';
64
+ import '../../ui/MentionLabel.js';
65
+ import '../../ui/TextButton.js';
66
+
67
+ function ThreadListItemContent(_a) {
68
+ var _b, _c, _d, _e;
69
+
70
+ var className = _a.className,
71
+ userId = _a.userId,
72
+ channel = _a.channel,
73
+ message = _a.message,
74
+ _f = _a.disabled,
75
+ disabled = _f === void 0 ? false : _f,
76
+ _g = _a.chainTop,
77
+ chainTop = _g === void 0 ? false : _g,
78
+ _h = _a.chainBottom,
79
+ chainBottom = _h === void 0 ? false : _h,
80
+ _j = _a.isMentionEnabled,
81
+ isMentionEnabled = _j === void 0 ? false : _j,
82
+ _k = _a.isReactionEnabled,
83
+ isReactionEnabled = _k === void 0 ? false : _k,
84
+ _l = _a.disableQuoteMessage,
85
+ disableQuoteMessage = _l === void 0 ? false : _l,
86
+ replyType = _a.replyType,
87
+ nicknamesMap = _a.nicknamesMap,
88
+ emojiContainer = _a.emojiContainer,
89
+ showEdit = _a.showEdit,
90
+ showRemove = _a.showRemove,
91
+ showFileViewer = _a.showFileViewer,
92
+ resendMessage = _a.resendMessage,
93
+ toggleReaction = _a.toggleReaction,
94
+ onReplyInThread = _a.onReplyInThread;
95
+ var messageTypes = getUIKitMessageTypes();
96
+ var dateLocale = useLocalization().dateLocale;
97
+
98
+ var _m = useState(false),
99
+ supposedHover = _m[0],
100
+ setSupposedHover = _m[1];
101
+
102
+ var _o = useContext(UserProfileContext),
103
+ disableUserProfile = _o.disableUserProfile,
104
+ renderUserProfile = _o.renderUserProfile;
105
+
106
+ var avatarRef = useRef(null);
107
+ var isByMe = userId === ((_b = message === null || message === void 0 ? void 0 : message.sender) === null || _b === void 0 ? void 0 : _b.userId) || (message === null || message === void 0 ? void 0 : message.sendingStatus) === 'pending' || (message === null || message === void 0 ? void 0 : message.sendingStatus) === 'failed';
108
+ var useReplying = !!((replyType === 'QUOTE_REPLY' || replyType === 'THREAD') && (message === null || message === void 0 ? void 0 : message.parentMessageId) && (message === null || message === void 0 ? void 0 : message.parentMessage) && !disableQuoteMessage);
109
+ var supposedHoverClassName = supposedHover ? 'sendbird-mouse-hover' : '';
110
+ return /*#__PURE__*/React__default.createElement("div", {
111
+ className: "sendbird-thread-list-item-content ".concat(className, " ").concat(isByMe ? 'outgoing' : 'incoming')
112
+ }, /*#__PURE__*/React__default.createElement("div", {
113
+ className: "sendbird-thread-list-item-content__left ".concat(isReactionEnabled ? 'use-reaction' : '', " ").concat(isByMe ? 'outgoing' : 'incoming')
114
+ }, !isByMe && !chainBottom && /*#__PURE__*/React__default.createElement(ContextMenu, {
115
+ menuTrigger: function (toggleDropdown) {
116
+ var _a, _b, _c;
117
+
118
+ return /*#__PURE__*/React__default.createElement(Avatar, {
119
+ className: "sendbird-thread-list-item-content__left__avatar",
120
+ src: ((_b = (_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.find(function (member) {
121
+ var _a;
122
+
123
+ return (member === null || member === void 0 ? void 0 : member.userId) === ((_a = message === null || message === void 0 ? void 0 : message.sender) === null || _a === void 0 ? void 0 : _a.userId);
124
+ })) === null || _b === void 0 ? void 0 : _b.profileUrl) || ((_c = message === null || message === void 0 ? void 0 : message.sender) === null || _c === void 0 ? void 0 : _c.profileUrl) || '',
125
+ ref: avatarRef,
126
+ width: "28px",
127
+ height: "28px",
128
+ onClick: function () {
129
+ if (!disableUserProfile) {
130
+ toggleDropdown === null || toggleDropdown === void 0 ? void 0 : toggleDropdown();
131
+ }
132
+ }
133
+ });
134
+ },
135
+ menuItems: function (closeDropdown) {
136
+ return /*#__PURE__*/React__default.createElement(MenuItems, {
137
+ parentRef: avatarRef,
138
+ parentContainRef: avatarRef,
139
+ closeDropdown: closeDropdown,
140
+ style: {
141
+ paddingTop: '0px',
142
+ paddingBottom: '0px'
143
+ }
144
+ }, renderUserProfile ? renderUserProfile({
145
+ user: message === null || message === void 0 ? void 0 : message.sender,
146
+ close: closeDropdown
147
+ }) : /*#__PURE__*/React__default.createElement(ConnectedUserProfile, {
148
+ user: message === null || message === void 0 ? void 0 : message.sender,
149
+ onSuccess: closeDropdown
150
+ }));
151
+ }
152
+ }), isByMe && /*#__PURE__*/React__default.createElement("div", {
153
+ className: "sendbird-thread-list-item-content-menu ".concat(isReactionEnabled ? 'use-reaction' : '', " ").concat(isByMe ? 'outgoing' : 'incoming', " ").concat(supposedHoverClassName)
154
+ }, /*#__PURE__*/React__default.createElement(MessageItemMenu, {
155
+ className: "sendbird-thread-list-item-content-menu__normal-menu",
156
+ channel: channel,
157
+ message: message,
158
+ isByMe: isByMe,
159
+ replyType: replyType,
160
+ disabled: disabled,
161
+ showEdit: showEdit,
162
+ showRemove: showRemove,
163
+ resendMessage: resendMessage,
164
+ setSupposedHover: setSupposedHover,
165
+ onReplyInThread: onReplyInThread
166
+ }), isReactionEnabled && /*#__PURE__*/React__default.createElement(MessageItemReactionMenu, {
167
+ className: "sendbird-thread-list-item-content-menu__reaction-menu",
168
+ message: message,
169
+ userId: userId,
170
+ spaceFromTrigger: {},
171
+ emojiContainer: emojiContainer,
172
+ toggleReaction: toggleReaction,
173
+ setSupposedHover: setSupposedHover
174
+ }))), /*#__PURE__*/React__default.createElement("div", {
175
+ className: "sendbird-thread-list-item-content__middle"
176
+ }, !isByMe && !chainTop && !useReplying && /*#__PURE__*/React__default.createElement(Label, {
177
+ className: "sendbird-thread-list-item-content__middle__sender-name",
178
+ type: LabelTypography.CAPTION_2,
179
+ color: LabelColors.ONBACKGROUND_2
180
+ }, ((_d = (_c = channel === null || channel === void 0 ? void 0 : channel.members) === null || _c === void 0 ? void 0 : _c.find(function (member) {
181
+ var _a;
182
+
183
+ return (member === null || member === void 0 ? void 0 : member.userId) === ((_a = message === null || message === void 0 ? void 0 : message.sender) === null || _a === void 0 ? void 0 : _a.userId);
184
+ })) === null || _d === void 0 ? void 0 : _d.nickname) || getSenderName(message) // TODO: Divide getting profileUrl logic to utils
185
+ ), /*#__PURE__*/React__default.createElement("div", {
186
+ className: getClassName(['sendbird-thread-list-item-content__middle__body-container'])
187
+ }, isByMe && !chainBottom && /*#__PURE__*/React__default.createElement("div", {
188
+ className: getClassName(['sendbird-thread-list-item-content__middle__body-container__created-at', 'left', supposedHoverClassName])
189
+ }, /*#__PURE__*/React__default.createElement("div", {
190
+ className: "sendbird-thread-list-item-content__middle__body-container__created-at__component-container"
191
+ }, /*#__PURE__*/React__default.createElement(MessageStatus, {
192
+ message: message,
193
+ channel: channel
194
+ }))), isTextMessage(message) && /*#__PURE__*/React__default.createElement(TextMessageItemBody, {
195
+ className: "sendbird-thread-list-item-content__middle__message-item-body",
196
+ message: message,
197
+ isByMe: isByMe,
198
+ isMentionEnabled: isMentionEnabled,
199
+ isReactionEnabled: isReactionEnabled
200
+ }), isOGMessage(message) && /*#__PURE__*/React__default.createElement(OGMessageItemBody, {
201
+ className: "sendbird-thread-list-item-content__middle__message-item-body",
202
+ message: message,
203
+ isByMe: isByMe,
204
+ isMentionEnabled: isMentionEnabled,
205
+ isReactionEnabled: isReactionEnabled
206
+ }), getUIKitMessageType(message) === messageTypes.FILE && /*#__PURE__*/React__default.createElement(FileMessageItemBody, {
207
+ className: "sendbird-thread-list-item-content__middle__message-item-body",
208
+ message: message,
209
+ isByMe: isByMe,
210
+ isReactionEnabled: isReactionEnabled,
211
+ truncateLimit: isByMe ? 18 : 14
212
+ }), isThumbnailMessage(message) && /*#__PURE__*/React__default.createElement(ThumbnailMessageItemBody, {
213
+ className: "sendbird-thread-list-item-content__middle__message-item-body",
214
+ message: message,
215
+ isByMe: isByMe,
216
+ isReactionEnabled: isReactionEnabled,
217
+ showFileViewer: showFileViewer,
218
+ style: {
219
+ width: '200px',
220
+ height: '148px'
221
+ }
222
+ }), getUIKitMessageType(message) === messageTypes.UNKNOWN && /*#__PURE__*/React__default.createElement(UnknownMessageItemBody, {
223
+ className: "sendbird-thread-list-item-content__middle__message-item-body",
224
+ message: message,
225
+ isByMe: isByMe,
226
+ isReactionEnabled: isReactionEnabled
227
+ }), isReactionEnabled && ((_e = message === null || message === void 0 ? void 0 : message.reactions) === null || _e === void 0 ? void 0 : _e.length) > 0 && /*#__PURE__*/React__default.createElement("div", {
228
+ className: getClassName(['sendbird-thread-list-item-content-reactions', !isByMe || isThumbnailMessage(message) || isOGMessage(message) ? '' : 'primary'])
229
+ }, /*#__PURE__*/React__default.createElement(EmojiReactions, {
230
+ userId: userId,
231
+ message: message,
232
+ isByMe: isByMe,
233
+ emojiContainer: emojiContainer,
234
+ memberNicknamesMap: nicknamesMap,
235
+ toggleReaction: toggleReaction
236
+ })), !isByMe && !chainBottom && /*#__PURE__*/React__default.createElement(Label, {
237
+ className: getClassName(['sendbird-thread-list-item-content__middle__body-container__created-at', 'right', supposedHoverClassName]),
238
+ type: LabelTypography.CAPTION_3,
239
+ color: LabelColors.ONBACKGROUND_2
240
+ }, format((message === null || message === void 0 ? void 0 : message.createdAt) || 0, 'p', {
241
+ locale: dateLocale
242
+ })))), /*#__PURE__*/React__default.createElement("div", {
243
+ className: "sendbird-thread-list-item-content__right ".concat(chainTop ? 'chain-top' : '', " ").concat(isByMe ? 'outgoing' : 'incoming')
244
+ }, !isByMe && /*#__PURE__*/React__default.createElement("div", {
245
+ className: "sendbird-thread-list-item-content-menu ".concat(supposedHoverClassName)
246
+ }, isReactionEnabled && /*#__PURE__*/React__default.createElement(MessageItemReactionMenu, {
247
+ className: "sendbird-thread-list-item-content-menu__reaction-menu",
248
+ message: message,
249
+ userId: userId,
250
+ spaceFromTrigger: {},
251
+ emojiContainer: emojiContainer,
252
+ toggleReaction: toggleReaction,
253
+ setSupposedHover: setSupposedHover
254
+ }), /*#__PURE__*/React__default.createElement(MessageItemMenu, {
255
+ className: "sendbird-thread-list-item-content-menu__normal-menu",
256
+ channel: channel,
257
+ message: message,
258
+ isByMe: isByMe,
259
+ replyType: replyType,
260
+ disabled: disabled,
261
+ showRemove: showRemove,
262
+ resendMessage: resendMessage,
263
+ setSupposedHover: setSupposedHover,
264
+ onReplyInThread: onReplyInThread
265
+ }))));
266
+ }
267
+
268
+ function ThreadListItem(_a) {
269
+ var _b, _c, _d, _e;
270
+
271
+ var className = _a.className,
272
+ message = _a.message,
273
+ chainTop = _a.chainTop,
274
+ chainBottom = _a.chainBottom,
275
+ hasSeparator = _a.hasSeparator,
276
+ renderCustomSeparator = _a.renderCustomSeparator,
277
+ handleScroll = _a.handleScroll;
278
+
279
+ var _f = useSendbirdStateContext(),
280
+ stores = _f.stores,
281
+ config = _f.config;
282
+
283
+ var isReactionEnabled = config.isReactionEnabled,
284
+ isMentionEnabled = config.isMentionEnabled,
285
+ isOnline = config.isOnline,
286
+ replyType = config.replyType,
287
+ userMention = config.userMention;
288
+ var userId = (_c = (_b = stores === null || stores === void 0 ? void 0 : stores.userStore) === null || _b === void 0 ? void 0 : _b.user) === null || _c === void 0 ? void 0 : _c.userId;
289
+ var dateLocale = useLocalization().dateLocale;
290
+ var threadContext = useThreadContext === null || useThreadContext === void 0 ? void 0 : useThreadContext();
291
+ var currentChannel = threadContext.currentChannel,
292
+ nicknamesMap = threadContext.nicknamesMap,
293
+ emojiContainer = threadContext.emojiContainer,
294
+ toggleReaction = threadContext.toggleReaction,
295
+ threadListStatus = threadContext.threadListStatus,
296
+ updateMessage = threadContext.updateMessage,
297
+ resendMessage = threadContext.resendMessage,
298
+ deleteMessage = threadContext.deleteMessage,
299
+ isMuted = threadContext.isMuted,
300
+ isChannelFrozen = threadContext.isChannelFrozen;
301
+ var openingMessage = threadContext === null || threadContext === void 0 ? void 0 : threadContext.message;
302
+
303
+ var _g = useState(false),
304
+ showEdit = _g[0],
305
+ setShowEdit = _g[1];
306
+
307
+ var _h = useState(false),
308
+ showRemove = _h[0],
309
+ setShowRemove = _h[1];
310
+
311
+ var _j = useState(false),
312
+ showFileViewer = _j[0],
313
+ setShowFileViewer = _j[1];
314
+
315
+ var usingReaction = isReactionEnabled && !(currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.isSuper) && !(currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.isBroadcast); // Move to message
316
+
317
+ var messageScrollRef = useRef(null);
318
+ useLayoutEffect(function () {
319
+ var _a;
320
+
321
+ if ((openingMessage === null || openingMessage === void 0 ? void 0 : openingMessage.messageId) === (message === null || message === void 0 ? void 0 : message.messageId) && (messageScrollRef === null || messageScrollRef === void 0 ? void 0 : messageScrollRef.current)) {
322
+ (_a = messageScrollRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
323
+ block: 'center',
324
+ inline: 'center'
325
+ });
326
+ }
327
+ }, [openingMessage, messageScrollRef === null || messageScrollRef === void 0 ? void 0 : messageScrollRef.current]); // reactions
328
+
329
+ useLayoutEffect(function () {
330
+ handleScroll === null || handleScroll === void 0 ? void 0 : handleScroll();
331
+ }, [showEdit, (_d = message === null || message === void 0 ? void 0 : message.reactions) === null || _d === void 0 ? void 0 : _d.length]); // mention
332
+
333
+ var editMessageInputRef = useRef(null);
334
+
335
+ var _k = useState(''),
336
+ mentionNickname = _k[0],
337
+ setMentionNickname = _k[1];
338
+
339
+ var _l = useState([]),
340
+ mentionedUsers = _l[0],
341
+ setMentionedUsers = _l[1];
342
+
343
+ var _m = useState([]),
344
+ mentionedUserIds = _m[0],
345
+ setMentionedUserIds = _m[1];
346
+
347
+ var _o = useState(null),
348
+ messageInputEvent = _o[0],
349
+ setMessageInputEvent = _o[1];
350
+
351
+ var _p = useState(null),
352
+ selectedUser = _p[0],
353
+ setSelectedUser = _p[1];
354
+
355
+ var _q = useState([]),
356
+ mentionSuggestedUsers = _q[0],
357
+ setMentionSuggestedUsers = _q[1];
358
+
359
+ var _r = useState(true),
360
+ ableMention = _r[0],
361
+ setAbleMention = _r[1];
362
+
363
+ var displaySuggestedMentionList = isOnline && isMentionEnabled && mentionNickname.length > 0 && !isMuted && !(isChannelFrozen && !(currentChannel.myRole === Role.OPERATOR));
364
+ useEffect(function () {
365
+ if ((mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) >= (userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount)) {
366
+ setAbleMention(false);
367
+ } else {
368
+ setAbleMention(true);
369
+ }
370
+ }, [mentionedUsers]);
371
+ useEffect(function () {
372
+ setMentionedUsers(mentionedUsers.filter(function (_a) {
373
+ var userId = _a.userId;
374
+ var i = mentionedUserIds.indexOf(userId);
375
+
376
+ if (i < 0) {
377
+ return false;
378
+ } else {
379
+ mentionedUserIds.splice(i, 1);
380
+ return true;
381
+ }
382
+ }));
383
+ }, [mentionedUserIds]); // edit input
384
+
385
+ var disabled = !(threadListStatus === ThreadListStateTypes.INITIALIZED) || !isOnline || isMuted || isChannelFrozen; // memorize
386
+
387
+ var MemorizedSeparator = useMemo(function () {
388
+ if (typeof renderCustomSeparator === 'function') {
389
+ return renderCustomSeparator === null || renderCustomSeparator === void 0 ? void 0 : renderCustomSeparator({
390
+ message: message
391
+ });
392
+ }
393
+ }, [message, renderCustomSeparator]); // Edit message
394
+
395
+ if (showEdit && message.isUserMessage()) {
396
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, displaySuggestedMentionList && /*#__PURE__*/React__default.createElement(SuggestedMentionList, {
397
+ targetNickname: mentionNickname,
398
+ inputEvent: messageInputEvent // renderUserMentionItem={renderUserMentionItem}
399
+ ,
400
+ onUserItemClick: function (user) {
401
+ if (user) {
402
+ setMentionedUsers(__spreadArray(__spreadArray([], mentionedUsers, true), [user], false));
403
+ }
404
+
405
+ setMentionNickname('');
406
+ setSelectedUser(user);
407
+ setMessageInputEvent(null);
408
+ },
409
+ onFocusItemChange: function () {
410
+ setMessageInputEvent(null);
411
+ },
412
+ onFetchUsers: function (users) {
413
+ setMentionSuggestedUsers(users);
414
+ },
415
+ ableAddMention: ableMention,
416
+ maxMentionCount: userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount,
417
+ maxSuggestionCount: userMention === null || userMention === void 0 ? void 0 : userMention.maxSuggestionCount
418
+ }), /*#__PURE__*/React__default.createElement(MessageInput, {
419
+ isEdit: true,
420
+ disabled: disabled,
421
+ ref: editMessageInputRef,
422
+ mentionSelectedUser: selectedUser,
423
+ isMentionEnabled: isMentionEnabled,
424
+ message: message,
425
+ onStartTyping: function () {
426
+ var _a;
427
+
428
+ (_a = currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.startTyping) === null || _a === void 0 ? void 0 : _a.call(currentChannel);
429
+ },
430
+ onUpdateMessage: function (_a) {
431
+ var _b;
432
+
433
+ var messageId = _a.messageId,
434
+ message = _a.message,
435
+ mentionTemplate = _a.mentionTemplate;
436
+ updateMessage({
437
+ messageId: messageId,
438
+ message: message,
439
+ mentionedUsers: mentionedUsers,
440
+ mentionTemplate: mentionTemplate
441
+ });
442
+ setShowEdit(false);
443
+ (_b = currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.endTyping) === null || _b === void 0 ? void 0 : _b.call(currentChannel);
444
+ },
445
+ onCancelEdit: function () {
446
+ var _a;
447
+
448
+ setMentionNickname('');
449
+ setMentionedUsers([]);
450
+ setMentionedUserIds([]);
451
+ setMentionSuggestedUsers([]);
452
+ setShowEdit(false);
453
+ (_a = currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.endTyping) === null || _a === void 0 ? void 0 : _a.call(currentChannel);
454
+ },
455
+ onUserMentioned: function (user) {
456
+ if ((selectedUser === null || selectedUser === void 0 ? void 0 : selectedUser.userId) === (user === null || user === void 0 ? void 0 : user.userId)) {
457
+ setSelectedUser(null);
458
+ setMentionNickname('');
459
+ }
460
+ },
461
+ onMentionStringChange: function (mentionText) {
462
+ setMentionNickname(mentionText);
463
+ },
464
+ onMentionedUserIdsUpdated: function (userIds) {
465
+ setMentionedUserIds(userIds);
466
+ },
467
+ onKeyDown: function (e) {
468
+ if (displaySuggestedMentionList && (mentionSuggestedUsers === null || mentionSuggestedUsers === void 0 ? void 0 : mentionSuggestedUsers.length) > 0 && (e.key === MessageInputKeys.Enter && ableMention || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)) {
469
+ setMessageInputEvent(e);
470
+ return true;
471
+ }
472
+
473
+ return false;
474
+ }
475
+ }));
476
+ }
477
+
478
+ return /*#__PURE__*/React__default.createElement("div", {
479
+ ref: messageScrollRef,
480
+ className: "sendbird-thread-list-item ".concat(className)
481
+ }, hasSeparator && (message === null || message === void 0 ? void 0 : message.createdAt) && (MemorizedSeparator || /*#__PURE__*/React__default.createElement(DateSeparator, null, /*#__PURE__*/React__default.createElement(Label, {
482
+ type: LabelTypography.CAPTION_2,
483
+ color: LabelColors.ONBACKGROUND_2
484
+ }, format(message === null || message === void 0 ? void 0 : message.createdAt, 'MMM dd, yyyy', {
485
+ locale: dateLocale
486
+ })))), /*#__PURE__*/React__default.createElement(ThreadListItemContent, {
487
+ userId: userId,
488
+ channel: currentChannel,
489
+ message: message,
490
+ chainTop: chainTop,
491
+ chainBottom: chainBottom,
492
+ isReactionEnabled: usingReaction,
493
+ isMentionEnabled: isMentionEnabled,
494
+ disableQuoteMessage: true,
495
+ replyType: replyType,
496
+ nicknamesMap: nicknamesMap,
497
+ emojiContainer: emojiContainer,
498
+ resendMessage: resendMessage,
499
+ showRemove: setShowRemove,
500
+ showFileViewer: setShowFileViewer,
501
+ toggleReaction: toggleReaction,
502
+ showEdit: setShowEdit
503
+ }), showRemove && /*#__PURE__*/React__default.createElement(RemoveMessage, {
504
+ message: message,
505
+ onCancel: function () {
506
+ return setShowRemove(false);
507
+ }
508
+ }), showFileViewer && /*#__PURE__*/React__default.createElement(FileViewer, {
509
+ message: message,
510
+ isByMe: ((_e = message === null || message === void 0 ? void 0 : message.sender) === null || _e === void 0 ? void 0 : _e.userId) === userId,
511
+ onClose: function () {
512
+ return setShowFileViewer(false);
513
+ },
514
+ onDelete: function () {
515
+ deleteMessage(message);
516
+ setShowFileViewer(false);
517
+ }
518
+ }));
519
+ }
520
+
521
+ export { ThreadListItem as default };
522
+ //# sourceMappingURL=ThreadListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadListItem.js","sources":["../../../src/smart-components/Thread/components/ThreadList/ThreadListItemContent.tsx","../../../src/smart-components/Thread/components/ThreadList/ThreadListItem.tsx"],"sourcesContent":["import React, { useContext, useRef, useState } from 'react';\nimport { EmojiContainer } from '@sendbird/chat';\nimport { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\n\nimport './ThreadListItemContent.scss';\n\nimport { ReplyType } from '../../../../types';\nimport ContextMenu, { MenuItems } from '../../../../ui/ContextMenu';\nimport Avatar from '../../../../ui/Avatar';\nimport { UserProfileContext } from '../../../../lib/UserProfileContext';\nimport { UserProfileContextInterface } from '../../../../ui/MessageContent';\nimport UserProfile from '../../../../ui/UserProfile';\nimport MessageItemMenu from '../../../../ui/MessageItemMenu';\nimport MessageItemReactionMenu from '../../../../ui/MessageItemReactionMenu';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport { getClassName, getSenderName, getUIKitMessageType, getUIKitMessageTypes, isOGMessage, isTextMessage, isThumbnailMessage } from '../../../../utils';\nimport MessageStatus from '../../../../ui/MessageStatus';\nimport EmojiReactions from '../../../../ui/EmojiReactions';\nimport format from 'date-fns/format';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport TextMessageItemBody from '../../../../ui/TextMessageItemBody';\nimport OGMessageItemBody from '../../../../ui/OGMessageItemBody';\nimport FileMessageItemBody from '../../../../ui/FileMessageItemBody';\nimport ThumbnailMessageItemBody from '../../../../ui/ThumbnailMessageItemBody';\nimport UnknownMessageItemBody from '../../../../ui/UnknownMessageItemBody';\n\nexport interface ThreadListItemContentProps {\n className?: string;\n userId: string;\n channel: GroupChannel;\n message: UserMessage | FileMessage;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n isMentionEnabled?: boolean;\n isReactionEnabled?: boolean;\n disableQuoteMessage?: boolean;\n replyType?: ReplyType;\n nicknamesMap?: Map<string, string>;\n emojiContainer?: EmojiContainer;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n showFileViewer?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n}\n\nexport default function ThreadListItemContent({\n className,\n userId,\n channel,\n message,\n disabled = false,\n chainTop = false,\n chainBottom = false,\n isMentionEnabled = false,\n isReactionEnabled = false,\n disableQuoteMessage = false,\n replyType,\n nicknamesMap,\n emojiContainer,\n showEdit,\n showRemove,\n showFileViewer,\n resendMessage,\n toggleReaction,\n onReplyInThread,\n}: ThreadListItemContentProps): React.ReactElement {\n const messageTypes = getUIKitMessageTypes();\n const { dateLocale } = useLocalization();\n const [supposedHover, setSupposedHover] = useState(false);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext<UserProfileContextInterface>(UserProfileContext);\n const avatarRef = useRef(null);\n\n const isByMe = (userId === (message as UserMessage | FileMessage)?.sender?.userId)\n || ((message as UserMessage | FileMessage)?.sendingStatus === 'pending')\n || ((message as UserMessage | FileMessage)?.sendingStatus === 'failed');\n const useReplying = !!((replyType === 'QUOTE_REPLY' || replyType === 'THREAD')\n && message?.parentMessageId && message?.parentMessage\n && !disableQuoteMessage\n );\n const supposedHoverClassName = supposedHover ? 'sendbird-mouse-hover' : '';\n return (\n <div className={`sendbird-thread-list-item-content ${className} ${isByMe ? 'outgoing' : 'incoming'}`}>\n <div className={`sendbird-thread-list-item-content__left ${isReactionEnabled ? 'use-reaction' : ''} ${isByMe ? 'outgoing' : 'incoming'}`}>\n {(!isByMe && !chainBottom) && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n className=\"sendbird-thread-list-item-content__left__avatar\"\n src={channel?.members?.find((member) => member?.userId === message?.sender?.userId)?.profileUrl || message?.sender?.profileUrl || ''}\n ref={avatarRef}\n width=\"28px\"\n height=\"28px\"\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown?.();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: '0px', paddingBottom: '0px' }}\n >\n {renderUserProfile\n ? renderUserProfile({ user: message?.sender, close: closeDropdown })\n : <UserProfile user={message?.sender} onSuccess={closeDropdown} />\n }\n </MenuItems>\n )}\n />\n )}\n {isByMe && (\n <div\n className={`sendbird-thread-list-item-content-menu ${isReactionEnabled ? 'use-reaction' : ''\n } ${isByMe ? 'outgoing' : 'incoming'\n } ${supposedHoverClassName}`}\n >\n <MessageItemMenu\n className=\"sendbird-thread-list-item-content-menu__normal-menu\"\n channel={channel}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n replyType={replyType}\n disabled={disabled}\n showEdit={showEdit}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setSupposedHover={setSupposedHover}\n onReplyInThread={onReplyInThread}\n />\n {isReactionEnabled && (\n <MessageItemReactionMenu\n className=\"sendbird-thread-list-item-content-menu__reaction-menu\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n spaceFromTrigger={{}}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n setSupposedHover={setSupposedHover}\n />\n )}\n </div>\n )}\n </div>\n <div className=\"sendbird-thread-list-item-content__middle\">\n {(!isByMe && !chainTop && !useReplying) && (\n <Label\n className=\"sendbird-thread-list-item-content__middle__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {\n channel?.members?.find((member) => member?.userId === message?.sender?.userId)?.nickname\n || getSenderName(message as UserMessage | FileMessage)\n // TODO: Divide getting profileUrl logic to utils\n }\n </Label>\n )}\n <div className={getClassName(['sendbird-thread-list-item-content__middle__body-container'])} >\n {/* message status component */}\n {(isByMe && !chainBottom) && (\n <div className={getClassName(['sendbird-thread-list-item-content__middle__body-container__created-at', 'left', supposedHoverClassName])}>\n <div className=\"sendbird-thread-list-item-content__middle__body-container__created-at__component-container\">\n <MessageStatus\n message={message as UserMessage | FileMessage}\n channel={channel}\n />\n </div>\n </div>\n )}\n {/* message item body components */}\n {isTextMessage(message as UserMessage) && (\n <TextMessageItemBody\n className=\"sendbird-thread-list-item-content__middle__message-item-body\"\n message={message as UserMessage}\n isByMe={isByMe}\n isMentionEnabled={isMentionEnabled}\n isReactionEnabled={isReactionEnabled}\n />\n )}\n {(isOGMessage(message as UserMessage)) && (\n <OGMessageItemBody\n className=\"sendbird-thread-list-item-content__middle__message-item-body\"\n message={message as UserMessage}\n isByMe={isByMe}\n isMentionEnabled={isMentionEnabled}\n isReactionEnabled={isReactionEnabled}\n />\n )}\n {(getUIKitMessageType((message as FileMessage)) === messageTypes.FILE) && (\n <FileMessageItemBody\n className=\"sendbird-thread-list-item-content__middle__message-item-body\"\n message={message as FileMessage}\n isByMe={isByMe}\n isReactionEnabled={isReactionEnabled}\n truncateLimit={isByMe ? 18 : 14}\n />\n )}\n {(isThumbnailMessage(message as FileMessage)) && (\n <ThumbnailMessageItemBody\n className=\"sendbird-thread-list-item-content__middle__message-item-body\"\n message={message as FileMessage}\n isByMe={isByMe}\n isReactionEnabled={isReactionEnabled}\n showFileViewer={showFileViewer}\n style={{\n width: '200px',\n height: '148px',\n }}\n />\n )}\n {(getUIKitMessageType((message as FileMessage)) === messageTypes.UNKNOWN) && (\n <UnknownMessageItemBody\n className=\"sendbird-thread-list-item-content__middle__message-item-body\"\n message={message}\n isByMe={isByMe}\n isReactionEnabled={isReactionEnabled}\n />\n )}\n {/* reactions */}\n {(isReactionEnabled && message?.reactions?.length > 0) && (\n <div className={getClassName([\n 'sendbird-thread-list-item-content-reactions',\n (!isByMe || isThumbnailMessage(message as FileMessage) || isOGMessage(message as UserMessage)) ? '' : 'primary',\n ])}>\n <EmojiReactions\n userId={userId}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n emojiContainer={emojiContainer}\n memberNicknamesMap={nicknamesMap}\n toggleReaction={toggleReaction}\n />\n </div>\n )}\n {(!isByMe && !chainBottom) && (\n <Label\n className={getClassName(['sendbird-thread-list-item-content__middle__body-container__created-at', 'right', supposedHoverClassName])}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {format(message?.createdAt || 0, 'p', {\n locale: dateLocale,\n })}\n </Label>\n )}\n </div>\n </div>\n <div\n className={`sendbird-thread-list-item-content__right ${chainTop ? 'chain-top' : ''\n } ${isByMe ? 'outgoing' : 'incoming'}`}\n >\n {!isByMe && (\n <div className={`sendbird-thread-list-item-content-menu ${supposedHoverClassName}`}>\n {isReactionEnabled && (\n <MessageItemReactionMenu\n className=\"sendbird-thread-list-item-content-menu__reaction-menu\"\n message={message as UserMessage | FileMessage}\n userId={userId}\n spaceFromTrigger={{}}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n setSupposedHover={setSupposedHover}\n />\n )}\n <MessageItemMenu\n className=\"sendbird-thread-list-item-content-menu__normal-menu\"\n channel={channel}\n message={message as UserMessage | FileMessage}\n isByMe={isByMe}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setSupposedHover={setSupposedHover}\n onReplyInThread={onReplyInThread}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React, { useMemo, useState, useRef, useEffect, useLayoutEffect } from 'react';\nimport format from 'date-fns/format';\nimport { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport RemoveMessage from '../RemoveMessageModal';\nimport FileViewer from '../../../../ui/FileViewer';\nimport { useThreadContext } from '../../context/ThreadProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../../../Channel/components/SuggestedMentionList';\nimport MessageInput from '../../../../ui/MessageInput';\nimport { ThreadListStateTypes } from '../../types';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport ThreadListItemContent from './ThreadListItemContent';\nimport { Role } from '@sendbird/chat';\n\nexport interface ThreadListItemProps {\n className?: string;\n message: UserMessage | FileMessage;\n chainTop?: boolean;\n chainBottom?: boolean;\n hasSeparator?: boolean;\n renderCustomSeparator?: (props: { message: UserMessage | FileMessage }) => React.ReactElement;\n handleScroll?: () => void;\n}\n\nexport default function ThreadListItem({\n className,\n message,\n chainTop,\n chainBottom,\n hasSeparator,\n renderCustomSeparator,\n handleScroll,\n}: ThreadListItemProps): React.ReactElement {\n const { stores, config } = useSendbirdStateContext();\n const {\n isReactionEnabled,\n isMentionEnabled,\n isOnline,\n replyType,\n userMention,\n } = config;\n const userId = stores?.userStore?.user?.userId;\n const { dateLocale } = useLocalization();\n const threadContext = useThreadContext?.();\n const {\n currentChannel,\n nicknamesMap,\n emojiContainer,\n toggleReaction,\n threadListStatus,\n updateMessage,\n resendMessage,\n deleteMessage,\n isMuted,\n isChannelFrozen,\n } = threadContext;\n const openingMessage = threadContext?.message;\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const usingReaction = isReactionEnabled && !currentChannel?.isSuper && !currentChannel?.isBroadcast;\n\n // Move to message\n const messageScrollRef = useRef(null);\n useLayoutEffect(() => {\n if (openingMessage?.messageId === message?.messageId && messageScrollRef?.current) {\n messageScrollRef.current?.scrollIntoView({ block: 'center', inline: 'center' });\n }\n }, [openingMessage, messageScrollRef?.current]);\n\n // reactions\n useLayoutEffect(() => {\n handleScroll?.();\n }, [showEdit, message?.reactions?.length]);\n\n // mention\n const editMessageInputRef = useRef(null);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isMuted\n && !(isChannelFrozen && !(currentChannel.myRole === Role.OPERATOR));\n useEffect(() => {\n if (mentionedUsers?.length >= userMention?.maxMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // edit input\n const disabled = !(threadListStatus === ThreadListStateTypes.INITIALIZED)\n || !isOnline\n || isMuted\n || isChannelFrozen;\n\n // memorize\n const MemorizedSeparator = useMemo(() => {\n if (typeof renderCustomSeparator === 'function') {\n return renderCustomSeparator?.({ message });\n }\n }, [message, renderCustomSeparator]);\n\n // Edit message\n if (showEdit && message.isUserMessage()) {\n return (\n <>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n // renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={userMention?.maxMentionCount}\n maxSuggestionCount={userMention?.maxSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onStartTyping={() => {\n currentChannel?.startTyping?.();\n }}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n currentChannel?.endTyping?.();\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([])\n setShowEdit(false);\n currentChannel?.endTyping?.();\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </>\n );\n }\n\n return (\n <div\n ref={messageScrollRef}\n className={`sendbird-thread-list-item ${className}`}\n >\n {/* date separator */}\n {\n hasSeparator && message?.createdAt && (MemorizedSeparator || (\n <DateSeparator>\n <Label\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {format(message?.createdAt, 'MMM dd, yyyy', { locale: dateLocale })}\n </Label>\n </DateSeparator>\n ))\n }\n <ThreadListItemContent\n userId={userId}\n channel={currentChannel}\n message={message}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={usingReaction}\n isMentionEnabled={isMentionEnabled}\n disableQuoteMessage\n replyType={replyType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n resendMessage={resendMessage}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n toggleReaction={toggleReaction}\n showEdit={setShowEdit}\n />\n {/* modal */}\n {showRemove && (\n <RemoveMessage\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )}\n {showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n isByMe={message?.sender?.userId === userId}\n onClose={() => setShowFileViewer(false)}\n onDelete={() => {\n deleteMessage(message);\n setShowFileViewer(false);\n }}\n />\n )}\n </div>\n );\n}\n"],"names":["ThreadListItemContent","_a","className","userId","channel","message","_f","disabled","_g","chainTop","_h","chainBottom","_j","isMentionEnabled","_k","isReactionEnabled","_l","disableQuoteMessage","replyType","nicknamesMap","emojiContainer","showEdit","showRemove","showFileViewer","resendMessage","toggleReaction","onReplyInThread","messageTypes","getUIKitMessageTypes","dateLocale","useLocalization","_m","useState","supposedHover","setSupposedHover","_o","useContext","UserProfileContext","disableUserProfile","renderUserProfile","avatarRef","useRef","isByMe","sender","_b","sendingStatus","useReplying","parentMessageId","parentMessage","supposedHoverClassName","React","concat","toggleDropdown","members","find","member","profileUrl","_c","closeDropdown","paddingTop","paddingBottom","user","close","UserProfile","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","_d","nickname","getSenderName","getClassName","isTextMessage","isOGMessage","getUIKitMessageType","FILE","isThumbnailMessage","width","height","UNKNOWN","_e","reactions","length","CAPTION_3","format","createdAt","locale","ThreadListItem","hasSeparator","renderCustomSeparator","handleScroll","useSendbirdStateContext","stores","config","isOnline","userMention","userStore","threadContext","useThreadContext","currentChannel","threadListStatus","updateMessage","deleteMessage","isMuted","isChannelFrozen","openingMessage","setShowEdit","setShowRemove","setShowFileViewer","usingReaction","isSuper","isBroadcast","messageScrollRef","useLayoutEffect","messageId","current","scrollIntoView","block","inline","editMessageInputRef","mentionNickname","setMentionNickname","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","messageInputEvent","setMessageInputEvent","_p","selectedUser","setSelectedUser","_q","mentionSuggestedUsers","setMentionSuggestedUsers","_r","ableMention","setAbleMention","displaySuggestedMentionList","myRole","Role","OPERATOR","useEffect","maxMentionCount","filter","i","indexOf","splice","ThreadListStateTypes","INITIALIZED","MemorizedSeparator","useMemo","isUserMessage","__spreadArray","users","maxSuggestionCount","startTyping","mentionTemplate","endTyping","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown"],"mappings":"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"}