@sendbird/uikit-react 3.2.0-rc.1 → 3.2.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 (508) hide show
  1. package/App.js +34 -32
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +8 -2
  4. package/Channel/components/ChannelHeader.js +19 -17
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +25 -23
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +18 -16
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/Message.js +22 -20
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +19 -17
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +24 -22
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +19 -17
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +19 -17
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +19 -17
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +4 -4
  24. package/Channel/context.js +17 -15
  25. package/Channel/context.js.map +1 -1
  26. package/Channel.js +25 -23
  27. package/Channel.js.map +1 -1
  28. package/ChannelList/components/AddChannel.js +13 -13
  29. package/ChannelList/components/ChannelListHeader.js +7 -7
  30. package/ChannelList/components/ChannelListUI.js +29 -27
  31. package/ChannelList/components/ChannelListUI.js.map +1 -1
  32. package/ChannelList/components/ChannelPreview.js +23 -21
  33. package/ChannelList/components/ChannelPreview.js.map +1 -1
  34. package/ChannelList/components/ChannelPreviewAction.js +17 -15
  35. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  36. package/ChannelList/context.js +12 -10
  37. package/ChannelList/context.js.map +1 -1
  38. package/ChannelList.js +29 -27
  39. package/ChannelList.js.map +1 -1
  40. package/{ChannelListProvider-368bd7f1.js → ChannelListProvider-b5833a69.js} +11 -11
  41. package/{ChannelListProvider-368bd7f1.js.map → ChannelListProvider-b5833a69.js.map} +1 -1
  42. package/{ChannelProvider-59559ed8.js → ChannelProvider-675be930.js} +12 -12
  43. package/{ChannelProvider-59559ed8.js.map → ChannelProvider-675be930.js.map} +1 -1
  44. package/ChannelSettings/components/ChannelProfile.js +11 -11
  45. package/ChannelSettings/components/ChannelSettingsUI.js +21 -19
  46. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  47. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  48. package/ChannelSettings/components/LeaveChannel.js +10 -10
  49. package/ChannelSettings/components/ModerationPanel.js +19 -17
  50. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  51. package/ChannelSettings/components/UserListItem.js +11 -11
  52. package/ChannelSettings/components/UserPanel.js +13 -13
  53. package/ChannelSettings/context.js +3 -3
  54. package/ChannelSettings.js +21 -19
  55. package/ChannelSettings.js.map +1 -1
  56. package/CreateChannel/components/CreateChannelUI.js +13 -13
  57. package/CreateChannel/components/InviteUsers.js +13 -13
  58. package/CreateChannel/components/SelectChannelType.js +10 -10
  59. package/CreateChannel/context.js +4 -4
  60. package/CreateChannel.js +13 -13
  61. package/{CreateChannelProvider-9c2113ca.js → CreateChannelProvider-05b11547.js} +1 -1
  62. package/{CreateChannelProvider-9c2113ca.js.map → CreateChannelProvider-05b11547.js.map} +1 -1
  63. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  64. package/CreateOpenChannel/context.js +1 -1
  65. package/CreateOpenChannel.js +9 -9
  66. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  67. package/EditUserProfile.js +12 -12
  68. package/{LocalizationContext-10829cf3.js → LocalizationContext-fd0d32ab.js} +3 -3
  69. package/{LocalizationContext-10829cf3.js.map → LocalizationContext-fd0d32ab.js.map} +1 -1
  70. package/{MemberList-e049f915.js → MemberList-78a423a0.js} +5 -5
  71. package/{MemberList-e049f915.js.map → MemberList-78a423a0.js.map} +1 -1
  72. package/MessageSearch/components/MessageSearchUI.js +11 -11
  73. package/MessageSearch/context.js +2 -2
  74. package/MessageSearch.js +11 -11
  75. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  76. package/OpenChannel/components/OpenChannelHeader.js +17 -15
  77. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  78. package/OpenChannel/components/OpenChannelInput.js +20 -18
  79. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  80. package/OpenChannel/components/OpenChannelMessage.js +25 -23
  81. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  82. package/OpenChannel/components/OpenChannelMessageList.js +27 -25
  83. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  84. package/OpenChannel/components/OpenChannelUI.js +27 -25
  85. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  86. package/OpenChannel/context.js +14 -12
  87. package/OpenChannel/context.js.map +1 -1
  88. package/OpenChannel.js +27 -25
  89. package/OpenChannel.js.map +1 -1
  90. package/OpenChannelList/components/OpenChannelListUI.js +12 -12
  91. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  92. package/OpenChannelList/context.js +4 -4
  93. package/OpenChannelList.js +12 -12
  94. package/{OpenChannelListProvider-95ce73b1.js → OpenChannelListProvider-6f9126d0.js} +3 -3
  95. package/{OpenChannelListProvider-95ce73b1.js.map → OpenChannelListProvider-6f9126d0.js.map} +1 -1
  96. package/{OpenChannelProvider-b360d5fe.js → OpenChannelProvider-e39971da.js} +11 -10
  97. package/{OpenChannelProvider-b360d5fe.js.map → OpenChannelProvider-e39971da.js.map} +1 -1
  98. package/OpenChannelSettings/components/EditDetailsModal.js +15 -14
  99. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  100. package/OpenChannelSettings/components/OpenChannelProfile.js +15 -14
  101. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  102. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +20 -19
  103. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  104. package/OpenChannelSettings/components/OperatorUI.js +19 -18
  105. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  106. package/OpenChannelSettings/components/ParticipantUI.js +17 -16
  107. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  108. package/OpenChannelSettings/context.js +6 -5
  109. package/OpenChannelSettings/context.js.map +1 -1
  110. package/OpenChannelSettings.js +20 -19
  111. package/OpenChannelSettings.js.map +1 -1
  112. package/SendbirdProvider.js +18 -16
  113. package/SendbirdProvider.js.map +1 -1
  114. package/{UserProfileContext-beacab28.js → UserProfileContext-d36099b1.js} +1 -1
  115. package/{UserProfileContext-beacab28.js.map → UserProfileContext-d36099b1.js.map} +1 -1
  116. package/__bundle-0dad34cd-10d4f218.js +6 -0
  117. package/__bundle-0dad34cd-10d4f218.js.map +1 -0
  118. package/__bundle-57e0c5af-4e9165b5.js +6 -0
  119. package/__bundle-57e0c5af-4e9165b5.js.map +1 -0
  120. package/__bundle-bd072f34-1aaac363.js +6 -0
  121. package/__bundle-bd072f34-1aaac363.js.map +1 -0
  122. package/{_rollupPluginBabelHelpers-22c28a74.js → _rollupPluginBabelHelpers-f6b9b32e.js} +1 -1
  123. package/_rollupPluginBabelHelpers-f6b9b32e.js.map +1 -0
  124. package/{actionTypes-fd0f0a6c.js → actionTypes-6b501c5e.js} +1 -1
  125. package/{actionTypes-fd0f0a6c.js.map → actionTypes-6b501c5e.js.map} +1 -1
  126. package/cjs/App.js +34 -32
  127. package/cjs/App.js.map +1 -1
  128. package/cjs/Channel/components/ChannelHeader.js +19 -17
  129. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  130. package/cjs/Channel/components/ChannelUI.js +25 -23
  131. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  132. package/cjs/Channel/components/FileViewer.js +18 -16
  133. package/cjs/Channel/components/FileViewer.js.map +1 -1
  134. package/cjs/Channel/components/FrozenNotification.js +4 -4
  135. package/cjs/Channel/components/Message.js +22 -20
  136. package/cjs/Channel/components/Message.js.map +1 -1
  137. package/cjs/Channel/components/MessageInput.js +19 -17
  138. package/cjs/Channel/components/MessageInput.js.map +1 -1
  139. package/cjs/Channel/components/MessageList.js +24 -22
  140. package/cjs/Channel/components/MessageList.js.map +1 -1
  141. package/cjs/Channel/components/RemoveMessageModal.js +19 -17
  142. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  143. package/cjs/Channel/components/SuggestedMentionList.js +19 -17
  144. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  145. package/cjs/Channel/components/TypingIndicator.js +19 -17
  146. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  147. package/cjs/Channel/components/UnreadCount.js +4 -4
  148. package/cjs/Channel/context.js +17 -15
  149. package/cjs/Channel/context.js.map +1 -1
  150. package/cjs/Channel.js +25 -23
  151. package/cjs/Channel.js.map +1 -1
  152. package/cjs/ChannelList/components/AddChannel.js +13 -13
  153. package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
  154. package/cjs/ChannelList/components/ChannelListUI.js +29 -27
  155. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  156. package/cjs/ChannelList/components/ChannelPreview.js +23 -21
  157. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  158. package/cjs/ChannelList/components/ChannelPreviewAction.js +17 -15
  159. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  160. package/cjs/ChannelList/context.js +12 -10
  161. package/cjs/ChannelList/context.js.map +1 -1
  162. package/cjs/ChannelList.js +29 -27
  163. package/cjs/ChannelList.js.map +1 -1
  164. package/cjs/{ChannelListProvider-dba82f83.js → ChannelListProvider-ae097fa5.js} +11 -11
  165. package/cjs/{ChannelListProvider-dba82f83.js.map → ChannelListProvider-ae097fa5.js.map} +1 -1
  166. package/cjs/{ChannelProvider-dd81a327.js → ChannelProvider-dbb1d52e.js} +16 -16
  167. package/cjs/{ChannelProvider-dd81a327.js.map → ChannelProvider-dbb1d52e.js.map} +1 -1
  168. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  169. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +21 -19
  170. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  171. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  172. package/cjs/ChannelSettings/components/LeaveChannel.js +10 -10
  173. package/cjs/ChannelSettings/components/ModerationPanel.js +19 -17
  174. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  175. package/cjs/ChannelSettings/components/UserListItem.js +11 -11
  176. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  177. package/cjs/ChannelSettings/context.js +3 -3
  178. package/cjs/ChannelSettings.js +21 -19
  179. package/cjs/ChannelSettings.js.map +1 -1
  180. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  181. package/cjs/CreateChannel/components/InviteUsers.js +13 -13
  182. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  183. package/cjs/CreateChannel/context.js +4 -4
  184. package/cjs/CreateChannel.js +13 -13
  185. package/cjs/{CreateChannelProvider-771bf00b.js → CreateChannelProvider-f8905c40.js} +1 -1
  186. package/cjs/{CreateChannelProvider-771bf00b.js.map → CreateChannelProvider-f8905c40.js.map} +1 -1
  187. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  188. package/cjs/CreateOpenChannel/context.js +1 -1
  189. package/cjs/CreateOpenChannel.js +9 -9
  190. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  191. package/cjs/EditUserProfile.js +12 -12
  192. package/cjs/{LocalizationContext-b051aa28.js → LocalizationContext-1f00818c.js} +3 -3
  193. package/cjs/{LocalizationContext-b051aa28.js.map → LocalizationContext-1f00818c.js.map} +1 -1
  194. package/cjs/{MemberList-6c0cdd90.js → MemberList-e2e283fe.js} +5 -5
  195. package/cjs/{MemberList-6c0cdd90.js.map → MemberList-e2e283fe.js.map} +1 -1
  196. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  197. package/cjs/MessageSearch/context.js +2 -2
  198. package/cjs/MessageSearch.js +11 -11
  199. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  200. package/cjs/OpenChannel/components/OpenChannelHeader.js +17 -15
  201. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  202. package/cjs/OpenChannel/components/OpenChannelInput.js +20 -18
  203. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  204. package/cjs/OpenChannel/components/OpenChannelMessage.js +25 -23
  205. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  206. package/cjs/OpenChannel/components/OpenChannelMessageList.js +27 -25
  207. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  208. package/cjs/OpenChannel/components/OpenChannelUI.js +27 -25
  209. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  210. package/cjs/OpenChannel/context.js +14 -12
  211. package/cjs/OpenChannel/context.js.map +1 -1
  212. package/cjs/OpenChannel.js +27 -25
  213. package/cjs/OpenChannel.js.map +1 -1
  214. package/cjs/OpenChannelList/components/OpenChannelListUI.js +12 -12
  215. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  216. package/cjs/OpenChannelList/context.js +4 -4
  217. package/cjs/OpenChannelList.js +12 -12
  218. package/cjs/{OpenChannelListProvider-3eed20f7.js → OpenChannelListProvider-e311c2a1.js} +3 -3
  219. package/cjs/{OpenChannelListProvider-3eed20f7.js.map → OpenChannelListProvider-e311c2a1.js.map} +1 -1
  220. package/cjs/{OpenChannelProvider-e4f3a05c.js → OpenChannelProvider-dd8403ee.js} +11 -10
  221. package/cjs/{OpenChannelProvider-e4f3a05c.js.map → OpenChannelProvider-dd8403ee.js.map} +1 -1
  222. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +15 -14
  223. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  224. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -14
  225. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  226. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +20 -19
  227. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  228. package/cjs/OpenChannelSettings/components/OperatorUI.js +19 -18
  229. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  230. package/cjs/OpenChannelSettings/components/ParticipantUI.js +17 -16
  231. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  232. package/cjs/OpenChannelSettings/context.js +6 -5
  233. package/cjs/OpenChannelSettings/context.js.map +1 -1
  234. package/cjs/OpenChannelSettings.js +20 -19
  235. package/cjs/OpenChannelSettings.js.map +1 -1
  236. package/cjs/SendbirdProvider.js +18 -17
  237. package/cjs/SendbirdProvider.js.map +1 -1
  238. package/cjs/{UserProfileContext-fa684629.js → UserProfileContext-3a4f0132.js} +1 -1
  239. package/cjs/{UserProfileContext-fa684629.js.map → UserProfileContext-3a4f0132.js.map} +1 -1
  240. package/cjs/__bundle-0dad34cd-bd827f82.js +33 -0
  241. package/cjs/__bundle-0dad34cd-bd827f82.js.map +1 -0
  242. package/cjs/__bundle-57e0c5af-b8304f7a.js +113 -0
  243. package/cjs/__bundle-57e0c5af-b8304f7a.js.map +1 -0
  244. package/cjs/__bundle-bd072f34-578ccb1e.js +15 -0
  245. package/cjs/__bundle-bd072f34-578ccb1e.js.map +1 -0
  246. package/cjs/{_rollupPluginBabelHelpers-c7da8657.js → _rollupPluginBabelHelpers-6917423d.js} +1 -1
  247. package/cjs/_rollupPluginBabelHelpers-6917423d.js.map +1 -0
  248. package/cjs/{actionTypes-1bc31680.js → actionTypes-341644d7.js} +1 -1
  249. package/cjs/{actionTypes-1bc31680.js.map → actionTypes-341644d7.js.map} +1 -1
  250. package/cjs/{color-8c864d64.js → color-0a6e19c1.js} +1 -1
  251. package/cjs/{color-8c864d64.js.map → color-0a6e19c1.js.map} +1 -1
  252. package/cjs/{compareIds-a7236494.js → compareIds-8d064912.js} +1 -1
  253. package/cjs/{compareIds-a7236494.js.map → compareIds-8d064912.js.map} +1 -1
  254. package/cjs/{const-de0fa0d4.js → const-67a2a885.js} +1 -1
  255. package/cjs/{const-de0fa0d4.js.map → const-67a2a885.js.map} +1 -1
  256. package/cjs/{const-baa5e08a.js → const-bf239fc5.js} +1 -1
  257. package/cjs/{const-baa5e08a.js.map → const-bf239fc5.js.map} +1 -1
  258. package/cjs/{context-867cfd7f.js → context-738129e2.js} +2 -2
  259. package/cjs/{context-867cfd7f.js.map → context-738129e2.js.map} +1 -1
  260. package/cjs/dist/index.css +55 -55
  261. package/cjs/dist/index.css.map +1 -1
  262. package/cjs/groupChannel-05c7f9f8.js +11 -0
  263. package/cjs/groupChannel-05c7f9f8.js.map +1 -0
  264. package/cjs/handlers/ConnectionHandler.js +4 -2
  265. package/cjs/handlers/ConnectionHandler.js.map +1 -1
  266. package/cjs/handlers/GroupChannelHandler.js +5 -3
  267. package/cjs/handlers/GroupChannelHandler.js.map +1 -1
  268. package/cjs/handlers/OpenChannelHandler.js +3 -2
  269. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  270. package/cjs/handlers/SessionHandler.js +4 -2
  271. package/cjs/handlers/SessionHandler.js.map +1 -1
  272. package/cjs/handlers/UserEventHandler.js +4 -2
  273. package/cjs/handlers/UserEventHandler.js.map +1 -1
  274. package/cjs/{index-907bf834.js → index-177380fc.js} +2 -2
  275. package/cjs/{index-907bf834.js.map → index-177380fc.js.map} +1 -1
  276. package/cjs/{index-78d342b2.js → index-1ac7777f.js} +4 -4
  277. package/cjs/{index-78d342b2.js.map → index-1ac7777f.js.map} +1 -1
  278. package/cjs/{index-6d02996a.js → index-32123d95.js} +2 -2
  279. package/cjs/{index-6d02996a.js.map → index-32123d95.js.map} +1 -1
  280. package/cjs/{index-76deed83.js → index-4f32f285.js} +8 -8
  281. package/cjs/{index-76deed83.js.map → index-4f32f285.js.map} +1 -1
  282. package/cjs/{index-d31051df.js → index-8c25d6aa.js} +1 -1
  283. package/cjs/{index-d31051df.js.map → index-8c25d6aa.js.map} +1 -1
  284. package/cjs/{index-62c9ad2d.js → index-8d7a94e3.js} +6 -6
  285. package/cjs/index-8d7a94e3.js.map +1 -0
  286. package/cjs/{index-b478bf3b.js → index-92bda0ce.js} +4 -4
  287. package/cjs/{index-b478bf3b.js.map → index-92bda0ce.js.map} +1 -1
  288. package/cjs/{index-c4369117.js → index-a11fb495.js} +2 -2
  289. package/cjs/{index-c4369117.js.map → index-a11fb495.js.map} +1 -1
  290. package/cjs/{index-511e268c.js → index-a18115d7.js} +5 -5
  291. package/cjs/{index-511e268c.js.map → index-a18115d7.js.map} +1 -1
  292. package/cjs/{index-53015903.js → index-d82f6dd1.js} +1 -1
  293. package/cjs/{index-53015903.js.map → index-d82f6dd1.js.map} +1 -1
  294. package/cjs/index.js +38 -36
  295. package/cjs/index.js.map +1 -1
  296. package/cjs/openChannel-c5952dd7.js +10 -0
  297. package/cjs/openChannel-c5952dd7.js.map +1 -0
  298. package/cjs/{openChannelUtils-fc2ec8df.js → openChannelUtils-f286fd78.js} +1 -1
  299. package/cjs/{openChannelUtils-fc2ec8df.js.map → openChannelUtils-f286fd78.js.map} +1 -1
  300. package/cjs/sendbird-5edd0213.js +12 -0
  301. package/cjs/sendbird-5edd0213.js.map +1 -0
  302. package/cjs/sendbirdSelectors.js +2 -2
  303. package/cjs/{stringSet-9d251780.js → stringSet-410775ff.js} +1 -1
  304. package/cjs/{stringSet-9d251780.js.map → stringSet-410775ff.js.map} +1 -1
  305. package/cjs/{topics-ac8d2b51.js → topics-9747398e.js} +1 -1
  306. package/cjs/{topics-ac8d2b51.js.map → topics-9747398e.js.map} +1 -1
  307. package/cjs/{tslib.es6-9b1c82d5.js → tslib.es6-7d75f2e2.js} +1 -1
  308. package/cjs/{tslib.es6-9b1c82d5.js.map → tslib.es6-7d75f2e2.js.map} +1 -1
  309. package/cjs/ui/Accordion.js +3 -3
  310. package/cjs/ui/AccordionGroup.js +2 -2
  311. package/cjs/ui/AdminMessage.js +3 -3
  312. package/cjs/ui/Avatar.js +2 -2
  313. package/cjs/ui/Badge.js +5 -5
  314. package/cjs/ui/Button.js +3 -3
  315. package/cjs/ui/ChannelAvatar.js +3 -3
  316. package/cjs/ui/ConnectionStatus.js +4 -4
  317. package/cjs/ui/ContextMenu.js +5 -5
  318. package/cjs/ui/DateSeparator.js +4 -4
  319. package/cjs/ui/EmojiReactions.js +7 -7
  320. package/cjs/ui/FileMessageItemBody.js +5 -5
  321. package/cjs/ui/FileViewer.js +8 -8
  322. package/cjs/ui/IconButton.js +1 -1
  323. package/cjs/ui/ImageRenderer.js +1 -1
  324. package/cjs/ui/Input.js +2 -2
  325. package/cjs/ui/Label.js +2 -2
  326. package/cjs/ui/LinkLabel.js +7 -5
  327. package/cjs/ui/LinkLabel.js.map +1 -1
  328. package/cjs/ui/Loader.js +1 -1
  329. package/cjs/ui/MentionLabel.js +10 -10
  330. package/cjs/ui/MessageContent.js +13 -13
  331. package/cjs/ui/MessageInput.js +9 -9
  332. package/cjs/ui/MessageItemMenu.js +7 -7
  333. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  334. package/cjs/ui/MessageSearchFileItem.js +9 -9
  335. package/cjs/ui/MessageSearchItem.js +9 -9
  336. package/cjs/ui/MessageStatus.js +7 -7
  337. package/cjs/ui/Modal.js +6 -6
  338. package/cjs/ui/OGMessageItemBody.js +10 -10
  339. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  340. package/cjs/ui/OpenChannelAvatar.js +6 -6
  341. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  342. package/cjs/ui/OpenchannelFileMessage.js +14 -14
  343. package/cjs/ui/OpenchannelOGMessage.js +14 -14
  344. package/cjs/ui/OpenchannelThumbnailMessage.js +13 -13
  345. package/cjs/ui/OpenchannelUserMessage.js +14 -14
  346. package/cjs/ui/PlaceHolder.js +6 -6
  347. package/cjs/ui/QuoteMessage.js +6 -6
  348. package/cjs/ui/QuoteMessageInput.js +6 -6
  349. package/cjs/ui/ReactionBadge.js +3 -3
  350. package/cjs/ui/ReactionButton.js +1 -1
  351. package/cjs/ui/SortByRow.js +2 -2
  352. package/cjs/ui/TextButton.js +2 -2
  353. package/cjs/ui/TextMessageItemBody.js +10 -10
  354. package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
  355. package/cjs/ui/Tooltip.js +3 -3
  356. package/cjs/ui/TooltipWrapper.js +1 -1
  357. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  358. package/cjs/ui/UserListItem.js +11 -11
  359. package/cjs/ui/UserProfile.js +9 -9
  360. package/cjs/ui/Word.js +10 -10
  361. package/cjs/useSendbirdStateContext.js +1 -1
  362. package/cjs/{utils-8c634fd2.js → utils-01db6d26.js} +1 -1
  363. package/cjs/{utils-8c634fd2.js.map → utils-01db6d26.js.map} +1 -1
  364. package/cjs/{utils-655acd99.js → utils-291d272a.js} +1 -1
  365. package/cjs/{utils-655acd99.js.map → utils-291d272a.js.map} +1 -1
  366. package/cjs/{utils-8e6fef1c.js → utils-37a47883.js} +1 -1
  367. package/cjs/{utils-8e6fef1c.js.map → utils-37a47883.js.map} +1 -1
  368. package/cjs/{uuid-c32d01d6.js → uuid-c813a8a1.js} +1 -1
  369. package/cjs/{uuid-c32d01d6.js.map → uuid-c813a8a1.js.map} +1 -1
  370. package/cjs/withSendbird.js +1 -1
  371. package/{color-fff21001.js → color-b897a03c.js} +1 -1
  372. package/{color-fff21001.js.map → color-b897a03c.js.map} +1 -1
  373. package/{compareIds-332d261c.js → compareIds-4bd391cb.js} +1 -1
  374. package/{compareIds-332d261c.js.map → compareIds-4bd391cb.js.map} +1 -1
  375. package/{const-03293011.js → const-b4823468.js} +1 -1
  376. package/{const-03293011.js.map → const-b4823468.js.map} +1 -1
  377. package/{const-78e336dd.js → const-e71ab906.js} +1 -1
  378. package/{const-78e336dd.js.map → const-e71ab906.js.map} +1 -1
  379. package/{context-44e184de.js → context-fd21f142.js} +2 -2
  380. package/{context-44e184de.js.map → context-fd21f142.js.map} +1 -1
  381. package/dist/index.css +55 -55
  382. package/dist/index.css.map +1 -1
  383. package/groupChannel-a10aea7a.js +8 -0
  384. package/groupChannel-a10aea7a.js.map +1 -0
  385. package/handlers/ConnectionHandler.js +4 -2
  386. package/handlers/ConnectionHandler.js.map +1 -1
  387. package/handlers/GroupChannelHandler.js +5 -3
  388. package/handlers/GroupChannelHandler.js.map +1 -1
  389. package/handlers/OpenChannelHandler.js +4 -3
  390. package/handlers/OpenChannelHandler.js.map +1 -1
  391. package/handlers/SessionHandler.js +4 -2
  392. package/handlers/SessionHandler.js.map +1 -1
  393. package/handlers/UserEventHandler.js +4 -2
  394. package/handlers/UserEventHandler.js.map +1 -1
  395. package/{index-49d3a217.js → index-73516d8c.js} +8 -8
  396. package/{index-49d3a217.js.map → index-73516d8c.js.map} +1 -1
  397. package/{index-5e788130.js → index-8b78f6b4.js} +1 -1
  398. package/{index-5e788130.js.map → index-8b78f6b4.js.map} +1 -1
  399. package/{index-3ddec9e9.js → index-94381d3a.js} +2 -2
  400. package/{index-3ddec9e9.js.map → index-94381d3a.js.map} +1 -1
  401. package/{index-00b281a3.js → index-952ab825.js} +4 -4
  402. package/{index-00b281a3.js.map → index-952ab825.js.map} +1 -1
  403. package/{index-ed8e5d48.js → index-96a98383.js} +4 -4
  404. package/{index-ed8e5d48.js.map → index-96a98383.js.map} +1 -1
  405. package/{index-8bd6c997.js → index-c022bfde.js} +2 -2
  406. package/{index-8bd6c997.js.map → index-c022bfde.js.map} +1 -1
  407. package/{index-940576d8.js → index-ce08211b.js} +1 -1
  408. package/{index-940576d8.js.map → index-ce08211b.js.map} +1 -1
  409. package/{index-7b043ab9.js → index-dfa71ceb.js} +6 -6
  410. package/index-dfa71ceb.js.map +1 -0
  411. package/{index-e5aab3b4.js → index-e6424a4d.js} +5 -5
  412. package/{index-e5aab3b4.js.map → index-e6424a4d.js.map} +1 -1
  413. package/{index-46beca69.js → index-f6fd2b53.js} +2 -2
  414. package/{index-46beca69.js.map → index-f6fd2b53.js.map} +1 -1
  415. package/index.d.ts +1 -1
  416. package/index.js +38 -36
  417. package/index.js.map +1 -1
  418. package/{openChannel-2aef0cd5.js → openChannel-80b84235.js} +4 -3
  419. package/openChannel-80b84235.js.map +1 -0
  420. package/{openChannelUtils-d27d1e28.js → openChannelUtils-19317cb9.js} +1 -1
  421. package/{openChannelUtils-d27d1e28.js.map → openChannelUtils-19317cb9.js.map} +1 -1
  422. package/package.json +2 -3
  423. package/sendbird-7e3109ab.js +7 -0
  424. package/sendbird-7e3109ab.js.map +1 -0
  425. package/sendbirdSelectors.js +2 -2
  426. package/{stringSet-804c49f3.js → stringSet-eb4a64cb.js} +1 -1
  427. package/{stringSet-804c49f3.js.map → stringSet-eb4a64cb.js.map} +1 -1
  428. package/{topics-24c0f724.js → topics-307251cc.js} +1 -1
  429. package/{topics-24c0f724.js.map → topics-307251cc.js.map} +1 -1
  430. package/{tslib.es6-4faaa58d.js → tslib.es6-46e4c379.js} +1 -1
  431. package/{tslib.es6-4faaa58d.js.map → tslib.es6-46e4c379.js.map} +1 -1
  432. package/ui/Accordion.js +3 -3
  433. package/ui/AccordionGroup.js +2 -2
  434. package/ui/AdminMessage.js +3 -3
  435. package/ui/Avatar.js +2 -2
  436. package/ui/Badge.js +5 -5
  437. package/ui/Button.js +3 -3
  438. package/ui/ChannelAvatar.js +3 -3
  439. package/ui/ConnectionStatus.js +4 -4
  440. package/ui/ContextMenu.js +5 -5
  441. package/ui/DateSeparator.js +4 -4
  442. package/ui/EmojiReactions.js +7 -7
  443. package/ui/FileMessageItemBody.js +5 -5
  444. package/ui/FileViewer.js +8 -8
  445. package/ui/IconButton.js +1 -1
  446. package/ui/ImageRenderer.js +1 -1
  447. package/ui/Input.js +2 -2
  448. package/ui/Label.js +2 -2
  449. package/ui/LinkLabel.js +7 -5
  450. package/ui/LinkLabel.js.map +1 -1
  451. package/ui/Loader.js +1 -1
  452. package/ui/MentionLabel.js +10 -10
  453. package/ui/MessageContent.js +13 -13
  454. package/ui/MessageInput.js +9 -9
  455. package/ui/MessageItemMenu.js +7 -7
  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 +7 -7
  460. package/ui/Modal.js +6 -6
  461. package/ui/OGMessageItemBody.js +10 -10
  462. package/ui/OpenChannelAdminMessage.js +3 -3
  463. package/ui/OpenChannelAvatar.js +6 -6
  464. package/ui/OpenchannelConversationHeader.js +6 -6
  465. package/ui/OpenchannelFileMessage.js +14 -14
  466. package/ui/OpenchannelOGMessage.js +14 -14
  467. package/ui/OpenchannelThumbnailMessage.js +13 -13
  468. package/ui/OpenchannelUserMessage.js +14 -14
  469. package/ui/PlaceHolder.js +6 -6
  470. package/ui/QuoteMessage.js +6 -6
  471. package/ui/QuoteMessageInput.js +6 -6
  472. package/ui/ReactionBadge.js +3 -3
  473. package/ui/ReactionButton.js +1 -1
  474. package/ui/SortByRow.js +2 -2
  475. package/ui/TextButton.js +2 -2
  476. package/ui/TextMessageItemBody.js +10 -10
  477. package/ui/ThumbnailMessageItemBody.js +2 -2
  478. package/ui/Tooltip.js +3 -3
  479. package/ui/TooltipWrapper.js +1 -1
  480. package/ui/UnknownMessageItemBody.js +6 -6
  481. package/ui/UserListItem.js +11 -11
  482. package/ui/UserProfile.js +9 -9
  483. package/ui/Word.js +10 -10
  484. package/useSendbirdStateContext.js +1 -1
  485. package/{utils-47a3394f.js → utils-c0d5a2eb.js} +1 -1
  486. package/{utils-47a3394f.js.map → utils-c0d5a2eb.js.map} +1 -1
  487. package/{utils-28acb86e.js → utils-c9a90631.js} +1 -1
  488. package/{utils-28acb86e.js.map → utils-c9a90631.js.map} +1 -1
  489. package/{utils-32938255.js → utils-ea8d6707.js} +1 -1
  490. package/{utils-32938255.js.map → utils-ea8d6707.js.map} +1 -1
  491. package/{uuid-4521c466.js → uuid-e8248f01.js} +1 -1
  492. package/{uuid-4521c466.js.map → uuid-e8248f01.js.map} +1 -1
  493. package/withSendbird.js +1 -1
  494. package/__bundle-c41dd401-d4ab6c10.js +0 -22
  495. package/__bundle-c41dd401-d4ab6c10.js.map +0 -1
  496. package/_rollupPluginBabelHelpers-22c28a74.js.map +0 -1
  497. package/cjs/__bundle-c41dd401-1f364afe.js +0 -120
  498. package/cjs/__bundle-c41dd401-1f364afe.js.map +0 -1
  499. package/cjs/_rollupPluginBabelHelpers-c7da8657.js.map +0 -1
  500. package/cjs/groupChannel-95ba4a71.js +0 -11
  501. package/cjs/groupChannel-95ba4a71.js.map +0 -1
  502. package/cjs/index-62c9ad2d.js.map +0 -1
  503. package/cjs/openChannel-4789903c.js +0 -9
  504. package/cjs/openChannel-4789903c.js.map +0 -1
  505. package/groupChannel-3301a732.js +0 -8
  506. package/groupChannel-3301a732.js.map +0 -1
  507. package/index-7b043ab9.js.map +0 -1
  508. package/openChannel-2aef0cd5.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FileViewer.js","sources":["../../../../src/smart-components/Channel/components/FileViewer/index.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport './file-viewer.scss';\nimport Avatar from '../../../../ui/Avatar';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport Icon, { IconColors, IconTypes } from '../../../../ui/Icon';\nimport { MODAL_ROOT } from '../../../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, isSupportedFileView } from '../../../../utils';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { EveryMessage } from '../../../../types';\n\ntype FileViewerUIProps = {\n profileUrl: string;\n nickname: string;\n // file\n name: string;\n type: string;\n url: string;\n // others\n isByMe: boolean;\n onCancel: () => void;\n onDelete: () => void;\n disableDelete: boolean;\n};\n\nexport const FileViewerComponent: React.FC<FileViewerUIProps> = ({\n // sender\n profileUrl,\n nickname,\n // file\n name,\n type,\n url,\n // others\n isByMe,\n onCancel,\n onDelete,\n disableDelete,\n}: FileViewerUIProps) => (\n <div className=\"sendbird-fileviewer\">\n <div className=\"sendbird-fileviewer__header\">\n <div className=\"sendbird-fileviewer__header__left\">\n <div className=\"sendbird-fileviewer__header__left__avatar\">\n <Avatar height=\"32px\" width=\"32px\" src={profileUrl} />\n </div>\n <Label\n className=\"sendbird-fileviewer__header__left__filename\"\n type={LabelTypography.H_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name}\n </Label>\n <Label\n className=\"sendbird-fileviewer__header__left__sender-name\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {nickname}\n </Label>\n </div>\n <div className=\"sendbird-fileviewer__header__right\">\n {\n isSupportedFileView(type) && (\n <div className=\"sendbird-fileviewer__header__right__actions\">\n <a\n className=\"sendbird-fileviewer__header__right__actions__download\"\n rel=\"noopener noreferrer\"\n href={url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n />\n </a>\n {\n onDelete && isByMe && (\n <div className=\"sendbird-fileviewer__header__right__actions__delete\">\n <Icon\n className={disableDelete ? 'disabled' : ''}\n type={IconTypes.DELETE}\n fillColor={disableDelete ? IconColors.GRAY : IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n onClick={() => { if (!disableDelete) { onDelete(); } }}\n />\n </div>\n )\n }\n </div>\n )\n }\n <div className=\"sendbird-fileviewer__header__right__actions__close\">\n <Icon\n type={IconTypes.CLOSE}\n fillColor={IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n onClick={onCancel}\n />\n </div>\n </div>\n </div>\n <div className=\"sendbird-fileviewer__content\">\n {isVideo(type) && (\n <video controls className=\"sendbird-fileviewer__content__video\">\n <source src={url} type={type} />\n </video>\n )}\n {\n isImage(type) && (\n <img\n src={url}\n alt={name}\n className=\"sendbird-fileviewer__content__img\"\n />\n )\n }\n {\n !isSupportedFileView(type) && (\n <div className=\"sendbird-fileviewer__content__unsupported\">\n <Label type={LabelTypography.H_1} color={LabelColors.ONBACKGROUND_1}>\n Unsupoprted message\n </Label>\n </div>\n )\n }\n </div>\n </div>\n);\n\ntype FileViewerProps = {\n onCancel:() => void;\n message: FileMessage;\n};\n\nconst FileViewer: React.FC<FileViewerProps> = ({ onCancel, message }: FileViewerProps) => {\n const { deleteMessage } = useChannelContext();\n const {\n sender,\n type,\n url,\n name = '',\n threadInfo,\n } = message;\n const user = useSendbirdStateContext()?.config?.userId;\n const isByMe = user === message?.sender?.userId;\n const disableDelete = threadInfo?.replyCount > 0;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n <FileViewerComponent\n profileUrl={profileUrl}\n nickname={nickname}\n type={type}\n url={url}\n name={name}\n onCancel={onCancel}\n onDelete={() => {\n deleteMessage(message as EveryMessage).then(() => {\n onCancel();\n });\n }}\n isByMe={isByMe}\n disableDelete={disableDelete}\n />\n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nexport default FileViewer;\n"],"names":["FileViewerComponent","_a","profileUrl","nickname","name","type","url","isByMe","onCancel","onDelete","disableDelete","React","Avatar","Label","LabelTypography","H_2","LabelColors","ONBACKGROUND_1","BODY_1","ONBACKGROUND_2","isSupportedFileView","Icon","IconTypes","DOWNLOAD","IconColors","ON_BACKGROUND_1","DELETE","GRAY","CLOSE","isVideo","isImage","H_1","FileViewer","message","deleteMessage","useChannelContext","sender","_e","threadInfo","user","_c","_b","useSendbirdStateContext","config","userId","_d","replyCount","_f","createPortal","then","document","getElementById","MODAL_ROOT"],"mappings":"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"}
