@sendbird/uikit-react 3.3.3 → 3.3.4

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 (453) hide show
  1. package/App.js +35 -35
  2. package/CHANGELOG.md +7 -0
  3. package/Channel/components/ChannelHeader.js +18 -18
  4. package/Channel/components/ChannelUI.js +27 -26
  5. package/Channel/components/ChannelUI.js.map +1 -1
  6. package/Channel/components/FileViewer.js +14 -14
  7. package/Channel/components/FrozenNotification.js +4 -4
  8. package/Channel/components/Message.js +24 -22
  9. package/Channel/components/Message.js.map +1 -1
  10. package/Channel/components/MessageInput.js +16 -16
  11. package/Channel/components/MessageList.js +25 -24
  12. package/Channel/components/MessageList.js.map +1 -1
  13. package/Channel/components/RemoveMessageModal.js +16 -16
  14. package/Channel/components/SuggestedMentionList.js +16 -16
  15. package/Channel/components/TypingIndicator.js +14 -14
  16. package/Channel/components/UnreadCount.js +4 -4
  17. package/Channel/context.js +13 -13
  18. package/Channel.js +27 -26
  19. package/Channel.js.map +1 -1
  20. package/ChannelList/components/AddChannel.js +15 -15
  21. package/ChannelList/components/ChannelListHeader.js +7 -7
  22. package/ChannelList/components/ChannelListUI.js +29 -29
  23. package/ChannelList/components/ChannelPreview.js +32 -100
  24. package/ChannelList/components/ChannelPreview.js.map +1 -1
  25. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  26. package/ChannelList/context.js +8 -8
  27. package/ChannelList.js +29 -29
  28. package/{ChannelListProvider-6522df17.js → ChannelListProvider-29e939e1.js} +8 -8
  29. package/{ChannelListProvider-6522df17.js.map → ChannelListProvider-29e939e1.js.map} +1 -1
  30. package/{ChannelProvider-014846c8.js → ChannelProvider-0f023800.js} +9 -9
  31. package/{ChannelProvider-014846c8.js.map → ChannelProvider-0f023800.js.map} +1 -1
  32. package/ChannelSettings/components/ChannelProfile.js +12 -12
  33. package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  34. package/ChannelSettings/components/EditDetailsModal.js +12 -12
  35. package/ChannelSettings/components/LeaveChannel.js +12 -12
  36. package/ChannelSettings/components/ModerationPanel.js +15 -15
  37. package/ChannelSettings/components/UserListItem.js +11 -11
  38. package/ChannelSettings/components/UserPanel.js +14 -14
  39. package/ChannelSettings/context.js +3 -3
  40. package/ChannelSettings.js +18 -18
  41. package/CreateChannel/components/CreateChannelUI.js +14 -14
  42. package/CreateChannel/components/InviteUsers.js +14 -14
  43. package/CreateChannel/components/SelectChannelType.js +11 -11
  44. package/CreateChannel/context.js +4 -4
  45. package/CreateChannel.js +14 -14
  46. package/{CreateChannelProvider-54ec0feb.js → CreateChannelProvider-1bad158a.js} +1 -1
  47. package/{CreateChannelProvider-54ec0feb.js.map → CreateChannelProvider-1bad158a.js.map} +1 -1
  48. package/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
  49. package/CreateOpenChannel/context.js +1 -1
  50. package/CreateOpenChannel.js +10 -10
  51. package/EditUserProfile/components/EditUserProfileUI.js +13 -13
  52. package/EditUserProfile.js +13 -13
  53. package/{LocalizationContext-aa7dfc3f.js → LocalizationContext-0a81b301.js} +3 -3
  54. package/{LocalizationContext-aa7dfc3f.js.map → LocalizationContext-0a81b301.js.map} +1 -1
  55. package/{MediaQueryContext-038f7f88.js → MediaQueryContext-dbf82efb.js} +1 -1
  56. package/{MediaQueryContext-038f7f88.js.map → MediaQueryContext-dbf82efb.js.map} +1 -1
  57. package/{MemberList-3e4790c4.js → MemberList-227fbdb3.js} +5 -5
  58. package/{MemberList-3e4790c4.js.map → MemberList-227fbdb3.js.map} +1 -1
  59. package/MessageSearch/components/MessageSearchUI.js +11 -11
  60. package/MessageSearch/context.js +2 -2
  61. package/MessageSearch.js +11 -11
  62. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  63. package/OpenChannel/components/OpenChannelHeader.js +13 -13
  64. package/OpenChannel/components/OpenChannelInput.js +15 -15
  65. package/OpenChannel/components/OpenChannelMessage.js +22 -22
  66. package/OpenChannel/components/OpenChannelMessageList.js +24 -24
  67. package/OpenChannel/components/OpenChannelUI.js +24 -24
  68. package/OpenChannel/context.js +9 -9
  69. package/OpenChannel.js +24 -24
  70. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  71. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  72. package/OpenChannelList/context.js +4 -4
  73. package/OpenChannelList.js +13 -13
  74. package/{OpenChannelListProvider-e4713e4f.js → OpenChannelListProvider-e18c45c3.js} +3 -3
  75. package/{OpenChannelListProvider-e4713e4f.js.map → OpenChannelListProvider-e18c45c3.js.map} +1 -1
  76. package/{OpenChannelProvider-820eed7f.js → OpenChannelProvider-0ce9c650.js} +7 -7
  77. package/{OpenChannelProvider-820eed7f.js.map → OpenChannelProvider-0ce9c650.js.map} +1 -1
  78. package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  79. package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
  80. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  81. package/OpenChannelSettings/components/OperatorUI.js +17 -17
  82. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  83. package/OpenChannelSettings/context.js +3 -3
  84. package/OpenChannelSettings.js +18 -18
  85. package/{RemoveMessageModal-2e549441.js → RemoveMessageModal-515ad099.js} +3 -3
  86. package/{RemoveMessageModal-2e549441.js.map → RemoveMessageModal-515ad099.js.map} +1 -1
  87. package/SendbirdProvider.js +10 -10
  88. package/Thread/components/ParentMessageInfo.js +21 -21
  89. package/Thread/components/ParentMessageInfoItem.js +14 -14
  90. package/Thread/components/ThreadHeader.js +6 -6
  91. package/Thread/components/ThreadList.js +24 -22
  92. package/Thread/components/ThreadList.js.map +1 -1
  93. package/Thread/components/ThreadListItem.js +24 -22
  94. package/Thread/components/ThreadListItem.js.map +1 -1
  95. package/Thread/components/ThreadMessageInput.js +16 -16
  96. package/Thread/components/ThreadUI.js +26 -24
  97. package/Thread/components/ThreadUI.js.map +1 -1
  98. package/Thread/context.js +8 -8
  99. package/Thread.js +26 -24
  100. package/Thread.js.map +1 -1
  101. package/{ThreadProvider-2f751001.js → ThreadProvider-bba0da1b.js} +6 -6
  102. package/{ThreadProvider-2f751001.js.map → ThreadProvider-bba0da1b.js.map} +1 -1
  103. package/{UserProfileContext-ac550461.js → UserProfileContext-8cec4652.js} +1 -1
  104. package/{UserProfileContext-ac550461.js.map → UserProfileContext-8cec4652.js.map} +1 -1
  105. package/{_rollupPluginBabelHelpers-34d80a3b.js → _rollupPluginBabelHelpers-1596259a.js} +1 -1
  106. package/_rollupPluginBabelHelpers-1596259a.js.map +1 -0
  107. package/{actionTypes-642d9cf1.js → actionTypes-9fbd05b0.js} +1 -1
  108. package/{actionTypes-642d9cf1.js.map → actionTypes-9fbd05b0.js.map} +1 -1
  109. package/cjs/App.js +35 -35
  110. package/cjs/Channel/components/ChannelHeader.js +18 -18
  111. package/cjs/Channel/components/ChannelUI.js +27 -26
  112. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  113. package/cjs/Channel/components/FileViewer.js +14 -14
  114. package/cjs/Channel/components/FrozenNotification.js +4 -4
  115. package/cjs/Channel/components/Message.js +24 -22
  116. package/cjs/Channel/components/Message.js.map +1 -1
  117. package/cjs/Channel/components/MessageInput.js +16 -16
  118. package/cjs/Channel/components/MessageList.js +25 -24
  119. package/cjs/Channel/components/MessageList.js.map +1 -1
  120. package/cjs/Channel/components/RemoveMessageModal.js +16 -16
  121. package/cjs/Channel/components/SuggestedMentionList.js +16 -16
  122. package/cjs/Channel/components/TypingIndicator.js +14 -14
  123. package/cjs/Channel/components/UnreadCount.js +4 -4
  124. package/cjs/Channel/context.js +13 -13
  125. package/cjs/Channel.js +27 -26
  126. package/cjs/Channel.js.map +1 -1
  127. package/cjs/ChannelList/components/AddChannel.js +15 -15
  128. package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
  129. package/cjs/ChannelList/components/ChannelListUI.js +29 -29
  130. package/cjs/ChannelList/components/ChannelPreview.js +38 -106
  131. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  132. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  133. package/cjs/ChannelList/context.js +8 -8
  134. package/cjs/ChannelList.js +29 -29
  135. package/cjs/{ChannelListProvider-b705fa43.js → ChannelListProvider-40537146.js} +8 -8
  136. package/cjs/{ChannelListProvider-b705fa43.js.map → ChannelListProvider-40537146.js.map} +1 -1
  137. package/cjs/{ChannelProvider-0b75671e.js → ChannelProvider-5bf86efa.js} +9 -9
  138. package/cjs/{ChannelProvider-0b75671e.js.map → ChannelProvider-5bf86efa.js.map} +1 -1
  139. package/cjs/ChannelSettings/components/ChannelProfile.js +12 -12
  140. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  141. package/cjs/ChannelSettings/components/EditDetailsModal.js +12 -12
  142. package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
  143. package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
  144. package/cjs/ChannelSettings/components/UserListItem.js +11 -11
  145. package/cjs/ChannelSettings/components/UserPanel.js +14 -14
  146. package/cjs/ChannelSettings/context.js +3 -3
  147. package/cjs/ChannelSettings.js +18 -18
  148. package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
  149. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  150. package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
  151. package/cjs/CreateChannel/context.js +4 -4
  152. package/cjs/CreateChannel.js +14 -14
  153. package/cjs/{CreateChannelProvider-25694e0d.js → CreateChannelProvider-2f5c62a5.js} +1 -1
  154. package/cjs/{CreateChannelProvider-25694e0d.js.map → CreateChannelProvider-2f5c62a5.js.map} +1 -1
  155. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
  156. package/cjs/CreateOpenChannel/context.js +1 -1
  157. package/cjs/CreateOpenChannel.js +10 -10
  158. package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
  159. package/cjs/EditUserProfile.js +13 -13
  160. package/cjs/{LocalizationContext-8e73c858.js → LocalizationContext-8497bc78.js} +3 -3
  161. package/cjs/{LocalizationContext-8e73c858.js.map → LocalizationContext-8497bc78.js.map} +1 -1
  162. package/cjs/{MediaQueryContext-28198a15.js → MediaQueryContext-4225380b.js} +1 -1
  163. package/cjs/{MediaQueryContext-28198a15.js.map → MediaQueryContext-4225380b.js.map} +1 -1
  164. package/cjs/{MemberList-430762bb.js → MemberList-2256bcdf.js} +5 -5
  165. package/cjs/{MemberList-430762bb.js.map → MemberList-2256bcdf.js.map} +1 -1
  166. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  167. package/cjs/MessageSearch/context.js +2 -2
  168. package/cjs/MessageSearch.js +11 -11
  169. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  170. package/cjs/OpenChannel/components/OpenChannelHeader.js +13 -13
  171. package/cjs/OpenChannel/components/OpenChannelInput.js +15 -15
  172. package/cjs/OpenChannel/components/OpenChannelMessage.js +22 -22
  173. package/cjs/OpenChannel/components/OpenChannelMessageList.js +24 -24
  174. package/cjs/OpenChannel/components/OpenChannelUI.js +24 -24
  175. package/cjs/OpenChannel/context.js +9 -9
  176. package/cjs/OpenChannel.js +24 -24
  177. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  178. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  179. package/cjs/OpenChannelList/context.js +4 -4
  180. package/cjs/OpenChannelList.js +13 -13
  181. package/cjs/{OpenChannelListProvider-127e2c69.js → OpenChannelListProvider-80f2b08b.js} +3 -3
  182. package/cjs/{OpenChannelListProvider-127e2c69.js.map → OpenChannelListProvider-80f2b08b.js.map} +1 -1
  183. package/cjs/{OpenChannelProvider-187e5820.js → OpenChannelProvider-e93c9633.js} +7 -7
  184. package/cjs/{OpenChannelProvider-187e5820.js.map → OpenChannelProvider-e93c9633.js.map} +1 -1
  185. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  186. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
  187. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  188. package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
  189. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  190. package/cjs/OpenChannelSettings/context.js +3 -3
  191. package/cjs/OpenChannelSettings.js +18 -18
  192. package/cjs/{RemoveMessageModal-ab3e801b.js → RemoveMessageModal-46e89e67.js} +3 -3
  193. package/cjs/{RemoveMessageModal-ab3e801b.js.map → RemoveMessageModal-46e89e67.js.map} +1 -1
  194. package/cjs/SendbirdProvider.js +10 -10
  195. package/cjs/Thread/components/ParentMessageInfo.js +21 -21
  196. package/cjs/Thread/components/ParentMessageInfoItem.js +14 -14
  197. package/cjs/Thread/components/ThreadHeader.js +6 -6
  198. package/cjs/Thread/components/ThreadList.js +24 -22
  199. package/cjs/Thread/components/ThreadList.js.map +1 -1
  200. package/cjs/Thread/components/ThreadListItem.js +25 -23
  201. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  202. package/cjs/Thread/components/ThreadMessageInput.js +16 -16
  203. package/cjs/Thread/components/ThreadUI.js +26 -24
  204. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  205. package/cjs/Thread/context.js +8 -8
  206. package/cjs/Thread.js +26 -24
  207. package/cjs/Thread.js.map +1 -1
  208. package/cjs/{ThreadProvider-41164a45.js → ThreadProvider-a3aff32f.js} +6 -6
  209. package/cjs/{ThreadProvider-41164a45.js.map → ThreadProvider-a3aff32f.js.map} +1 -1
  210. package/cjs/{UserProfileContext-89f4ca9a.js → UserProfileContext-a0cd5b83.js} +1 -1
  211. package/cjs/{UserProfileContext-89f4ca9a.js.map → UserProfileContext-a0cd5b83.js.map} +1 -1
  212. package/cjs/{_rollupPluginBabelHelpers-5a3145d1.js → _rollupPluginBabelHelpers-cf1a9aed.js} +1 -1
  213. package/cjs/_rollupPluginBabelHelpers-cf1a9aed.js.map +1 -0
  214. package/cjs/{actionTypes-c3d4d3c4.js → actionTypes-2dc34f6e.js} +1 -1
  215. package/cjs/{actionTypes-c3d4d3c4.js.map → actionTypes-2dc34f6e.js.map} +1 -1
  216. package/cjs/{color-c3cad9a8.js → color-fbd6c374.js} +1 -1
  217. package/cjs/{color-c3cad9a8.js.map → color-fbd6c374.js.map} +1 -1
  218. package/cjs/{compareIds-71cb3e6e.js → compareIds-76947865.js} +1 -1
  219. package/cjs/{compareIds-71cb3e6e.js.map → compareIds-76947865.js.map} +1 -1
  220. package/cjs/{const-4de21a7a.js → const-1d125f31.js} +1 -1
  221. package/cjs/{const-4de21a7a.js.map → const-1d125f31.js.map} +1 -1
  222. package/cjs/{const-b95571bb.js → const-d51e19f4.js} +1 -1
  223. package/cjs/{const-b95571bb.js.map → const-d51e19f4.js.map} +1 -1
  224. package/cjs/{context-7b59a6d6.js → context-2bdb5172.js} +2 -2
  225. package/cjs/{context-7b59a6d6.js.map → context-2bdb5172.js.map} +1 -1
  226. package/cjs/{index-40b2748b.js → index-07e9d235.js} +1 -1
  227. package/cjs/{index-40b2748b.js.map → index-07e9d235.js.map} +1 -1
  228. package/cjs/index-1e636630.js +157 -0
  229. package/cjs/index-1e636630.js.map +1 -0
  230. package/cjs/index-3cc13e66.js +178 -0
  231. package/cjs/index-3cc13e66.js.map +1 -0
  232. package/cjs/{index-c8fe6fd5.js → index-82ff89ee.js} +2 -2
  233. package/cjs/{index-c8fe6fd5.js.map → index-82ff89ee.js.map} +1 -1
  234. package/cjs/{index-c1a2e0f0.js → index-a160e409.js} +2 -2
  235. package/cjs/{index-c1a2e0f0.js.map → index-a160e409.js.map} +1 -1
  236. package/cjs/{index-bd0af4e9.js → index-d2f03436.js} +2 -3
  237. package/cjs/{index-bd0af4e9.js.map → index-d2f03436.js.map} +1 -1
  238. package/cjs/{index-42857089.js → index-d3e46239.js} +7 -7
  239. package/cjs/{index-42857089.js.map → index-d3e46239.js.map} +1 -1
  240. package/cjs/{index-7512b663.js → index-d84834cb.js} +4 -4
  241. package/cjs/{index-7512b663.js.map → index-d84834cb.js.map} +1 -1
  242. package/cjs/{index-994763f3.js → index-e7d3a41a.js} +5 -5
  243. package/cjs/{index-994763f3.js.map → index-e7d3a41a.js.map} +1 -1
  244. package/cjs/{index-c7b7bc75.js → index-e9d4a3c3.js} +1 -1
  245. package/cjs/{index-c7b7bc75.js.map → index-e9d4a3c3.js.map} +1 -1
  246. package/cjs/{index-39074bef.js → index-f058f9f9.js} +2 -2
  247. package/cjs/{index-39074bef.js.map → index-f058f9f9.js.map} +1 -1
  248. package/cjs/{index-76988629.js → index-f15a815b.js} +2 -5
  249. package/cjs/{index-76988629.js.map → index-f15a815b.js.map} +1 -1
  250. package/cjs/index.js +38 -38
  251. package/cjs/sendbirdSelectors.js +2 -2
  252. package/cjs/{stringSet-3b2e7f83.js → stringSet-4dd3f71e.js} +2 -1
  253. package/cjs/stringSet-4dd3f71e.js.map +1 -0
  254. package/cjs/{topics-3dd8a046.js → topics-a58ece2d.js} +1 -1
  255. package/cjs/{topics-3dd8a046.js.map → topics-a58ece2d.js.map} +1 -1
  256. package/cjs/{tslib.es6-1830b80e.js → tslib.es6-565bcf25.js} +1 -1
  257. package/cjs/{tslib.es6-1830b80e.js.map → tslib.es6-565bcf25.js.map} +1 -1
  258. package/cjs/ui/Accordion.js +3 -3
  259. package/cjs/ui/AccordionGroup.js +2 -2
  260. package/cjs/ui/AdminMessage.js +3 -3
  261. package/cjs/ui/Avatar.js +2 -2
  262. package/cjs/ui/Badge.js +5 -5
  263. package/cjs/ui/BottomSheet.js +1 -1
  264. package/cjs/ui/Button.js +3 -3
  265. package/cjs/ui/ChannelAvatar.js +3 -3
  266. package/cjs/ui/ConnectionStatus.js +4 -4
  267. package/cjs/ui/ContextMenu.js +5 -5
  268. package/cjs/ui/DateSeparator.js +4 -4
  269. package/cjs/ui/EmojiReactions.js +7 -7
  270. package/cjs/ui/FileMessageItemBody.js +6 -6
  271. package/cjs/ui/FileViewer.js +8 -8
  272. package/cjs/ui/IconButton.js +1 -1
  273. package/cjs/ui/ImageRenderer.js +1 -1
  274. package/cjs/ui/Input.js +2 -2
  275. package/cjs/ui/Label.js +2 -2
  276. package/cjs/ui/LinkLabel.js +2 -2
  277. package/cjs/ui/Loader.js +1 -1
  278. package/cjs/ui/MentionLabel.js +11 -11
  279. package/cjs/ui/MessageContent.js +21 -19
  280. package/cjs/ui/MessageContent.js.map +1 -1
  281. package/cjs/ui/MessageInput.js +19 -14
  282. package/cjs/ui/MessageInput.js.map +1 -1
  283. package/cjs/ui/MessageItemMenu.js +7 -7
  284. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  285. package/cjs/ui/MessageSearchFileItem.js +24 -13
  286. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  287. package/cjs/ui/MessageSearchItem.js +24 -13
  288. package/cjs/ui/MessageSearchItem.js.map +1 -1
  289. package/cjs/ui/MessageStatus.js +16 -55
  290. package/cjs/ui/MessageStatus.js.map +1 -1
  291. package/cjs/ui/Modal.js +7 -7
  292. package/cjs/ui/OGMessageItemBody.js +11 -11
  293. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  294. package/cjs/ui/OpenChannelAvatar.js +6 -6
  295. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  296. package/cjs/ui/OpenchannelFileMessage.js +16 -16
  297. package/cjs/ui/OpenchannelOGMessage.js +16 -16
  298. package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
  299. package/cjs/ui/OpenchannelUserMessage.js +16 -16
  300. package/cjs/ui/PlaceHolder.js +6 -6
  301. package/cjs/ui/QuoteMessage.js +6 -6
  302. package/cjs/ui/QuoteMessageInput.js +6 -6
  303. package/cjs/ui/ReactionBadge.js +3 -3
  304. package/cjs/ui/ReactionButton.js +1 -1
  305. package/cjs/ui/SortByRow.js +2 -2
  306. package/cjs/ui/TextButton.js +2 -2
  307. package/cjs/ui/TextMessageItemBody.js +11 -11
  308. package/cjs/ui/ThreadReplies.js +6 -6
  309. package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
  310. package/cjs/ui/Tooltip.js +3 -3
  311. package/cjs/ui/TooltipWrapper.js +1 -1
  312. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  313. package/cjs/ui/UserListItem.js +11 -11
  314. package/cjs/ui/UserProfile.js +10 -10
  315. package/cjs/ui/Word.js +11 -11
  316. package/cjs/{useLongPress-eff0b243.js → useLongPress-5dd4480a.js} +3 -3
  317. package/cjs/{useLongPress-eff0b243.js.map → useLongPress-5dd4480a.js.map} +1 -1
  318. package/cjs/useSendbirdStateContext.js +1 -1
  319. package/cjs/{utils-4c89877f.js → utils-4594064b.js} +1 -1
  320. package/cjs/{utils-4c89877f.js.map → utils-4594064b.js.map} +1 -1
  321. package/cjs/{utils-669a0f93.js → utils-4cce255c.js} +1 -1
  322. package/cjs/{utils-669a0f93.js.map → utils-4cce255c.js.map} +1 -1
  323. package/cjs/{utils-c6b57d1a.js → utils-7818d87a.js} +1 -1
  324. package/cjs/{utils-c6b57d1a.js.map → utils-7818d87a.js.map} +1 -1
  325. package/cjs/{utils-346853d2.js → utils-eaf70168.js} +2 -2
  326. package/cjs/{utils-346853d2.js.map → utils-eaf70168.js.map} +1 -1
  327. package/cjs/{uuid-500480f2.js → uuid-bea1faad.js} +1 -1
  328. package/cjs/{uuid-500480f2.js.map → uuid-bea1faad.js.map} +1 -1
  329. package/cjs/withSendbird.js +1 -1
  330. package/{color-57e4b878.js → color-bf0c20dc.js} +1 -1
  331. package/{color-57e4b878.js.map → color-bf0c20dc.js.map} +1 -1
  332. package/{compareIds-e883daf1.js → compareIds-8f9595bc.js} +1 -1
  333. package/{compareIds-e883daf1.js.map → compareIds-8f9595bc.js.map} +1 -1
  334. package/{const-ae324b4b.js → const-d3c760a4.js} +1 -1
  335. package/{const-ae324b4b.js.map → const-d3c760a4.js.map} +1 -1
  336. package/{const-c161b705.js → const-faf029e4.js} +1 -1
  337. package/{const-c161b705.js.map → const-faf029e4.js.map} +1 -1
  338. package/{context-c3aeffff.js → context-7e7aa145.js} +2 -2
  339. package/{context-c3aeffff.js.map → context-7e7aa145.js.map} +1 -1
  340. package/{index-d27b45b3.js → index-11069e08.js} +2 -2
  341. package/{index-d27b45b3.js.map → index-11069e08.js.map} +1 -1
  342. package/{index-a623d99a.js → index-22146748.js} +1 -1
  343. package/{index-a623d99a.js.map → index-22146748.js.map} +1 -1
  344. package/index-3e13540c.js +145 -0
  345. package/index-3e13540c.js.map +1 -0
  346. package/{index-c87f7f73.js → index-4052efb0.js} +2 -2
  347. package/{index-c87f7f73.js.map → index-4052efb0.js.map} +1 -1
  348. package/{index-40a69f5f.js → index-53f9dbdb.js} +3 -3
  349. package/{index-40a69f5f.js.map → index-53f9dbdb.js.map} +1 -1
  350. package/{index-004317e6.js → index-5665dd9a.js} +5 -5
  351. package/{index-004317e6.js.map → index-5665dd9a.js.map} +1 -1
  352. package/index-589ef7e7.js +174 -0
  353. package/index-589ef7e7.js.map +1 -0
  354. package/{index-9f471c3f.js → index-75c6845d.js} +2 -2
  355. package/{index-9f471c3f.js.map → index-75c6845d.js.map} +1 -1
  356. package/{index-e4add1e4.js → index-837130fb.js} +3 -3
  357. package/{index-e4add1e4.js.map → index-837130fb.js.map} +1 -1
  358. package/{index-192ae483.js → index-a682dd0a.js} +1 -1
  359. package/{index-192ae483.js.map → index-a682dd0a.js.map} +1 -1
  360. package/{index-030bd260.js → index-c4124d52.js} +4 -4
  361. package/{index-030bd260.js.map → index-c4124d52.js.map} +1 -1
  362. package/{index-3105c09f.js → index-e7a5c308.js} +7 -7
  363. package/{index-3105c09f.js.map → index-e7a5c308.js.map} +1 -1
  364. package/index.d.ts +2 -1
  365. package/index.js +38 -38
  366. package/package.json +1 -1
  367. package/sendbirdSelectors.js +2 -2
  368. package/{stringSet-8218c0cc.js → stringSet-522716ae.js} +2 -1
  369. package/stringSet-522716ae.js.map +1 -0
  370. package/{topics-79ac549c.js → topics-4353311c.js} +1 -1
  371. package/{topics-79ac549c.js.map → topics-4353311c.js.map} +1 -1
  372. package/{tslib.es6-a9347cf5.js → tslib.es6-1d845c73.js} +1 -1
  373. package/{tslib.es6-a9347cf5.js.map → tslib.es6-1d845c73.js.map} +1 -1
  374. package/ui/Accordion.js +3 -3
  375. package/ui/AccordionGroup.js +2 -2
  376. package/ui/AdminMessage.js +3 -3
  377. package/ui/Avatar.js +2 -2
  378. package/ui/Badge.js +5 -5
  379. package/ui/BottomSheet.js +1 -1
  380. package/ui/Button.js +3 -3
  381. package/ui/ChannelAvatar.js +3 -3
  382. package/ui/ConnectionStatus.js +4 -4
  383. package/ui/ContextMenu.js +5 -5
  384. package/ui/DateSeparator.js +4 -4
  385. package/ui/EmojiReactions.js +7 -7
  386. package/ui/FileMessageItemBody.js +6 -6
  387. package/ui/FileViewer.js +8 -8
  388. package/ui/IconButton.js +1 -1
  389. package/ui/ImageRenderer.js +1 -1
  390. package/ui/Input.js +2 -2
  391. package/ui/Label.js +2 -2
  392. package/ui/LinkLabel.js +2 -2
  393. package/ui/Loader.js +1 -1
  394. package/ui/MentionLabel.js +11 -11
  395. package/ui/MessageContent.js +20 -18
  396. package/ui/MessageContent.js.map +1 -1
  397. package/ui/MessageInput.js +19 -14
  398. package/ui/MessageInput.js.map +1 -1
  399. package/ui/MessageItemMenu.js +7 -7
  400. package/ui/MessageItemReactionMenu.js +5 -5
  401. package/ui/MessageSearchFileItem.js +24 -13
  402. package/ui/MessageSearchFileItem.js.map +1 -1
  403. package/ui/MessageSearchItem.js +24 -13
  404. package/ui/MessageSearchItem.js.map +1 -1
  405. package/ui/MessageStatus.js +14 -53
  406. package/ui/MessageStatus.js.map +1 -1
  407. package/ui/Modal.js +7 -7
  408. package/ui/OGMessageItemBody.js +11 -11
  409. package/ui/OpenChannelAdminMessage.js +3 -3
  410. package/ui/OpenChannelAvatar.js +6 -6
  411. package/ui/OpenchannelConversationHeader.js +6 -6
  412. package/ui/OpenchannelFileMessage.js +16 -16
  413. package/ui/OpenchannelOGMessage.js +16 -16
  414. package/ui/OpenchannelThumbnailMessage.js +15 -15
  415. package/ui/OpenchannelUserMessage.js +16 -16
  416. package/ui/PlaceHolder.js +6 -6
  417. package/ui/QuoteMessage.js +6 -6
  418. package/ui/QuoteMessageInput.js +6 -6
  419. package/ui/ReactionBadge.js +3 -3
  420. package/ui/ReactionButton.js +1 -1
  421. package/ui/SortByRow.js +2 -2
  422. package/ui/TextButton.js +2 -2
  423. package/ui/TextMessageItemBody.js +11 -11
  424. package/ui/ThreadReplies.js +6 -6
  425. package/ui/ThumbnailMessageItemBody.js +2 -2
  426. package/ui/Tooltip.js +3 -3
  427. package/ui/TooltipWrapper.js +1 -1
  428. package/ui/UnknownMessageItemBody.js +6 -6
  429. package/ui/UserListItem.js +11 -11
  430. package/ui/UserProfile.js +10 -10
  431. package/ui/Word.js +11 -11
  432. package/{useLongPress-383a5348.js → useLongPress-f99b61d9.js} +3 -3
  433. package/{useLongPress-383a5348.js.map → useLongPress-f99b61d9.js.map} +1 -1
  434. package/useSendbirdStateContext.js +1 -1
  435. package/{utils-bced60ca.js → utils-355daaf8.js} +1 -1
  436. package/{utils-bced60ca.js.map → utils-355daaf8.js.map} +1 -1
  437. package/{utils-628f2c1b.js → utils-531c0ded.js} +1 -1
  438. package/{utils-628f2c1b.js.map → utils-531c0ded.js.map} +1 -1
  439. package/{utils-f1589e71.js → utils-b2c3eeca.js} +2 -2
  440. package/{utils-f1589e71.js.map → utils-b2c3eeca.js.map} +1 -1
  441. package/{utils-69bbeb3a.js → utils-c7097024.js} +1 -1
  442. package/{utils-69bbeb3a.js.map → utils-c7097024.js.map} +1 -1
  443. package/{uuid-47b7ac05.js → uuid-1f647558.js} +1 -1
  444. package/{uuid-47b7ac05.js.map → uuid-1f647558.js.map} +1 -1
  445. package/withSendbird.js +1 -1
  446. package/_rollupPluginBabelHelpers-34d80a3b.js.map +0 -1
  447. package/cjs/_rollupPluginBabelHelpers-5a3145d1.js.map +0 -1
  448. package/cjs/index-dc77e3c7.js +0 -265
  449. package/cjs/index-dc77e3c7.js.map +0 -1
  450. package/cjs/stringSet-3b2e7f83.js.map +0 -1
  451. package/index-5e60a636.js +0 -261
  452. package/index-5e60a636.js.map +0 -1
  453. package/stringSet-8218c0cc.js.map +0 -1
