@sendbird/uikit-react-native 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +42 -17
  2. package/lib/commonjs/components/ChatFlatList.js +2 -1
  3. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  4. package/lib/commonjs/components/FileViewer.js +2 -5
  5. package/lib/commonjs/components/FileViewer.js.map +1 -1
  6. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
  7. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  8. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
  9. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  10. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +26 -11
  11. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  12. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +1 -6
  13. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -1
  14. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -10
  15. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  16. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +102 -15
  17. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  18. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -1
  19. package/lib/commonjs/components/MessageRenderer/index.js +22 -3
  20. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
  21. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +150 -0
  22. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
  23. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +135 -0
  24. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
  25. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +87 -0
  26. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
  27. package/lib/commonjs/components/ReactionAddons/index.js +19 -0
  28. package/lib/commonjs/components/ReactionAddons/index.js.map +1 -0
  29. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +150 -0
  30. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
  31. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +276 -0
  32. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
  33. package/lib/commonjs/components/ReactionBottomSheets/index.js +19 -0
  34. package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -0
  35. package/lib/commonjs/constants.js +3 -1
  36. package/lib/commonjs/constants.js.map +1 -1
  37. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +4 -1
  38. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  39. package/lib/commonjs/containers/SendbirdUIKitContainer.js +130 -79
  40. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  41. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  42. package/lib/commonjs/contexts/ReactionCtx.js +107 -0
  43. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -0
  44. package/lib/commonjs/contexts/SendbirdChatCtx.js +26 -18
  45. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  46. package/lib/commonjs/contexts/UserProfileCtx.js +9 -0
  47. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  48. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +33 -37
  49. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  50. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +95 -23
  51. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  52. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +121 -31
  53. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  54. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +34 -13
  55. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  56. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +210 -0
  57. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
  58. package/lib/commonjs/domain/groupChannel/index.js +8 -0
  59. package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
  60. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +4 -0
  61. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  62. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +4 -4
  63. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  64. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  65. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +3 -2
  66. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  67. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +2 -1
  68. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  69. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +2 -1
  70. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  71. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +39 -0
  72. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
  73. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +140 -0
  74. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
  75. package/lib/commonjs/domain/groupChannelNotifications/index.js +46 -0
  76. package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -0
  77. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +33 -0
  78. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
  79. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +45 -0
  80. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
  81. package/lib/commonjs/domain/groupChannelNotifications/types.js +6 -0
  82. package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -0
  83. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +2 -1
  84. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  85. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +49 -6
  86. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  87. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +11 -16
  88. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  89. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  90. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  91. package/lib/commonjs/domain/userList/component/UserListList.js +4 -1
  92. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  93. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
  94. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  95. package/lib/commonjs/fragments/createGroupChannelFragment.js +11 -4
  96. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  97. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  98. package/lib/commonjs/fragments/createGroupChannelListFragment.js +4 -14
  99. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  100. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +34 -0
  101. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
  102. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +3 -1
  103. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  104. package/lib/commonjs/hooks/useConnection.js +3 -0
  105. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  106. package/lib/commonjs/hooks/useContext.js +11 -1
  107. package/lib/commonjs/hooks/useContext.js.map +1 -1
  108. package/lib/commonjs/hooks/useKeyboardStatus.js +97 -0
  109. package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -0
  110. package/lib/commonjs/hooks/useMentionSuggestion.js +110 -0
  111. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -0
  112. package/lib/commonjs/hooks/useMentionTextInput.js +139 -0
  113. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -0
  114. package/lib/commonjs/index.js +95 -40
  115. package/lib/commonjs/index.js.map +1 -1
  116. package/lib/commonjs/libs/EmojiManager.js +100 -0
  117. package/lib/commonjs/libs/EmojiManager.js.map +1 -0
  118. package/lib/commonjs/libs/ImageCompressionConfig.js +38 -0
  119. package/lib/commonjs/libs/ImageCompressionConfig.js.map +1 -0
  120. package/lib/commonjs/libs/MentionConfig.js +47 -0
  121. package/lib/commonjs/libs/MentionConfig.js.map +1 -0
  122. package/lib/commonjs/libs/MentionManager.js +235 -0
  123. package/lib/commonjs/libs/MentionManager.js.map +1 -0
  124. package/lib/commonjs/libs/SBUUtils.js +27 -0
  125. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  126. package/lib/commonjs/localization/StringSet.type.js +20 -5
  127. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  128. package/lib/commonjs/platform/createMediaService.expo.js +35 -1
  129. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
  130. package/lib/commonjs/platform/createMediaService.native.js +41 -6
  131. package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
  132. package/lib/commonjs/platform/dynamicModule.js +9 -57
  133. package/lib/commonjs/platform/dynamicModule.js.map +1 -1
  134. package/lib/commonjs/platform/types.js.map +1 -1
  135. package/lib/commonjs/types.js.map +1 -1
  136. package/lib/commonjs/version.js +1 -1
  137. package/lib/commonjs/version.js.map +1 -1
  138. package/lib/module/components/ChatFlatList.js +3 -2
  139. package/lib/module/components/ChatFlatList.js.map +1 -1
  140. package/lib/module/components/FileViewer.js +2 -5
  141. package/lib/module/components/FileViewer.js.map +1 -1
  142. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
  143. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  144. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
  145. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  146. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +26 -11
  147. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  148. package/lib/module/components/MessageRenderer/FileMessage/index.js +1 -5
  149. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -1
  150. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -12
  151. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  152. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +103 -19
  153. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  154. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -1
  155. package/lib/module/components/MessageRenderer/index.js +21 -4
  156. package/lib/module/components/MessageRenderer/index.js.map +1 -1
  157. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +132 -0
  158. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
  159. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +118 -0
  160. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
  161. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +74 -0
  162. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
  163. package/lib/module/components/ReactionAddons/index.js +7 -0
  164. package/lib/module/components/ReactionAddons/index.js.map +1 -0
  165. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +135 -0
  166. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
  167. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +259 -0
  168. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
  169. package/lib/module/components/ReactionBottomSheets/index.js +7 -0
  170. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -0
  171. package/lib/module/constants.js +1 -0
  172. package/lib/module/constants.js.map +1 -1
  173. package/lib/module/containers/GroupChannelPreviewContainer.js +4 -1
  174. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  175. package/lib/module/containers/SendbirdUIKitContainer.js +127 -81
  176. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  177. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  178. package/lib/module/contexts/ReactionCtx.js +85 -0
  179. package/lib/module/contexts/ReactionCtx.js.map +1 -0
  180. package/lib/module/contexts/SendbirdChatCtx.js +28 -18
  181. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  182. package/lib/module/contexts/UserProfileCtx.js +7 -0
  183. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  184. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +34 -39
  185. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  186. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +92 -26
  187. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  188. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +118 -33
  189. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  190. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +35 -16
  191. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  192. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +188 -0
  193. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
  194. package/lib/module/domain/groupChannel/index.js +1 -0
  195. package/lib/module/domain/groupChannel/index.js.map +1 -1
  196. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +3 -0
  197. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  198. package/lib/module/domain/groupChannel/module/moduleContext.js +4 -4
  199. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  200. package/lib/module/domain/groupChannel/types.js.map +1 -1
  201. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +4 -3
  202. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  203. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +3 -2
  204. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  205. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +3 -2
  206. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  207. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +25 -0
  208. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
  209. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +122 -0
  210. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
  211. package/lib/module/domain/groupChannelNotifications/index.js +5 -0
  212. package/lib/module/domain/groupChannelNotifications/index.js.map +1 -0
  213. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +21 -0
  214. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
  215. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +25 -0
  216. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
  217. package/lib/module/domain/groupChannelNotifications/types.js +2 -0
  218. package/lib/module/domain/groupChannelNotifications/types.js.map +1 -0
  219. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +3 -2
  220. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  221. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +46 -6
  222. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  223. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +12 -17
  224. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  225. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  226. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  227. package/lib/module/domain/userList/component/UserListList.js +3 -1
  228. package/lib/module/domain/userList/component/UserListList.js.map +1 -1
  229. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
  230. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  231. package/lib/module/fragments/createGroupChannelFragment.js +11 -4
  232. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  233. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  234. package/lib/module/fragments/createGroupChannelListFragment.js +5 -9
  235. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  236. package/lib/module/fragments/createGroupChannelNotificationsFragment.js +22 -0
  237. package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
  238. package/lib/module/fragments/createGroupChannelSettingsFragment.js +3 -1
  239. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  240. package/lib/module/hooks/useConnection.js +3 -0
  241. package/lib/module/hooks/useConnection.js.map +1 -1
  242. package/lib/module/hooks/useContext.js +6 -0
  243. package/lib/module/hooks/useContext.js.map +1 -1
  244. package/lib/module/hooks/useKeyboardStatus.js +78 -0
  245. package/lib/module/hooks/useKeyboardStatus.js.map +1 -0
  246. package/lib/module/hooks/useMentionSuggestion.js +100 -0
  247. package/lib/module/hooks/useMentionSuggestion.js.map +1 -0
  248. package/lib/module/hooks/useMentionTextInput.js +128 -0
  249. package/lib/module/hooks/useMentionTextInput.js.map +1 -0
  250. package/lib/module/index.js +8 -3
  251. package/lib/module/index.js.map +1 -1
  252. package/lib/module/libs/EmojiManager.js +90 -0
  253. package/lib/module/libs/EmojiManager.js.map +1 -0
  254. package/lib/module/libs/ImageCompressionConfig.js +30 -0
  255. package/lib/module/libs/ImageCompressionConfig.js.map +1 -0
  256. package/lib/module/libs/MentionConfig.js +39 -0
  257. package/lib/module/libs/MentionConfig.js.map +1 -0
  258. package/lib/module/libs/MentionManager.js +223 -0
  259. package/lib/module/libs/MentionManager.js.map +1 -0
  260. package/lib/module/libs/SBUUtils.js +26 -1
  261. package/lib/module/libs/SBUUtils.js.map +1 -1
  262. package/lib/module/localization/StringSet.type.js +21 -6
  263. package/lib/module/localization/StringSet.type.js.map +1 -1
  264. package/lib/module/platform/createMediaService.expo.js +33 -1
  265. package/lib/module/platform/createMediaService.expo.js.map +1 -1
  266. package/lib/module/platform/createMediaService.native.js +38 -5
  267. package/lib/module/platform/createMediaService.native.js.map +1 -1
  268. package/lib/module/platform/dynamicModule.js +10 -56
  269. package/lib/module/platform/dynamicModule.js.map +1 -1
  270. package/lib/module/platform/types.js.map +1 -1
  271. package/lib/module/types.js.map +1 -1
  272. package/lib/module/version.js +1 -1
  273. package/lib/module/version.js.map +1 -1
  274. package/lib/typescript/__template__/types.d.ts +3 -3
  275. package/lib/typescript/src/components/ChannelCover.d.ts +1 -1
  276. package/lib/typescript/src/components/ChatFlatList.d.ts +1 -1
  277. package/lib/typescript/src/components/FileViewer.d.ts +1 -1
  278. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +1 -1
  279. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +2 -2
  280. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +1 -1
  281. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +1 -1
  282. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +11 -2
  283. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +1 -1
  284. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +1 -1
  285. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +1 -1
  286. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +1 -1
  287. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +1 -1
  288. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +1 -1
  289. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +1 -1
  290. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +2 -2
  291. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +4 -1
  292. package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -3
  293. package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
  294. package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +8 -0
  295. package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +6 -0
  296. package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +14 -0
  297. package/lib/typescript/src/components/ReactionAddons/index.d.ts +11 -0
  298. package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +3 -0
  299. package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +3 -0
  300. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +20 -0
  301. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  302. package/lib/typescript/src/components/StatusComposition.d.ts +1 -1
  303. package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
  304. package/lib/typescript/src/components/UserActionBar.d.ts +1 -1
  305. package/lib/typescript/src/components/UserSelectableBar.d.ts +1 -1
  306. package/lib/typescript/src/constants.d.ts +1 -0
  307. package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +1 -1
  308. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +20 -8
  309. package/lib/typescript/src/contexts/LocalizationCtx.d.ts +2 -2
  310. package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +9 -3
  311. package/lib/typescript/src/contexts/ReactionCtx.d.ts +18 -0
  312. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +16 -3
  313. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +4 -4
  314. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +35 -7
  315. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +32 -5
  316. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +19 -2
  317. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +3 -0
  318. package/lib/typescript/src/domain/groupChannel/index.d.ts +1 -0
  319. package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +1 -1
  320. package/lib/typescript/src/domain/groupChannel/types.d.ts +24 -7
  321. package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +3 -3
  322. package/lib/typescript/src/domain/groupChannelList/types.d.ts +2 -2
  323. package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +3 -3
  324. package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +3 -3
  325. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +3 -0
  326. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -0
  327. package/lib/typescript/src/domain/groupChannelNotifications/index.d.ts +4 -0
  328. package/lib/typescript/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.d.ts +3 -0
  329. package/lib/typescript/src/domain/groupChannelNotifications/module/moduleContext.d.ts +3 -0
  330. package/lib/typescript/src/domain/groupChannelNotifications/types.d.ts +33 -0
  331. package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +3 -3
  332. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  333. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +3 -1
  334. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +6 -6
  335. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +2 -1
  336. package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +2 -1
  337. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +1 -1
  338. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +1 -1
  339. package/lib/typescript/src/fragments/createGroupChannelNotificationsFragment.d.ts +3 -0
  340. package/lib/typescript/src/hooks/useConnection.d.ts +1 -1
  341. package/lib/typescript/src/hooks/useContext.d.ts +3 -26
  342. package/lib/typescript/src/hooks/useKeyboardStatus.d.ts +6 -0
  343. package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +17 -0
  344. package/lib/typescript/src/hooks/useMentionTextInput.d.ts +18 -0
  345. package/lib/typescript/src/index.d.ts +8 -3
  346. package/lib/typescript/src/libs/EmojiManager.d.ts +16 -0
  347. package/lib/typescript/src/libs/ImageCompressionConfig.d.ts +16 -0
  348. package/lib/typescript/src/libs/MentionConfig.d.ts +24 -0
  349. package/lib/typescript/src/libs/MentionManager.d.ts +61 -0
  350. package/lib/typescript/src/libs/SBUUtils.d.ts +6 -0
  351. package/lib/typescript/src/localization/StringSet.type.d.ts +19 -2
  352. package/lib/typescript/src/platform/createMediaService.expo.d.ts +6 -2
  353. package/lib/typescript/src/platform/createMediaService.native.d.ts +8 -6
  354. package/lib/typescript/src/platform/dynamicModule.d.ts +8 -13
  355. package/lib/typescript/src/platform/types.d.ts +33 -8
  356. package/lib/typescript/src/types.d.ts +13 -4
  357. package/lib/typescript/src/version.d.ts +1 -1
  358. package/package.json +16 -6
  359. package/src/components/ChatFlatList.tsx +2 -1
  360. package/src/components/FileViewer.tsx +2 -5
  361. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +17 -12
  362. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +30 -18
  363. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +21 -11
  364. package/src/components/MessageRenderer/FileMessage/index.tsx +1 -4
  365. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +82 -14
  366. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +136 -62
  367. package/src/components/MessageRenderer/UserMessage/index.tsx +8 -1
  368. package/src/components/MessageRenderer/index.tsx +39 -7
  369. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +106 -0
  370. package/src/components/ReactionAddons/MessageReactionAddon.tsx +123 -0
  371. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +71 -0
  372. package/src/components/ReactionAddons/index.tsx +7 -0
  373. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +113 -0
  374. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +249 -0
  375. package/src/components/ReactionBottomSheets/index.tsx +24 -0
  376. package/src/constants.ts +2 -0
  377. package/src/containers/GroupChannelPreviewContainer.tsx +3 -1
  378. package/src/containers/SendbirdUIKitContainer.tsx +165 -88
  379. package/src/contexts/PlatformServiceCtx.tsx +9 -2
  380. package/src/contexts/ReactionCtx.tsx +102 -0
  381. package/src/contexts/SendbirdChatCtx.tsx +46 -21
  382. package/src/contexts/UserProfileCtx.tsx +9 -0
  383. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +56 -30
  384. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +129 -32
  385. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +138 -43
  386. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +30 -12
  387. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +173 -0
  388. package/src/domain/groupChannel/index.ts +1 -0
  389. package/src/domain/groupChannel/module/createGroupChannelModule.tsx +12 -1
  390. package/src/domain/groupChannel/module/moduleContext.tsx +4 -4
  391. package/src/domain/groupChannel/types.ts +28 -5
  392. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -2
  393. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -1
  394. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +2 -1
  395. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.tsx +14 -0
  396. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +128 -0
  397. package/src/domain/groupChannelNotifications/index.ts +4 -0
  398. package/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.tsx +15 -0
  399. package/src/domain/groupChannelNotifications/module/moduleContext.tsx +31 -0
  400. package/src/domain/groupChannelNotifications/types.ts +38 -0
  401. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +2 -1
  402. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +42 -3
  403. package/src/domain/groupChannelSettings/module/moduleContext.tsx +17 -14
  404. package/src/domain/groupChannelSettings/types.ts +2 -0
  405. package/src/domain/groupChannelUserList/types.ts +7 -2
  406. package/src/domain/userList/component/UserListList.tsx +5 -1
  407. package/src/domain/userList/module/createUserListModule.tsx +3 -1
  408. package/src/fragments/createGroupChannelCreateFragment.tsx +8 -2
  409. package/src/fragments/createGroupChannelFragment.tsx +19 -6
  410. package/src/fragments/createGroupChannelInviteFragment.tsx +2 -2
  411. package/src/fragments/createGroupChannelListFragment.tsx +5 -9
  412. package/src/fragments/createGroupChannelNotificationsFragment.tsx +27 -0
  413. package/src/fragments/createGroupChannelSettingsFragment.tsx +2 -0
  414. package/src/hooks/useConnection.ts +3 -1
  415. package/src/hooks/useContext.ts +7 -0
  416. package/src/hooks/useKeyboardStatus.ts +59 -0
  417. package/src/hooks/useMentionSuggestion.ts +106 -0
  418. package/src/hooks/useMentionTextInput.ts +139 -0
  419. package/src/index.ts +14 -2
  420. package/src/libs/EmojiManager.ts +80 -0
  421. package/src/libs/ImageCompressionConfig.ts +31 -0
  422. package/src/libs/MentionConfig.ts +40 -0
  423. package/src/libs/MentionManager.tsx +240 -0
  424. package/src/libs/SBUUtils.ts +28 -1
  425. package/src/localization/StringSet.type.ts +45 -8
  426. package/src/platform/createMediaService.expo.tsx +24 -1
  427. package/src/platform/createMediaService.native.tsx +31 -9
  428. package/src/platform/dynamicModule.ts +17 -59
  429. package/src/platform/types.ts +29 -7
  430. package/src/types.ts +12 -0
  431. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","AppState","useGroupChannelList","PASS","useFreshCallback","StatusComposition","GroupChannelPreviewContainer","createGroupChannelListModule","useSendbirdChat","createGroupChannelListFragment","initModule","GroupChannelListModule","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","skipTypeSelection","flatListProps","menuItemCreator","sdk","currentUser","features","markAsDeliveredWithChannel","groupChannels","next","loading","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","listener","addEventListener","status","forEach","remove","_renderGroupChannelPreview","channel","onLongPressChannel","isChannelTypeAvailable","broadcastChannelEnabled","superGroupChannelEnabled","ListEmptyComponent","contentContainerStyle","flexGrow"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from 'react-native';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { PASS, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n skipTypeSelection = false,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useEffect(() => {\n const listener = AppState.addEventListener('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n return () => listener.remove();\n }, []);\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n skipTypeSelection={isChannelTypeAvailable ? skipTypeSelection : true}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,QAAT,QAAyB,cAAzB;AAEA,SAASC,mBAAT,QAAoC,4BAApC;AACA,SAASC,IAAT,EAAeC,gBAAf,QAAuC,uBAAvC;AAEA,OAAOC,iBAAP,MAA8B,iCAA9B;AACA,OAAOC,4BAAP,MAAyC,4CAAzC;AACA,OAAOC,4BAAP,MAAyC,gEAAzC;AAMA,SAASC,eAAT,QAAgC,qBAAhC;;AAEA,MAAMC,8BAA8B,GAAIC,UAAD,IAA4E;EACjH,MAAMC,sBAAsB,GAAGJ,4BAA4B,CAACG,UAAD,CAA3D;EACA,OAAO,QASD;IAAA,IATE;MACNE,cADM;MAENC,oBAFM;MAGNC,YAHM;MAINC,iBAJM;MAKNC,yBALM;MAMNC,iBAAiB,GAAG,KANd;MAONC,aAAa,GAAG,EAPV;MAQNC,eAAe,GAAGhB;IARZ,CASF;IACJ,MAAM;MAAEiB,GAAF;MAAOC,WAAP;MAAoBC,QAApB;MAA8BC;IAA9B,IAA6Df,eAAe,EAAlF;IACA,MAAM;MAAEgB,aAAF;MAAiBC,IAAjB;MAAuBC;IAAvB,IAAmCxB,mBAAmB,CAACkB,GAAD,EAAMC,WAAN,aAAMA,WAAN,uBAAMA,WAAW,CAAEM,MAAnB,EAA2B;MACrFb,YADqF;MAErFC,iBAFqF;MAGrFa,iCAAiC,EAAE,CAACd;IAHiD,CAA3B,CAA5D;;IAMA,IAAIQ,QAAQ,CAACO,sBAAb,EAAqC;MACnC7B,SAAS,CAAC,MAAM;QACd,MAAM8B,QAAQ,GAAG7B,QAAQ,CAAC8B,gBAAT,CAA0B,QAA1B,EAAqCC,MAAD,IAAY;UAC/D,IAAIA,MAAM,KAAK,QAAf,EAAyBR,aAAa,CAACS,OAAd,CAAsBV,0BAAtB;QAC1B,CAFgB,CAAjB;QAGA,OAAO,MAAMO,QAAQ,CAACI,MAAT,EAAb;MACD,CALQ,EAKN,EALM,CAAT;IAMD;;IAED,MAAMC,0BAAsF,GAAG/B,gBAAgB,CAC7G,CAACgC,OAAD,EAAUC,kBAAV,KAAiC;MAC/B,IAAIrB,yBAAJ,EAA+B,OAAOA,yBAAyB,CAACoB,OAAD,EAAUC,kBAAV,CAAhC;MAC/B,oBACE,oBAAC,4BAAD;QACE,OAAO,EAAED,OADX;QAEE,OAAO,EAAE,MAAMxB,cAAc,CAACwB,OAAD,CAF/B;QAGE,WAAW,EAAE,MAAMC,kBAAkB;MAHvC,EADF;IAOD,CAV4G,CAA/G;;IAaA,MAAMC,sBAAsB,GAAGhB,QAAQ,CAACiB,uBAAT,IAAoCjB,QAAQ,CAACkB,wBAA5E;IAEA,oBACE,oBAAC,sBAAD,CAAwB,QAAxB,qBACE,oBAAC,sBAAD,CAAwB,MAAxB,OADF,eAEE,oBAAC,iBAAD;MAAmB,OAAO,EAAEd,OAA5B;MAAqC,gBAAgB,eAAE,oBAAC,sBAAD,CAAwB,aAAxB;IAAvD,gBACE,oBAAC,sBAAD,CAAwB,IAAxB;MACE,eAAe,EAAEP,eADnB;MAEE,yBAAyB,EAAEgB,0BAF7B;MAGE,aAAa,EAAEX,aAHjB;MAIE,UAAU,EAAEC,IAJd;MAKE,aAAa,EAAE;QACbgB,kBAAkB,eAAE,oBAAC,sBAAD,CAAwB,WAAxB,OADP;QAEbC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAZ,CAFV;QAGb,GAAGzB;MAHU;IALjB,EADF,CAFF,eAeE,oBAAC,sBAAD,CAAwB,YAAxB;MACE,iBAAiB,EAAEoB,sBAAsB,GAAGrB,iBAAH,GAAuB,IADlE;MAEE,YAAY,EAAEJ;IAFhB,EAfF,CADF;EAsBD,CA/DD;AAgED,CAlED;;AAoEA,eAAeJ,8BAAf"}