1
+ {"version":3,"file":"FileViewer.js","sources":["../../../../src/smart-components/Channel/components/FileViewer/index.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport './file-viewer.scss';\nimport Avatar from '../../../../ui/Avatar';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport Icon, { IconColors, IconTypes } from '../../../../ui/Icon';\nimport { MODAL_ROOT } from '../../../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, isSupportedFileView } from '../../../../utils';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { EveryMessage } from '../../../../types';\n\ntype FileViewerUIProps = {\n profileUrl: string;\n nickname: string;\n // file\n name: string;\n type: string;\n url: string;\n // others\n isByMe: boolean;\n onCancel: () => void;\n onDelete: () => void;\n disableDelete: boolean;\n};\n\nexport const FileViewerComponent: React.FC<FileViewerUIProps> = ({\n // sender\n profileUrl,\n nickname,\n // file\n name,\n type,\n url,\n // others\n isByMe,\n onCancel,\n onDelete,\n disableDelete,\n}: FileViewerUIProps) => (\n <div className=\"sendbird-fileviewer\">\n <div className=\"sendbird-fileviewer__header\">\n <div className=\"sendbird-fileviewer__header__left\">\n <div className=\"sendbird-fileviewer__header__left__avatar\">\n <Avatar height=\"32px\" width=\"32px\" src={profileUrl} />\n </div>\n <Label\n className=\"sendbird-fileviewer__header__left__filename\"\n type={LabelTypography.H_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name}\n </Label>\n <Label\n className=\"sendbird-fileviewer__header__left__sender-name\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {nickname}\n </Label>\n </div>\n <div className=\"sendbird-fileviewer__header__right\">\n {\n isSupportedFileView(type) && (\n <div className=\"sendbird-fileviewer__header__right__actions\">\n <a\n className=\"sendbird-fileviewer__header__right__actions__download\"\n rel=\"noopener noreferrer\"\n href={url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n />\n </a>\n {\n onDelete && isByMe && (\n <div className=\"sendbird-fileviewer__header__right__actions__delete\">\n <Icon\n className={disableDelete ? 'disabled' : ''}\n type={IconTypes.DELETE}\n fillColor={disableDelete ? IconColors.GRAY : IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n onClick={() => { if (!disableDelete) { onDelete(); } }}\n />\n </div>\n )\n }\n </div>\n )\n }\n <div className=\"sendbird-fileviewer__header__right__actions__close\">\n <Icon\n type={IconTypes.CLOSE}\n fillColor={IconColors.ON_BACKGROUND_1}\n height=\"24px\"\n width=\"24px\"\n onClick={onCancel}\n />\n </div>\n </div>\n </div>\n <div className=\"sendbird-fileviewer__content\">\n {isVideo(type) && (\n <video controls className=\"sendbird-fileviewer__content__video\">\n <source src={url} type={type} />\n </video>\n )}\n {\n isImage(type) && (\n <img\n src={url}\n alt={name}\n className=\"sendbird-fileviewer__content__img\"\n />\n )\n }\n {\n !isSupportedFileView(type) && (\n <div className=\"sendbird-fileviewer__content__unsupported\">\n <Label type={LabelTypography.H_1} color={LabelColors.ONBACKGROUND_1}>\n Unsupoprted message\n </Label>\n </div>\n )\n }\n </div>\n </div>\n);\n\ntype FileViewerProps = {\n onCancel:() => void;\n message: FileMessage;\n};\n\nconst FileViewer: React.FC<FileViewerProps> = ({ onCancel, message }: FileViewerProps) => {\n const { deleteMessage } = useChannelContext();\n const {\n sender,\n type,\n url,\n name = '',\n threadInfo,\n } = message;\n const user = useSendbirdStateContext()?.config?.userId;\n const isByMe = user === message?.sender?.userId;\n const disableDelete = threadInfo?.replyCount > 0;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n <FileViewerComponent\n profileUrl={profileUrl}\n nickname={nickname}\n type={type}\n url={url}\n name={name}\n onCancel={onCancel}\n onDelete={() => {\n deleteMessage(message as EveryMessage).then(() => {\n onCancel();\n });\n }}\n isByMe={isByMe}\n disableDelete={disableDelete}\n />\n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nexport default FileViewer;\n"],"names":["FileViewerComponent","_a","profileUrl","nickname","name","type","url","isByMe","onCancel","onDelete","disableDelete","React","Avatar","Label","LabelTypography","H_2","LabelColors","ONBACKGROUND_1","BODY_1","ONBACKGROUND_2","isSupportedFileView","Icon","IconTypes","DOWNLOAD","IconColors","ON_BACKGROUND_1","DELETE","GRAY","CLOSE","isVideo","isImage","H_1","FileViewer","message","deleteMessage","useChannelContext","sender","_e","threadInfo","user","_c","_b","useSendbirdStateContext","config","userId","_d","replyCount","_f","createPortal","then","document","getElementById","MODAL_ROOT"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var LocalizationContext = require('../../LocalizationContext-b051aa28.js');
5
- var ui_Label = require('../../index-62c9ad2d.js');
6
- require('../../stringSet-9d251780.js');
7
- require('../../index-53015903.js');
4
+ var LocalizationContext = require('../../LocalizationContext-1f00818c.js');
5
+ var ui_Label = require('../../index-8d7a94e3.js');
6
+ require('../../stringSet-410775ff.js');
7
+ require('../../index-d82f6dd1.js');
8
8
  require('prop-types');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1,47 +1,49 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../tslib.es6-9b1c82d5.js');
3
+ var tslib_es6 = require('../../tslib.es6-7d75f2e2.js');
4
4
  var React = require('react');
5
- var index$1 = require('../../index-c4369117.js');
5
+ var index$1 = require('../../index-a11fb495.js');
6
6
  var Channel_components_SuggestedMentionList = require('./SuggestedMentionList.js');
7
7
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
8
- var Channel_context = require('../../ChannelProvider-dd81a327.js');
9
- var index = require('../../index-907bf834.js');
10
- var _const = require('../../const-de0fa0d4.js');
8
+ var Channel_context = require('../../ChannelProvider-dbb1d52e.js');
9
+ var index = require('../../index-177380fc.js');
10
+ var _const = require('../../const-67a2a885.js');
11
11
  var ui_DateSeparator = require('../../ui/DateSeparator.js');
12
- var ui_Label = require('../../index-62c9ad2d.js');
12
+ var ui_Label = require('../../index-8d7a94e3.js');
13
13
  var ui_MessageInput = require('../../ui/MessageInput.js');
14
14
  var ui_MessageContent = require('../../ui/MessageContent.js');
15
15
  var Channel_components_FileViewer = require('./FileViewer.js');
16
16
  var Channel_components_RemoveMessageModal = require('./RemoveMessageModal.js');
17
- var _const$1 = require('../../const-baa5e08a.js');
18
- var LocalizationContext = require('../../LocalizationContext-b051aa28.js');
19
- require('../../index-53015903.js');
17
+ var _const$1 = require('../../const-bf239fc5.js');
18
+ var LocalizationContext = require('../../LocalizationContext-1f00818c.js');
19
+ require('../../index-d82f6dd1.js');
20
20
  require('../../ui/Icon.js');
21
21
  require('prop-types');
22
22
  require('../../ui/Avatar.js');
23
23
  require('../../ui/ImageRenderer.js');
24
- require('../../uuid-c32d01d6.js');
24
+ require('../../uuid-c813a8a1.js');
25
25
  require('../../withSendbird.js');
26
- require('../../_rollupPluginBabelHelpers-c7da8657.js');
27
- require('../../UserProfileContext-fa684629.js');
28
- require('../../topics-ac8d2b51.js');
29
- require('../../compareIds-a7236494.js');
30
- require('../../groupChannel-95ba4a71.js');
31
- require('../../__bundle-c41dd401-1f364afe.js');
26
+ require('../../_rollupPluginBabelHelpers-6917423d.js');
27
+ require('../../UserProfileContext-3a4f0132.js');
28
+ require('../../topics-9747398e.js');
29
+ require('../../compareIds-8d064912.js');
30
+ require('../../groupChannel-05c7f9f8.js');
31
+ require('../../__bundle-57e0c5af-b8304f7a.js');
32
+ require('../../__bundle-0dad34cd-bd827f82.js');
33
+ require('../../__bundle-bd072f34-578ccb1e.js');
32
34
  require('../../ui/ContextMenu.js');
33
35
  require('react-dom');
34
36
  require('../../ui/SortByRow.js');
35
- require('../../stringSet-9d251780.js');
37
+ require('../../stringSet-410775ff.js');
36
38
  require('../../ui/ReactionButton.js');
37
- require('../../color-8c864d64.js');
39
+ require('../../color-0a6e19c1.js');
38
40
  require('react-dom/server');
39
41
  require('../../ui/IconButton.js');
40
42
  require('../../ui/Button.js');
41
43
  require('../../ui/MentionUserLabel.js');
42
44
  require('../../ui/UserProfile.js');
43
45
  require('../../sendbirdSelectors.js');
44
- require('../../utils-8e6fef1c.js');
46
+ require('../../utils-37a47883.js');
45
47
  require('../../ui/MessageStatus.js');
46
48
  require('../../ui/Loader.js');
47
49
  require('../../ui/MessageItemMenu.js');
@@ -61,7 +63,7 @@ require('../../ui/ThumbnailMessageItemBody.js');
61
63
  require('../../ui/OGMessageItemBody.js');
62
64
  require('../../ui/UnknownMessageItemBody.js');
63
65
  require('../../ui/QuoteMessage.js');
64
- require('../../index-d31051df.js');
66
+ require('../../index-8c25d6aa.js');
65
67
  require('../../ui/Modal.js');
66
68
 
67
69
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sources":["../../../../src/smart-components/Channel/components/Message/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\nconst Message = (props: MessageUIProps): React.FC<MessageUIProps> | React.ReactElement => {\n const {\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n } = props;\n\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n } = useChannelContext();\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\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 editMessageInputRef = useRef(null);\n const useMessageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\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 useLayoutEffect(() => {\n handleScroll?.();\n }, [showEdit, message?.reactions?.length]);\n\n useLayoutEffect(() => {\n if (highLightedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsAnimated(false);\n setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n setTimeout(() => {\n setHighLightedMessageId(0);\n }, 1600);\n }\n } else {\n setIsHighlighted(false);\n }\n }, [highLightedMessageId, useMessageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n if (animatedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsHighlighted(false);\n setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n setTimeout(() => {\n setAnimatedMessageId(0);\n }, 1600);\n }\n } else {\n setIsAnimated(false);\n }\n }, [animatedMessageId, useMessageScrollRef.current, message.messageId]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.({ message: message });\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n ref={useMessageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message.isUserMessage()) {\n return renderEditInput?.() || (\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={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([])\n setShowEdit(false);\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 className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n ref={useMessageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["Message","props","message","hasSeparator","chainTop","chainBottom","handleScroll","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","_b","config","userId","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","_c","useChannelContext","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","_d","useState","showEdit","setShowEdit","_e","showRemove","setShowRemove","_f","showFileViewer","setShowFileViewer","_g","isAnimated","setIsAnimated","_h","isHighlighted","setIsHighlighted","_j","mentionNickname","setMentionNickname","_k","mentionedUsers","setMentionedUsers","_l","mentionedUserIds","setMentionedUserIds","_m","messageInputEvent","setMessageInputEvent","_o","selectedUser","setSelectedUser","_p","mentionSuggestedUsers","setMentionSuggestedUsers","_q","ableMention","setAbleMention","editMessageInputRef","useRef","useMessageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","useEffect","filter","_a","i","indexOf","splice","useLayoutEffect","reactions","messageId","current","scrollIntoView","block","inline","setTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","getClassName","DateSeparator","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","format","createdAt","locale","isUserMessage","SuggestedMentionList","user","__spreadArray","users","MessageInput","mentionTemplate","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","marginBottom","MessageContent","RemoveMessageModal","FileViewer"],"mappings":"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"}
1
+ {"version":3,"file":"Message.js","sources":["../../../../src/smart-components/Channel/components/Message/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\nconst Message = (props: MessageUIProps): React.FC<MessageUIProps> | React.ReactElement => {\n const {\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n } = props;\n\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n } = useChannelContext();\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\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 editMessageInputRef = useRef(null);\n const useMessageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\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 useLayoutEffect(() => {\n handleScroll?.();\n }, [showEdit, message?.reactions?.length]);\n\n useLayoutEffect(() => {\n if (highLightedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsAnimated(false);\n setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n setTimeout(() => {\n setHighLightedMessageId(0);\n }, 1600);\n }\n } else {\n setIsHighlighted(false);\n }\n }, [highLightedMessageId, useMessageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n if (animatedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsHighlighted(false);\n setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n setTimeout(() => {\n setAnimatedMessageId(0);\n }, 1600);\n }\n } else {\n setIsAnimated(false);\n }\n }, [animatedMessageId, useMessageScrollRef.current, message.messageId]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.({ message: message });\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n ref={useMessageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message.isUserMessage()) {\n return renderEditInput?.() || (\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={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([])\n setShowEdit(false);\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 className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n ref={useMessageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["Message","props","message","hasSeparator","chainTop","chainBottom","handleScroll","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","_b","config","userId","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","_c","useChannelContext","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","_d","useState","showEdit","setShowEdit","_e","showRemove","setShowRemove","_f","showFileViewer","setShowFileViewer","_g","isAnimated","setIsAnimated","_h","isHighlighted","setIsHighlighted","_j","mentionNickname","setMentionNickname","_k","mentionedUsers","setMentionedUsers","_l","mentionedUserIds","setMentionedUserIds","_m","messageInputEvent","setMessageInputEvent","_o","selectedUser","setSelectedUser","_p","mentionSuggestedUsers","setMentionSuggestedUsers","_q","ableMention","setAbleMention","editMessageInputRef","useRef","useMessageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","useEffect","filter","_a","i","indexOf","splice","useLayoutEffect","reactions","messageId","current","scrollIntoView","block","inline","setTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","getClassName","DateSeparator","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","format","createdAt","locale","isUserMessage","SuggestedMentionList","user","__spreadArray","users","MessageInput","mentionTemplate","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","marginBottom","MessageContent","RemoveMessageModal","FileViewer"],"mappings":"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"}
@@ -1,31 +1,33 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../tslib.es6-9b1c82d5.js');
3
+ var tslib_es6 = require('../../tslib.es6-7d75f2e2.js');
4
4
  var React = require('react');
5
- var Channel_context = require('../../ChannelProvider-dd81a327.js');
5
+ var Channel_context = require('../../ChannelProvider-dbb1d52e.js');
6
6
  var ui_MessageInput = require('../../ui/MessageInput.js');
7
7
  var ui_QuoteMessageInput = require('../../ui/QuoteMessageInput.js');
8
- var LocalizationContext = require('../../LocalizationContext-b051aa28.js');
8
+ var LocalizationContext = require('../../LocalizationContext-1f00818c.js');
9
9
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
10
10
  var Channel_components_SuggestedMentionList = require('./SuggestedMentionList.js');
11
- var _const = require('../../const-baa5e08a.js');
12
- require('../../UserProfileContext-fa684629.js');
11
+ var _const = require('../../const-bf239fc5.js');
12
+ require('../../UserProfileContext-3a4f0132.js');
13
13
  require('prop-types');
14
- require('../../index-c4369117.js');
15
- require('../../index-53015903.js');
16
- require('../../topics-ac8d2b51.js');
17
- require('../../index-907bf834.js');
18
- require('../../_rollupPluginBabelHelpers-c7da8657.js');
19
- require('../../compareIds-a7236494.js');
20
- require('../../const-de0fa0d4.js');
21
- require('../../groupChannel-95ba4a71.js');
22
- require('../../__bundle-c41dd401-1f364afe.js');
23
- require('../../uuid-c32d01d6.js');
14
+ require('../../index-a11fb495.js');
15
+ require('../../index-d82f6dd1.js');
16
+ require('../../topics-9747398e.js');
17
+ require('../../index-177380fc.js');
18
+ require('../../_rollupPluginBabelHelpers-6917423d.js');
19
+ require('../../compareIds-8d064912.js');
20
+ require('../../const-67a2a885.js');
21
+ require('../../groupChannel-05c7f9f8.js');
22
+ require('../../__bundle-57e0c5af-b8304f7a.js');
23
+ require('../../__bundle-0dad34cd-bd827f82.js');
24
+ require('../../__bundle-bd072f34-578ccb1e.js');
25
+ require('../../uuid-c813a8a1.js');
24
26
  require('../../ui/ContextMenu.js');
25
27
  require('react-dom');
26
28
  require('../../ui/SortByRow.js');
27
- require('../../index-62c9ad2d.js');
28
- require('../../stringSet-9d251780.js');
29
+ require('../../index-8d7a94e3.js');
30
+ require('../../stringSet-410775ff.js');
29
31
  require('../../ui/ReactionButton.js');
30
32
  require('../../ui/ImageRenderer.js');
31
33
  require('../../ui/Icon.js');
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../../../src/smart-components/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\n\nexport type MessageInputWrapperProps = {\n value?: string;\n};\n\n\nconst MessageInputWrapper = (\n props: MessageInputWrapperProps,\n ref: React.MutableRefObject<any>,\n): JSX.Element => {\n const { value } = props;\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const channel = currentGroupChannel;\n\n const { isOnline, isMentionEnabled, userMention } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const isBroadcast = channel?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel);\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setAbleMention(true);\n setMessageInputEvent(null);\n }, [channel?.url]);\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\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 // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className=\"sendbird-message-input-wrapper\">\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={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n value={value}\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED)\n }\n ref={ref || messageInputRef}\n disabled={disabled}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\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 </div>\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","props","ref","value","_a","useChannelContext","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","globalStore","useSendbirdStateContext","channel","_b","config","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","_c","useState","mentionNickname","setMentionNickname","_d","mentionedUsers","setMentionedUsers","_e","mentionedUserIds","setMentionedUserIds","_f","selectedUser","setSelectedUser","_g","mentionSuggestedUsers","setMentionSuggestedUsers","_h","ableMention","setAbleMention","_j","messageInputEvent","setMessageInputEvent","disabled","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","filter","userId","i","indexOf","splice","React","SuggestedMentionList","user","__spreadArray","users","QuoteMessageInput","MessageInput","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","message","mentionTemplate","endTyping","file","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../../../src/smart-components/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\n\nexport type MessageInputWrapperProps = {\n value?: string;\n};\n\n\nconst MessageInputWrapper = (\n props: MessageInputWrapperProps,\n ref: React.MutableRefObject<any>,\n): JSX.Element => {\n const { value } = props;\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const channel = currentGroupChannel;\n\n const { isOnline, isMentionEnabled, userMention } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const isBroadcast = channel?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel);\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setAbleMention(true);\n setMessageInputEvent(null);\n }, [channel?.url]);\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\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 // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className=\"sendbird-message-input-wrapper\">\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={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n value={value}\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED)\n }\n ref={ref || messageInputRef}\n disabled={disabled}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\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 </div>\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","props","ref","value","_a","useChannelContext","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","globalStore","useSendbirdStateContext","channel","_b","config","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","_c","useState","mentionNickname","setMentionNickname","_d","mentionedUsers","setMentionedUsers","_e","mentionedUserIds","setMentionedUserIds","_f","selectedUser","setSelectedUser","_g","mentionSuggestedUsers","setMentionSuggestedUsers","_h","ableMention","setAbleMention","_j","messageInputEvent","setMessageInputEvent","disabled","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","filter","userId","i","indexOf","splice","React","SuggestedMentionList","user","__spreadArray","users","QuoteMessageInput","MessageInput","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","message","mentionTemplate","endTyping","file","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
@@ -1,40 +1,42 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var index = require('../../index-6d02996a.js');
5
- var Channel_context = require('../../ChannelProvider-dd81a327.js');
6
- var ui_PlaceHolder = require('../../index-78d342b2.js');
4
+ var index = require('../../index-32123d95.js');
5
+ var Channel_context = require('../../ChannelProvider-dbb1d52e.js');
6
+ var ui_PlaceHolder = require('../../index-1ac7777f.js');
7
7
  var ui_Icon = require('../../ui/Icon.js');
8
8
  var Channel_components_Message = require('./Message.js');
9
- var uuid = require('../../uuid-c32d01d6.js');
10
- require('../../index-c4369117.js');
11
- require('../../index-53015903.js');
12
- require('../../UserProfileContext-fa684629.js');
9
+ var uuid = require('../../uuid-c813a8a1.js');
10
+ require('../../index-a11fb495.js');
11
+ require('../../index-d82f6dd1.js');
12
+ require('../../UserProfileContext-3a4f0132.js');
13
13
  require('prop-types');
14
14
  require('../../useSendbirdStateContext.js');
15
15
  require('../../withSendbird.js');
16
- require('../../_rollupPluginBabelHelpers-c7da8657.js');
17
- require('../../topics-ac8d2b51.js');
18
- require('../../index-907bf834.js');
19
- require('../../tslib.es6-9b1c82d5.js');
20
- require('../../compareIds-a7236494.js');
21
- require('../../const-de0fa0d4.js');
22
- require('../../groupChannel-95ba4a71.js');
23
- require('../../__bundle-c41dd401-1f364afe.js');
16
+ require('../../_rollupPluginBabelHelpers-6917423d.js');
17
+ require('../../topics-9747398e.js');
18
+ require('../../index-177380fc.js');
19
+ require('../../tslib.es6-7d75f2e2.js');
20
+ require('../../compareIds-8d064912.js');
21
+ require('../../const-67a2a885.js');
22
+ require('../../groupChannel-05c7f9f8.js');
23
+ require('../../__bundle-57e0c5af-b8304f7a.js');
24
+ require('../../__bundle-0dad34cd-bd827f82.js');
25
+ require('../../__bundle-bd072f34-578ccb1e.js');
24
26
  require('../../ui/ContextMenu.js');
25
27
  require('react-dom');
26
28
  require('../../ui/SortByRow.js');
27
- require('../../index-62c9ad2d.js');
28
- require('../../stringSet-9d251780.js');
29
+ require('../../index-8d7a94e3.js');
30
+ require('../../stringSet-410775ff.js');
29
31
  require('../../ui/ReactionButton.js');
30
32
  require('../../ui/ImageRenderer.js');
31
- require('../../LocalizationContext-b051aa28.js');
33
+ require('../../LocalizationContext-1f00818c.js');
32
34
  require('../../ui/Loader.js');
33
35
  require('./SuggestedMentionList.js');
34
36
  require('../../ui/Avatar.js');
35
- require('../../const-baa5e08a.js');
37
+ require('../../const-bf239fc5.js');
36
38
  require('../../ui/DateSeparator.js');
37
- require('../../color-8c864d64.js');
39
+ require('../../color-0a6e19c1.js');
38
40
  require('../../ui/MessageInput.js');
39
41
  require('react-dom/server');
40
42
  require('../../ui/IconButton.js');
@@ -43,7 +45,7 @@ require('../../ui/MentionUserLabel.js');
43
45
  require('../../ui/MessageContent.js');
44
46
  require('../../ui/UserProfile.js');
45
47
  require('../../sendbirdSelectors.js');
46
- require('../../utils-8e6fef1c.js');
48
+ require('../../utils-37a47883.js');
47
49
  require('../../ui/MessageStatus.js');
48
50
  require('../../ui/MessageItemMenu.js');
49
51
  require('../../ui/MessageItemReactionMenu.js');
@@ -63,7 +65,7 @@ require('../../ui/OGMessageItemBody.js');
63
65
  require('../../ui/UnknownMessageItemBody.js');
64
66
  require('../../ui/QuoteMessage.js');
65
67
  require('./FileViewer.js');
66
- require('../../index-d31051df.js');
68
+ require('../../index-8c25d6aa.js');
67
69
  require('./RemoveMessageModal.js');
68
70
  require('../../ui/Modal.js');
69
71
 
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.js","sources":["../../../../src/smart-components/Channel/components/MessageList/index.tsx"],"sourcesContent":["import './message-list.scss';\n\nimport React, { useState, useMemo } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { compareMessagesForGrouping } from '../../context/utils';\nimport Message from '../Message';\nimport { RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport type MessageListProps = {\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderPlaceholderEmpty?: () => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n};\n\nconst SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';\n\nconst MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {\n const {\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeparator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n isMessageGroupingEnabled,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannelContext();\n const [scrollBottom, setScrollBottom] = useState(0);\n\n const onScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (scrollTop === 0) {\n if (!hasMorePrev) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);\n const first = nodes && nodes[0];\n onScrollCallback(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n // Set block to nearest to prevent unexpected scrolling from outer components\n try {\n first.scrollIntoView({ block: \"start\", inline: \"nearest\" });\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n element.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n // save the lastest scroll bottom value\n if (scrollRef?.current) {\n const current = scrollRef?.current;\n setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight)\n }\n\n // do this later\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n try {\n currentGroupChannel?.markAsRead();\n } catch {\n //\n }\n }\n }, 500);\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop > -1) {\n scrollRef.current.scrollTop = scrollRef?.current?.scrollHeight - scrollRef?.current?.offsetHeight;\n }\n };\n\n // Because every message components are re-rendered everytime by every scroll events\n const memoizedAllMessages = useMemo(() => {\n return (\n allMessages.map((m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = isMessageGroupingEnabled\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const handleScroll = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n }\n\n return (\n <Message\n handleScroll={handleScroll}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeparator={renderCustomSeparator}\n key={m.messageId + uuidv4()}\n />\n );\n })\n );\n }, [allMessages]);\n\n if (allMessages.length < 1) {\n return (\n <>\n {\n renderPlaceholderEmpty?.() || (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />)\n }\n </>\n );\n }\n return (\n <div className=\"sendbird-conversation__messages\">\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={onScroll}\n >\n {memoizedAllMessages}\n </div>\n </div>\n {\n // This flag is an unmatched variable\n (scrollBottom > 1) && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["SCROLL_REF_CLASS_NAME","MessageList","props","renderMessage","renderPlaceholderEmpty","renderCustomSeparator","_a","useChannelContext","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","isMessageGroupingEnabled","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","_b","useState","scrollBottom","setScrollBottom","onScroll","e","element","target","scrollTop","clientHeight","scrollHeight","nodes","current","querySelectorAll","first_1","messages","scrollIntoView","block","inline","error","isAboutSame","offsetHeight","setTimeout","type","MARK_AS_READ","payload","channel","markAsRead","onClickScrollBot","_c","memoizedAllMessages","useMemo","map","m","idx","previousMessage","nextMessage","compareMessagesForGrouping","chainTop","chainBottom","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","handleScroll","bottom","React","Message","messageId","uuidv4","length","PlaceHolder","PlaceHolderTypes","NO_MESSAGES","Icon","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}
1
+ {"version":3,"file":"MessageList.js","sources":["../../../../src/smart-components/Channel/components/MessageList/index.tsx"],"sourcesContent":["import './message-list.scss';\n\nimport React, { useState, useMemo } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { compareMessagesForGrouping } from '../../context/utils';\nimport Message from '../Message';\nimport { RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport type MessageListProps = {\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderPlaceholderEmpty?: () => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n};\n\nconst SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';\n\nconst MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {\n const {\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeparator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n isMessageGroupingEnabled,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannelContext();\n const [scrollBottom, setScrollBottom] = useState(0);\n\n const onScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (scrollTop === 0) {\n if (!hasMorePrev) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);\n const first = nodes && nodes[0];\n onScrollCallback(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n // Set block to nearest to prevent unexpected scrolling from outer components\n try {\n first.scrollIntoView({ block: \"start\", inline: \"nearest\" });\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n element.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n // save the lastest scroll bottom value\n if (scrollRef?.current) {\n const current = scrollRef?.current;\n setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight)\n }\n\n // do this later\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n try {\n currentGroupChannel?.markAsRead();\n } catch {\n //\n }\n }\n }, 500);\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop > -1) {\n scrollRef.current.scrollTop = scrollRef?.current?.scrollHeight - scrollRef?.current?.offsetHeight;\n }\n };\n\n // Because every message components are re-rendered everytime by every scroll events\n const memoizedAllMessages = useMemo(() => {\n return (\n allMessages.map((m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = isMessageGroupingEnabled\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const handleScroll = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n }\n\n return (\n <Message\n handleScroll={handleScroll}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeparator={renderCustomSeparator}\n key={m.messageId + uuidv4()}\n />\n );\n })\n );\n }, [allMessages]);\n\n if (allMessages.length < 1) {\n return (\n <>\n {\n renderPlaceholderEmpty?.() || (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />)\n }\n </>\n );\n }\n return (\n <div className=\"sendbird-conversation__messages\">\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={onScroll}\n >\n {memoizedAllMessages}\n </div>\n </div>\n {\n // This flag is an unmatched variable\n (scrollBottom > 1) && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["SCROLL_REF_CLASS_NAME","MessageList","props","renderMessage","renderPlaceholderEmpty","renderCustomSeparator","_a","useChannelContext","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","isMessageGroupingEnabled","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","_b","useState","scrollBottom","setScrollBottom","onScroll","e","element","target","scrollTop","clientHeight","scrollHeight","nodes","current","querySelectorAll","first_1","messages","scrollIntoView","block","inline","error","isAboutSame","offsetHeight","setTimeout","type","MARK_AS_READ","payload","channel","markAsRead","onClickScrollBot","_c","memoizedAllMessages","useMemo","map","m","idx","previousMessage","nextMessage","compareMessagesForGrouping","chainTop","chainBottom","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","handleScroll","bottom","React","Message","messageId","uuidv4","length","PlaceHolder","PlaceHolderTypes","NO_MESSAGES","Icon","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}