@@ -1,21 +1,25 @@
1
- import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-34d80a3b.js';
1
+ import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-1596259a.js';
2
2
  import React__default, { useContext, useRef, useState, useMemo, useEffect, useCallback } from 'react';
3
3
  import { renderToString } from 'react-dom/server';
4
4
  import PropTypes from 'prop-types';
5
- import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-ae324b4b.js';
6
- import { U as USER_MENTION_TEMP_CHAR } from '../const-c161b705.js';
5
+ import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-d3c760a4.js';
6
+ import { U as USER_MENTION_TEMP_CHAR } from '../const-faf029e4.js';
7
7
  import IconButton from './IconButton.js';
8
8
  import Button, { ButtonTypes, ButtonSizes } from './Button.js';
9
9
  import MentionUserLabel from './MentionUserLabel.js';
10
10
  import Icon, { IconTypes, IconColors } from './Icon.js';
11
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-c87f7f73.js';
12
- import { a as LocalizationContext } from '../LocalizationContext-aa7dfc3f.js';
13
- import { j as convertWordToStringObj, S as StringObjType, k as arrayEqual, h as getClassName } from '../index-9f471c3f.js';
14
- import '../tslib.es6-a9347cf5.js';
15
- import '../stringSet-8218c0cc.js';
16
- import '../index-192ae483.js';
11
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4052efb0.js';
12
+ import { a as LocalizationContext } from '../LocalizationContext-0a81b301.js';
13
+ import { j as convertWordToStringObj, S as StringObjType, k as arrayEqual, h as getClassName } from '../index-75c6845d.js';
14
+ import '../tslib.es6-1d845c73.js';
15
+ import '../stringSet-522716ae.js';
16
+ import '../index-a682dd0a.js';
17
17
  import '../utils/message/getOutgoingMessageState.js';