1
+ {"version":3,"names":["React","useGroupChannelList","PASS","useAppState","useFreshCallback","StatusComposition","GroupChannelPreviewContainer","createGroupChannelListModule","useSendbirdChat","createGroupChannelListFragment","initModule","GroupChannelListModule","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","skipTypeSelection","flatListProps","menuItemCreator","sdk","currentUser","features","markAsDeliveredWithChannel","groupChannels","next","loading","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","status","forEach","_renderGroupChannelPreview","channel","onLongPressChannel","isChannelTypeAvailable","broadcastChannelEnabled","superGroupChannelEnabled","ListEmptyComponent","contentContainerStyle","flexGrow"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { PASS, useAppState, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n skipTypeSelection = false,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useAppState('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n skipTypeSelection={isChannelTypeAvailable ? skipTypeSelection : true}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,mBAAT,QAAoC,4BAApC;AACA,SAASC,IAAT,EAAeC,WAAf,EAA4BC,gBAA5B,QAAoD,uBAApD;AAEA,OAAOC,iBAAP,MAA8B,iCAA9B;AACA,OAAOC,4BAAP,MAAyC,4CAAzC;AACA,OAAOC,4BAAP,MAAyC,gEAAzC;AAMA,SAASC,eAAT,QAAgC,qBAAhC;;AAEA,MAAMC,8BAA8B,GAAIC,UAAD,IAA4E;EACjH,MAAMC,sBAAsB,GAAGJ,4BAA4B,CAACG,UAAD,CAA3D;EACA,OAAO,QASD;IAAA,IATE;MACNE,cADM;MAENC,oBAFM;MAGNC,YAHM;MAINC,iBAJM;MAKNC,yBALM;MAMNC,iBAAiB,GAAG,KANd;MAONC,aAAa,GAAG,EAPV;MAQNC,eAAe,GAAGjB;IARZ,CASF;IACJ,MAAM;MAAEkB,GAAF;MAAOC,WAAP;MAAoBC,QAApB;MAA8BC;IAA9B,IAA6Df,eAAe,EAAlF;IACA,MAAM;MAAEgB,aAAF;MAAiBC,IAAjB;MAAuBC;IAAvB,IAAmCzB,mBAAmB,CAACmB,GAAD,EAAMC,WAAN,aAAMA,WAAN,uBAAMA,WAAW,CAAEM,MAAnB,EAA2B;MACrFb,YADqF;MAErFC,iBAFqF;MAGrFa,iCAAiC,EAAE,CAACd;IAHiD,CAA3B,CAA5D;;IAMA,IAAIQ,QAAQ,CAACO,sBAAb,EAAqC;MACnC1B,WAAW,CAAC,QAAD,EAAY2B,MAAD,IAAY;QAChC,IAAIA,MAAM,KAAK,QAAf,EAAyBN,aAAa,CAACO,OAAd,CAAsBR,0BAAtB;MAC1B,CAFU,CAAX;IAGD;;IAED,MAAMS,0BAAsF,GAAG5B,gBAAgB,CAC7G,CAAC6B,OAAD,EAAUC,kBAAV,KAAiC;MAC/B,IAAIlB,yBAAJ,EAA+B,OAAOA,yBAAyB,CAACiB,OAAD,EAAUC,kBAAV,CAAhC;MAC/B,oBACE,oBAAC,4BAAD;QACE,OAAO,EAAED,OADX;QAEE,OAAO,EAAE,MAAMrB,cAAc,CAACqB,OAAD,CAF/B;QAGE,WAAW,EAAE,MAAMC,kBAAkB;MAHvC,EADF;IAOD,CAV4G,CAA/G;;IAaA,MAAMC,sBAAsB,GAAGb,QAAQ,CAACc,uBAAT,IAAoCd,QAAQ,CAACe,wBAA5E;IAEA,oBACE,oBAAC,sBAAD,CAAwB,QAAxB,qBACE,oBAAC,sBAAD,CAAwB,MAAxB,OADF,eAEE,oBAAC,iBAAD;MAAmB,OAAO,EAAEX,OAA5B;MAAqC,gBAAgB,eAAE,oBAAC,sBAAD,CAAwB,aAAxB;IAAvD,gBACE,oBAAC,sBAAD,CAAwB,IAAxB;MACE,eAAe,EAAEP,eADnB;MAEE,yBAAyB,EAAEa,0BAF7B;MAGE,aAAa,EAAER,aAHjB;MAIE,UAAU,EAAEC,IAJd;MAKE,aAAa,EAAE;QACba,kBAAkB,eAAE,oBAAC,sBAAD,CAAwB,WAAxB,OADP;QAEbC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAZ,CAFV;QAGb,GAAGtB;MAHU;IALjB,EADF,CAFF,eAeE,oBAAC,sBAAD,CAAwB,YAAxB;MACE,iBAAiB,EAAEiB,sBAAsB,GAAGlB,iBAAH,GAAuB,IADlE;MAEE,YAAY,EAAEJ;IAFhB,EAfF,CADF;EAsBD,CA5DD;AA6DD,CA/DD;;AAiEA,eAAeJ,8BAAf"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { NOOP } from '@sendbird/uikit-utils';
3
+ import { createGroupChannelNotificationsModule } from '../domain/groupChannelNotifications';
4
+
5
+ const createGroupChannelNotificationsFragment = initModule => {
6
+ const GroupChannelNotificationsModule = createGroupChannelNotificationsModule(initModule);
7
+ return _ref => {
8
+ let {
9
+ onPressHeaderLeft = NOOP,
10
+ children,
11
+ channel
12
+ } = _ref;
13
+ return /*#__PURE__*/React.createElement(GroupChannelNotificationsModule.Provider, {
14
+ channel: channel
15
+ }, /*#__PURE__*/React.createElement(GroupChannelNotificationsModule.Header, {
16
+ onPressHeaderLeft: onPressHeaderLeft
17
+ }), /*#__PURE__*/React.createElement(GroupChannelNotificationsModule.View, null), children);
18
+ };
19
+ };
20
+
21
+ export default createGroupChannelNotificationsFragment;
22
+ //# sourceMappingURL=createGroupChannelNotificationsFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","NOOP","createGroupChannelNotificationsModule","createGroupChannelNotificationsFragment","initModule","GroupChannelNotificationsModule","onPressHeaderLeft","children","channel"],"sources":["createGroupChannelNotificationsFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport { createGroupChannelNotificationsModule } from '../domain/groupChannelNotifications';\nimport type {\n GroupChannelNotificationsFragment,\n GroupChannelNotificationsModule,\n} from '../domain/groupChannelNotifications/types';\n\nconst createGroupChannelNotificationsFragment = (\n initModule?: Partial<GroupChannelNotificationsModule>,\n): GroupChannelNotificationsFragment => {\n const GroupChannelNotificationsModule = createGroupChannelNotificationsModule(initModule);\n\n return ({ onPressHeaderLeft = NOOP, children, channel }) => {\n return (\n <GroupChannelNotificationsModule.Provider channel={channel}>\n <GroupChannelNotificationsModule.Header onPressHeaderLeft={onPressHeaderLeft} />\n <GroupChannelNotificationsModule.View />\n {children}\n </GroupChannelNotificationsModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelNotificationsFragment;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,IAAT,QAAqB,uBAArB;AAEA,SAASC,qCAAT,QAAsD,qCAAtD;;AAMA,MAAMC,uCAAuC,GAC3CC,UAD8C,IAER;EACtC,MAAMC,+BAA+B,GAAGH,qCAAqC,CAACE,UAAD,CAA7E;EAEA,OAAO,QAAqD;IAAA,IAApD;MAAEE,iBAAiB,GAAGL,IAAtB;MAA4BM,QAA5B;MAAsCC;IAAtC,CAAoD;IAC1D,oBACE,oBAAC,+BAAD,CAAiC,QAAjC;MAA0C,OAAO,EAAEA;IAAnD,gBACE,oBAAC,+BAAD,CAAiC,MAAjC;MAAwC,iBAAiB,EAAEF;IAA3D,EADF,eAEE,oBAAC,+BAAD,CAAiC,IAAjC,OAFF,EAGGC,QAHH,CADF;EAOD,CARD;AASD,CAdD;;AAgBA,eAAeJ,uCAAf"}
@@ -14,6 +14,7 @@ const createGroupChannelSettingsFragment = initModule => {
14
14
  onPressMenuModeration,
15
15
  onPressMenuMembers,
16
16
  onPressMenuLeaveChannel,
17
+ onPressMenuNotification,
17
18
  menuItemsCreator
18
19
  } = _ref;
19
20
  const {
@@ -39,7 +40,8 @@ const createGroupChannelSettingsFragment = initModule => {
39
40
  menuItemsCreator: menuItemsCreator,
40
41
  onPressMenuModeration: onPressMenuModeration,
41
42
  onPressMenuMembers: onPressMenuMembers,
42
- onPressMenuLeaveChannel: onPressMenuLeaveChannel
43
+ onPressMenuLeaveChannel: onPressMenuLeaveChannel,
44
+ onPressMenuNotification: onPressMenuNotification
43
45
  })));
44
46
  };
45
47
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","ScrollView","useSafeAreaInsets","createStyleSheet","useUIKitTheme","NOOP","createGroupChannelSettingsModule","createGroupChannelSettingsFragment","initModule","GroupChannelSettingsModule","onPressHeaderLeft","channel","onPressMenuModeration","onPressMenuMembers","onPressMenuLeaveChannel","menuItemsCreator","colors","left","right","backgroundColor","background","paddingLeft","styles","viewContainer","paddingHorizontal","paddingRight"],"sources":["createGroupChannelSettingsFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createGroupChannelSettingsModule from '../domain/groupChannelSettings/module/createGroupChannelSettingsModule';\nimport type { GroupChannelSettingsFragment, GroupChannelSettingsModule } from '../domain/groupChannelSettings/types';\n\nconst createGroupChannelSettingsFragment = (\n initModule?: Partial<GroupChannelSettingsModule>,\n): GroupChannelSettingsFragment => {\n const GroupChannelSettingsModule = createGroupChannelSettingsModule(initModule);\n\n return ({\n onPressHeaderLeft = NOOP,\n channel,\n onPressMenuModeration,\n onPressMenuMembers,\n onPressMenuLeaveChannel,\n menuItemsCreator,\n }) => {\n const { colors } = useUIKitTheme();\n const { left, right } = useSafeAreaInsets();\n\n return (\n <GroupChannelSettingsModule.Provider channel={channel}>\n <GroupChannelSettingsModule.Header onPressHeaderLeft={onPressHeaderLeft} />\n <ScrollView\n style={{ backgroundColor: colors.background }}\n contentContainerStyle={{\n paddingLeft: left + styles.viewContainer.paddingHorizontal,\n paddingRight: right + styles.viewContainer.paddingHorizontal,\n }}\n >\n <GroupChannelSettingsModule.Info />\n <GroupChannelSettingsModule.Menu\n menuItemsCreator={menuItemsCreator}\n onPressMenuModeration={onPressMenuModeration}\n onPressMenuMembers={onPressMenuMembers}\n onPressMenuLeaveChannel={onPressMenuLeaveChannel}\n />\n </ScrollView>\n </GroupChannelSettingsModule.Provider>\n );\n };\n};\n\nconst styles = createStyleSheet({\n viewContainer: {\n paddingHorizontal: 16,\n },\n});\n\nexport default createGroupChannelSettingsFragment;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAASC,gBAAT,EAA2BC,aAA3B,QAAgD,yCAAhD;AACA,SAASC,IAAT,QAAqB,uBAArB;AAEA,OAAOC,gCAAP,MAA6C,wEAA7C;;AAGA,MAAMC,kCAAkC,GACtCC,UADyC,IAER;EACjC,MAAMC,0BAA0B,GAAGH,gCAAgC,CAACE,UAAD,CAAnE;EAEA,OAAO,QAOD;IAAA,IAPE;MACNE,iBAAiB,GAAGL,IADd;MAENM,OAFM;MAGNC,qBAHM;MAINC,kBAJM;MAKNC,uBALM;MAMNC;IANM,CAOF;IACJ,MAAM;MAAEC;IAAF,IAAaZ,aAAa,EAAhC;IACA,MAAM;MAAEa,IAAF;MAAQC;IAAR,IAAkBhB,iBAAiB,EAAzC;IAEA,oBACE,oBAAC,0BAAD,CAA4B,QAA5B;MAAqC,OAAO,EAAES;IAA9C,gBACE,oBAAC,0BAAD,CAA4B,MAA5B;MAAmC,iBAAiB,EAAED;IAAtD,EADF,eAEE,oBAAC,UAAD;MACE,KAAK,EAAE;QAAES,eAAe,EAAEH,MAAM,CAACI;MAA1B,CADT;MAEE,qBAAqB,EAAE;QACrBC,WAAW,EAAEJ,IAAI,GAAGK,MAAM,CAACC,aAAP,CAAqBC,iBADpB;QAErBC,YAAY,EAAEP,KAAK,GAAGI,MAAM,CAACC,aAAP,CAAqBC;MAFtB;IAFzB,gBAOE,oBAAC,0BAAD,CAA4B,IAA5B,OAPF,eAQE,oBAAC,0BAAD,CAA4B,IAA5B;MACE,gBAAgB,EAAET,gBADpB;MAEE,qBAAqB,EAAEH,qBAFzB;MAGE,kBAAkB,EAAEC,kBAHtB;MAIE,uBAAuB,EAAEC;IAJ3B,EARF,CAFF,CADF;EAoBD,CA/BD;AAgCD,CArCD;;AAuCA,MAAMQ,MAAM,GAAGnB,gBAAgB,CAAC;EAC9BoB,aAAa,EAAE;IACbC,iBAAiB,EAAE;EADN;AADe,CAAD,CAA/B;AAMA,eAAejB,kCAAf"}
1
+ {"version":3,"names":["React","ScrollView","useSafeAreaInsets","createStyleSheet","useUIKitTheme","NOOP","createGroupChannelSettingsModule","createGroupChannelSettingsFragment","initModule","GroupChannelSettingsModule","onPressHeaderLeft","channel","onPressMenuModeration","onPressMenuMembers","onPressMenuLeaveChannel","onPressMenuNotification","menuItemsCreator","colors","left","right","backgroundColor","background","paddingLeft","styles","viewContainer","paddingHorizontal","paddingRight"],"sources":["createGroupChannelSettingsFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createGroupChannelSettingsModule from '../domain/groupChannelSettings/module/createGroupChannelSettingsModule';\nimport type { GroupChannelSettingsFragment, GroupChannelSettingsModule } from '../domain/groupChannelSettings/types';\n\nconst createGroupChannelSettingsFragment = (\n initModule?: Partial<GroupChannelSettingsModule>,\n): GroupChannelSettingsFragment => {\n const GroupChannelSettingsModule = createGroupChannelSettingsModule(initModule);\n\n return ({\n onPressHeaderLeft = NOOP,\n channel,\n onPressMenuModeration,\n onPressMenuMembers,\n onPressMenuLeaveChannel,\n onPressMenuNotification,\n menuItemsCreator,\n }) => {\n const { colors } = useUIKitTheme();\n const { left, right } = useSafeAreaInsets();\n\n return (\n <GroupChannelSettingsModule.Provider channel={channel}>\n <GroupChannelSettingsModule.Header onPressHeaderLeft={onPressHeaderLeft} />\n <ScrollView\n style={{ backgroundColor: colors.background }}\n contentContainerStyle={{\n paddingLeft: left + styles.viewContainer.paddingHorizontal,\n paddingRight: right + styles.viewContainer.paddingHorizontal,\n }}\n >\n <GroupChannelSettingsModule.Info />\n <GroupChannelSettingsModule.Menu\n menuItemsCreator={menuItemsCreator}\n onPressMenuModeration={onPressMenuModeration}\n onPressMenuMembers={onPressMenuMembers}\n onPressMenuLeaveChannel={onPressMenuLeaveChannel}\n onPressMenuNotification={onPressMenuNotification}\n />\n </ScrollView>\n </GroupChannelSettingsModule.Provider>\n );\n };\n};\n\nconst styles = createStyleSheet({\n viewContainer: {\n paddingHorizontal: 16,\n },\n});\n\nexport default createGroupChannelSettingsFragment;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAASC,gBAAT,EAA2BC,aAA3B,QAAgD,yCAAhD;AACA,SAASC,IAAT,QAAqB,uBAArB;AAEA,OAAOC,gCAAP,MAA6C,wEAA7C;;AAGA,MAAMC,kCAAkC,GACtCC,UADyC,IAER;EACjC,MAAMC,0BAA0B,GAAGH,gCAAgC,CAACE,UAAD,CAAnE;EAEA,OAAO,QAQD;IAAA,IARE;MACNE,iBAAiB,GAAGL,IADd;MAENM,OAFM;MAGNC,qBAHM;MAINC,kBAJM;MAKNC,uBALM;MAMNC,uBANM;MAONC;IAPM,CAQF;IACJ,MAAM;MAAEC;IAAF,IAAab,aAAa,EAAhC;IACA,MAAM;MAAEc,IAAF;MAAQC;IAAR,IAAkBjB,iBAAiB,EAAzC;IAEA,oBACE,oBAAC,0BAAD,CAA4B,QAA5B;MAAqC,OAAO,EAAES;IAA9C,gBACE,oBAAC,0BAAD,CAA4B,MAA5B;MAAmC,iBAAiB,EAAED;IAAtD,EADF,eAEE,oBAAC,UAAD;MACE,KAAK,EAAE;QAAEU,eAAe,EAAEH,MAAM,CAACI;MAA1B,CADT;MAEE,qBAAqB,EAAE;QACrBC,WAAW,EAAEJ,IAAI,GAAGK,MAAM,CAACC,aAAP,CAAqBC,iBADpB;QAErBC,YAAY,EAAEP,KAAK,GAAGI,MAAM,CAACC,aAAP,CAAqBC;MAFtB;IAFzB,gBAOE,oBAAC,0BAAD,CAA4B,IAA5B,OAPF,eAQE,oBAAC,0BAAD,CAA4B,IAA5B;MACE,gBAAgB,EAAET,gBADpB;MAEE,qBAAqB,EAAEJ,qBAFzB;MAGE,kBAAkB,EAAEC,kBAHtB;MAIE,uBAAuB,EAAEC,uBAJ3B;MAKE,uBAAuB,EAAEC;IAL3B,EARF,CAFF,CADF;EAqBD,CAjCD;AAkCD,CAvCD;;AAyCA,MAAMQ,MAAM,GAAGpB,gBAAgB,CAAC;EAC9BqB,aAAa,EAAE;IACbC,iBAAiB,EAAE;EADN;AADe,CAAD,CAA/B;AAMA,eAAelB,kCAAf"}
@@ -7,6 +7,7 @@ const cacheRestrictCodes = [400300, 400301, 400302, 400310];
7
7
  const useConnection = () => {
8
8
  const {
9
9
  sdk,
10
+ emojiManager,
10
11
  setCurrentUser,
11
12
  features
12
13
  } = useSendbirdChat();
@@ -39,6 +40,7 @@ const useConnection = () => {
39
40
 
40
41
  Logger.debug('[useConnection]', 'connected! (online)');
41
42
  setCurrentUser(user);
43
+ sdk.getAllEmoji().then(emojiManager.init);
42
44
  return user;
43
45
  } catch (e) {
44
46
  const error = e;
@@ -51,6 +53,7 @@ const useConnection = () => {
51
53
  } else if (sdk.currentUser) {
52
54
  Logger.debug('[useConnection]', 'connected! (offline)');
53
55
  setCurrentUser(sdk.currentUser);
56
+ sdk.getAllEmoji().finally(emojiManager.init);
54
57
  return sdk.currentUser;
55
58
  }
56
59
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","Logger","useSendbirdChat","usePushTokenRegistration","cacheRestrictCodes","useConnection","sdk","setCurrentUser","features","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","connect","userId","opts","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","useUserIdForNicknameEnabled","autoPushTokenRegistrationEnabled","error","isCacheEnabled","some","code","message","clearCachedData","currentUser","disconnect","undefined","reconnect"],"sources":["useConnection.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { Logger, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from './useContext';\nimport usePushTokenRegistration from './usePushTokenRegistration';\n\ntype ConnectOptions = { nickname?: string; accessToken?: string };\nconst cacheRestrictCodes = [400300, 400301, 400302, 400310];\n\nconst useConnection = () => {\n const { sdk, setCurrentUser, features } = useSendbirdChat();\n const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();\n\n const connect = useCallback(\n async (userId: string, opts?: ConnectOptions): Promise<SendbirdUser> => {\n try {\n Logger.debug('[useConnection]', 'connect start:', userId);\n let user = await sdk.connect(userId, opts?.accessToken);\n\n if (opts?.nickname) {\n Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);\n await sdk\n .updateCurrentUserInfo({ nickname: opts.nickname })\n .then((updatedUser) => (user = updatedUser))\n .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));\n } else if (features.useUserIdForNicknameEnabled) {\n await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));\n }\n\n if (features.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');\n await registerPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);\n });\n }\n\n Logger.debug('[useConnection]', 'connected! (online)');\n setCurrentUser(user);\n\n return user;\n } catch (e) {\n const error = e as unknown as SendbirdError;\n\n if (sdk.isCacheEnabled) {\n if (cacheRestrictCodes.some((code) => error.code === code)) {\n Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);\n Logger.warn('[useConnection]', 'clear cached-data');\n await sdk.clearCachedData().catch((e) => Logger.warn('[useConnection]', 'clear cached-data failure', e));\n } else if (sdk.currentUser) {\n Logger.debug('[useConnection]', 'connected! (offline)');\n setCurrentUser(sdk.currentUser);\n return sdk.currentUser;\n }\n }\n\n Logger.warn('[useConnection]', 'connect failure', error.message, error.code);\n throw error;\n }\n },\n [sdk, registerPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled],\n );\n\n const disconnect = useCallback(async () => {\n Logger.debug('[useConnection]', 'disconnect start');\n\n if (features.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');\n await unregisterPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);\n });\n }\n\n await sdk.disconnect().then(() => setCurrentUser(undefined));\n Logger.debug('[useConnection]', 'disconnected!');\n }, [sdk, unregisterPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);\n\n return { connect, disconnect, reconnect: () => sdk.reconnect() };\n};\n\nexport default useConnection;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","Logger","useSendbirdChat","usePushTokenRegistration","cacheRestrictCodes","useConnection","sdk","emojiManager","setCurrentUser","features","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","connect","userId","opts","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","useUserIdForNicknameEnabled","autoPushTokenRegistrationEnabled","getAllEmoji","init","error","isCacheEnabled","some","code","message","clearCachedData","currentUser","finally","disconnect","undefined","reconnect"],"sources":["useConnection.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { Logger, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from './useContext';\nimport usePushTokenRegistration from './usePushTokenRegistration';\n\ntype ConnectOptions = { nickname?: string; accessToken?: string };\nconst cacheRestrictCodes = [400300, 400301, 400302, 400310];\n\nconst useConnection = () => {\n const { sdk, emojiManager, setCurrentUser, features } = useSendbirdChat();\n const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();\n\n const connect = useCallback(\n async (userId: string, opts?: ConnectOptions): Promise<SendbirdUser> => {\n try {\n Logger.debug('[useConnection]', 'connect start:', userId);\n let user = await sdk.connect(userId, opts?.accessToken);\n\n if (opts?.nickname) {\n Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);\n await sdk\n .updateCurrentUserInfo({ nickname: opts.nickname })\n .then((updatedUser) => (user = updatedUser))\n .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));\n } else if (features.useUserIdForNicknameEnabled) {\n await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));\n }\n\n if (features.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');\n await registerPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);\n });\n }\n\n Logger.debug('[useConnection]', 'connected! (online)');\n setCurrentUser(user);\n sdk.getAllEmoji().then(emojiManager.init);\n\n return user;\n } catch (e) {\n const error = e as unknown as SendbirdError;\n\n if (sdk.isCacheEnabled) {\n if (cacheRestrictCodes.some((code) => error.code === code)) {\n Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);\n Logger.warn('[useConnection]', 'clear cached-data');\n await sdk.clearCachedData().catch((e) => Logger.warn('[useConnection]', 'clear cached-data failure', e));\n } else if (sdk.currentUser) {\n Logger.debug('[useConnection]', 'connected! (offline)');\n setCurrentUser(sdk.currentUser);\n sdk.getAllEmoji().finally(emojiManager.init);\n return sdk.currentUser;\n }\n }\n\n Logger.warn('[useConnection]', 'connect failure', error.message, error.code);\n throw error;\n }\n },\n [sdk, registerPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled],\n );\n\n const disconnect = useCallback(async () => {\n Logger.debug('[useConnection]', 'disconnect start');\n\n if (features.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');\n await unregisterPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);\n });\n }\n\n await sdk.disconnect().then(() => setCurrentUser(undefined));\n Logger.debug('[useConnection]', 'disconnected!');\n }, [sdk, unregisterPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);\n\n return { connect, disconnect, reconnect: () => sdk.reconnect() };\n};\n\nexport default useConnection;\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { useContext } from 'react';
2
2
  import { LocalizationContext } from '../contexts/LocalizationCtx';
