@sendbird/uikit-react 3.6.7 → 3.6.8-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/App.js +57 -49
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +63 -0
  4. package/Channel/components/ChannelHeader.js +20 -19
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +45 -41
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +16 -15
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/Message.js +38 -36
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +34 -32
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +41 -60
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +18 -17
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +18 -17
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +16 -15
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +4 -4
  24. package/Channel/context.js +13 -12
  25. package/Channel/context.js.map +1 -1
  26. package/Channel/utils/compareMessagesForGrouping.js +22 -0
  27. package/Channel/utils/compareMessagesForGrouping.js.map +1 -0
  28. package/Channel/utils/getMessagePartsInfo.js +38 -0
  29. package/Channel/utils/getMessagePartsInfo.js.map +1 -0
  30. package/Channel.js +45 -41
  31. package/Channel.js.map +1 -1
  32. package/ChannelList/components/AddChannel.js +15 -15
  33. package/ChannelList/components/ChannelListHeader.js +6 -6
  34. package/ChannelList/components/ChannelListUI.js +31 -30
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +27 -26
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  39. package/ChannelList/context.js +8 -8
  40. package/ChannelList.js +31 -30
  41. package/ChannelList.js.map +1 -1
  42. package/{ChannelListProvider-fc14f42d.js → ChannelListProvider-8bad6b5d.js} +11 -14
  43. package/ChannelListProvider-8bad6b5d.js.map +1 -0
  44. package/{ChannelProvider-78e85f32.js → ChannelProvider-849524b4.js} +31 -331
  45. package/ChannelProvider-849524b4.js.map +1 -0
  46. package/ChannelSettings/components/ChannelProfile.js +11 -11
  47. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  48. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  49. package/ChannelSettings/components/LeaveChannel.js +11 -11
  50. package/ChannelSettings/components/ModerationPanel.js +14 -14
  51. package/ChannelSettings/components/UserListItem.js +10 -10
  52. package/ChannelSettings/components/UserPanel.js +13 -13
  53. package/ChannelSettings/context.js +3 -3
  54. package/ChannelSettings.js +17 -17
  55. package/CreateChannel/components/CreateChannelUI.js +13 -13
  56. package/CreateChannel/components/InviteUsers.js +13 -13
  57. package/CreateChannel/components/SelectChannelType.js +10 -10
  58. package/CreateChannel/context.js +4 -4
  59. package/CreateChannel.js +13 -13
  60. package/{CreateChannelProvider-fe23c38f.js → CreateChannelProvider-05a17cd7.js} +1 -1
  61. package/{CreateChannelProvider-fe23c38f.js.map → CreateChannelProvider-05a17cd7.js.map} +1 -1
  62. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  63. package/CreateOpenChannel/context.js +1 -1
  64. package/CreateOpenChannel.js +9 -9
  65. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  66. package/EditUserProfile.js +12 -12
  67. package/{LocalizationContext-5fe9b59d.js → LocalizationContext-8781208d.js} +3 -3
  68. package/{LocalizationContext-5fe9b59d.js.map → LocalizationContext-8781208d.js.map} +1 -1
  69. package/{MediaQueryContext-66b59195.js → MediaQueryContext-2ef9f34f.js} +1 -1
  70. package/{MediaQueryContext-66b59195.js.map → MediaQueryContext-2ef9f34f.js.map} +1 -1
  71. package/{MemberList-c03817ad.js → MemberList-41b2fd92.js} +5 -5
  72. package/{MemberList-c03817ad.js.map → MemberList-41b2fd92.js.map} +1 -1
  73. package/{useDirtyGetMentions-3f7692ab.js → Message/hooks/useDirtyGetMentions.js} +3 -2
  74. package/Message/hooks/useDirtyGetMentions.js.map +1 -0
  75. package/MessageSearch/components/MessageSearchUI.js +11 -11
  76. package/MessageSearch/context.js +1 -1
  77. package/MessageSearch/context.js.map +1 -1
  78. package/MessageSearch.js +11 -11
  79. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  80. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  81. package/OpenChannel/components/OpenChannelInput.js +20 -19
  82. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  83. package/OpenChannel/components/OpenChannelMessage.js +30 -38
  84. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  85. package/OpenChannel/components/OpenChannelMessageList.js +33 -32
  86. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  87. package/OpenChannel/components/OpenChannelUI.js +33 -32
  88. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  89. package/OpenChannel/context.js +8 -8
  90. package/OpenChannel.js +33 -32
  91. package/OpenChannel.js.map +1 -1
  92. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  93. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  94. package/OpenChannelList/context.js +3 -3
  95. package/OpenChannelList.js +13 -13
  96. package/{OpenChannelListProvider-5d21932a.js → OpenChannelListProvider-573391ab.js} +3 -3
  97. package/{OpenChannelListProvider-5d21932a.js.map → OpenChannelListProvider-573391ab.js.map} +1 -1
  98. package/{OpenChannelProvider-a6f4f92a.js → OpenChannelProvider-ac1c9c33.js} +7 -7
  99. package/OpenChannelProvider-ac1c9c33.js.map +1 -0
  100. package/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  101. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  102. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  103. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  104. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  105. package/OpenChannelSettings/context.js +3 -3
  106. package/OpenChannelSettings.js +17 -17
  107. package/{RemoveMessageModal-0d438e31.js → RemoveMessageModal-6a47b7bb.js} +3 -3
  108. package/RemoveMessageModal-6a47b7bb.js.map +1 -0
  109. package/SendbirdProvider.js +24 -21
  110. package/SendbirdProvider.js.map +1 -1
  111. package/Thread/components/ParentMessageInfo.js +36 -34
  112. package/Thread/components/ParentMessageInfo.js.map +1 -1
  113. package/Thread/components/ParentMessageInfoItem.js +21 -21
  114. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  115. package/Thread/components/ThreadHeader.js +6 -6
  116. package/Thread/components/ThreadList.js +39 -37
  117. package/Thread/components/ThreadList.js.map +1 -1
  118. package/Thread/components/ThreadListItem.js +40 -38
  119. package/Thread/components/ThreadListItem.js.map +1 -1
  120. package/Thread/components/ThreadMessageInput.js +32 -30
  121. package/Thread/components/ThreadMessageInput.js.map +1 -1
  122. package/Thread/components/ThreadUI.js +43 -41
  123. package/Thread/components/ThreadUI.js.map +1 -1
  124. package/Thread/context.js +8 -8
  125. package/Thread.js +43 -41
  126. package/Thread.js.map +1 -1
  127. package/{ThreadProvider-2a4356a2.js → ThreadProvider-9e14db75.js} +12 -11
  128. package/ThreadProvider-9e14db75.js.map +1 -0
  129. package/{UserProfileContext-8b8f3e3a.js → UserProfileContext-3be56f3a.js} +1 -1
  130. package/{UserProfileContext-8b8f3e3a.js.map → UserProfileContext-3be56f3a.js.map} +1 -1
  131. package/{VoiceMessageInputWrapper-b8742ea1.js → VoiceMessageInputWrapper-be6706b2.js} +7 -7
  132. package/{VoiceMessageInputWrapper-b8742ea1.js.map → VoiceMessageInputWrapper-be6706b2.js.map} +1 -1
  133. package/VoicePlayer/context.js +3 -3
  134. package/VoicePlayer/useVoicePlayer.js +9 -9
  135. package/VoiceRecorder/context.js +9 -9
  136. package/VoiceRecorder/useVoiceRecorder.js +8 -8
  137. package/{WebAudioUtils-63418113.js → WebAudioUtils-9b10fbb0.js} +2 -2
  138. package/{WebAudioUtils-63418113.js.map → WebAudioUtils-9b10fbb0.js.map} +1 -1
  139. package/{_rollupPluginBabelHelpers-90ff7fc4.js → _rollupPluginBabelHelpers-404d1a9c.js} +1 -1
  140. package/_rollupPluginBabelHelpers-404d1a9c.js.map +1 -0
  141. package/{actionTypes-66bf934b.js → actionTypes-a16bc0a0.js} +1 -1
  142. package/{actionTypes-66bf934b.js.map → actionTypes-a16bc0a0.js.map} +1 -1
  143. package/cjs/App.js +57 -49
  144. package/cjs/App.js.map +1 -1
  145. package/cjs/Channel/components/ChannelHeader.js +20 -19
  146. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  147. package/cjs/Channel/components/ChannelUI.js +45 -41
  148. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  149. package/cjs/Channel/components/FileViewer.js +16 -15
  150. package/cjs/Channel/components/FileViewer.js.map +1 -1
  151. package/cjs/Channel/components/FrozenNotification.js +4 -4
  152. package/cjs/Channel/components/Message.js +41 -39
  153. package/cjs/Channel/components/Message.js.map +1 -1
  154. package/cjs/Channel/components/MessageInput.js +39 -37
  155. package/cjs/Channel/components/MessageInput.js.map +1 -1
  156. package/cjs/Channel/components/MessageList.js +47 -66
  157. package/cjs/Channel/components/MessageList.js.map +1 -1
  158. package/cjs/Channel/components/RemoveMessageModal.js +18 -17
  159. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  160. package/cjs/Channel/components/SuggestedMentionList.js +18 -17
  161. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  162. package/cjs/Channel/components/TypingIndicator.js +16 -15
  163. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  164. package/cjs/Channel/components/UnreadCount.js +4 -4
  165. package/cjs/Channel/context.js +13 -12
  166. package/cjs/Channel/context.js.map +1 -1
  167. package/cjs/Channel/utils/compareMessagesForGrouping.js +26 -0
  168. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -0
  169. package/cjs/Channel/utils/getMessagePartsInfo.js +42 -0
  170. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -0
  171. package/cjs/Channel.js +45 -41
  172. package/cjs/Channel.js.map +1 -1
  173. package/cjs/ChannelList/components/AddChannel.js +15 -15
  174. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  175. package/cjs/ChannelList/components/ChannelListUI.js +31 -30
  176. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  177. package/cjs/ChannelList/components/ChannelPreview.js +27 -26
  178. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  179. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  180. package/cjs/ChannelList/context.js +8 -8
  181. package/cjs/ChannelList.js +31 -30
  182. package/cjs/ChannelList.js.map +1 -1
  183. package/cjs/{ChannelListProvider-c1f3cf4a.js → ChannelListProvider-11d605eb.js} +11 -14
  184. package/cjs/ChannelListProvider-11d605eb.js.map +1 -0
  185. package/cjs/{ChannelProvider-633edf61.js → ChannelProvider-58b2dd24.js} +109 -414
  186. package/cjs/ChannelProvider-58b2dd24.js.map +1 -0
  187. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  188. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  189. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  190. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  191. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  192. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  193. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  194. package/cjs/ChannelSettings/context.js +3 -3
  195. package/cjs/ChannelSettings.js +17 -17
  196. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  197. package/cjs/CreateChannel/components/InviteUsers.js +13 -13
  198. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  199. package/cjs/CreateChannel/context.js +4 -4
  200. package/cjs/CreateChannel.js +13 -13
  201. package/cjs/{CreateChannelProvider-32102712.js → CreateChannelProvider-ea0ac249.js} +1 -1
  202. package/cjs/{CreateChannelProvider-32102712.js.map → CreateChannelProvider-ea0ac249.js.map} +1 -1
  203. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  204. package/cjs/CreateOpenChannel/context.js +1 -1
  205. package/cjs/CreateOpenChannel.js +9 -9
  206. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  207. package/cjs/EditUserProfile.js +12 -12
  208. package/cjs/{LocalizationContext-a15ec4eb.js → LocalizationContext-98e10f52.js} +3 -3
  209. package/cjs/{LocalizationContext-a15ec4eb.js.map → LocalizationContext-98e10f52.js.map} +1 -1
  210. package/cjs/{MediaQueryContext-80d10d7b.js → MediaQueryContext-add76360.js} +1 -1
  211. package/cjs/{MediaQueryContext-80d10d7b.js.map → MediaQueryContext-add76360.js.map} +1 -1
  212. package/cjs/{MemberList-5303bbbb.js → MemberList-ae4434a0.js} +5 -5
  213. package/cjs/{MemberList-5303bbbb.js.map → MemberList-ae4434a0.js.map} +1 -1
  214. package/cjs/{useDirtyGetMentions-a37639f1.js → Message/hooks/useDirtyGetMentions.js} +4 -1
  215. package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -0
  216. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  217. package/cjs/MessageSearch/context.js +1 -1
  218. package/cjs/MessageSearch/context.js.map +1 -1
  219. package/cjs/MessageSearch.js +11 -11
  220. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  221. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  222. package/cjs/OpenChannel/components/OpenChannelInput.js +20 -19
  223. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  224. package/cjs/OpenChannel/components/OpenChannelMessage.js +32 -40
  225. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  226. package/cjs/OpenChannel/components/OpenChannelMessageList.js +33 -32
  227. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  228. package/cjs/OpenChannel/components/OpenChannelUI.js +33 -32
  229. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  230. package/cjs/OpenChannel/context.js +8 -8
  231. package/cjs/OpenChannel.js +33 -32
  232. package/cjs/OpenChannel.js.map +1 -1
  233. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  234. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  235. package/cjs/OpenChannelList/context.js +3 -3
  236. package/cjs/OpenChannelList.js +13 -13
  237. package/cjs/{OpenChannelListProvider-49874b88.js → OpenChannelListProvider-8e908f4d.js} +3 -3
  238. package/cjs/{OpenChannelListProvider-49874b88.js.map → OpenChannelListProvider-8e908f4d.js.map} +1 -1
  239. package/cjs/{OpenChannelProvider-c2b3dc2c.js → OpenChannelProvider-7b3b81b1.js} +7 -7
  240. package/cjs/OpenChannelProvider-7b3b81b1.js.map +1 -0
  241. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  242. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  243. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  244. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  245. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  246. package/cjs/OpenChannelSettings/context.js +3 -3
  247. package/cjs/OpenChannelSettings.js +17 -17
  248. package/cjs/{RemoveMessageModal-271f1251.js → RemoveMessageModal-33422173.js} +3 -3
  249. package/cjs/RemoveMessageModal-33422173.js.map +1 -0
  250. package/cjs/SendbirdProvider.js +24 -21
  251. package/cjs/SendbirdProvider.js.map +1 -1
  252. package/cjs/Thread/components/ParentMessageInfo.js +38 -36
  253. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  254. package/cjs/Thread/components/ParentMessageInfoItem.js +21 -21
  255. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  256. package/cjs/Thread/components/ThreadHeader.js +6 -6
  257. package/cjs/Thread/components/ThreadList.js +39 -37
  258. package/cjs/Thread/components/ThreadList.js.map +1 -1
  259. package/cjs/Thread/components/ThreadListItem.js +42 -40
  260. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  261. package/cjs/Thread/components/ThreadMessageInput.js +34 -32
  262. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  263. package/cjs/Thread/components/ThreadUI.js +43 -41
  264. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  265. package/cjs/Thread/context.js +8 -8
  266. package/cjs/Thread.js +43 -41
  267. package/cjs/Thread.js.map +1 -1
  268. package/cjs/{ThreadProvider-8d2ce923.js → ThreadProvider-f7ee365b.js} +12 -11
  269. package/cjs/ThreadProvider-f7ee365b.js.map +1 -0
  270. package/cjs/{UserProfileContext-f8f1cee7.js → UserProfileContext-b249921b.js} +1 -1
  271. package/cjs/{UserProfileContext-f8f1cee7.js.map → UserProfileContext-b249921b.js.map} +1 -1
  272. package/cjs/{VoiceMessageInputWrapper-e8d7b9ba.js → VoiceMessageInputWrapper-a365a098.js} +9 -9
  273. package/cjs/{VoiceMessageInputWrapper-e8d7b9ba.js.map → VoiceMessageInputWrapper-a365a098.js.map} +1 -1
  274. package/cjs/VoicePlayer/context.js +3 -3
  275. package/cjs/VoicePlayer/useVoicePlayer.js +9 -9
  276. package/cjs/VoiceRecorder/context.js +9 -9
  277. package/cjs/VoiceRecorder/useVoiceRecorder.js +8 -8
  278. package/cjs/{WebAudioUtils-88dbfaed.js → WebAudioUtils-a6402df3.js} +2 -2
  279. package/cjs/{WebAudioUtils-88dbfaed.js.map → WebAudioUtils-a6402df3.js.map} +1 -1
  280. package/cjs/{_rollupPluginBabelHelpers-0d9d52a5.js → _rollupPluginBabelHelpers-af83a471.js} +1 -1
  281. package/cjs/_rollupPluginBabelHelpers-af83a471.js.map +1 -0
  282. package/cjs/{actionTypes-974dfe33.js → actionTypes-200d8a9f.js} +1 -1
  283. package/cjs/{actionTypes-974dfe33.js.map → actionTypes-200d8a9f.js.map} +1 -1
  284. package/cjs/{color-1e9cc481.js → color-31d6570a.js} +1 -1
  285. package/cjs/{color-1e9cc481.js.map → color-31d6570a.js.map} +1 -1
  286. package/cjs/{compareIds-0344920c.js → compareIds-e79c9a5a.js} +1 -1
  287. package/cjs/{compareIds-0344920c.js.map → compareIds-e79c9a5a.js.map} +1 -1
  288. package/cjs/{const-0d4d91cd.js → const-a3aa0fd6.js} +1 -1
  289. package/cjs/{const-0d4d91cd.js.map → const-a3aa0fd6.js.map} +1 -1
  290. package/cjs/{const-182fe978.js → const-c4593fa8.js} +1 -1
  291. package/cjs/{const-182fe978.js.map → const-c4593fa8.js.map} +1 -1
  292. package/cjs/{consts-10e5b075.js → consts-0ce6dc5f.js} +1 -1
  293. package/cjs/{consts-10e5b075.js.map → consts-0ce6dc5f.js.map} +1 -1
  294. package/cjs/{consts-5bdc2c7f.js → consts-43df77ef.js} +1 -1
  295. package/cjs/{consts-5bdc2c7f.js.map → consts-43df77ef.js.map} +1 -1
  296. package/cjs/{consts-0c9a38ef.js → consts-6d791ff5.js} +5 -1
  297. package/cjs/{consts-0c9a38ef.js.map → consts-6d791ff5.js.map} +1 -1
  298. package/cjs/{consts-c336bb61.js → consts-95de97c6.js} +1 -1
  299. package/cjs/{consts-c336bb61.js.map → consts-95de97c6.js.map} +1 -1
  300. package/cjs/{context-0276d21e.js → context-cec5a03c.js} +2 -2
  301. package/cjs/{context-0276d21e.js.map → context-cec5a03c.js.map} +1 -1
  302. package/cjs/dist/index.css +154 -127
  303. package/cjs/dist/index.css.map +1 -1
  304. package/cjs/{index-2cb13008.js → index-0a1d6159.js} +2 -2
  305. package/cjs/{index-2cb13008.js.map → index-0a1d6159.js.map} +1 -1
  306. package/cjs/{index-ed1ee70b.js → index-0a49ce60.js} +21 -14
  307. package/cjs/index-0a49ce60.js.map +1 -0
  308. package/cjs/index-0bcc6578.js +298 -0
  309. package/cjs/index-0bcc6578.js.map +1 -0
  310. package/cjs/{index-6cb3365f.js → index-1a05108d.js} +2 -2
  311. package/cjs/{index-6cb3365f.js.map → index-1a05108d.js.map} +1 -1
  312. package/cjs/{index-49fe0efb.js → index-44f82a5f.js} +4 -4
  313. package/cjs/{index-49fe0efb.js.map → index-44f82a5f.js.map} +1 -1
  314. package/cjs/{index-08c5777e.js → index-5125200f.js} +67 -28
  315. package/cjs/index-5125200f.js.map +1 -0
  316. package/cjs/{index-5a651f3c.js → index-5eddbcdd.js} +2 -2
  317. package/cjs/{index-5a651f3c.js.map → index-5eddbcdd.js.map} +1 -1
  318. package/cjs/{index-87e11d7e.js → index-6a049d22.js} +5 -5
  319. package/cjs/{index-87e11d7e.js.map → index-6a049d22.js.map} +1 -1
  320. package/cjs/{index-092b22dd.js → index-71ac2b0c.js} +2 -2
  321. package/cjs/{index-092b22dd.js.map → index-71ac2b0c.js.map} +1 -1
  322. package/cjs/{index-e46cc828.js → index-7c287c6e.js} +6 -6
  323. package/cjs/{index-e46cc828.js.map → index-7c287c6e.js.map} +1 -1
  324. package/cjs/{index-c2454b7e.js → index-821a74b6.js} +1 -1
  325. package/cjs/{index-c2454b7e.js.map → index-821a74b6.js.map} +1 -1
  326. package/cjs/{index-dbccd7fb.js → index-86a4d820.js} +3 -3
  327. package/cjs/{index-dbccd7fb.js.map → index-86a4d820.js.map} +1 -1
  328. package/cjs/{index-54228aa8.js → index-892e04e5.js} +4 -4
  329. package/cjs/{index-54228aa8.js.map → index-892e04e5.js.map} +1 -1
  330. package/cjs/{index-b428366f.js → index-ae818469.js} +2 -2
  331. package/cjs/index-ae818469.js.map +1 -0
  332. package/cjs/{index-1325e266.js → index-cffeab44.js} +3 -3
  333. package/cjs/{index-1325e266.js.map → index-cffeab44.js.map} +1 -1
  334. package/cjs/{index-9c8e297d.js → index-d1afbcfe.js} +3 -3
  335. package/cjs/{index-9c8e297d.js.map → index-d1afbcfe.js.map} +1 -1
  336. package/cjs/{index-cebd1362.js → index-dafc4dfb.js} +4 -4
  337. package/cjs/{index-cebd1362.js.map → index-dafc4dfb.js.map} +1 -1
  338. package/cjs/{index-17a6519d.js → index-eb531448.js} +1 -1
  339. package/cjs/{index-17a6519d.js.map → index-eb531448.js.map} +1 -1
  340. package/cjs/index-fc0d8ea1.js +230 -0
  341. package/cjs/index-fc0d8ea1.js.map +1 -0
  342. package/cjs/index.js +57 -53
  343. package/cjs/index.js.map +1 -1
  344. package/cjs/{index.module-8026e7d3.js → index.module-dcf622ba.js} +1 -1
  345. package/cjs/{index.module-8026e7d3.js.map → index.module-dcf622ba.js.map} +1 -1
  346. package/cjs/package.json +2 -2
  347. package/cjs/{resolvedReplyType-8137e072.js → resolvedReplyType-7074785b.js} +1 -1
  348. package/cjs/{resolvedReplyType-8137e072.js.map → resolvedReplyType-7074785b.js.map} +1 -1
  349. package/cjs/sendbirdSelectors.js +3 -4
  350. package/cjs/sendbirdSelectors.js.map +1 -1
  351. package/cjs/{stringSet-769f181d.js → stringSet-20c5f2fa.js} +1 -1
  352. package/cjs/{stringSet-769f181d.js.map → stringSet-20c5f2fa.js.map} +1 -1
  353. package/cjs/{tokenize-586ed01a.js → tokenize-3c568761.js} +2 -2
  354. package/cjs/{tokenize-586ed01a.js.map → tokenize-3c568761.js.map} +1 -1
  355. package/cjs/{topics-99121946.js → topics-b61b6276.js} +1 -1
  356. package/cjs/{topics-99121946.js.map → topics-b61b6276.js.map} +1 -1
  357. package/cjs/{types-812b3bfd.js → types-7d4d4e4a.js} +1 -1
  358. package/cjs/types-7d4d4e4a.js.map +1 -0
  359. package/cjs/ui/Accordion.js +2 -2
  360. package/cjs/ui/AccordionGroup.js +2 -2
  361. package/cjs/ui/AdminMessage.js +2 -2
  362. package/cjs/ui/Avatar.js +1 -1
  363. package/cjs/ui/Badge.js +4 -4
  364. package/cjs/ui/BottomSheet.js +1 -1
  365. package/cjs/ui/Button.js +2 -2
  366. package/cjs/ui/ChannelAvatar.js +2 -2
  367. package/cjs/ui/ConnectionStatus.js +4 -4
  368. package/cjs/ui/ContextMenu.js +5 -5
  369. package/cjs/ui/DateSeparator.js +3 -3
  370. package/cjs/ui/EmojiReactions.js +13 -13
  371. package/cjs/ui/EmojiReactions.js.map +1 -1
  372. package/cjs/ui/FileMessageItemBody.js +6 -6
  373. package/cjs/ui/FileViewer.js +17 -126
  374. package/cjs/ui/FileViewer.js.map +1 -1
  375. package/cjs/ui/Icon.js +178 -159
  376. package/cjs/ui/Icon.js.map +1 -1
  377. package/cjs/ui/IconButton.js +1 -1
  378. package/cjs/ui/Input.js +2 -2
  379. package/cjs/ui/Label.js +2 -2
  380. package/cjs/ui/LinkLabel.js +2 -2
  381. package/cjs/ui/MentionLabel.js +10 -10
  382. package/cjs/ui/MentionUserLabel.js +1 -1
  383. package/cjs/ui/MessageContent.js +28 -28
  384. package/cjs/ui/MessageContent.js.map +1 -1
  385. package/cjs/ui/MessageInput/hooks/usePaste.js +16 -0
  386. package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -0
  387. package/cjs/ui/MessageInput.js +21 -233
  388. package/cjs/ui/MessageInput.js.map +1 -1
  389. package/cjs/ui/MessageItemMenu.js +8 -8
  390. package/cjs/ui/MessageItemMenu.js.map +1 -1
  391. package/cjs/ui/MessageItemReactionMenu.js +8 -8
  392. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  393. package/cjs/ui/MessageSearchFileItem.js +10 -10
  394. package/cjs/ui/MessageSearchItem.js +8 -8
  395. package/cjs/ui/MessageStatus.js +10 -10
  396. package/cjs/ui/Modal.js +7 -7
  397. package/cjs/ui/OGMessageItemBody.js +14 -14
  398. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  399. package/cjs/ui/OpenChannelAvatar.js +5 -5
  400. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  401. package/cjs/ui/OpenchannelFileMessage.js +15 -15
  402. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  403. package/cjs/ui/OpenchannelThumbnailMessage.js +14 -14
  404. package/cjs/ui/OpenchannelUserMessage.js +15 -15
  405. package/cjs/ui/PlaceHolder.js +5 -5
  406. package/cjs/ui/PlaybackTime.js +2 -2
  407. package/cjs/ui/QuoteMessage.js +6 -6
  408. package/cjs/ui/QuoteMessage.js.map +1 -1
  409. package/cjs/ui/QuoteMessageInput.js +6 -6
  410. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  411. package/cjs/ui/ReactionBadge.js +2 -2
  412. package/cjs/ui/ReactionButton.js +4 -4
  413. package/cjs/ui/SortByRow.js +1 -1
  414. package/cjs/ui/TextButton.js +1 -1
  415. package/cjs/ui/TextMessageItemBody.js +14 -14
  416. package/cjs/ui/ThreadReplies.js +5 -5
  417. package/cjs/ui/ThumbnailMessageItemBody.js +5 -5
  418. package/cjs/ui/Toggle.js +1 -1
  419. package/cjs/ui/Tooltip.js +2 -2
  420. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  421. package/cjs/ui/UserListItem.js +10 -10
  422. package/cjs/ui/UserProfile.js +9 -9
  423. package/cjs/ui/VoiceMessageItemBody.js +9 -9
  424. package/cjs/ui/VoiceMessgeInput.js +7 -7
  425. package/cjs/ui/Word.js +10 -10
  426. package/cjs/{useLongPress-a77054d5.js → useLongPress-f1d03c8d.js} +3 -3
  427. package/cjs/{useLongPress-a77054d5.js.map → useLongPress-f1d03c8d.js.map} +1 -1
  428. package/cjs/useSendbirdStateContext.js +1 -1
  429. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  430. package/cjs/utils/message/isVoiceMessage.js +2 -2
  431. package/cjs/{utils-c8ca7346.js → utils-03f96fba.js} +1 -1
  432. package/cjs/{utils-c8ca7346.js.map → utils-03f96fba.js.map} +1 -1
  433. package/cjs/{utils-18517a45.js → utils-482c5d41.js} +2 -2
  434. package/cjs/{utils-18517a45.js.map → utils-482c5d41.js.map} +1 -1
  435. package/cjs/{utils-3fda8de7.js → utils-9a0e0c06.js} +1 -1
  436. package/cjs/{utils-3fda8de7.js.map → utils-9a0e0c06.js.map} +1 -1
  437. package/cjs/utils-a569b281.js +340 -0
  438. package/cjs/utils-a569b281.js.map +1 -0
  439. package/cjs/{utils-d6b081f0.js → utils-e00d6f10.js} +1 -1
  440. package/cjs/{utils-d6b081f0.js.map → utils-e00d6f10.js.map} +1 -1
  441. package/cjs/{uuid-6c019e89.js → uuid-f9a11afa.js} +1 -1
  442. package/cjs/{uuid-6c019e89.js.map → uuid-f9a11afa.js.map} +1 -1
  443. package/cjs/withSendbird.js +1 -1
  444. package/{color-2315a258.js → color-08fea5a1.js} +1 -1
  445. package/{color-2315a258.js.map → color-08fea5a1.js.map} +1 -1
  446. package/{compareIds-2464aab2.js → compareIds-72c21832.js} +1 -1
  447. package/{compareIds-2464aab2.js.map → compareIds-72c21832.js.map} +1 -1
  448. package/{const-0cca8d38.js → const-035fb030.js} +1 -1
  449. package/{const-0cca8d38.js.map → const-035fb030.js.map} +1 -1
  450. package/{const-c6a266f4.js → const-cf103f8d.js} +1 -1
  451. package/{const-c6a266f4.js.map → const-cf103f8d.js.map} +1 -1
  452. package/{consts-991d3823.js → consts-52c058a5.js} +1 -1
  453. package/{consts-991d3823.js.map → consts-52c058a5.js.map} +1 -1
  454. package/{consts-32a2c4a7.js → consts-d9925dd6.js} +1 -1
  455. package/{consts-32a2c4a7.js.map → consts-d9925dd6.js.map} +1 -1
  456. package/{consts-3d956927.js → consts-dbf4e2a7.js} +1 -1
  457. package/{consts-3d956927.js.map → consts-dbf4e2a7.js.map} +1 -1
  458. package/{consts-b6f24cc7.js → consts-f92f7a23.js} +5 -2
  459. package/{consts-b6f24cc7.js.map → consts-f92f7a23.js.map} +1 -1
  460. package/{context-e46fff7b.js → context-866e205a.js} +2 -2
  461. package/{context-e46fff7b.js.map → context-866e205a.js.map} +1 -1
  462. package/dist/index.css +154 -127
  463. package/dist/index.css.map +1 -1
  464. package/{index-335e7557.js → index-0cfeeaac.js} +2 -2
  465. package/{index-335e7557.js.map → index-0cfeeaac.js.map} +1 -1
  466. package/{index-f2e30f98.js → index-220222c3.js} +2 -2
  467. package/{index-f2e30f98.js.map → index-220222c3.js.map} +1 -1
  468. package/{index-499d9ef9.js → index-3c8065f1.js} +2 -2
  469. package/{index-499d9ef9.js.map → index-3c8065f1.js.map} +1 -1
  470. package/{index-17b78bb0.js → index-3e9067b2.js} +21 -14
  471. package/index-3e9067b2.js.map +1 -0
  472. package/{index-fe2c7493.js → index-48b8b7ea.js} +6 -6
  473. package/{index-fe2c7493.js.map → index-48b8b7ea.js.map} +1 -1
  474. package/{index-13d9d766.js → index-5a7039da.js} +2 -2
  475. package/{index-13d9d766.js.map → index-5a7039da.js.map} +1 -1
  476. package/index-5d775cdb.js +221 -0
  477. package/index-5d775cdb.js.map +1 -0
  478. package/{index-7b3790d3.js → index-87a9a309.js} +4 -4
  479. package/{index-7b3790d3.js.map → index-87a9a309.js.map} +1 -1
  480. package/{index-07345a6e.js → index-89a6798f.js} +5 -5
  481. package/{index-07345a6e.js.map → index-89a6798f.js.map} +1 -1
  482. package/{index-bafedab0.js → index-92d47d85.js} +1 -1
  483. package/{index-bafedab0.js.map → index-92d47d85.js.map} +1 -1
  484. package/index-a3d726e9.js +289 -0
  485. package/index-a3d726e9.js.map +1 -0
  486. package/{index-a39b9075.js → index-adaead71.js} +3 -3
  487. package/{index-a39b9075.js.map → index-adaead71.js.map} +1 -1
  488. package/{index-ebb8a7df.js → index-b3d5a76f.js} +2 -2
  489. package/index-b3d5a76f.js.map +1 -0
  490. package/{index-2544bb0a.js → index-bbc82f2a.js} +4 -4
  491. package/{index-2544bb0a.js.map → index-bbc82f2a.js.map} +1 -1
  492. package/{index-b9b184a4.js → index-c17b453a.js} +1 -1
  493. package/{index-b9b184a4.js.map → index-c17b453a.js.map} +1 -1
  494. package/{index-c4273470.js → index-ceda3633.js} +4 -4
  495. package/{index-c4273470.js.map → index-ceda3633.js.map} +1 -1
  496. package/{index-879bcfab.js → index-d637d23d.js} +3 -3
  497. package/{index-879bcfab.js.map → index-d637d23d.js.map} +1 -1
  498. package/{index-56249831.js → index-e9757459.js} +68 -29
  499. package/index-e9757459.js.map +1 -0
  500. package/{index-63c995b8.js → index-ef60ce9f.js} +3 -3
  501. package/{index-63c995b8.js.map → index-ef60ce9f.js.map} +1 -1
  502. package/index.d.ts +278 -134
  503. package/index.js +57 -53
  504. package/index.js.map +1 -1
  505. package/{index.module-41885c5b.js → index.module-476c67cc.js} +1 -1
  506. package/{index.module-41885c5b.js.map → index.module-476c67cc.js.map} +1 -1
  507. package/package.json +3 -2
  508. package/{resolvedReplyType-d6e22593.js → resolvedReplyType-8fa44680.js} +1 -1
  509. package/{resolvedReplyType-d6e22593.js.map → resolvedReplyType-8fa44680.js.map} +1 -1
  510. package/sendbirdSelectors.js +3 -4
  511. package/sendbirdSelectors.js.map +1 -1
  512. package/{stringSet-47601d79.js → stringSet-f13a0a37.js} +1 -1
  513. package/{stringSet-47601d79.js.map → stringSet-f13a0a37.js.map} +1 -1
  514. package/{tokenize-c0cf9574.js → tokenize-be306c61.js} +2 -2
  515. package/{tokenize-c0cf9574.js.map → tokenize-be306c61.js.map} +1 -1
  516. package/{topics-e985567d.js → topics-df485c66.js} +1 -1
  517. package/{topics-e985567d.js.map → topics-df485c66.js.map} +1 -1
  518. package/{types-02054e6e.js → types-b2ebbd50.js} +1 -1
  519. package/types-b2ebbd50.js.map +1 -0
  520. package/ui/Accordion.js +2 -2
  521. package/ui/AccordionGroup.js +2 -2
  522. package/ui/AdminMessage.js +2 -2
  523. package/ui/Avatar.js +1 -1
  524. package/ui/Badge.js +4 -4
  525. package/ui/BottomSheet.js +1 -1
  526. package/ui/Button.js +2 -2
  527. package/ui/ChannelAvatar.js +2 -2
  528. package/ui/ConnectionStatus.js +4 -4
  529. package/ui/ContextMenu.js +5 -5
  530. package/ui/DateSeparator.js +3 -3
  531. package/ui/EmojiReactions.js +13 -13
  532. package/ui/EmojiReactions.js.map +1 -1
  533. package/ui/FileMessageItemBody.js +6 -6
  534. package/ui/FileViewer.js +15 -124
  535. package/ui/FileViewer.js.map +1 -1
  536. package/ui/Icon.js +178 -159
  537. package/ui/Icon.js.map +1 -1
  538. package/ui/IconButton.js +1 -1
  539. package/ui/Input.js +2 -2
  540. package/ui/Label.js +2 -2
  541. package/ui/LinkLabel.js +2 -2
  542. package/ui/MentionLabel.js +10 -10
  543. package/ui/MentionUserLabel.js +1 -1
  544. package/ui/MessageContent.js +28 -28
  545. package/ui/MessageContent.js.map +1 -1
  546. package/ui/MessageInput/hooks/usePaste.js +7 -0
  547. package/ui/MessageInput/hooks/usePaste.js.map +1 -0
  548. package/ui/MessageInput.js +16 -227
  549. package/ui/MessageInput.js.map +1 -1
  550. package/ui/MessageItemMenu.js +8 -8
  551. package/ui/MessageItemMenu.js.map +1 -1
  552. package/ui/MessageItemReactionMenu.js +8 -8
  553. package/ui/MessageItemReactionMenu.js.map +1 -1
  554. package/ui/MessageSearchFileItem.js +10 -10
  555. package/ui/MessageSearchItem.js +8 -8
  556. package/ui/MessageStatus.js +10 -10
  557. package/ui/Modal.js +7 -7
  558. package/ui/OGMessageItemBody.js +14 -14
  559. package/ui/OpenChannelAdminMessage.js +2 -2
  560. package/ui/OpenChannelAvatar.js +5 -5
  561. package/ui/OpenchannelConversationHeader.js +6 -6
  562. package/ui/OpenchannelFileMessage.js +15 -15
  563. package/ui/OpenchannelOGMessage.js +18 -18
  564. package/ui/OpenchannelThumbnailMessage.js +14 -14
  565. package/ui/OpenchannelUserMessage.js +15 -15
  566. package/ui/PlaceHolder.js +5 -5
  567. package/ui/PlaybackTime.js +2 -2
  568. package/ui/QuoteMessage.js +6 -6
  569. package/ui/QuoteMessage.js.map +1 -1
  570. package/ui/QuoteMessageInput.js +6 -6
  571. package/ui/QuoteMessageInput.js.map +1 -1
  572. package/ui/ReactionBadge.js +2 -2
  573. package/ui/ReactionButton.js +4 -4
  574. package/ui/SortByRow.js +1 -1
  575. package/ui/TextButton.js +1 -1
  576. package/ui/TextMessageItemBody.js +14 -14
  577. package/ui/ThreadReplies.js +5 -5
  578. package/ui/ThumbnailMessageItemBody.js +5 -5
  579. package/ui/Toggle.js +1 -1
  580. package/ui/Tooltip.js +2 -2
  581. package/ui/UnknownMessageItemBody.js +6 -6
  582. package/ui/UserListItem.js +10 -10
  583. package/ui/UserProfile.js +9 -9
  584. package/ui/VoiceMessageItemBody.js +9 -9
  585. package/ui/VoiceMessgeInput.js +7 -7
  586. package/ui/Word.js +10 -10
  587. package/{useLongPress-0a2a8916.js → useLongPress-e69367cf.js} +3 -3
  588. package/{useLongPress-0a2a8916.js.map → useLongPress-e69367cf.js.map} +1 -1
  589. package/useSendbirdStateContext.js +1 -1
  590. package/utils/message/getOutgoingMessageState.js.map +1 -1
  591. package/utils/message/isVoiceMessage.js +2 -2
  592. package/{utils-93924431.js → utils-3ee416c9.js} +1 -1
  593. package/{utils-93924431.js.map → utils-3ee416c9.js.map} +1 -1
  594. package/{utils-2f26afa0.js → utils-42133229.js} +1 -1
  595. package/{utils-2f26afa0.js.map → utils-42133229.js.map} +1 -1
  596. package/{utils-d15f13cf.js → utils-60a2e587.js} +1 -1
  597. package/{utils-d15f13cf.js.map → utils-60a2e587.js.map} +1 -1
  598. package/{utils-70ea4cc9.js → utils-910ef5dd.js} +2 -2
  599. package/{utils-70ea4cc9.js.map → utils-910ef5dd.js.map} +1 -1
  600. package/utils-df42b9f9.js +301 -0
  601. package/utils-df42b9f9.js.map +1 -0
  602. package/{uuid-ec51ac4d.js → uuid-1b498132.js} +1 -1
  603. package/{uuid-ec51ac4d.js.map → uuid-1b498132.js.map} +1 -1
  604. package/withSendbird.js +1 -1
  605. package/ChannelListProvider-fc14f42d.js.map +0 -1
  606. package/ChannelProvider-78e85f32.js.map +0 -1
  607. package/OpenChannelProvider-a6f4f92a.js.map +0 -1
  608. package/RemoveMessageModal-0d438e31.js.map +0 -1
  609. package/ThreadProvider-2a4356a2.js.map +0 -1
  610. package/_rollupPluginBabelHelpers-90ff7fc4.js.map +0 -1
  611. package/cjs/ChannelListProvider-c1f3cf4a.js.map +0 -1
  612. package/cjs/ChannelProvider-633edf61.js.map +0 -1
  613. package/cjs/OpenChannelProvider-c2b3dc2c.js.map +0 -1
  614. package/cjs/RemoveMessageModal-271f1251.js.map +0 -1
  615. package/cjs/ThreadProvider-8d2ce923.js.map +0 -1
  616. package/cjs/_rollupPluginBabelHelpers-0d9d52a5.js.map +0 -1
  617. package/cjs/index-08c5777e.js.map +0 -1
  618. package/cjs/index-b428366f.js.map +0 -1
  619. package/cjs/index-ed1ee70b.js.map +0 -1
  620. package/cjs/types-812b3bfd.js.map +0 -1
  621. package/cjs/useDirtyGetMentions-a37639f1.js.map +0 -1
  622. package/index-17b78bb0.js.map +0 -1
  623. package/index-56249831.js.map +0 -1
  624. package/index-ebb8a7df.js.map +0 -1
  625. package/types-02054e6e.js.map +0 -1
  626. package/useDirtyGetMentions-3f7692ab.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ import { useCallback } from 'react';