18
18
 
19
+ // https://davidwalsh.name/javascript-debounce-function
20
+
21
+ const sanitizeString = str => str === null || str === void 0 ? void 0 : str.replace(/[\u00A0-\u9999<>]/gim, i => ''.concat('&#', i.charCodeAt(0), ';'));
22
+
19
23
  const TEXT_FIELD_ID = 'sendbird-message-input-text-field';
20
24
  const LINE_HEIGHT = 76;
21
25
 
@@ -103,7 +107,8 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
103
107
  }
104
108
  } catch (error) {// error
105
109
  }
106
- }, []); // for easilly initialize input value from outside, but
110
+ }, []); // #Edit mode
111
+ // for easilly initialize input value from outside, but
107
112
  // useEffect(_, [channelUrl]) erase it
108
113
 
109
114
  const initialValue = props === null || props === void 0 ? void 0 : props.value;
@@ -127,7 +132,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
127
132
  setIsInput(false);
128
133
  resetInput(ref);
129
134
  }
130
- }, [channelUrl]); // #Mention | Fill message input values
135
+ }, [channelUrl]); // #Mention & #Edit | Fill message input values
131
136
 
132
137
  useEffect(() => {
133
138
  if (isEdit && message !== null && message !== void 0 && message.messageId) {
@@ -158,12 +163,12 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
158
163
  }, `${USER_MENTION_TEMP_CHAR}${((_mentionedUsers$find = mentionedUsers.find(user => (user === null || user === void 0 ? void 0 : user.userId) === userId)) === null || _mentionedUsers$find === void 0 ? void 0 : _mentionedUsers$find.nickname) || value || stringSet.MENTION_NAME__NO_NAME}`));