3
3
  import { PlatformServiceContext } from '../contexts/PlatformServiceCtx';
4
+ import { ReactionContext } from '../contexts/ReactionCtx';
4
5
  import { SendbirdChatContext } from '../contexts/SendbirdChatCtx';
5
6
  import { UserProfileContext } from '../contexts/UserProfileCtx';
6
7
  export const useLocalization = () => {
@@ -23,4 +24,9 @@ export const useUserProfile = () => {
23
24
  if (!value) throw new Error('UserProfileContext is not provided');
24
25
  return value;
25
26
  };
27
+ export const useReaction = () => {
28
+ const value = useContext(ReactionContext);
29
+ if (!value) throw new Error('ReactionContext is not provided');
30
+ return value;
31
+ };
26
32
  //# sourceMappingURL=useContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","LocalizationContext","PlatformServiceContext","SendbirdChatContext","UserProfileContext","useLocalization","value","Error","usePlatformService","useSendbirdChat","useUserProfile"],"sources":["useContext.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { PlatformServiceContext } from '../contexts/PlatformServiceCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\nexport const useLocalization = () => {\n const value = useContext(LocalizationContext);\n if (!value) throw new Error('LocalizationContext is not provided');\n return value;\n};\n\nexport const usePlatformService = () => {\n const value = useContext(PlatformServiceContext);\n if (!value) throw new Error('PlatformServiceContext is not provided');\n return value;\n};\n\nexport const useSendbirdChat = () => {\n const value = useContext(SendbirdChatContext);\n if (!value) throw new Error('SendbirdChatContext is not provided');\n return value;\n};\n\nexport const useUserProfile = () => {\n const value = useContext(UserProfileContext);\n if (!value) throw new Error('UserProfileContext is not provided');\n return value;\n};\n"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AAEA,SAASC,mBAAT,QAAoC,6BAApC;AACA,SAASC,sBAAT,QAAuC,gCAAvC;AACA,SAASC,mBAAT,QAAoC,6BAApC;AACA,SAASC,kBAAT,QAAmC,4BAAnC;AAEA,OAAO,MAAMC,eAAe,GAAG,MAAM;EACnC,MAAMC,KAAK,GAAGN,UAAU,CAACC,mBAAD,CAAxB;EACA,IAAI,CAACK,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAME,kBAAkB,GAAG,MAAM;EACtC,MAAMF,KAAK,GAAGN,UAAU,CAACE,sBAAD,CAAxB;EACA,IAAI,CAACI,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,wCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAMG,eAAe,GAAG,MAAM;EACnC,MAAMH,KAAK,GAAGN,UAAU,CAACG,mBAAD,CAAxB;EACA,IAAI,CAACG,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAMI,cAAc,GAAG,MAAM;EAClC,MAAMJ,KAAK,GAAGN,UAAU,CAACI,kBAAD,CAAxB;EACA,IAAI,CAACE,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,oCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM"}
1
+ {"version":3,"names":["useContext","LocalizationContext","PlatformServiceContext","ReactionContext","SendbirdChatContext","UserProfileContext","useLocalization","value","Error","usePlatformService","useSendbirdChat","useUserProfile","useReaction"],"sources":["useContext.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { PlatformServiceContext } from '../contexts/PlatformServiceCtx';\nimport { ReactionContext } from '../contexts/ReactionCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\nexport const useLocalization = () => {\n const value = useContext(LocalizationContext);\n if (!value) throw new Error('LocalizationContext is not provided');\n return value;\n};\n\nexport const usePlatformService = () => {\n const value = useContext(PlatformServiceContext);\n if (!value) throw new Error('PlatformServiceContext is not provided');\n return value;\n};\n\nexport const useSendbirdChat = () => {\n const value = useContext(SendbirdChatContext);\n if (!value) throw new Error('SendbirdChatContext is not provided');\n return value;\n};\n\nexport const useUserProfile = () => {\n const value = useContext(UserProfileContext);\n if (!value) throw new Error('UserProfileContext is not provided');\n return value;\n};\n\nexport const useReaction = () => {\n const value = useContext(ReactionContext);\n if (!value) throw new Error('ReactionContext is not provided');\n return value;\n};\n"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AAEA,SAASC,mBAAT,QAAoC,6BAApC;AACA,SAASC,sBAAT,QAAuC,gCAAvC;AACA,SAASC,eAAT,QAAgC,yBAAhC;AACA,SAASC,mBAAT,QAAoC,6BAApC;AACA,SAASC,kBAAT,QAAmC,4BAAnC;AAEA,OAAO,MAAMC,eAAe,GAAG,MAAM;EACnC,MAAMC,KAAK,GAAGP,UAAU,CAACC,mBAAD,CAAxB;EACA,IAAI,CAACM,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAME,kBAAkB,GAAG,MAAM;EACtC,MAAMF,KAAK,GAAGP,UAAU,CAACE,sBAAD,CAAxB;EACA,IAAI,CAACK,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,wCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAMG,eAAe,GAAG,MAAM;EACnC,MAAMH,KAAK,GAAGP,UAAU,CAACI,mBAAD,CAAxB;EACA,IAAI,CAACG,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAMI,cAAc,GAAG,MAAM;EAClC,MAAMJ,KAAK,GAAGP,UAAU,CAACK,kBAAD,CAAxB;EACA,IAAI,CAACE,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,oCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM;AAMP,OAAO,MAAMK,WAAW,GAAG,MAAM;EAC/B,MAAML,KAAK,GAAGP,UAAU,CAACG,eAAD,CAAxB;EACA,IAAI,CAACI,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;EACZ,OAAOD,KAAP;AACD,CAJM"}
@@ -0,0 +1,78 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { Keyboard, LayoutAnimation, Platform } from 'react-native';
3
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
+ import { NOOP } from '@sendbird/uikit-utils';
5
+ let isLayoutAnimationConfigured = false;
6
+
7
+ const configureNextLayoutAnimation = event => {
8
+ if (isLayoutAnimationConfigured) return;
9
+ const config = LayoutAnimation.create(event.duration, event.easing, LayoutAnimation.Properties.scaleY);
10
+ isLayoutAnimationConfigured = true;
11
+
12
+ const onEnd = () => isLayoutAnimationConfigured = false;
13
+
14
+ LayoutAnimation.configureNext(config, onEnd, onEnd);
15
+ };
16
+
17
+ const {
18
+ showEvent,
19
+ hideEvent
20
+ } = Platform.select({
21
+ android: {
22
+ showEvent: 'keyboardDidShow',
23
+ hideEvent: 'keyboardDidHide'
24
+ },
25
+ default: {
26
+ showEvent: 'keyboardWillShow',
27
+ hideEvent: 'keyboardWillHide'
28
+ }
29
+ });
30
+
31
+ const useKeyboardStatus = () => {
32
+ const [keyboardStatus, setKeyboardStatus] = useState({
33
+ visible: false,
34
+ height: 0,
35
+ bottomSpace: 0
36
+ });
37
+ const {
38
+ bottom: bottomInset
39
+ } = useSafeAreaInsets();
40
+ useEffect(() => {
41
+ const subscriptions = [Keyboard.addListener(showEvent, event => {
42
+ const height = event.endCoordinates.height;
43
+ const bottomSpace = Platform.select({
44
+ ios: height - bottomInset,
45
+ default: 0
46
+ });
47
+ const nextLayoutAnimation = Platform.select({
48
+ ios: configureNextLayoutAnimation,
49
+ default: NOOP
50
+ });
51
+ nextLayoutAnimation(event);
52
+ setKeyboardStatus({
53
+ visible: true,
54
+ height,
55
+ bottomSpace
56
+ });
57
+ }), Keyboard.addListener(hideEvent, () => {
58
+ const height = 0;
59
+ const bottomSpace = Platform.select({
60
+ default: height
61
+ }); // const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });
62
+ // nextLayoutAnimation(event);
63
+
64
+ setKeyboardStatus({
65
+ visible: false,
66
+ height,
67
+ bottomSpace
68
+ });
69
+ })];
70
+ return () => {
71
+ subscriptions.forEach(it => it.remove());
72
+ };
73
+ }, []);
74
+ return keyboardStatus;
75
+ };
76
+
77
+ export default useKeyboardStatus;
78
+ //# sourceMappingURL=useKeyboardStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","Keyboard","LayoutAnimation","Platform","useSafeAreaInsets","NOOP","isLayoutAnimationConfigured","configureNextLayoutAnimation","event","config","create","duration","easing","Properties","scaleY","onEnd","configureNext","showEvent","hideEvent","select","android","default","useKeyboardStatus","keyboardStatus","setKeyboardStatus","visible","height","bottomSpace","bottom","bottomInset","subscriptions","addListener","endCoordinates","ios","nextLayoutAnimation","forEach","it","remove"],"sources":["useKeyboardStatus.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Keyboard, KeyboardEvent, KeyboardEventName, LayoutAnimation, Platform } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\ntype KeyboardEvents = {\n showEvent: KeyboardEventName;\n hideEvent: KeyboardEventName;\n};\n\nlet isLayoutAnimationConfigured = false;\n\nconst configureNextLayoutAnimation = (event: KeyboardEvent) => {\n if (isLayoutAnimationConfigured) return;\n const config = LayoutAnimation.create(event.duration, event.easing, LayoutAnimation.Properties.scaleY);\n isLayoutAnimationConfigured = true;\n const onEnd = () => (isLayoutAnimationConfigured = false);\n LayoutAnimation.configureNext(config, onEnd, onEnd);\n};\n\nconst { showEvent, hideEvent } = Platform.select<KeyboardEvents>({\n android: { showEvent: 'keyboardDidShow', hideEvent: 'keyboardDidHide' },\n default: { showEvent: 'keyboardWillShow', hideEvent: 'keyboardWillHide' },\n});\n\nconst useKeyboardStatus = () => {\n const [keyboardStatus, setKeyboardStatus] = useState({ visible: false, height: 0, bottomSpace: 0 });\n const { bottom: bottomInset } = useSafeAreaInsets();\n\n useEffect(() => {\n const subscriptions = [\n Keyboard.addListener(showEvent, (event) => {\n const height = event.endCoordinates.height;\n const bottomSpace = Platform.select({ ios: height - bottomInset, default: 0 });\n const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n nextLayoutAnimation(event);\n setKeyboardStatus({ visible: true, height, bottomSpace });\n }),\n\n Keyboard.addListener(hideEvent, () => {\n const height = 0;\n const bottomSpace = Platform.select({ default: height });\n // const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n // nextLayoutAnimation(event);\n setKeyboardStatus({ visible: false, height, bottomSpace });\n }),\n ];\n return () => {\n subscriptions.forEach((it) => it.remove());\n };\n }, []);\n\n return keyboardStatus;\n};\n\nexport default useKeyboardStatus;\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AACA,SAASC,QAAT,EAAqDC,eAArD,EAAsEC,QAAtE,QAAsF,cAAtF;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAASC,IAAT,QAAqB,uBAArB;AAOA,IAAIC,2BAA2B,GAAG,KAAlC;;AAEA,MAAMC,4BAA4B,GAAIC,KAAD,IAA0B;EAC7D,IAAIF,2BAAJ,EAAiC;EACjC,MAAMG,MAAM,GAAGP,eAAe,CAACQ,MAAhB,CAAuBF,KAAK,CAACG,QAA7B,EAAuCH,KAAK,CAACI,MAA7C,EAAqDV,eAAe,CAACW,UAAhB,CAA2BC,MAAhF,CAAf;EACAR,2BAA2B,GAAG,IAA9B;;EACA,MAAMS,KAAK,GAAG,MAAOT,2BAA2B,GAAG,KAAnD;;EACAJ,eAAe,CAACc,aAAhB,CAA8BP,MAA9B,EAAsCM,KAAtC,EAA6CA,KAA7C;AACD,CAND;;AAQA,MAAM;EAAEE,SAAF;EAAaC;AAAb,IAA2Bf,QAAQ,CAACgB,MAAT,CAAgC;EAC/DC,OAAO,EAAE;IAAEH,SAAS,EAAE,iBAAb;IAAgCC,SAAS,EAAE;EAA3C,CADsD;EAE/DG,OAAO,EAAE;IAAEJ,SAAS,EAAE,kBAAb;IAAiCC,SAAS,EAAE;EAA5C;AAFsD,CAAhC,CAAjC;;AAKA,MAAMI,iBAAiB,GAAG,MAAM;EAC9B,MAAM,CAACC,cAAD,EAAiBC,iBAAjB,IAAsCxB,QAAQ,CAAC;IAAEyB,OAAO,EAAE,KAAX;IAAkBC,MAAM,EAAE,CAA1B;IAA6BC,WAAW,EAAE;EAA1C,CAAD,CAApD;EACA,MAAM;IAAEC,MAAM,EAAEC;EAAV,IAA0BzB,iBAAiB,EAAjD;EAEAL,SAAS,CAAC,MAAM;IACd,MAAM+B,aAAa,GAAG,CACpB7B,QAAQ,CAAC8B,WAAT,CAAqBd,SAArB,EAAiCT,KAAD,IAAW;MACzC,MAAMkB,MAAM,GAAGlB,KAAK,CAACwB,cAAN,CAAqBN,MAApC;MACA,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAT,CAAgB;QAAEc,GAAG,EAAEP,MAAM,GAAGG,WAAhB;QAA6BR,OAAO,EAAE;MAAtC,CAAhB,CAApB;MACA,MAAMa,mBAAmB,GAAG/B,QAAQ,CAACgB,MAAT,CAAgB;QAAEc,GAAG,EAAE1B,4BAAP;QAAqCc,OAAO,EAAEhB;MAA9C,CAAhB,CAA5B;MAEA6B,mBAAmB,CAAC1B,KAAD,CAAnB;MACAgB,iBAAiB,CAAC;QAAEC,OAAO,EAAE,IAAX;QAAiBC,MAAjB;QAAyBC;MAAzB,CAAD,CAAjB;IACD,CAPD,CADoB,EAUpB1B,QAAQ,CAAC8B,WAAT,CAAqBb,SAArB,EAAgC,MAAM;MACpC,MAAMQ,MAAM,GAAG,CAAf;MACA,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAT,CAAgB;QAAEE,OAAO,EAAEK;MAAX,CAAhB,CAApB,CAFoC,CAGpC;MAEA;;MACAF,iBAAiB,CAAC;QAAEC,OAAO,EAAE,KAAX;QAAkBC,MAAlB;QAA0BC;MAA1B,CAAD,CAAjB;IACD,CAPD,CAVoB,CAAtB;IAmBA,OAAO,MAAM;MACXG,aAAa,CAACK,OAAd,CAAuBC,EAAD,IAAQA,EAAE,CAACC,MAAH,EAA9B;IACD,CAFD;EAGD,CAvBQ,EAuBN,EAvBM,CAAT;EAyBA,OAAOd,cAAP;AACD,CA9BD;;AAgCA,eAAeD,iBAAf"}
@@ -0,0 +1,100 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { useAsyncEffect } from '@sendbird/uikit-utils';
3
+ import { useSendbirdChat } from '../hooks/useContext';
4
+
5
+ const useMentionSuggestion = params => {
6
+ const {
7
+ text,
8
+ selection,
9
+ channel,
10
+ mentionedUsers
11
+ } = params;
12
+ const [freshChannel, setFreshChannel] = useState(channel);
13
+ useAsyncEffect(async () => {
14
+ setFreshChannel(await channel.refresh());
15
+ }, [channel.url]);
16
+ const {
17
+ mentionManager,
18
+ currentUser
19
+ } = useSendbirdChat();
20
+ const [members, setMembers] = useState([]);
21
+ const timeoutRef = useRef();
22
+ const searchStringRangeRef = useRef({
23
+ start: 0,
24
+ end: 0
25
+ });
26
+ const searchLimitedRef = useRef(false);
27
+
28
+ const updateSearchStringRange = (selectionIndex, searchString) => {
29
+ searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);
30
+ return searchStringRangeRef.current;
31
+ };
32
+
33
+ const updateSearchLimited = (mentionCount, mentionLimit) => {
34
+ searchLimitedRef.current = mentionCount >= mentionLimit;
35
+ return searchLimitedRef.current;
36
+ };
37
+
38
+ const resetRefs = () => {
39
+ searchLimitedRef.current = false;
40
+ searchStringRangeRef.current = {
41
+ start: 0,
42
+ end: 0
43
+ };
44
+ };
45
+
46
+ const fetchMembers = async () => {
47
+ resetRefs();
48
+ const selectionRanged = selection.start !== selection.end;
49
+ if (selectionRanged) return [];
50
+ const selectionContainsMentionedUser = mentionedUsers.some(it => mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'));
51
+ if (selectionContainsMentionedUser) return [];
52
+ const {
53
+ isTriggered,
54
+ isValidSearchString,
55
+ searchString
56
+ } = mentionManager.getSearchString(text, selection.start);
57
+ if (!isTriggered() || !isValidSearchString()) return [];
58
+ const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);
59
+ if (limited) return [];
60
+ updateSearchStringRange(selection.start, searchString);
61
+
62
+ if (freshChannel.isSuper) {
63
+ return freshChannel.createMemberListQuery({
64
+ nicknameStartsWithFilter: searchString,
65
+ limit: mentionManager.config.suggestionLimit + 1
66
+ }).next().then(members => members.filter(member => member.userId !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId)));
67
+ } else {
68
+ return freshChannel.members.sort((a, b) => {
69
+ var _a$nickname;
70
+
71
+ return (_a$nickname = a.nickname) === null || _a$nickname === void 0 ? void 0 : _a$nickname.localeCompare(b.nickname);
72
+ }).filter(member => {
73
+ var _member$nickname;
74
+
75
+ return ((_member$nickname = member.nickname) === null || _member$nickname === void 0 ? void 0 : _member$nickname.toLowerCase().startsWith(searchString.toLowerCase())) && member.userId !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
76
+ }).slice(0, mentionManager.config.suggestionLimit);
77
+ }
78
+ };
79
+
80
+ useEffect(() => {
81
+ timeoutRef.current = setTimeout(async () => {
82
+ fetchMembers().then(setMembers).catch(() => setMembers([])).finally(() => timeoutRef.current = undefined);
83
+ }, mentionManager.config.debounceMills);
84
+ return () => {
85
+ if (timeoutRef.current) {
86
+ clearTimeout(timeoutRef.current);
87
+ timeoutRef.current = undefined;
88
+ }
89
+ };
90
+ }, [text, selection]);
91
+ return {
92
+ members,
93
+ reset: useCallback(() => setMembers([]), []),
94
+ searchStringRange: searchStringRangeRef.current,
95
+ searchLimited: searchLimitedRef.current
96
+ };
97
+ };
98
+
99
+ export default useMentionSuggestion;
100
+ //# sourceMappingURL=useMentionSuggestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","useAsyncEffect","useSendbirdChat","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","refresh","url","mentionManager","currentUser","members","setMembers","timeoutRef","searchStringRangeRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","sort","a","b","nickname","localeCompare","toLowerCase","startsWith","slice","setTimeout","catch","finally","undefined","debounceMills","clearTimeout","reset","searchStringRange","searchLimited"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { useAsyncEffect } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n channel: SendbirdGroupChannel;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId));\n } else {\n return freshChannel.members\n .sort((a, b) => a.nickname?.localeCompare(b.nickname))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId,\n )\n .slice(0, mentionManager.config.suggestionLimit);\n }\n };\n\n useEffect(() => {\n timeoutRef.current = setTimeout(async () => {\n fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]))\n .finally(() => (timeoutRef.current = undefined));\n }, mentionManager.config.debounceMills);\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n };\n }, [text, selection]);\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,SAAtB,EAAiCC,MAAjC,EAAyCC,QAAzC,QAAyD,OAAzD;AAGA,SAASC,cAAT,QAA+B,uBAA/B;AAEA,SAASC,eAAT,QAAgC,qBAAhC;;AAGA,MAAMC,oBAAoB,GAAIC,MAAD,IAKvB;EACJ,MAAM;IAAEC,IAAF;IAAQC,SAAR;IAAmBC,OAAnB;IAA4BC;EAA5B,IAA+CJ,MAArD;EAEA,MAAM,CAACK,YAAD,EAAeC,eAAf,IAAkCV,QAAQ,CAACO,OAAD,CAAhD;EAEAN,cAAc,CAAC,YAAY;IACzBS,eAAe,CAAC,MAAMH,OAAO,CAACI,OAAR,EAAP,CAAf;EACD,CAFa,EAEX,CAACJ,OAAO,CAACK,GAAT,CAFW,CAAd;EAIA,MAAM;IAAEC,cAAF;IAAkBC;EAAlB,IAAkCZ,eAAe,EAAvD;EACA,MAAM,CAACa,OAAD,EAAUC,UAAV,IAAwBhB,QAAQ,CAAmB,EAAnB,CAAtC;EACA,MAAMiB,UAAU,GAAGlB,MAAM,EAAzB;EAEA,MAAMmB,oBAAoB,GAAGnB,MAAM,CAAQ;IAAEoB,KAAK,EAAE,CAAT;IAAYC,GAAG,EAAE;EAAjB,CAAR,CAAnC;EACA,MAAMC,gBAAgB,GAAGtB,MAAM,CAAC,KAAD,CAA/B;;EAEA,MAAMuB,uBAAuB,GAAG,CAACC,cAAD,EAAyBC,YAAzB,KAAkD;IAChFN,oBAAoB,CAACO,OAArB,GAA+BZ,cAAc,CAACa,0BAAf,CAA0CH,cAA1C,EAA0DC,YAA1D,CAA/B;IACA,OAAON,oBAAoB,CAACO,OAA5B;EACD,CAHD;;EAIA,MAAME,mBAAmB,GAAG,CAACC,YAAD,EAAuBC,YAAvB,KAAgD;IAC1ER,gBAAgB,CAACI,OAAjB,GAA2BG,YAAY,IAAIC,YAA3C;IACA,OAAOR,gBAAgB,CAACI,OAAxB;EACD,CAHD;;EAIA,MAAMK,SAAS,GAAG,MAAM;IACtBT,gBAAgB,CAACI,OAAjB,GAA2B,KAA3B;IACAP,oBAAoB,CAACO,OAArB,GAA+B;MAAEN,KAAK,EAAE,CAAT;MAAYC,GAAG,EAAE;IAAjB,CAA/B;EACD,CAHD;;EAKA,MAAMW,YAAY,GAAG,YAAuC;IAC1DD,SAAS;IAET,MAAME,eAAe,GAAG1B,SAAS,CAACa,KAAV,KAAoBb,SAAS,CAACc,GAAtD;IACA,IAAIY,eAAJ,EAAqB,OAAO,EAAP;IAErB,MAAMC,8BAA8B,GAAGzB,cAAc,CAAC0B,IAAf,CAAqBC,EAAD,IACzDtB,cAAc,CAACuB,YAAf,CAA4BC,QAA5B,CAAqCF,EAAE,CAACG,KAAxC,EAA+ChC,SAA/C,EAA0D,WAA1D,CADqC,CAAvC;IAGA,IAAI2B,8BAAJ,EAAoC,OAAO,EAAP;IAEpC,MAAM;MAAEM,WAAF;MAAeC,mBAAf;MAAoChB;IAApC,IAAqDX,cAAc,CAAC4B,eAAf,CAA+BpC,IAA/B,EAAqCC,SAAS,CAACa,KAA/C,CAA3D;IACA,IAAI,CAACoB,WAAW,EAAZ,IAAkB,CAACC,mBAAmB,EAA1C,EAA8C,OAAO,EAAP;IAE9C,MAAME,OAAO,GAAGf,mBAAmB,CAACnB,cAAc,CAACmC,MAAhB,EAAwB9B,cAAc,CAAC+B,MAAf,CAAsBf,YAA9C,CAAnC;IACA,IAAIa,OAAJ,EAAa,OAAO,EAAP;IAEbpB,uBAAuB,CAAChB,SAAS,CAACa,KAAX,EAAkBK,YAAlB,CAAvB;;IAEA,IAAIf,YAAY,CAACoC,OAAjB,EAA0B;MACxB,OAAOpC,YAAY,CAChBqC,qBADI,CACkB;QACrBC,wBAAwB,EAAEvB,YADL;QAErBwB,KAAK,EAAEnC,cAAc,CAAC+B,MAAf,CAAsBK,eAAtB,GAAwC;MAF1B,CADlB,EAKJC,IALI,GAMJC,IANI,CAMEpC,OAAD,IAAaA,OAAO,CAACqC,MAAR,CAAgBC,MAAD,IAAYA,MAAM,CAACC,MAAP,MAAkBxC,WAAlB,aAAkBA,WAAlB,uBAAkBA,WAAW,CAAEwC,MAA/B,CAA3B,CANd,CAAP;IAOD,CARD,MAQO;MACL,OAAO7C,YAAY,CAACM,OAAb,CACJwC,IADI,CACC,CAACC,CAAD,EAAIC,CAAJ;QAAA;;QAAA,sBAAUD,CAAC,CAACE,QAAZ,gDAAU,YAAYC,aAAZ,CAA0BF,CAAC,CAACC,QAA5B,CAAV;MAAA,CADD,EAEJN,MAFI,CAGFC,MAAD;QAAA;;QAAA,OACE,qBAAAA,MAAM,CAACK,QAAP,sEAAiBE,WAAjB,GAA+BC,UAA/B,CAA0CrC,YAAY,CAACoC,WAAb,EAA1C,MACAP,MAAM,CAACC,MAAP,MAAkBxC,WAAlB,aAAkBA,WAAlB,uBAAkBA,WAAW,CAAEwC,MAA/B,CAFF;MAAA,CAHG,EAOJQ,KAPI,CAOE,CAPF,EAOKjD,cAAc,CAAC+B,MAAf,CAAsBK,eAP3B,CAAP;IAQD;EACF,CArCD;;EAuCAnD,SAAS,CAAC,MAAM;IACdmB,UAAU,CAACQ,OAAX,GAAqBsC,UAAU,CAAC,YAAY;MAC1ChC,YAAY,GACToB,IADH,CACQnC,UADR,EAEGgD,KAFH,CAES,MAAMhD,UAAU,CAAC,EAAD,CAFzB,EAGGiD,OAHH,CAGW,MAAOhD,UAAU,CAACQ,OAAX,GAAqByC,SAHvC;IAID,CAL8B,EAK5BrD,cAAc,CAAC+B,MAAf,CAAsBuB,aALM,CAA/B;IAOA,OAAO,MAAM;MACX,IAAIlD,UAAU,CAACQ,OAAf,EAAwB;QACtB2C,YAAY,CAACnD,UAAU,CAACQ,OAAZ,CAAZ;QACAR,UAAU,CAACQ,OAAX,GAAqByC,SAArB;MACD;IACF,CALD;EAMD,CAdQ,EAcN,CAAC7D,IAAD,EAAOC,SAAP,CAdM,CAAT;EAgBA,OAAO;IACLS,OADK;IAELsD,KAAK,EAAExE,WAAW,CAAC,MAAMmB,UAAU,CAAC,EAAD,CAAjB,EAAuB,EAAvB,CAFb;IAGLsD,iBAAiB,EAAEpD,oBAAoB,CAACO,OAHnC;IAIL8C,aAAa,EAAElD,gBAAgB,CAACI;EAJ3B,CAAP;AAMD,CA/FD;;AAiGA,eAAetB,oBAAf"}
@@ -0,0 +1,128 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import { replace, useFreshCallback } from '@sendbird/uikit-utils';
4
+ import { useSendbirdChat } from './useContext';
5
+
6
+ const useMentionTextInput = params => {
7
+ const {
8
+ mentionManager
9
+ } = useSendbirdChat();
10
+ const mentionedUsersRef = useRef([]);
11
+ const textInputRef = useRef();
12
+ const [text, setText] = useState('');
13
+ const [selection, setSelection] = useState({
14
+ start: 0,
15
+ end: 0
16
+ }); // TODO: Refactor text edit logic more clearly
17
+
18
+ useEffect(() => {
19
+ if (mentionManager.shouldUseMentionedMessageTemplate(params.messageToEdit)) {
20
+ const result = mentionManager.templateToTextAndMentionedUsers(params.messageToEdit.mentionedMessageTemplate, params.messageToEdit.mentionedUsers);
21
+ mentionedUsersRef.current = result.mentionedUsers;
22
+ setText(result.mentionedText);
23
+ } else {
24
+ var _params$messageToEdit;
25
+
26
+ mentionedUsersRef.current = [];
27
+
28
+ if ((_params$messageToEdit = params.messageToEdit) !== null && _params$messageToEdit !== void 0 && _params$messageToEdit.isUserMessage()) {
29
+ setText(params.messageToEdit.message);
30
+ }
31
+ }
32
+ }, [params.messageToEdit]);
33
+ const onChangeText = useFreshCallback((_nextText, addedMentionedUser) => {
34
+ const prevText = text;
35
+ let nextText = _nextText;
36
+ let offset = nextText.length - prevText.length; // Text clear
37
+
38
+ if (nextText === '') {
39
+ mentionedUsersRef.current = [];
40
+ } // Text add
41
+ else if (offset > 0) {
42
+ /** Add mentioned user **/
43
+ if (addedMentionedUser) mentionedUsersRef.current.push(addedMentionedUser);
44
+ /** Reconcile mentioned users range on the right side of the selection **/
45
+
46
+ mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(offset, selection.end, mentionedUsersRef.current);
47
+ } // Text remove
48
+ else if (offset < 0) {
49
+ // Ranged remove
50
+ if (selection.start !== selection.end) {
51
+ /** Filter mentioned users in selection range **/
52
+ const {
53
+ filtered,
54
+ lastSelection
55
+ } = mentionManager.removeMentionedUsersInSelection(selection, mentionedUsersRef.current);
56
+ /** Reconcile mentioned users range on the right side of the selection **/
57
+
58
+ mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(offset, Math.max(selection.end, lastSelection), filtered);
59
+ } // Single remove
60
+ else {
61
+ /** Find mentioned user who ranges in removed selection **/
62
+ const foundIndex = mentionedUsersRef.current.findIndex(it => mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'));
63
+ /** If found, remove from the mentioned user list and remove remainder text **/
64
+
65
+ if (foundIndex > -1) {
66
+ const it = mentionedUsersRef.current[foundIndex];
67
+ const remainderLength = it.range.end - it.range.start + offset;
68
+ offset = -remainderLength + offset;
69
+ nextText = replace(nextText, it.range.start, it.range.start + remainderLength, '');
70
+ mentionedUsersRef.current.splice(foundIndex, 1);
71
+ }
72
+ /** Reconcile mentioned users range on the right side of the selection **/
73
+
74
+
75
+ mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(offset, selection.end, mentionedUsersRef.current);
76
+ }
77
+ }
78
+
79
+ setText(nextText);
80
+ });
81
+ return {
82
+ textInputRef,
83
+ selection,
84
+ onSelectionChange: useFreshCallback(e => {
85
+ const nativeSelection = { ...e.nativeEvent.selection
86
+ }; // NOTE: To synchronize call onSelectionChange after onChangeText called on each platform.
87
+
88
+ setTimeout(() => {
89
+ const mentionedUser = mentionedUsersRef.current.find(it => mentionManager.rangeHelpers.overlaps(it.range, nativeSelection)); // Selection should be blocked if changed into mentioned area
90
+
91
+ if (mentionedUser) {
92
+ var _textInputRef$current;
93
+
94
+ const selectionBlock = {
95
+ start: mentionedUser.range.start,
96
+ end: mentionedUser.range.end
97
+ };
98
+ (_textInputRef$current = textInputRef.current) === null || _textInputRef$current === void 0 ? void 0 : _textInputRef$current.setNativeProps({
99
+ selection: selectionBlock
100
+ }); // BUG: setNativeProps called again when invoked onChangeText
101
+ // https://github.com/facebook/react-native/issues/33520
102
+
103
+ if (Platform.OS === 'android') {
104
+ setTimeout(() => {
105
+ var _textInputRef$current2;
106
+
107
+ (_textInputRef$current2 = textInputRef.current) === null || _textInputRef$current2 === void 0 ? void 0 : _textInputRef$current2.setNativeProps({
108
+ selection: {
109
+ start: 0
110
+ }
111
+ });
112
+ }, 250);
113
+ }
114
+
115
+ setSelection(selectionBlock);
116
+ } else {
117
+ setSelection(nativeSelection);
118
+ }
119
+ }, 10);
120
+ }),
121
+ text,
122
+ onChangeText,
123
+ mentionedUsers: mentionedUsersRef.current
124
+ };
125
+ };
126
+
127
+ export default useMentionTextInput;
128
+ //# sourceMappingURL=useMentionTextInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","Platform","replace","useFreshCallback","useSendbirdChat","useMentionTextInput","params","mentionManager","mentionedUsersRef","textInputRef","text","setText","selection","setSelection","start","end","shouldUseMentionedMessageTemplate","messageToEdit","result","templateToTextAndMentionedUsers","mentionedMessageTemplate","mentionedUsers","current","mentionedText","isUserMessage","message","onChangeText","_nextText","addedMentionedUser","prevText","nextText","offset","length","push","reconcileRangeOfMentionedUsers","filtered","lastSelection","removeMentionedUsersInSelection","Math","max","foundIndex","findIndex","it","rangeHelpers","overlaps","range","remainderLength","splice","onSelectionChange","e","nativeSelection","nativeEvent","setTimeout","mentionedUser","find","selectionBlock","setNativeProps","OS"],"sources":["useMentionTextInput.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native';\nimport { Platform } from 'react-native';\n\nimport { SendbirdFileMessage, SendbirdUserMessage, replace, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser } from '../types';\nimport { useSendbirdChat } from './useContext';\n\nconst useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | SendbirdFileMessage }) => {\n const { mentionManager } = useSendbirdChat();\n\n const mentionedUsersRef = useRef<MentionedUser[]>([]);\n const textInputRef = useRef<TextInput>();\n\n const [text, setText] = useState('');\n const [selection, setSelection] = useState({ start: 0, end: 0 });\n\n // TODO: Refactor text edit logic more clearly\n useEffect(() => {\n if (mentionManager.shouldUseMentionedMessageTemplate(params.messageToEdit)) {\n const result = mentionManager.templateToTextAndMentionedUsers(\n params.messageToEdit.mentionedMessageTemplate,\n params.messageToEdit.mentionedUsers,\n );\n\n mentionedUsersRef.current = result.mentionedUsers;\n setText(result.mentionedText);\n } else {\n mentionedUsersRef.current = [];\n if (params.messageToEdit?.isUserMessage()) {\n setText(params.messageToEdit.message);\n }\n }\n }, [params.messageToEdit]);\n\n const onChangeText = useFreshCallback((_nextText: string, addedMentionedUser?: MentionedUser) => {\n const prevText = text;\n let nextText = _nextText;\n let offset = nextText.length - prevText.length;\n\n // Text clear\n if (nextText === '') {\n mentionedUsersRef.current = [];\n }\n // Text add\n else if (offset > 0) {\n /** Add mentioned user **/\n if (addedMentionedUser) mentionedUsersRef.current.push(addedMentionedUser);\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n // Text remove\n else if (offset < 0) {\n // Ranged remove\n if (selection.start !== selection.end) {\n /** Filter mentioned users in selection range **/\n const { filtered, lastSelection } = mentionManager.removeMentionedUsersInSelection(\n selection,\n mentionedUsersRef.current,\n );\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n Math.max(selection.end, lastSelection),\n filtered,\n );\n }\n // Single remove\n else {\n /** Find mentioned user who ranges in removed selection **/\n const foundIndex = mentionedUsersRef.current.findIndex((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n /** If found, remove from the mentioned user list and remove remainder text **/\n if (foundIndex > -1) {\n const it = mentionedUsersRef.current[foundIndex];\n const remainderLength = it.range.end - it.range.start + offset;\n\n offset = -remainderLength + offset;\n nextText = replace(nextText, it.range.start, it.range.start + remainderLength, '');\n\n mentionedUsersRef.current.splice(foundIndex, 1);\n }\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n }\n\n setText(nextText);\n });\n\n return {\n textInputRef,\n selection,\n onSelectionChange: useFreshCallback((e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => {\n const nativeSelection = { ...e.nativeEvent.selection };\n\n // NOTE: To synchronize call onSelectionChange after onChangeText called on each platform.\n setTimeout(() => {\n const mentionedUser = mentionedUsersRef.current.find((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, nativeSelection),\n );\n\n // Selection should be blocked if changed into mentioned area\n if (mentionedUser) {\n const selectionBlock = { start: mentionedUser.range.start, end: mentionedUser.range.end };\n textInputRef.current?.setNativeProps({ selection: selectionBlock });\n // BUG: setNativeProps called again when invoked onChangeText\n // https://github.com/facebook/react-native/issues/33520\n if (Platform.OS === 'android') {\n setTimeout(() => {\n textInputRef.current?.setNativeProps({ selection: { start: 0 } });\n }, 250);\n }\n setSelection(selectionBlock);\n } else {\n setSelection(nativeSelection);\n }\n }, 10);\n }),\n text,\n onChangeText,\n mentionedUsers: mentionedUsersRef.current,\n };\n};\n\nexport default useMentionTextInput;\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,EAA4BC,QAA5B,QAA4C,OAA5C;AAEA,SAASC,QAAT,QAAyB,cAAzB;AAEA,SAAmDC,OAAnD,EAA4DC,gBAA5D,QAAoF,uBAApF;AAGA,SAASC,eAAT,QAAgC,cAAhC;;AAEA,MAAMC,mBAAmB,GAAIC,MAAD,IAA2E;EACrG,MAAM;IAAEC;EAAF,IAAqBH,eAAe,EAA1C;EAEA,MAAMI,iBAAiB,GAAGT,MAAM,CAAkB,EAAlB,CAAhC;EACA,MAAMU,YAAY,GAAGV,MAAM,EAA3B;EAEA,MAAM,CAACW,IAAD,EAAOC,OAAP,IAAkBX,QAAQ,CAAC,EAAD,CAAhC;EACA,MAAM,CAACY,SAAD,EAAYC,YAAZ,IAA4Bb,QAAQ,CAAC;IAAEc,KAAK,EAAE,CAAT;IAAYC,GAAG,EAAE;EAAjB,CAAD,CAA1C,CAPqG,CASrG;;EACAjB,SAAS,CAAC,MAAM;IACd,IAAIS,cAAc,CAACS,iCAAf,CAAiDV,MAAM,CAACW,aAAxD,CAAJ,EAA4E;MAC1E,MAAMC,MAAM,GAAGX,cAAc,CAACY,+BAAf,CACbb,MAAM,CAACW,aAAP,CAAqBG,wBADR,EAEbd,MAAM,CAACW,aAAP,CAAqBI,cAFR,CAAf;MAKAb,iBAAiB,CAACc,OAAlB,GAA4BJ,MAAM,CAACG,cAAnC;MACAV,OAAO,CAACO,MAAM,CAACK,aAAR,CAAP;IACD,CARD,MAQO;MAAA;;MACLf,iBAAiB,CAACc,OAAlB,GAA4B,EAA5B;;MACA,6BAAIhB,MAAM,CAACW,aAAX,kDAAI,sBAAsBO,aAAtB,EAAJ,EAA2C;QACzCb,OAAO,CAACL,MAAM,CAACW,aAAP,CAAqBQ,OAAtB,CAAP;MACD;IACF;EACF,CAfQ,EAeN,CAACnB,MAAM,CAACW,aAAR,CAfM,CAAT;EAiBA,MAAMS,YAAY,GAAGvB,gBAAgB,CAAC,CAACwB,SAAD,EAAoBC,kBAApB,KAA2D;IAC/F,MAAMC,QAAQ,GAAGnB,IAAjB;IACA,IAAIoB,QAAQ,GAAGH,SAAf;IACA,IAAII,MAAM,GAAGD,QAAQ,CAACE,MAAT,GAAkBH,QAAQ,CAACG,MAAxC,CAH+F,CAK/F;;IACA,IAAIF,QAAQ,KAAK,EAAjB,EAAqB;MACnBtB,iBAAiB,CAACc,OAAlB,GAA4B,EAA5B;IACD,CAFD,CAGA;IAHA,KAIK,IAAIS,MAAM,GAAG,CAAb,EAAgB;MACnB;MACA,IAAIH,kBAAJ,EAAwBpB,iBAAiB,CAACc,OAAlB,CAA0BW,IAA1B,CAA+BL,kBAA/B;MAExB;;MACApB,iBAAiB,CAACc,OAAlB,GAA4Bf,cAAc,CAAC2B,8BAAf,CAC1BH,MAD0B,EAE1BnB,SAAS,CAACG,GAFgB,EAG1BP,iBAAiB,CAACc,OAHQ,CAA5B;IAKD,CAVI,CAWL;IAXK,KAYA,IAAIS,MAAM,GAAG,CAAb,EAAgB;MACnB;MACA,IAAInB,SAAS,CAACE,KAAV,KAAoBF,SAAS,CAACG,GAAlC,EAAuC;QACrC;QACA,MAAM;UAAEoB,QAAF;UAAYC;QAAZ,IAA8B7B,cAAc,CAAC8B,+BAAf,CAClCzB,SADkC,EAElCJ,iBAAiB,CAACc,OAFgB,CAApC;QAKA;;QACAd,iBAAiB,CAACc,OAAlB,GAA4Bf,cAAc,CAAC2B,8BAAf,CAC1BH,MAD0B,EAE1BO,IAAI,CAACC,GAAL,CAAS3B,SAAS,CAACG,GAAnB,EAAwBqB,aAAxB,CAF0B,EAG1BD,QAH0B,CAA5B;MAKD,CAbD,CAcA;MAdA,KAeK;QACH;QACA,MAAMK,UAAU,GAAGhC,iBAAiB,CAACc,OAAlB,CAA0BmB,SAA1B,CAAqCC,EAAD,IACrDnC,cAAc,CAACoC,YAAf,CAA4BC,QAA5B,CAAqCF,EAAE,CAACG,KAAxC,EAA+CjC,SAA/C,EAA0D,WAA1D,CADiB,CAAnB;QAGA;;QACA,IAAI4B,UAAU,GAAG,CAAC,CAAlB,EAAqB;UACnB,MAAME,EAAE,GAAGlC,iBAAiB,CAACc,OAAlB,CAA0BkB,UAA1B,CAAX;UACA,MAAMM,eAAe,GAAGJ,EAAE,CAACG,KAAH,CAAS9B,GAAT,GAAe2B,EAAE,CAACG,KAAH,CAAS/B,KAAxB,GAAgCiB,MAAxD;UAEAA,MAAM,GAAG,CAACe,eAAD,GAAmBf,MAA5B;UACAD,QAAQ,GAAG5B,OAAO,CAAC4B,QAAD,EAAWY,EAAE,CAACG,KAAH,CAAS/B,KAApB,EAA2B4B,EAAE,CAACG,KAAH,CAAS/B,KAAT,GAAiBgC,eAA5C,EAA6D,EAA7D,CAAlB;UAEAtC,iBAAiB,CAACc,OAAlB,CAA0ByB,MAA1B,CAAiCP,UAAjC,EAA6C,CAA7C;QACD;QAED;;;QACAhC,iBAAiB,CAACc,OAAlB,GAA4Bf,cAAc,CAAC2B,8BAAf,CAC1BH,MAD0B,EAE1BnB,SAAS,CAACG,GAFgB,EAG1BP,iBAAiB,CAACc,OAHQ,CAA5B;MAKD;IACF;;IAEDX,OAAO,CAACmB,QAAD,CAAP;EACD,CAjEoC,CAArC;EAmEA,OAAO;IACLrB,YADK;IAELG,SAFK;IAGLoC,iBAAiB,EAAE7C,gBAAgB,CAAE8C,CAAD,IAAgE;MAClG,MAAMC,eAAe,GAAG,EAAE,GAAGD,CAAC,CAACE,WAAF,CAAcvC;MAAnB,CAAxB,CADkG,CAGlG;;MACAwC,UAAU,CAAC,MAAM;QACf,MAAMC,aAAa,GAAG7C,iBAAiB,CAACc,OAAlB,CAA0BgC,IAA1B,CAAgCZ,EAAD,IACnDnC,cAAc,CAACoC,YAAf,CAA4BC,QAA5B,CAAqCF,EAAE,CAACG,KAAxC,EAA+CK,eAA/C,CADoB,CAAtB,CADe,CAKf;;QACA,IAAIG,aAAJ,EAAmB;UAAA;;UACjB,MAAME,cAAc,GAAG;YAAEzC,KAAK,EAAEuC,aAAa,CAACR,KAAd,CAAoB/B,KAA7B;YAAoCC,GAAG,EAAEsC,aAAa,CAACR,KAAd,CAAoB9B;UAA7D,CAAvB;UACA,yBAAAN,YAAY,CAACa,OAAb,gFAAsBkC,cAAtB,CAAqC;YAAE5C,SAAS,EAAE2C;UAAb,CAArC,EAFiB,CAGjB;UACA;;UACA,IAAItD,QAAQ,CAACwD,EAAT,KAAgB,SAApB,EAA+B;YAC7BL,UAAU,CAAC,MAAM;cAAA;;cACf,0BAAA3C,YAAY,CAACa,OAAb,kFAAsBkC,cAAtB,CAAqC;gBAAE5C,SAAS,EAAE;kBAAEE,KAAK,EAAE;gBAAT;cAAb,CAArC;YACD,CAFS,EAEP,GAFO,CAAV;UAGD;;UACDD,YAAY,CAAC0C,cAAD,CAAZ;QACD,CAXD,MAWO;UACL1C,YAAY,CAACqC,eAAD,CAAZ;QACD;MACF,CApBS,EAoBP,EApBO,CAAV;IAqBD,CAzBkC,CAH9B;IA6BLxC,IA7BK;IA8BLgB,YA9BK;IA+BLL,cAAc,EAAEb,iBAAiB,CAACc;EA/B7B,CAAP;AAiCD,CA/HD;;AAiIA,eAAejB,mBAAf"}
@@ -2,6 +2,8 @@
2
2
  import { Platform } from 'react-native';
3
3
  import { Logger } from '@sendbird/uikit-utils';
4
4
  export { default as MessageRenderer } from './components/MessageRenderer';
5
+ export { ReactionAddons } from './components/ReactionAddons';
6
+ export { ReactionBottomSheets } from './components/ReactionBottomSheets';
5
7
  export { default as ChannelCover } from './components/ChannelCover';
6
8
  export { default as ChatFlatList } from './components/ChatFlatList';
7
9
  export { default as FileViewer } from './components/FileViewer';
@@ -25,6 +27,7 @@ export { default as createGroupChannelOperatorsFragment } from './fragments/crea
25
27
  export { default as createGroupChannelRegisterOperatorFragment } from './fragments/createGroupChannelRegisterOperatorFragment';
26
28
  export { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';
27
29
  export { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';
30
+ export { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';
28
31
  /** Context **/
29
32
 
30
33
  export { SendbirdChatContext, SendbirdChatProvider } from './contexts/SendbirdChatCtx';
@@ -35,7 +38,7 @@ export { LocalizationContext, LocalizationProvider } from './contexts/Localizati
35
38
 
36
39
  export { default as useConnection } from './hooks/useConnection';
37
40
  export { default as usePushTokenRegistration } from './hooks/usePushTokenRegistration';
38
- export { useLocalization, usePlatformService, useSendbirdChat, useUserProfile } from './hooks/useContext';
41
+ export * from './hooks/useContext';
39
42
  /** Localization **/
40
43
 
41
44
  export { default as StringSetEn } from './localization/StringSet.en';
@@ -55,10 +58,12 @@ export { default as createExpoMediaService } from './platform/createMediaService
55
58
  export * from './domain/groupChannel';
56
59
  export * from './domain/groupChannelSettings';
57
60
  export * from './domain/groupChannelList';
58
- export * from './domain/userList';
61
+ export * from './domain/groupChannelNotifications';
62
+ export { GroupChannelNotificationsProps, GroupChannelNotificationsContextsType, GroupChannelNotificationsFragment, GroupChannelNotificationsModule } from './domain/groupChannelNotifications/types';
59
63
  export * from './domain/groupChannelUserList/types';
60
- /** UIKit **/
64
+ export * from './domain/userList';
61
65
 
66
+ /** UIKit **/
62
67
  export { default as SendbirdUIKitContainer, SendbirdUIKit } from './containers/SendbirdUIKitContainer';
63
68
  export { default as SBUError } from './libs/SBUError';
64
69
  export * from './types';