2
+ import DOMPurify from 'dompurify';
3
+ import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-d9925dd6.js';
4
+ import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-52c058a5.js';
5
+ import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-dbf4e2a7.js';
6
+
7
+ // cretes a sanitized string from a mention user label
8
+ function renderToString(_ref) {
9
+ let {
10
+ userId,
11
+ nickname
12
+ } = _ref;
13
+ // donot change this template, it wont work
14
+ const el = `<span data-userid="${userId}" data-sb-mention="true" class="${MENTION_USER_LABEL_CLASSNAME}">${nickname}</span>`;
15
+ const purifier = DOMPurify(window);
16
+ const sanitized_ = purifier.sanitize(el);
17
+ const token = sanitized_.split(' ');
18
+ const [spanTag, ...rest] = token;
19
+ // we do this because DOMPurify removes the contenteditable attribute
20
+ const sanitized = [spanTag, 'contenteditable="false"', ...rest].join(' ');
21
+ return sanitized;
22
+ }
23
+
24
+ // https://davidwalsh.name/javascript-debounce-function
25
+
26
+ // Sanitize that special characters of HTML tags cause XSS issue
27
+ const sanitizeString = str => str === null || str === void 0 ? void 0 : str.replace(/[\u00A0-\u9999<>]/gim, i => ''.concat('&#', i.charCodeAt(0), ';'));
28
+
29
+ /**
30
+ * NodeList cannot be used with Array methods
31
+ * @param {childNodes} NodeList
32
+ * @returns Array of child nodes
33
+ */
34
+ const nodeListToArray = childNodes => {
35
+ try {
36
+ return Array.from(childNodes);
37
+ } catch (error) {
38
+ return [];
39
+ }
40
+ };
41
+
42
+ function inserTemplateToDOM(templateList) {
43
+ const nodes = templateList.map(template => {
44
+ const {
45
+ text,
46
+ userId
47
+ } = template;
48
+ if (userId) {
49
+ return renderToString({
50
+ userId,
51
+ nickname: text
52
+ });
53
+ }
54
+ return sanitizeString(text);
55
+ }).join(' ')
56
+ // add a space at the end of the mention, else cursor/caret wont work
57
+ .concat(' ');
58
+ document.execCommand('insertHTML', false, nodes);
59
+ }
60
+
61
+ const PASTE_NODE = 'sendbird-uikit__paste-node';
62
+ const TEXT_MESSAGE_CLASS = 'sendbird-word';
63
+ const MENTION_CLASS = 'sendbird-word__mention';
64
+ const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';
65
+ const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;
66
+
67
+ function querySelectorIncludingSelf(master, selector) {
68
+ const result = [master, ...Array.from(master.querySelectorAll(selector))].find(el => el.matches(selector));
69
+ return result;
70
+ }
71
+
72
+ // Pasted dom node can be OG_MESSAGE or partial message or full message
73
+ // full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes
74
+ // partial message would not have TEXT_MESSAGE_BODY_CLASSNAME
75
+ function getLeafNodes(master) {
76
+ // og message
77
+ const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);
78
+ if (ogMessage) {
79
+ return nodeListToArray(ogMessage.childNodes);
80
+ }
81
+ const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);
82
+ if (textMessageBody) {
83
+ return nodeListToArray(textMessageBody.childNodes);
84
+ }
85
+ return nodeListToArray(master.childNodes);
86
+ }
87
+ function createPasteNode() {
88
+ const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);
89
+ // remove existing paste node
90
+ if (pasteNode) {
91
+ pasteNode === null || pasteNode === void 0 ? void 0 : pasteNode.remove();
92
+ }
93
+
94
+ // create new paste node and return
95
+ const node = document.createElement('div');
96
+ node.id = PASTE_NODE;
97
+ node.style.display = 'none';
98
+ return node;
99
+ }
100
+ function hasMention(parent) {
101
+ return parent !== null && parent !== void 0 && parent.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;
102
+ }
103
+ const extractTextFromNodes = nodes => {
104
+ let text = '';
105
+ nodes.forEach(node => {
106
+ // to preserve space between words
107
+ const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);
108
+ if (textNodes.length > 0) {
109
+ text += extractTextFromNodes(Array.from(textNodes)) + ' ';
110
+ }
111
+ text += node.innerText + ' ';
112
+ });
113
+ return text;
114
+ };
115
+ function domToMessageTemplate(nodeArray) {
116
+ const templates = nodeArray === null || nodeArray === void 0 ? void 0 : nodeArray.reduce((accumulator, currentValue) => {
117
+ // currentValue can be node(from messageBody or messageInput) or text
118
+ let mentionNode;
119
+ // this looks awkward, but it is a fallback to set default text
120
+ let text = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
121
+
122
+ // if text node, set text
123
+ if (currentValue instanceof Text) {
124
+ mentionNode = false;
125
+ text = currentValue.textContent;
126
+ }
127
+ if (currentValue instanceof HTMLElement) {
128
+ mentionNode = currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) ? currentValue : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);
129
+ }
130
+
131
+ // if mentionNode is not null, it is a mention
132
+ if (mentionNode) {
133
+ var _mentionNode$dataset;
134
+ const text = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
135
+ const userId = (_mentionNode$dataset = mentionNode.dataset) === null || _mentionNode$dataset === void 0 ? void 0 : _mentionNode$dataset.userid;
136
+ return [...accumulator, {
137
+ text,
138
+ userId
139
+ }];
140
+ }
141
+ return [...accumulator, {
142
+ text
143
+ }];
144
+ }, []);
145
+ return templates;
146
+ }
147
+ function getUsersFromWords(templates, channel) {
148
+ const userMap = {};
149
+ const users = channel.members;
150
+ templates.forEach(template => {
151
+ if (template.userId) {
152
+ const mentionedMember = users.find(user => user.userId === template.userId);
153
+ // Object.values would return array-> [undefined] if the user is not in the channel
154
+ if (mentionedMember) {
155
+ userMap[template.userId] = mentionedMember;
156
+ }
157
+ }
158
+ });
159
+ return Object.values(userMap);
160
+ }
161
+
162
+ // exported, should be backward compatible
163
+ // conditions to test:
164
+ // 1. paste simple text
165
+ // 2. paste text with mention
166
+ // 3. paste text with mention and text
167
+ // 4. paste text with mention and text and paste again before and after
168
+ // 5. copy message with mention(only one mention, no other text) and paste
169
+ // 6. copy message with mention from input and paste(before and after)
170
+ function usePaste(_ref) {
171
+ let {
172
+ ref,
173
+ setIsInput,
174
+ setHeight,
175
+ channel,
176
+ setMentionedUsers
177
+ } = _ref;
178
+ return useCallback(e => {
179
+ e.preventDefault();
180
+ const html = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text/html');
181
+ // simple text, continue as normal
182
+ if (!html) {
183
+ const text = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text');
184
+ document.execCommand('insertHTML', false, sanitizeString(text));
185
+ setIsInput(true);
186
+ setHeight();
187
+ return;
188
+ }
189
+
190
+ // has html, check if there are mentions, sanitize and insert
191
+ const purifier = DOMPurify(window);
192
+ const clean = purifier.sanitize(html);
193
+ const pasteNode = createPasteNode();
194
+ pasteNode.innerHTML = clean;
195
+ // does not have mention, continue as normal
196
+ if (!hasMention(pasteNode)) {
197
+ // to preserve space between words
198
+ const text = extractTextFromNodes(Array.from(pasteNode.children));
199
+ document.execCommand('insertHTML', false, sanitizeString(text));
200
+ pasteNode.remove();
201
+ setIsInput(true);
202
+ setHeight();
203
+ return;
204
+ }
205
+
206
+ // has mention, collect leaf nodes and parse words
207
+ const leafNodes = getLeafNodes(pasteNode);
208
+ const words = domToMessageTemplate(leafNodes);
209
+ const mentionedUsers = getUsersFromWords(words, channel);
210
+
211
+ // side effects
212
+ setMentionedUsers(mentionedUsers);
213
+ inserTemplateToDOM(words);
214
+ pasteNode.remove();
215
+ setIsInput(true);
216
+ setHeight();
217
+ }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
218
+ }
219
+
220
+ export { nodeListToArray as n, renderToString as r, sanitizeString as s, usePaste as u };
221
+ //# sourceMappingURL=index-5d775cdb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-5d775cdb.js","sources":["../src/ui/MentionUserLabel/renderToString.ts","../src/ui/MessageInput/utils.js","../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../src/ui/MessageInput/hooks/usePaste/consts.ts","../src/ui/MessageInput/hooks/usePaste/utils.ts","../src/ui/MessageInput/hooks/usePaste/index.ts"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// 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\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// exported, should be backward compatible\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n\n// to do -> In the future donot export default\nexport default usePaste;\n"],"names":["renderToString","_ref","userId","nickname","el","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","sanitized","join","sanitizeString","str","replace","i","concat","charCodeAt","nodeListToArray","childNodes","Array","from","error","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","_mentionNode$dataset","dataset","userid","getUsersFromWords","channel","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers"],"mappings":"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"}
@@ -3,9 +3,9 @@ import { PlaybackTime } from './ui/PlaybackTime.js';
3
3
  import { ProgressBar } from './ui/ProgressBar.js';
4
4
  import TextButton from './ui/TextButton.js';
5
5
  import Icon, { IconTypes, IconColors } from './ui/Icon.js';
6
- import { b as LabelColors, L as Label, a as LabelTypography } from './index-13d9d766.js';
7
- import { u as useLocalization } from './LocalizationContext-5fe9b59d.js';
8
- import { i as VOICE_RECORDER_CLICK_BUFFER_TIME, a as VOICE_RECORDER_DEFAULT_MIN } from './consts-b6f24cc7.js';
6
+ import { b as LabelColors, L as Label, a as LabelTypography } from './index-5a7039da.js';
7
+ import { u as useLocalization } from './LocalizationContext-8781208d.js';
8
+ import { i as VOICE_RECORDER_CLICK_BUFFER_TIME, a as VOICE_RECORDER_DEFAULT_MIN } from './consts-f92f7a23.js';
9
9
 
10
10
  /* eslint-disable no-redeclare */
11
11
  const VoiceMessageInputStatus = {
@@ -151,4 +151,4 @@ const VoiceMessageInput = _ref => {
151
151
  };
152
152
 
153
153
  export { VoiceMessageInputStatus as V, VoiceMessageInput as a };
154
- //# sourceMappingURL=index-7b3790d3.js.map
154
+ //# sourceMappingURL=index-87a9a309.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-7b3790d3.js","sources":["../src/ui/VoiceMessageInput/types.ts","../src/ui/VoiceMessageInput/controlerIcons.tsx","../src/ui/VoiceMessageInput/index.tsx"],"sourcesContent":["/* eslint-disable no-redeclare */\nexport const VoiceMessageInputStatus = {\n READY_TO_RECORD: 'READY_TO_RECORD',\n RECORDING: 'RECORDING',\n READY_TO_PLAY: 'READY_TO_PLAY',\n PLAYING: 'PLAYING',\n} as const;\nexport type VoiceMessageInputStatus = typeof VoiceMessageInputStatus[keyof typeof VoiceMessageInputStatus];\n","import React from 'react';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport { VoiceMessageInputStatus } from './types';\n\nexport interface ControlerIconProps {\n inputState?: VoiceMessageInputStatus;\n}\n\nexport const ControlerIcon = ({\n inputState,\n}: ControlerIconProps): React.ReactElement => {\n switch (inputState) {\n case VoiceMessageInputStatus.READY_TO_RECORD: {\n return (\n <div className=\"sendbird-controler-icon record-icon\" />\n );\n }\n case VoiceMessageInputStatus.RECORDING: {\n return (\n <div className=\"sendbird-controler-icon stop-icon\" />\n );\n }\n case VoiceMessageInputStatus.READY_TO_PLAY: {\n return (\n <Icon\n className=\"sendbird-controler-icon play-icon\"\n width=\"20px\"\n height=\"20px\"\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_1}\n />\n );\n }\n case VoiceMessageInputStatus.PLAYING: {\n return (\n <div className=\"sendbird-controler-icon pause-icon\">\n <div className=\"sendbird-controler-icon pause-icon-inner\"/>\n <div className=\"sendbird-controler-icon pause-icon-inner\"/>\n </div>\n );\n }\n default:\n return null;\n }\n};\n\nexport default ControlerIcon;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport './index.scss';\n\nimport PlaybackTime from '../PlaybackTime';\nimport ProgressBar from '../ProgressBar';\nimport TextButton from '../TextButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport ControlerIcon from './controlerIcons';\nimport { VOICE_RECORDER_CLICK_BUFFER_TIME, VOICE_RECORDER_DEFAULT_MIN } from '../../utils/consts';\nimport { VoiceMessageInputStatus } from './types';\n\nexport interface VoiceMessageInputProps {\n minRecordTime?: number;\n maximumValue: number;\n currentValue?: number;\n currentType: VoiceMessageInputStatus;\n onCancelClick?: () => void;\n onControlClick?: (type: VoiceMessageInputStatus) => void;\n onSubmitClick?: () => void;\n renderCancelButton?: () => React.ReactElement;\n renderControlButton?: (type: VoiceMessageInputStatus) => React.ReactElement;\n renderSubmitButton?: () => React.ReactElement;\n}\n\nexport const VoiceMessageInput = ({\n minRecordTime = VOICE_RECORDER_DEFAULT_MIN,\n maximumValue,\n currentValue = 0,\n currentType,\n onCancelClick,\n onControlClick,\n onSubmitClick,\n renderCancelButton,\n renderControlButton,\n renderSubmitButton,\n}: VoiceMessageInputProps): React.ReactElement => {\n const [lastClickTime, setLastClickTime] = useState<number>(0);\n const isReadyToRecord = useMemo(() => currentType === VoiceMessageInputStatus.READY_TO_RECORD, [currentType]);\n const isRecording = useMemo(() => currentType === VoiceMessageInputStatus.RECORDING, [currentType]);\n const isSendButtonDisabled = useMemo(() => {\n if (currentType === VoiceMessageInputStatus.READY_TO_RECORD\n || currentType === VoiceMessageInputStatus.RECORDING\n ) {\n return minRecordTime > currentValue;\n }\n return false;\n }, [currentType, minRecordTime, currentValue]);\n const isPlayMode = useMemo(() => {\n return (\n currentType === VoiceMessageInputStatus.READY_TO_PLAY\n || currentType === VoiceMessageInputStatus.PLAYING\n );\n }, [currentType]);\n const { stringSet } = useLocalization();\n\n const handleOnCancelClick = () => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n onCancelClick();\n setLastClickTime(currentTime);\n }\n };\n const handleOnControlClick = useCallback(() => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n onControlClick(currentType);\n setLastClickTime(currentTime);\n }\n }, [currentType]);\n const handleOnSubmitClick = () => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n if (!isSendButtonDisabled) {\n onSubmitClick();\n }\n setLastClickTime(currentTime);\n }\n };\n\n return (\n <div className=\"sendbird-voice-message-input\">\n <div className=\"sendbird-voice-message-input__indicator\">\n <div className=\"sendbird-voice-message-input__indicator__progress-bar\">\n <ProgressBar\n className=\"sendbird-voice-message-input__indicator__progress-bar__bar\"\n disabled={isReadyToRecord}\n maxSize={maximumValue}\n currentSize={currentValue}\n />\n </div>\n {(isRecording) ? (<div className=\"sendbird-voice-message-input__indicator__on-rec\" />) : null}\n <PlaybackTime\n className=\"sendbird-voice-message-input__indicator__playback-time\"\n time={isPlayMode ? maximumValue - currentValue : currentValue}\n labelColor={isReadyToRecord ? LabelColors.ONBACKGROUND_4 : LabelColors.ONCONTENT_1}\n />\n </div>\n <div className=\"sendbird-voice-message-input__controler\">\n {\n renderCancelButton?.() || (\n <TextButton\n className=\"sendbird-voice-message-input__controler__cancel\"\n onClick={handleOnCancelClick}\n disableUnderline\n >\n <Label\n type={LabelTypography.BUTTON_1}\n color={LabelColors.PRIMARY}\n >\n {stringSet.BUTTON__CANCEL}\n </Label>\n </TextButton>\n )\n }\n {\n renderControlButton?.(currentType) || (\n <div\n className=\"sendbird-voice-message-input__controler__main\"\n onClick={handleOnControlClick}\n >\n <ControlerIcon inputState={currentType} />\n </div>\n )\n }\n {\n renderSubmitButton?.() || (\n <div\n className={`sendbird-voice-message-input__controler__submit ${isSendButtonDisabled ? 'voice-message--disabled' : ''}`}\n onClick={handleOnSubmitClick}\n >\n <Icon\n width=\"19px\"\n height=\"19px\"\n type={IconTypes.SEND}\n fillColor={isSendButtonDisabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT}\n />\n </div>\n )\n }\n </div>\n </div>\n );\n};\n"],"names":["VoiceMessageInputStatus","READY_TO_RECORD","RECORDING","READY_TO_PLAY","PLAYING","ControlerIcon","_ref","inputState","React","createElement","className","Icon","width","height","type","IconTypes","PLAY","fillColor","IconColors","ON_BACKGROUND_1","VoiceMessageInput","minRecordTime","VOICE_RECORDER_DEFAULT_MIN","maximumValue","currentValue","currentType","onCancelClick","onControlClick","onSubmitClick","renderCancelButton","renderControlButton","renderSubmitButton","lastClickTime","setLastClickTime","useState","isReadyToRecord","useMemo","isRecording","isSendButtonDisabled","isPlayMode","stringSet","useLocalization","handleOnCancelClick","currentTime","Date","now","VOICE_RECORDER_CLICK_BUFFER_TIME","handleOnControlClick","useCallback","handleOnSubmitClick","ProgressBar","disabled","maxSize","currentSize","PlaybackTime","time","labelColor","LabelColors","ONBACKGROUND_4","ONCONTENT_1","TextButton","onClick","disableUnderline","Label","LabelTypography","BUTTON_1","color","PRIMARY","BUTTON__CANCEL","SEND","ON_BACKGROUND_4","CONTENT"],"mappings":"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"}
1
+ {"version":3,"file":"index-87a9a309.js","sources":["../src/ui/VoiceMessageInput/types.ts","../src/ui/VoiceMessageInput/controlerIcons.tsx","../src/ui/VoiceMessageInput/index.tsx"],"sourcesContent":["/* eslint-disable no-redeclare */\nexport const VoiceMessageInputStatus = {\n READY_TO_RECORD: 'READY_TO_RECORD',\n RECORDING: 'RECORDING',\n READY_TO_PLAY: 'READY_TO_PLAY',\n PLAYING: 'PLAYING',\n} as const;\nexport type VoiceMessageInputStatus = typeof VoiceMessageInputStatus[keyof typeof VoiceMessageInputStatus];\n","import React from 'react';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport { VoiceMessageInputStatus } from './types';\n\nexport interface ControlerIconProps {\n inputState?: VoiceMessageInputStatus;\n}\n\nexport const ControlerIcon = ({\n inputState,\n}: ControlerIconProps): React.ReactElement => {\n switch (inputState) {\n case VoiceMessageInputStatus.READY_TO_RECORD: {\n return (\n <div className=\"sendbird-controler-icon record-icon\" />\n );\n }\n case VoiceMessageInputStatus.RECORDING: {\n return (\n <div className=\"sendbird-controler-icon stop-icon\" />\n );\n }\n case VoiceMessageInputStatus.READY_TO_PLAY: {\n return (\n <Icon\n className=\"sendbird-controler-icon play-icon\"\n width=\"20px\"\n height=\"20px\"\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_1}\n />\n );\n }\n case VoiceMessageInputStatus.PLAYING: {\n return (\n <div className=\"sendbird-controler-icon pause-icon\">\n <div className=\"sendbird-controler-icon pause-icon-inner\"/>\n <div className=\"sendbird-controler-icon pause-icon-inner\"/>\n </div>\n );\n }\n default:\n return null;\n }\n};\n\nexport default ControlerIcon;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport './index.scss';\n\nimport PlaybackTime from '../PlaybackTime';\nimport ProgressBar from '../ProgressBar';\nimport TextButton from '../TextButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport ControlerIcon from './controlerIcons';\nimport { VOICE_RECORDER_CLICK_BUFFER_TIME, VOICE_RECORDER_DEFAULT_MIN } from '../../utils/consts';\nimport { VoiceMessageInputStatus } from './types';\n\nexport interface VoiceMessageInputProps {\n minRecordTime?: number;\n maximumValue: number;\n currentValue?: number;\n currentType: VoiceMessageInputStatus;\n onCancelClick?: () => void;\n onControlClick?: (type: VoiceMessageInputStatus) => void;\n onSubmitClick?: () => void;\n renderCancelButton?: () => React.ReactElement;\n renderControlButton?: (type: VoiceMessageInputStatus) => React.ReactElement;\n renderSubmitButton?: () => React.ReactElement;\n}\n\nexport const VoiceMessageInput = ({\n minRecordTime = VOICE_RECORDER_DEFAULT_MIN,\n maximumValue,\n currentValue = 0,\n currentType,\n onCancelClick,\n onControlClick,\n onSubmitClick,\n renderCancelButton,\n renderControlButton,\n renderSubmitButton,\n}: VoiceMessageInputProps): React.ReactElement => {\n const [lastClickTime, setLastClickTime] = useState<number>(0);\n const isReadyToRecord = useMemo(() => currentType === VoiceMessageInputStatus.READY_TO_RECORD, [currentType]);\n const isRecording = useMemo(() => currentType === VoiceMessageInputStatus.RECORDING, [currentType]);\n const isSendButtonDisabled = useMemo(() => {\n if (currentType === VoiceMessageInputStatus.READY_TO_RECORD\n || currentType === VoiceMessageInputStatus.RECORDING\n ) {\n return minRecordTime > currentValue;\n }\n return false;\n }, [currentType, minRecordTime, currentValue]);\n const isPlayMode = useMemo(() => {\n return (\n currentType === VoiceMessageInputStatus.READY_TO_PLAY\n || currentType === VoiceMessageInputStatus.PLAYING\n );\n }, [currentType]);\n const { stringSet } = useLocalization();\n\n const handleOnCancelClick = () => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n onCancelClick();\n setLastClickTime(currentTime);\n }\n };\n const handleOnControlClick = useCallback(() => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n onControlClick(currentType);\n setLastClickTime(currentTime);\n }\n }, [currentType]);\n const handleOnSubmitClick = () => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n if (!isSendButtonDisabled) {\n onSubmitClick();\n }\n setLastClickTime(currentTime);\n }\n };\n\n return (\n <div className=\"sendbird-voice-message-input\">\n <div className=\"sendbird-voice-message-input__indicator\">\n <div className=\"sendbird-voice-message-input__indicator__progress-bar\">\n <ProgressBar\n className=\"sendbird-voice-message-input__indicator__progress-bar__bar\"\n disabled={isReadyToRecord}\n maxSize={maximumValue}\n currentSize={currentValue}\n />\n </div>\n {(isRecording) ? (<div className=\"sendbird-voice-message-input__indicator__on-rec\" />) : null}\n <PlaybackTime\n className=\"sendbird-voice-message-input__indicator__playback-time\"\n time={isPlayMode ? maximumValue - currentValue : currentValue}\n labelColor={isReadyToRecord ? LabelColors.ONBACKGROUND_4 : LabelColors.ONCONTENT_1}\n />\n </div>\n <div className=\"sendbird-voice-message-input__controler\">\n {\n renderCancelButton?.() || (\n <TextButton\n className=\"sendbird-voice-message-input__controler__cancel\"\n onClick={handleOnCancelClick}\n disableUnderline\n >\n <Label\n type={LabelTypography.BUTTON_1}\n color={LabelColors.PRIMARY}\n >\n {stringSet.BUTTON__CANCEL}\n </Label>\n </TextButton>\n )\n }\n {\n renderControlButton?.(currentType) || (\n <div\n className=\"sendbird-voice-message-input__controler__main\"\n onClick={handleOnControlClick}\n >\n <ControlerIcon inputState={currentType} />\n </div>\n )\n }\n {\n renderSubmitButton?.() || (\n <div\n className={`sendbird-voice-message-input__controler__submit ${isSendButtonDisabled ? 'voice-message--disabled' : ''}`}\n onClick={handleOnSubmitClick}\n >\n <Icon\n width=\"19px\"\n height=\"19px\"\n type={IconTypes.SEND}\n fillColor={isSendButtonDisabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT}\n />\n </div>\n )\n }\n </div>\n </div>\n );\n};\n"],"names":["VoiceMessageInputStatus","READY_TO_RECORD","RECORDING","READY_TO_PLAY","PLAYING","ControlerIcon","_ref","inputState","React","createElement","className","Icon","width","height","type","IconTypes","PLAY","fillColor","IconColors","ON_BACKGROUND_1","VoiceMessageInput","minRecordTime","VOICE_RECORDER_DEFAULT_MIN","maximumValue","currentValue","currentType","onCancelClick","onControlClick","onSubmitClick","renderCancelButton","renderControlButton","renderSubmitButton","lastClickTime","setLastClickTime","useState","isReadyToRecord","useMemo","isRecording","isSendButtonDisabled","isPlayMode","stringSet","useLocalization","handleOnCancelClick","currentTime","Date","now","VOICE_RECORDER_CLICK_BUFFER_TIME","handleOnControlClick","useCallback","handleOnSubmitClick","ProgressBar","disabled","maxSize","currentSize","PlaybackTime","time","labelColor","LabelColors","ONBACKGROUND_4","ONCONTENT_1","TextButton","onClick","disableUnderline","Label","LabelTypography","BUTTON_1","color","PRIMARY","BUTTON__CANCEL","SEND","ON_BACKGROUND_4","CONTENT"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import React__default, { useMemo, useRef, useContext, useState } from 'react';
2
2
  import Modal from './ui/Modal.js';
3
- import { a as LocalizationContext } from './LocalizationContext-5fe9b59d.js';
3
+ import { a as LocalizationContext } from './LocalizationContext-8781208d.js';
4
4
  import useSendbirdStateContext from './useSendbirdStateContext.js';
5
5
  import Input, { InputLabel } from './ui/Input.js';
6
6
  import Avatar from './ui/Avatar.js';
7
7
  import Icon, { IconTypes } from './ui/Icon.js';
8
8
  import { ButtonTypes } from './ui/Button.js';
9
- import { L as Label, a as LabelTypography, b as LabelColors } from './index-13d9d766.js';
9
+ import { L as Label, a as LabelTypography, b as LabelColors } from './index-5a7039da.js';
10
10
  import TextButton from './ui/TextButton.js';
11
- import { n as noop } from './utils-d15f13cf.js';
12
- import { U as USER_ACTIONS } from './actionTypes-66bf934b.js';
11
+ import { n as noop } from './utils-60a2e587.js';
12
+ import { U as USER_ACTIONS } from './actionTypes-a16bc0a0.js';
13
13
 
14
14
  const EditUserProfileProviderContext = /*#__PURE__*/React__default.createContext(undefined);
15
15
  const EditUserProfileProvider = props => {
@@ -161,4 +161,4 @@ function EditUserProfile() {
161
161
  }
162
162
 
163
163
  export { EditUserProfileProvider as E, EditUserProfile as a };
164
- //# sourceMappingURL=index-07345a6e.js.map
164
+ //# sourceMappingURL=index-89a6798f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-07345a6e.js","sources":["../src/modules/EditUserProfile/context/EditUserProfIleProvider.tsx","../src/modules/EditUserProfile/components/EditUserProfileUI/index.tsx"],"sourcesContent":["import type { User } from '@sendbird/chat';\nimport React, { useMemo } from 'react';\n\nconst EditUserProfileProviderContext = React.createContext(undefined);\n\nexport interface EditUserProfileProps {\n children?: React.ReactElement;\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nexport interface EditUserProfileProviderInterface {\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nconst EditUserProfileProvider: React.FC<EditUserProfileProps> = (props: EditUserProfileProps) => {\n const {\n children,\n onEditProfile,\n onCancel,\n onThemeChange,\n } = props;\n\n const value = useMemo(() => {\n return {\n onEditProfile,\n onCancel,\n onThemeChange,\n };\n }, []);\n\n return (\n <EditUserProfileProviderContext.Provider value={value}>\n {children}\n </EditUserProfileProviderContext.Provider>\n );\n};\n\nconst useEditUserProfileContext = (): EditUserProfileProviderInterface => (\n React.useContext(EditUserProfileProviderContext)\n);\n\nexport {\n EditUserProfileProvider,\n useEditUserProfileContext,\n};\n","import './edit-user-profile.scss';\n\nimport React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport { useEditUserProfileContext } from '../../context/EditUserProfIleProvider';\n\nimport Modal from '../../../../ui/Modal';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nimport Input, { InputLabel } from '../../../../ui/Input';\nimport Avatar from '../../../../ui/Avatar';\nimport Icon, { IconTypes } from '../../../../ui/Icon';\nimport { ButtonTypes } from '../../../../ui/Button';\nimport Label, { LabelColors, LabelTypography } from '../../../../ui/Label';\nimport TextButton from '../../../../ui/TextButton';\nimport { noop } from '../../../../utils/utils';\nimport { USER_ACTIONS } from '../../../../lib/dux/user/actionTypes';\n\nexport default function EditUserProfile(): ReactElement {\n const editProfileProps = useEditUserProfileContext();\n const store = useSendbirdStateContext();\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n const {\n onEditProfile,\n onCancel,\n onThemeChange,\n } = editProfileProps;\n\n const theme = store?.config?.theme || 'light';\n const changeTheme = store?.config?.setCurrenttheme || noop;\n const user = store?.stores?.userStore?.user;\n const sdk = store?.stores?.sdkStore?.sdk;\n const userDispatcher = store?.dispatchers?.userDispatcher;\n\n return (\n <Modal\n titleText={stringSet.EDIT_PROFILE__TITLE}\n submitText={stringSet.BUTTON__SAVE}\n type={ButtonTypes.PRIMARY}\n onCancel={onCancel}\n isFullScreenOnMobile\n onSubmit={() => {\n if (user?.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n sdk?.updateCurrentUserInfo({\n nickname: inputRef?.current?.value,\n profileImage: newFile,\n }).then((updatedUser) => {\n userDispatcher({ type: USER_ACTIONS.UPDATE_USER_INFO, payload: updatedUser });\n if (onEditProfile && typeof onEditProfile === 'function') {\n onEditProfile(updatedUser);\n }\n });\n }}\n >\n <form\n className=\"sendbird-edit-user-profile\"\n ref={formRef}\n onSubmit={(e) => { e.preventDefault(); }}\n >\n <section className=\"sendbird-edit-user-profile__img\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__img__avatar\">\n <Avatar\n width=\"80px\"\n height=\"80px\"\n src={currentImg || user?.profileUrl}\n />\n </div>\n <input\n ref={hiddenInputRef}\n type=\"file\"\n accept=\"image/gif, image/jpeg, image/png\"\n style={{ display: 'none' }}\n onChange={(e) => {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n <TextButton\n className=\"sendbird-edit-user-profile__img__avatar-button\"\n disableUnderline\n onClick={() => hiddenInputRef.current.click()}\n >\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.EDIT_PROFILE__IMAGE_UPLOAD}\n </Label>\n </TextButton>\n </section>\n <section className=\"sendbird-edit-user-profile__name\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n </InputLabel>\n <Input\n required={user?.nickname !== ''}\n name=\"sendbird-edit-user-profile__name__input\"\n ref={inputRef}\n value={user?.nickname}\n placeHolder={stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__userid\">\n <InputLabel>\n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n </InputLabel>\n <Input\n disabled\n name=\"sendbird-edit-user-profile__userid__input\"\n value={user?.userId}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__theme\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__THEME_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__theme__theme-icon\">\n {\n theme === 'dark'\n ? (\n <Icon\n onClick={() => {\n changeTheme('light');\n onThemeChange?.('light');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('light');\n // }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n <Icon\n onClick={() => {\n changeTheme('dark');\n onThemeChange?.('dark');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('dark');\n // }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n </div>\n </section>\n </form>\n </Modal>\n );\n}\n"],"names":["EditUserProfileProviderContext","React","createContext","undefined","EditUserProfileProvider","props","children","onEditProfile","onCancel","onThemeChange","value","useMemo","createElement","Provider","useEditUserProfileContext","useContext","EditUserProfile","_store$config","_store$config2","_store$stores","_store$stores$userSto","_store$stores2","_store$stores2$sdkSto","_store$dispatchers","editProfileProps","store","useSendbirdStateContext","hiddenInputRef","useRef","inputRef","formRef","stringSet","LocalizationContext","currentImg","setCurrentImg","useState","newFile","setNewFile","theme","config","changeTheme","setCurrenttheme","noop","user","stores","userStore","sdk","sdkStore","userDispatcher","dispatchers","Modal","titleText","EDIT_PROFILE__TITLE","submitText","BUTTON__SAVE","type","ButtonTypes","PRIMARY","isFullScreenOnMobile","onSubmit","_inputRef$current","nickname","current","reportValidity","updateCurrentUserInfo","profileImage","then","updatedUser","USER_ACTIONS","UPDATE_USER_INFO","payload","className","ref","e","preventDefault","InputLabel","EDIT_PROFILE__IMAGE_LABEL","Avatar","width","height","src","profileUrl","accept","style","display","onChange","URL","createObjectURL","target","files","TextButton","disableUnderline","onClick","click","Label","LabelTypography","BUTTON_1","color","LabelColors","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","Input","required","name","placeHolder","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","disabled","userId","EDIT_PROFILE__THEME_LABEL","Icon","IconTypes","TOGGLE_ON","TOGGLE_OFF"],"mappings":"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"}
1
+ {"version":3,"file":"index-89a6798f.js","sources":["../src/modules/EditUserProfile/context/EditUserProfIleProvider.tsx","../src/modules/EditUserProfile/components/EditUserProfileUI/index.tsx"],"sourcesContent":["import type { User } from '@sendbird/chat';\nimport React, { useMemo } from 'react';\n\nconst EditUserProfileProviderContext = React.createContext(undefined);\n\nexport interface EditUserProfileProps {\n children?: React.ReactElement;\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nexport interface EditUserProfileProviderInterface {\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nconst EditUserProfileProvider: React.FC<EditUserProfileProps> = (props: EditUserProfileProps) => {\n const {\n children,\n onEditProfile,\n onCancel,\n onThemeChange,\n } = props;\n\n const value = useMemo(() => {\n return {\n onEditProfile,\n onCancel,\n onThemeChange,\n };\n }, []);\n\n return (\n <EditUserProfileProviderContext.Provider value={value}>\n {children}\n </EditUserProfileProviderContext.Provider>\n );\n};\n\nconst useEditUserProfileContext = (): EditUserProfileProviderInterface => (\n React.useContext(EditUserProfileProviderContext)\n);\n\nexport {\n EditUserProfileProvider,\n useEditUserProfileContext,\n};\n","import './edit-user-profile.scss';\n\nimport React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport { useEditUserProfileContext } from '../../context/EditUserProfIleProvider';\n\nimport Modal from '../../../../ui/Modal';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nimport Input, { InputLabel } from '../../../../ui/Input';\nimport Avatar from '../../../../ui/Avatar';\nimport Icon, { IconTypes } from '../../../../ui/Icon';\nimport { ButtonTypes } from '../../../../ui/Button';\nimport Label, { LabelColors, LabelTypography } from '../../../../ui/Label';\nimport TextButton from '../../../../ui/TextButton';\nimport { noop } from '../../../../utils/utils';\nimport { USER_ACTIONS } from '../../../../lib/dux/user/actionTypes';\n\nexport default function EditUserProfile(): ReactElement {\n const editProfileProps = useEditUserProfileContext();\n const store = useSendbirdStateContext();\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n const {\n onEditProfile,\n onCancel,\n onThemeChange,\n } = editProfileProps;\n\n const theme = store?.config?.theme || 'light';\n const changeTheme = store?.config?.setCurrenttheme || noop;\n const user = store?.stores?.userStore?.user;\n const sdk = store?.stores?.sdkStore?.sdk;\n const userDispatcher = store?.dispatchers?.userDispatcher;\n\n return (\n <Modal\n titleText={stringSet.EDIT_PROFILE__TITLE}\n submitText={stringSet.BUTTON__SAVE}\n type={ButtonTypes.PRIMARY}\n onCancel={onCancel}\n isFullScreenOnMobile\n onSubmit={() => {\n if (user?.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n sdk?.updateCurrentUserInfo({\n nickname: inputRef?.current?.value,\n profileImage: newFile,\n }).then((updatedUser) => {\n userDispatcher({ type: USER_ACTIONS.UPDATE_USER_INFO, payload: updatedUser });\n if (onEditProfile && typeof onEditProfile === 'function') {\n onEditProfile(updatedUser);\n }\n });\n }}\n >\n <form\n className=\"sendbird-edit-user-profile\"\n ref={formRef}\n onSubmit={(e) => { e.preventDefault(); }}\n >\n <section className=\"sendbird-edit-user-profile__img\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__img__avatar\">\n <Avatar\n width=\"80px\"\n height=\"80px\"\n src={currentImg || user?.profileUrl}\n />\n </div>\n <input\n ref={hiddenInputRef}\n type=\"file\"\n accept=\"image/gif, image/jpeg, image/png\"\n style={{ display: 'none' }}\n onChange={(e) => {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n <TextButton\n className=\"sendbird-edit-user-profile__img__avatar-button\"\n disableUnderline\n onClick={() => hiddenInputRef.current.click()}\n >\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.EDIT_PROFILE__IMAGE_UPLOAD}\n </Label>\n </TextButton>\n </section>\n <section className=\"sendbird-edit-user-profile__name\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n </InputLabel>\n <Input\n required={user?.nickname !== ''}\n name=\"sendbird-edit-user-profile__name__input\"\n ref={inputRef}\n value={user?.nickname}\n placeHolder={stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__userid\">\n <InputLabel>\n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n </InputLabel>\n <Input\n disabled\n name=\"sendbird-edit-user-profile__userid__input\"\n value={user?.userId}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__theme\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__THEME_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__theme__theme-icon\">\n {\n theme === 'dark'\n ? (\n <Icon\n onClick={() => {\n changeTheme('light');\n onThemeChange?.('light');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('light');\n // }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n <Icon\n onClick={() => {\n changeTheme('dark');\n onThemeChange?.('dark');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('dark');\n // }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n </div>\n </section>\n </form>\n </Modal>\n );\n}\n"],"names":["EditUserProfileProviderContext","React","createContext","undefined","EditUserProfileProvider","props","children","onEditProfile","onCancel","onThemeChange","value","useMemo","createElement","Provider","useEditUserProfileContext","useContext","EditUserProfile","_store$config","_store$config2","_store$stores","_store$stores$userSto","_store$stores2","_store$stores2$sdkSto","_store$dispatchers","editProfileProps","store","useSendbirdStateContext","hiddenInputRef","useRef","inputRef","formRef","stringSet","LocalizationContext","currentImg","setCurrentImg","useState","newFile","setNewFile","theme","config","changeTheme","setCurrenttheme","noop","user","stores","userStore","sdk","sdkStore","userDispatcher","dispatchers","Modal","titleText","EDIT_PROFILE__TITLE","submitText","BUTTON__SAVE","type","ButtonTypes","PRIMARY","isFullScreenOnMobile","onSubmit","_inputRef$current","nickname","current","reportValidity","updateCurrentUserInfo","profileImage","then","updatedUser","USER_ACTIONS","UPDATE_USER_INFO","payload","className","ref","e","preventDefault","InputLabel","EDIT_PROFILE__IMAGE_LABEL","Avatar","width","height","src","profileUrl","accept","style","display","onChange","URL","createObjectURL","target","files","TextButton","disableUnderline","onClick","click","Label","LabelTypography","BUTTON_1","color","LabelColors","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","Input","required","name","placeHolder","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","disabled","userId","EDIT_PROFILE__THEME_LABEL","Icon","IconTypes","TOGGLE_ON","TOGGLE_OFF"],"mappings":"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"}
@@ -4,4 +4,4 @@ import 'react';
4
4
  const MODAL_ROOT = 'sendbird-modal-root';
5
5
 
6
6
  export { MODAL_ROOT as M };
7
- //# sourceMappingURL=index-bafedab0.js.map
7
+ //# sourceMappingURL=index-92d47d85.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-bafedab0.js","sources":["../src/hooks/useModal/ModalRoot/index.jsx"],"sourcesContent":["// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nconst ModalRoot = () => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\nexport default ModalRoot;\n"],"names":["MODAL_ROOT"],"mappings":";;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}
1
+ {"version":3,"file":"index-92d47d85.js","sources":["../src/hooks/useModal/ModalRoot/index.jsx"],"sourcesContent":["// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nconst ModalRoot = () => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\nexport default ModalRoot;\n"],"names":["MODAL_ROOT"],"mappings":";;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}