159
164
  }
160
165
 
161
- return value;
166
+ return sanitizeString(value);
162
167
  }).join('')).join(' ');
163
168
  } else {
164
169
  /* mention disabled */
165
170
  try {
166
- textField.innerHTML = message === null || message === void 0 ? void 0 : message.message;
171
+ textField.innerHTML = sanitizeString(message === null || message === void 0 ? void 0 : message.message);
167
172
  } catch (_unused3) {}
168
173
 
169
174
  setMentionedUserIds([]);
@@ -445,7 +450,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
445
450
  },
446
451
  onPaste: e => {
447
452
  e.preventDefault();
448
- document.execCommand("insertHTML", false, e === null || e === void 0 ? void 0 : e.clipboardData.getData('text'));
453
+ document.execCommand("insertHTML", false, sanitizeString(e === null || e === void 0 ? void 0 : e.clipboardData.getData('text')));
449
454
  }
450
455
  }), !isInput && /*#__PURE__*/React__default.createElement(Label, {
451
456
  className: "sendbird-message-input--placeholder",
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/index.jsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport MentionUserLabel from '../MentionUserLabel';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onKeyUp,\n onKeyDown,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention\n && mentionedUsers.some((user) => user?.userId === userId)\n ) {\n return renderToString(\n <MentionUserLabel userId={userId}>\n {\n `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n }\n </MentionUserLabel>,\n );\n }\n return value;\n }).join('')\n )).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = message?.message;\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderToString(\n <MentionUserLabel userId={mentionSelectedUser?.userId}>\n {`${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`}\n </MentionUserLabel>,\n );\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={(e) => {\n e.preventDefault();\n document.execCommand(\"insertHTML\", false, e?.clipboardData.getData('text'));\n }}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n <Icon type={IconTypes.SEND} fillColor={IconColors.PRIMARY} width=\"20px\" height=\"20px\" />\n </IconButton>\n )\n }\n {/* upload icon */}\n {\n (!isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--attach\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n )\n }\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","className","messageFieldId","isEdit","isMentionEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onKeyUp","onKeyDown","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","useEffect","textField","length","innerText","messageId","mentionedUsers","mentionedMessageTemplate","split","map","word","convertWordToStringObj","stringObj","type","userId","StringObjType","mention","some","user","renderToString","USER_MENTION_TEMP_CHAR","find","nickname","MENTION_NAME__NO_NAME","join","useMentionedLabelDetection","useCallback","newMentionedUserIds","getElementsByClassName","node","dataset","userid","arrayEqual","frontTextNode","createTextNode","textContent","slice","backTextNode","mentionLabel","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","editMessage","getClassName","e","preventEvent","preventDefault","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","execCommand","clipboardData","getData","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","CONTENT_INVERSE","ButtonTypes","SECONDARY","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","shape","number","func","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\nexport default debounce;\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport MentionUserLabel from '../MentionUserLabel';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onKeyUp,\n onKeyDown,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention && mentionedUsers.some((user) => user?.userId === userId)) {\n return renderToString(\n <MentionUserLabel userId={userId}>\n {\n `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n }\n </MentionUserLabel>,\n );\n }\n return sanitizeString(value);\n }).join('')\n )).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderToString(\n <MentionUserLabel userId={mentionSelectedUser?.userId}>\n {`${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`}\n </MentionUserLabel>,\n );\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={(e) => {\n e.preventDefault();\n document.execCommand(\"insertHTML\", false, sanitizeString(e?.clipboardData.getData('text')));\n }}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n <Icon type={IconTypes.SEND} fillColor={IconColors.PRIMARY} width=\"20px\" height=\"20px\" />\n </IconButton>\n )\n }\n {/* upload icon */}\n {\n (!isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--attach\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n )\n }\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["sanitizeString","str","replace","i","concat","charCodeAt","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","className","messageFieldId","isEdit","isMentionEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onKeyUp","onKeyDown","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","useEffect","textField","length","innerText","messageId","mentionedUsers","mentionedMessageTemplate","split","map","word","convertWordToStringObj","stringObj","type","userId","StringObjType","mention","some","user","renderToString","USER_MENTION_TEMP_CHAR","find","nickname","MENTION_NAME__NO_NAME","join","useMentionedLabelDetection","useCallback","newMentionedUserIds","getElementsByClassName","node","dataset","userid","arrayEqual","frontTextNode","createTextNode","textContent","slice","backTextNode","mentionLabel","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","editMessage","getClassName","e","preventEvent","preventDefault","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","execCommand","clipboardData","getData","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","CONTENT_INVERSE","ButtonTypes","SECONDARY","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","shape","number","func","defaultProps"],"mappings":"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"}
@@ -2,17 +2,17 @@ import React__default, { useContext, useRef } from 'react';
2
2
  import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
3
3
  import Icon, { IconTypes, IconColors } from './Icon.js';
4
4
  import IconButton from './IconButton.js';
5
- import { r as isUserMessage, s as isSentMessage, u as isFailedMessage, v as isPendingMessage, h as getClassName, w as copyToClipboard } from '../index-9f471c3f.js';
6
- import { a as LocalizationContext } from '../LocalizationContext-aa7dfc3f.js';
7
- import '../tslib.es6-a9347cf5.js';
5
+ import { r as isUserMessage, s as isSentMessage, u as isFailedMessage, v as isPendingMessage, h as getClassName, w as copyToClipboard } from '../index-75c6845d.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-0a81b301.js';
7
+ import '../tslib.es6-1d845c73.js';
8
8
  import 'react-dom';
9
9
  import './SortByRow.js';
10
- import '../uuid-47b7ac05.js';
11
- import '../index-c87f7f73.js';
10
+ import '../uuid-1f647558.js';
11
+ import '../index-4052efb0.js';
12
12
  import 'prop-types';
13
- import '../stringSet-8218c0cc.js';
13
+ import '../stringSet-522716ae.js';
14
14
  import '../utils/message/getOutgoingMessageState.js';
15
- import '../index-192ae483.js';
15
+ import '../index-a682dd0a.js';
16
16
 
17
17
  function MessageItemMenu(_a) {
18
18
  var _b;
@@ -4,14 +4,14 @@ import Icon, { IconTypes, IconColors } from './Icon.js';
4
4
  import IconButton from './IconButton.js';
5
5
  import ImageRenderer from './ImageRenderer.js';
6
6
  import ReactionButton from './ReactionButton.js';
7
- import { v as isPendingMessage, u as isFailedMessage, h as getClassName, x as getEmojiListAll } from '../index-9f471c3f.js';
8
- import '../tslib.es6-a9347cf5.js';
7
+ import { v as isPendingMessage, u as isFailedMessage, h as getClassName, x as getEmojiListAll } from '../index-75c6845d.js';
8
+ import '../tslib.es6-1d845c73.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-47b7ac05.js';
12
- import '../index-c87f7f73.js';
11
+ import '../uuid-1f647558.js';
12
+ import '../index-4052efb0.js';
13
13
  import 'prop-types';
14
- import '../stringSet-8218c0cc.js';
14
+ import '../stringSet-522716ae.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
16
 
17
17
  function MessageItemReactionMenu(_a) {
@@ -1,19 +1,22 @@
1
- import { a as __spreadArray } from '../tslib.es6-a9347cf5.js';
1
+ import { a as __spreadArray } from '../tslib.es6-1d845c73.js';
2
2
  import React__default from 'react';
3
3
  import Avatar from './Avatar.js';
4
4
  import Icon, { IconTypes, IconColors } from './Icon.js';
5
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-c87f7f73.js';
6
- import { u as useLocalization } from '../LocalizationContext-aa7dfc3f.js';
7
- import { f as format } from '../index-e4add1e4.js';
8
- import { i as isToday, a as isYesterday, f as formatRelative } from '../index-5e60a636.js';
5
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4052efb0.js';
6
+ import { u as useLocalization } from '../LocalizationContext-0a81b301.js';
7
+ import { f as format } from '../index-837130fb.js';
8
+ import { i as isToday, a as isYesterday, b as isThisYear } from '../index-589ef7e7.js';
9
9
  import './ImageRenderer.js';
10
- import '../uuid-47b7ac05.js';
10
+ import '../uuid-1f647558.js';
11
11
  import 'prop-types';
12
- import '../stringSet-8218c0cc.js';
13
- import '../index-192ae483.js';
14
- import '../index-40a69f5f.js';
12
+ import '../stringSet-522716ae.js';
13
+ import '../index-a682dd0a.js';
14
+ import '../index-53f9dbdb.js';
15
15
 
16
- function getCreatedAt(createdAt, locale) {
16
+ function getCreatedAt(_a) {
17
+ var createdAt = _a.createdAt,
18
+ locale = _a.locale,
19
+ stringSet = _a.stringSet;
17
20
  var optionalParam = locale ? {
18
21
  locale: locale
19
22
  } : null;
@@ -27,10 +30,14 @@ function getCreatedAt(createdAt, locale) {
27
30
  }
28
31
 
29
32
  if (isYesterday(createdAt)) {
30
- return formatRelative(createdAt, new Date(), optionalParam);
33
+ return (stringSet === null || stringSet === void 0 ? void 0 : stringSet.MESSAGE_STATUS__YESTERDAY) || 'Yesterday';
31
34
  }
32
35
 
33
- return format(createdAt, 'MMM dd', optionalParam);
36
+ if (isThisYear(createdAt)) {
37
+ return format(createdAt, 'MMM d', optionalParam);
38
+ }
39
+
40
+ return format(createdAt, 'yyyy/M/d', optionalParam);
34
41
  }
35
42
  function getIconOfFileType(message) {
36
43
  var url = message.url;
@@ -105,7 +112,11 @@ function MessageSearchFileItem(props) {
105
112
  className: "sendbird-message-search-file-item__message-created-at",
106
113
  type: LabelTypography.CAPTION_3,
107
114
  color: LabelColors.ONBACKGROUND_2
108
- }, getCreatedAt(createdAt, dateLocale)), /*#__PURE__*/React__default.createElement("div", {
115
+ }, getCreatedAt({
116
+ createdAt: createdAt,
117
+ locale: dateLocale,
118
+ stringSet: stringSet
119
+ })), /*#__PURE__*/React__default.createElement("div", {
109
120
  className: "sendbird-message-search-file-item__right-footer"
110
121
  }));
111
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSearchFileItem.js","sources":["../../src/ui/MessageSearchFileItem/utils.ts","../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport formatRelative from 'date-fns/formatRelative';\nimport isToday from 'date-fns/isToday';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\n\nexport function getCreatedAt(createdAt: number, locale: Locale): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return formatRelative(createdAt, new Date(), optionalParam);\n }\n return format(createdAt, 'MMM dd', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n const fileMessageUrl = url;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n <div className=\"sendbird-message-search-file-item__right__content__type-icon\">\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name || fileMessageUrl}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt(createdAt, dateLocale)}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","createdAt","locale","optionalParam","isToday","format","isYesterday","formatRelative","Date","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","_a","useLocalization","stringSet","dateLocale","React","__spreadArray","Array","isArray","join","e","stopPropagation","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}
1
+ {"version":3,"file":"MessageSearchFileItem.js","sources":["../../src/ui/MessageSearchFileItem/utils.ts","../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n const fileMessageUrl = url;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n <div className=\"sendbird-message-search-file-item__right__content__type-icon\">\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name || fileMessageUrl}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet})}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_a","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","useLocalization","dateLocale","React","__spreadArray","Array","isArray","join","e","stopPropagation","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}
@@ -1,19 +1,22 @@
1
- import { a as __spreadArray } from '../tslib.es6-a9347cf5.js';
1
+ import { a as __spreadArray } from '../tslib.es6-1d845c73.js';
2
2
  import React__default from 'react';
3
- import { f as format } from '../index-e4add1e4.js';
4
- import { i as isToday, a as isYesterday, f as formatRelative } from '../index-5e60a636.js';
3
+ import { f as format } from '../index-837130fb.js';
4
+ import { i as isToday, a as isYesterday, b as isThisYear } from '../index-589ef7e7.js';
5
5
  import Avatar from './Avatar.js';
6
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-c87f7f73.js';
7
- import { u as useLocalization } from '../LocalizationContext-aa7dfc3f.js';
8
- import '../index-192ae483.js';
9
- import '../index-40a69f5f.js';
6
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-4052efb0.js';
7
+ import { u as useLocalization } from '../LocalizationContext-0a81b301.js';
8
+ import '../index-a682dd0a.js';
9
+ import '../index-53f9dbdb.js';
10
10
  import './ImageRenderer.js';
11
11
  import './Icon.js';
12
12
  import 'prop-types';
13
- import '../uuid-47b7ac05.js';
14
- import '../stringSet-8218c0cc.js';
13
+ import '../uuid-1f647558.js';
14
+ import '../stringSet-522716ae.js';
15
15
 
16
- function getCreatedAt (createdAt, locale) {
16
+ function getCreatedAt (_a) {
17
+ var createdAt = _a.createdAt,
18
+ locale = _a.locale,
19
+ stringSet = _a.stringSet;
17
20
  var optionalParam = locale ? {
18
21
  locale: locale
19
22
  } : null;
@@ -27,10 +30,14 @@ function getCreatedAt (createdAt, locale) {
27
30
  }
28
31
 
29
32
  if (isYesterday(createdAt)) {
30
- return formatRelative(createdAt, new Date(), optionalParam);
33
+ return (stringSet === null || stringSet === void 0 ? void 0 : stringSet.MESSAGE_STATUS__YESTERDAY) || 'Yesterday';
31
34
  }
32
35
 
33
- return format(createdAt, 'MMM dd', optionalParam);
36
+ if (isThisYear(createdAt)) {
37
+ return format(createdAt, 'MMM d', optionalParam);
38
+ }
39
+
40
+ return format(createdAt, 'yyyy/M/d', optionalParam);
34
41
  }
35
42
 
36
43
  function MessageSearchItem(_a) {
@@ -76,7 +83,11 @@ function MessageSearchItem(_a) {
76
83
  className: "sendbird-message-search-item__right__message-created-at",
77
84
  type: LabelTypography.CAPTION_3,
78
85
  color: LabelColors.ONBACKGROUND_2
79
- }, getCreatedAt(createdAt, dateLocale))), /*#__PURE__*/React__default.createElement("div", {
86
+ }, getCreatedAt({
87
+ createdAt: createdAt,
88
+ locale: dateLocale,
89
+ stringSet: stringSet
90
+ }))), /*#__PURE__*/React__default.createElement("div", {
80
91
  className: "sendbird-message-search-item__right-footer"
81
92
  }));
82
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSearchItem.js","sources":["../../src/ui/MessageSearchItem/getCreatedAt.ts","../../src/ui/MessageSearchItem/index.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport formatRelative from 'date-fns/formatRelative';\nimport isToday from 'date-fns/isToday';\nimport isYesterday from 'date-fns/isYesterday';\n\n// getCreatedAt\nexport default function (createdAt: number, locale: Locale): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return formatRelative(createdAt, new Date(), optionalParam);\n }\n return format(createdAt, 'MMM dd', optionalParam);\n}\n","import React from 'react';\nimport './index.scss';\nimport getCreatedAt from './getCreatedAt';\n\nimport Avatar from '../Avatar';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { UserMessage } from '@sendbird/chat/message';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage;\n selected?: boolean;\n onClick?: (message: UserMessage) => void;\n}\n\nexport default function MessageSearchItem({\n className,\n message,\n selected,\n onClick,\n}: Props): JSX.Element {\n const { createdAt } = message;\n const messageText = message.message;\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-item',\n selected ? 'sendbird-message-search-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-item__left\">\n <Avatar\n className=\"sendbird-message-search-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-item__right\">\n <Label\n className=\"sendbird-message-search-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <Label\n className=\"sendbird-message-search-item__right__message-text\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {messageText}\n </Label>\n <Label\n className=\"sendbird-message-search-item__right__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt(createdAt, dateLocale)}\n </Label>\n </div>\n <div className=\"sendbird-message-search-item__right-footer\" />\n </div>\n );\n}\n"],"names":["createdAt","locale","optionalParam","isToday","format","isYesterday","formatRelative","Date","MessageSearchItem","_a","className","message","selected","onClick","messageText","sender","_sender","profileUrl","nickname","_b","useLocalization","stringSet","dateLocale","React","__spreadArray","Array","isArray","join","e","stopPropagation","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","BODY_2","ONBACKGROUND_3","CAPTION_3","ONBACKGROUND_2","getCreatedAt"],"mappings":"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"}
1
+ {"version":3,"file":"MessageSearchItem.js","sources":["../../src/ui/MessageSearchItem/getCreatedAt.ts","../../src/ui/MessageSearchItem/index.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\n\ninterface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\n// getCreatedAt\nexport default function ({\n createdAt,\n locale,\n stringSet,\n}: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n","import React from 'react';\nimport './index.scss';\nimport getCreatedAt from './getCreatedAt';\n\nimport Avatar from '../Avatar';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { UserMessage } from '@sendbird/chat/message';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage;\n selected?: boolean;\n onClick?: (message: UserMessage) => void;\n}\n\nexport default function MessageSearchItem({\n className,\n message,\n selected,\n onClick,\n}: Props): JSX.Element {\n const { createdAt } = message;\n const messageText = message.message;\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-item',\n selected ? 'sendbird-message-search-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-item__left\">\n <Avatar\n className=\"sendbird-message-search-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-item__right\">\n <Label\n className=\"sendbird-message-search-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <Label\n className=\"sendbird-message-search-item__right__message-text\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {messageText}\n </Label>\n <Label\n className=\"sendbird-message-search-item__right__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({createdAt, locale: dateLocale, stringSet })}\n </Label>\n </div>\n <div className=\"sendbird-message-search-item__right-footer\" />\n </div>\n );\n}\n"],"names":["_a","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","MessageSearchItem","className","message","selected","onClick","messageText","sender","_sender","profileUrl","nickname","_b","useLocalization","dateLocale","React","__spreadArray","Array","isArray","join","e","stopPropagation","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","BODY_2","ONBACKGROUND_3","CAPTION_3","ONBACKGROUND_2","getCreatedAt"],"mappings":"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"}