@sendbird/uikit-react-native 2.0.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/components/ChannelCover.js +22 -1
  3. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  4. package/lib/commonjs/components/ChatFlatList.js +2 -1
  5. package/lib/commonjs/components/ChatFlatList.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 +25 -10
  11. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  12. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +9 -2
  13. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.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 +99 -14
  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 +23 -4
  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/components/TypedPlaceholder.js +2 -2
  36. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  37. package/lib/commonjs/components/UserActionBar.js +7 -4
  38. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  39. package/lib/commonjs/constants.js +3 -1
  40. package/lib/commonjs/constants.js.map +1 -1
  41. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +9 -1
  42. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  43. package/lib/commonjs/containers/SendbirdUIKitContainer.js +130 -83
  44. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  45. package/lib/commonjs/contexts/{Localization.js → LocalizationCtx.js} +1 -1
  46. package/lib/commonjs/contexts/LocalizationCtx.js.map +1 -0
  47. package/lib/commonjs/contexts/{PlatformService.js → PlatformServiceCtx.js} +1 -1
  48. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -0
  49. package/lib/commonjs/contexts/ReactionCtx.js +107 -0
  50. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -0
  51. package/lib/commonjs/contexts/{SendbirdChat.js → SendbirdChatCtx.js} +21 -7
  52. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -0
  53. package/lib/commonjs/contexts/UserProfileCtx.js +125 -0
  54. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -0
  55. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +34 -36
  56. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  57. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +31 -12
  58. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  59. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +129 -35
  60. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  61. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +31 -12
  62. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  63. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +210 -0
  64. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
  65. package/lib/commonjs/domain/groupChannel/index.js +8 -0
  66. package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
  67. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +4 -0
  68. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  69. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +4 -4
  70. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  71. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  72. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +39 -0
  73. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
  74. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +54 -0
  75. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
  76. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +34 -0
  77. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
  78. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +38 -0
  79. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
  80. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +34 -0
  81. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
  82. package/lib/commonjs/domain/groupChannelBannedUsers/index.js +62 -0
  83. package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -0
  84. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +45 -0
  85. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
  86. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +45 -0
  87. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
  88. package/lib/commonjs/domain/groupChannelBannedUsers/types.js +6 -0
  89. package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -0
  90. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +2 -1
  91. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  92. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +32 -30
  93. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  94. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  95. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +39 -0
  96. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
  97. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +103 -0
  98. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
  99. package/lib/commonjs/domain/groupChannelModeration/index.js +46 -0
  100. package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -0
  101. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +33 -0
  102. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
  103. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +46 -0
  104. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
  105. package/lib/commonjs/domain/groupChannelModeration/types.js +6 -0
  106. package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -0
  107. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +39 -0
  108. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
  109. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +52 -0
  110. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
  111. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +34 -0
  112. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
  113. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +38 -0
  114. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
  115. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +34 -0
  116. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
  117. package/lib/commonjs/domain/groupChannelMutedMembers/index.js +70 -0
  118. package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -0
  119. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +45 -0
  120. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
  121. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +45 -0
  122. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
  123. package/lib/commonjs/domain/groupChannelMutedMembers/types.js +6 -0
  124. package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -0
  125. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +39 -0
  126. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
  127. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +140 -0
  128. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
  129. package/lib/commonjs/domain/groupChannelNotifications/index.js +46 -0
  130. package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -0
  131. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +33 -0
  132. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
  133. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +45 -0
  134. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
  135. package/lib/commonjs/domain/groupChannelNotifications/types.js +6 -0
  136. package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -0
  137. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +44 -0
  138. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
  139. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +52 -0
  140. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
  141. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +34 -0
  142. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
  143. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +38 -0
  144. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
  145. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +34 -0
  146. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
  147. package/lib/commonjs/domain/groupChannelOperators/index.js +70 -0
  148. package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -0
  149. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +45 -0
  150. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
  151. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +45 -0
  152. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
  153. package/lib/commonjs/domain/groupChannelOperators/types.js +6 -0
  154. package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -0
  155. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -8
  156. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  157. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +60 -6
  158. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  159. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +9 -14
  160. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  161. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  162. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  163. package/lib/commonjs/domain/userList/component/UserListList.js +4 -1
  164. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  165. package/lib/commonjs/domain/userList/component/UserListStatusError.js +2 -2
  166. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
  167. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
  168. package/lib/commonjs/domain/userList/types.js.map +1 -1
  169. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +101 -0
  170. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
  171. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +9 -25
  172. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  173. package/lib/commonjs/fragments/createGroupChannelFragment.js +22 -8
  174. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  175. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +21 -37
  176. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  177. package/lib/commonjs/fragments/createGroupChannelListFragment.js +3 -11
  178. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  179. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +95 -51
  180. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  181. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +68 -0
  182. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -0
  183. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +116 -0
  184. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
  185. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +34 -0
  186. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
  187. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +129 -0
  188. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
  189. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +114 -0
  190. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
  191. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +5 -1
  192. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  193. package/lib/commonjs/hooks/useConnection.js +7 -0
  194. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  195. package/lib/commonjs/hooks/useContext.js +27 -7
  196. package/lib/commonjs/hooks/useContext.js.map +1 -1
  197. package/lib/commonjs/hooks/useKeyboardStatus.js +93 -0
  198. package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -0
  199. package/lib/commonjs/hooks/useMentionSuggestion.js +110 -0
  200. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -0
  201. package/lib/commonjs/hooks/useMentionTextInput.js +139 -0
  202. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -0
  203. package/lib/commonjs/index.js +165 -42
  204. package/lib/commonjs/index.js.map +1 -1
  205. package/lib/commonjs/libs/EmojiManager.js +100 -0
  206. package/lib/commonjs/libs/EmojiManager.js.map +1 -0
  207. package/lib/commonjs/libs/MentionConfig.js +47 -0
  208. package/lib/commonjs/libs/MentionConfig.js.map +1 -0
  209. package/lib/commonjs/libs/MentionManager.js +235 -0
  210. package/lib/commonjs/libs/MentionManager.js.map +1 -0
  211. package/lib/commonjs/localization/StringSet.type.js +77 -16
  212. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  213. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  214. package/lib/commonjs/types.js.map +1 -1
  215. package/lib/commonjs/utils/common.js +19 -0
  216. package/lib/commonjs/utils/common.js.map +1 -0
  217. package/lib/commonjs/version.js +1 -1
  218. package/lib/commonjs/version.js.map +1 -1
  219. package/lib/module/components/ChannelCover.js +22 -2
  220. package/lib/module/components/ChannelCover.js.map +1 -1
  221. package/lib/module/components/ChatFlatList.js +3 -2
  222. package/lib/module/components/ChatFlatList.js.map +1 -1
  223. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
  224. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  225. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
  226. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  227. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +25 -10
  228. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  229. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +9 -3
  230. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  231. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -12
  232. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  233. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +101 -17
  234. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  235. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -1
  236. package/lib/module/components/MessageRenderer/index.js +22 -5
  237. package/lib/module/components/MessageRenderer/index.js.map +1 -1
  238. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +132 -0
  239. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
  240. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +118 -0
  241. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
  242. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +74 -0
  243. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
  244. package/lib/module/components/ReactionAddons/index.js +7 -0
  245. package/lib/module/components/ReactionAddons/index.js.map +1 -0
  246. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +135 -0
  247. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
  248. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +259 -0
  249. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
  250. package/lib/module/components/ReactionBottomSheets/index.js +7 -0
  251. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -0
  252. package/lib/module/components/TypedPlaceholder.js +2 -2
  253. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  254. package/lib/module/components/UserActionBar.js +8 -5
  255. package/lib/module/components/UserActionBar.js.map +1 -1
  256. package/lib/module/constants.js +1 -0
  257. package/lib/module/constants.js.map +1 -1
  258. package/lib/module/containers/GroupChannelPreviewContainer.js +9 -1
  259. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  260. package/lib/module/containers/SendbirdUIKitContainer.js +123 -81
  261. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  262. package/lib/module/contexts/{Localization.js → LocalizationCtx.js} +1 -1
  263. package/lib/module/contexts/LocalizationCtx.js.map +1 -0
  264. package/lib/module/contexts/{PlatformService.js → PlatformServiceCtx.js} +1 -1
  265. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -0
  266. package/lib/module/contexts/ReactionCtx.js +85 -0
  267. package/lib/module/contexts/ReactionCtx.js.map +1 -0
  268. package/lib/module/contexts/{SendbirdChat.js → SendbirdChatCtx.js} +21 -7
  269. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -0
  270. package/lib/module/contexts/UserProfileCtx.js +101 -0
  271. package/lib/module/contexts/UserProfileCtx.js.map +1 -0
  272. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +35 -38
  273. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  274. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +27 -14
  275. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  276. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +126 -37
  277. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  278. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +32 -14
  279. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  280. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +188 -0
  281. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
  282. package/lib/module/domain/groupChannel/index.js +1 -0
  283. package/lib/module/domain/groupChannel/index.js.map +1 -1
  284. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +3 -0
  285. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  286. package/lib/module/domain/groupChannel/module/moduleContext.js +4 -4
  287. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  288. package/lib/module/domain/groupChannel/types.js.map +1 -1
  289. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +25 -0
  290. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
  291. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +41 -0
  292. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
  293. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +21 -0
  294. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
  295. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +25 -0
  296. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
  297. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +21 -0
  298. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
  299. package/lib/module/domain/groupChannelBannedUsers/index.js +7 -0
  300. package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -0
  301. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +30 -0
  302. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
  303. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +25 -0
  304. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
  305. package/lib/module/domain/groupChannelBannedUsers/types.js +2 -0
  306. package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -0
  307. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +3 -2
  308. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  309. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +34 -33
  310. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  311. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  312. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +25 -0
  313. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
  314. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +87 -0
  315. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
  316. package/lib/module/domain/groupChannelModeration/index.js +5 -0
  317. package/lib/module/domain/groupChannelModeration/index.js.map +1 -0
  318. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +21 -0
  319. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
  320. package/lib/module/domain/groupChannelModeration/module/moduleContext.js +26 -0
  321. package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
  322. package/lib/module/domain/groupChannelModeration/types.js +2 -0
  323. package/lib/module/domain/groupChannelModeration/types.js.map +1 -0
  324. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +25 -0
  325. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
  326. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +39 -0
  327. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
  328. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +21 -0
  329. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
  330. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +25 -0
  331. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
  332. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +21 -0
  333. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
  334. package/lib/module/domain/groupChannelMutedMembers/index.js +8 -0
  335. package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -0
  336. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +30 -0
  337. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
  338. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +25 -0
  339. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
  340. package/lib/module/domain/groupChannelMutedMembers/types.js +2 -0
  341. package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -0
  342. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +25 -0
  343. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
  344. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +122 -0
  345. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
  346. package/lib/module/domain/groupChannelNotifications/index.js +5 -0
  347. package/lib/module/domain/groupChannelNotifications/index.js.map +1 -0
  348. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +21 -0
  349. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
  350. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +25 -0
  351. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
  352. package/lib/module/domain/groupChannelNotifications/types.js +2 -0
  353. package/lib/module/domain/groupChannelNotifications/types.js.map +1 -0
  354. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +30 -0
  355. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
  356. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +39 -0
  357. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
  358. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +21 -0
  359. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
  360. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +25 -0
  361. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
  362. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +21 -0
  363. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
  364. package/lib/module/domain/groupChannelOperators/index.js +8 -0
  365. package/lib/module/domain/groupChannelOperators/index.js.map +1 -0
  366. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +30 -0
  367. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
  368. package/lib/module/domain/groupChannelOperators/module/moduleContext.js +25 -0
  369. package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
  370. package/lib/module/domain/groupChannelOperators/types.js +2 -0
  371. package/lib/module/domain/groupChannelOperators/types.js.map +1 -0
  372. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +2 -8
  373. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  374. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +57 -6
  375. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  376. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +10 -15
  377. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  378. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  379. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  380. package/lib/module/domain/userList/component/UserListList.js +3 -1
  381. package/lib/module/domain/userList/component/UserListList.js.map +1 -1
  382. package/lib/module/domain/userList/component/UserListStatusError.js +2 -2
  383. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
  384. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
  385. package/lib/module/domain/userList/types.js.map +1 -1
  386. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +84 -0
  387. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
  388. package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -26
  389. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  390. package/lib/module/fragments/createGroupChannelFragment.js +22 -8
  391. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  392. package/lib/module/fragments/createGroupChannelInviteFragment.js +22 -37
  393. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  394. package/lib/module/fragments/createGroupChannelListFragment.js +4 -11
  395. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  396. package/lib/module/fragments/createGroupChannelMembersFragment.js +99 -56
  397. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  398. package/lib/module/fragments/createGroupChannelModerationFragment.js +53 -0
  399. package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -0
  400. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +98 -0
  401. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
  402. package/lib/module/fragments/createGroupChannelNotificationsFragment.js +22 -0
  403. package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
  404. package/lib/module/fragments/createGroupChannelOperatorsFragment.js +111 -0
  405. package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
  406. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +94 -0
  407. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
  408. package/lib/module/fragments/createGroupChannelSettingsFragment.js +5 -1
  409. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  410. package/lib/module/hooks/useConnection.js +7 -0
  411. package/lib/module/hooks/useConnection.js.map +1 -1
  412. package/lib/module/hooks/useContext.js +15 -3
  413. package/lib/module/hooks/useContext.js.map +1 -1
  414. package/lib/module/hooks/useKeyboardStatus.js +75 -0
  415. package/lib/module/hooks/useKeyboardStatus.js.map +1 -0
  416. package/lib/module/hooks/useMentionSuggestion.js +100 -0
  417. package/lib/module/hooks/useMentionSuggestion.js.map +1 -0
  418. package/lib/module/hooks/useMentionTextInput.js +128 -0
  419. package/lib/module/hooks/useMentionTextInput.js.map +1 -0
  420. package/lib/module/index.js +17 -6
  421. package/lib/module/index.js.map +1 -1
  422. package/lib/module/libs/EmojiManager.js +90 -0
  423. package/lib/module/libs/EmojiManager.js.map +1 -0
  424. package/lib/module/libs/MentionConfig.js +39 -0
  425. package/lib/module/libs/MentionConfig.js.map +1 -0
  426. package/lib/module/libs/MentionManager.js +223 -0
  427. package/lib/module/libs/MentionManager.js.map +1 -0
  428. package/lib/module/localization/StringSet.type.js +78 -17
  429. package/lib/module/localization/StringSet.type.js.map +1 -1
  430. package/lib/module/platform/createFileService.native.js.map +1 -1
  431. package/lib/module/types.js.map +1 -1
  432. package/lib/module/utils/common.js +7 -0
  433. package/lib/module/utils/common.js.map +1 -0
  434. package/lib/module/version.js +1 -1
  435. package/lib/module/version.js.map +1 -1
  436. package/lib/typescript/__template__/types.d.ts +3 -3
  437. package/lib/typescript/src/components/ChannelCover.d.ts +2 -2
  438. package/lib/typescript/src/components/ChatFlatList.d.ts +1 -1
  439. package/lib/typescript/src/components/FileViewer.d.ts +1 -1
  440. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +1 -1
  441. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +2 -2
  442. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +1 -1
  443. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +1 -1
  444. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +11 -2
  445. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +1 -1
  446. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +1 -1
  447. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +1 -1
  448. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +1 -1
  449. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +1 -1
  450. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +1 -1
  451. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +1 -1
  452. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +2 -2
  453. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +4 -1
  454. package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -3
  455. package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
  456. package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +8 -0
  457. package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +6 -0
  458. package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +14 -0
  459. package/lib/typescript/src/components/ReactionAddons/index.d.ts +11 -0
  460. package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +3 -0
  461. package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +3 -0
  462. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +20 -0
  463. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  464. package/lib/typescript/src/components/StatusComposition.d.ts +1 -1
  465. package/lib/typescript/src/components/TypedPlaceholder.d.ts +2 -2
  466. package/lib/typescript/src/components/UserActionBar.d.ts +5 -3
  467. package/lib/typescript/src/components/UserSelectableBar.d.ts +1 -1
  468. package/lib/typescript/src/constants.d.ts +1 -0
  469. package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +1 -1
  470. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +19 -8
  471. package/lib/typescript/src/contexts/{Localization.d.ts → LocalizationCtx.d.ts} +2 -2
  472. package/lib/typescript/src/contexts/{PlatformService.d.ts → PlatformServiceCtx.d.ts} +1 -1
  473. package/lib/typescript/src/contexts/ReactionCtx.d.ts +18 -0
  474. package/lib/typescript/src/contexts/{SendbirdChat.d.ts → SendbirdChatCtx.d.ts} +17 -5
  475. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +15 -0
  476. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +36 -7
  477. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +34 -5
  478. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +20 -3
  479. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +3 -0
  480. package/lib/typescript/src/domain/groupChannel/index.d.ts +1 -0
  481. package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +1 -1
  482. package/lib/typescript/src/domain/groupChannel/types.d.ts +25 -8
  483. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +3 -0
  484. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +3 -0
  485. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -0
  486. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.d.ts +3 -0
  487. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -0
  488. package/lib/typescript/src/domain/groupChannelBannedUsers/index.d.ts +6 -0
  489. package/lib/typescript/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.d.ts +3 -0
  490. package/lib/typescript/src/domain/groupChannelBannedUsers/module/moduleContext.d.ts +3 -0
  491. package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +47 -0
  492. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -1
  493. package/lib/typescript/src/domain/groupChannelList/types.d.ts +5 -11
  494. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +3 -0
  495. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +3 -0
  496. package/lib/typescript/src/domain/groupChannelModeration/index.d.ts +4 -0
  497. package/lib/typescript/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.d.ts +3 -0
  498. package/lib/typescript/src/domain/groupChannelModeration/module/moduleContext.d.ts +3 -0
  499. package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +43 -0
  500. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +3 -0
  501. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +3 -0
  502. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -0
  503. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.d.ts +3 -0
  504. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -0
  505. package/lib/typescript/src/domain/groupChannelMutedMembers/index.d.ts +7 -0
  506. package/lib/typescript/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.d.ts +3 -0
  507. package/lib/typescript/src/domain/groupChannelMutedMembers/module/moduleContext.d.ts +3 -0
  508. package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +47 -0
  509. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +3 -0
  510. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -0
  511. package/lib/typescript/src/domain/groupChannelNotifications/index.d.ts +4 -0
  512. package/lib/typescript/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.d.ts +3 -0
  513. package/lib/typescript/src/domain/groupChannelNotifications/module/moduleContext.d.ts +3 -0
  514. package/lib/typescript/src/domain/groupChannelNotifications/types.d.ts +33 -0
  515. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +3 -0
  516. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +3 -0
  517. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -0
  518. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.d.ts +3 -0
  519. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -0
  520. package/lib/typescript/src/domain/groupChannelOperators/index.d.ts +7 -0
  521. package/lib/typescript/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.d.ts +3 -0
  522. package/lib/typescript/src/domain/groupChannelOperators/module/moduleContext.d.ts +3 -0
  523. package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +49 -0
  524. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -1
  525. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  526. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +5 -1
  527. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +17 -11
  528. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +2 -1
  529. package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +2 -2
  530. package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +2 -1
  531. package/lib/typescript/src/domain/userList/types.d.ts +4 -3
  532. package/lib/typescript/src/fragments/createGroupChannelBannedUsersFragment.d.ts +3 -0
  533. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +2 -1
  534. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +2 -1
  535. package/lib/typescript/src/fragments/createGroupChannelModerationFragment.d.ts +3 -0
  536. package/lib/typescript/src/fragments/createGroupChannelMutedMembersFragment.d.ts +3 -0
  537. package/lib/typescript/src/fragments/createGroupChannelNotificationsFragment.d.ts +3 -0
  538. package/lib/typescript/src/fragments/createGroupChannelOperatorsFragment.d.ts +3 -0
  539. package/lib/typescript/src/fragments/createGroupChannelRegisterOperatorFragment.d.ts +5 -0
  540. package/lib/typescript/src/hooks/useConnection.d.ts +1 -1
  541. package/lib/typescript/src/hooks/useContext.d.ts +7 -1
  542. package/lib/typescript/src/hooks/useKeyboardStatus.d.ts +6 -0
  543. package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +17 -0
  544. package/lib/typescript/src/hooks/useMentionTextInput.d.ts +18 -0
  545. package/lib/typescript/src/index.d.ts +16 -5
  546. package/lib/typescript/src/libs/EmojiManager.d.ts +16 -0
  547. package/lib/typescript/src/libs/MentionConfig.d.ts +24 -0
  548. package/lib/typescript/src/libs/MentionManager.d.ts +61 -0
  549. package/lib/typescript/src/localization/StringSet.type.d.ts +63 -9
  550. package/lib/typescript/src/platform/createFileService.native.d.ts +1 -1
  551. package/lib/typescript/src/platform/createMediaService.expo.d.ts +1 -1
  552. package/lib/typescript/src/platform/createMediaService.native.d.ts +1 -1
  553. package/lib/typescript/src/platform/dynamicModule.d.ts +1 -1
  554. package/lib/typescript/src/platform/types.d.ts +5 -5
  555. package/lib/typescript/src/types.d.ts +13 -4
  556. package/lib/typescript/src/utils/common.d.ts +1 -0
  557. package/lib/typescript/src/version.d.ts +1 -1
  558. package/package.json +11 -11
  559. package/src/components/ChannelCover.tsx +23 -3
  560. package/src/components/ChatFlatList.tsx +2 -1
  561. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +17 -12
  562. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +25 -18
  563. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +20 -10
  564. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +9 -2
  565. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +82 -14
  566. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +135 -61
  567. package/src/components/MessageRenderer/UserMessage/index.tsx +8 -1
  568. package/src/components/MessageRenderer/index.tsx +40 -8
  569. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +106 -0
  570. package/src/components/ReactionAddons/MessageReactionAddon.tsx +123 -0
  571. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +71 -0
  572. package/src/components/ReactionAddons/index.tsx +7 -0
  573. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +113 -0
  574. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +249 -0
  575. package/src/components/ReactionBottomSheets/index.tsx +24 -0
  576. package/src/components/TypedPlaceholder.tsx +4 -4
  577. package/src/components/UserActionBar.tsx +10 -4
  578. package/src/constants.ts +2 -0
  579. package/src/containers/GroupChannelPreviewContainer.tsx +8 -1
  580. package/src/containers/SendbirdUIKitContainer.tsx +161 -84
  581. package/src/contexts/{Localization.tsx → LocalizationCtx.tsx} +0 -0
  582. package/src/contexts/{PlatformService.tsx → PlatformServiceCtx.tsx} +0 -0
  583. package/src/contexts/ReactionCtx.tsx +102 -0
  584. package/src/contexts/{SendbirdChat.tsx → SendbirdChatCtx.tsx} +34 -6
  585. package/src/contexts/UserProfileCtx.tsx +135 -0
  586. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +57 -29
  587. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +56 -13
  588. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +138 -41
  589. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +27 -10
  590. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +173 -0
  591. package/src/domain/groupChannel/index.ts +1 -0
  592. package/src/domain/groupChannel/module/createGroupChannelModule.tsx +12 -1
  593. package/src/domain/groupChannel/module/moduleContext.tsx +4 -4
  594. package/src/domain/groupChannel/types.ts +29 -6
  595. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.tsx +14 -0
  596. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +33 -0
  597. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.tsx +18 -0
  598. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.tsx +19 -0
  599. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.tsx +18 -0
  600. package/src/domain/groupChannelBannedUsers/index.ts +6 -0
  601. package/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.tsx +21 -0
  602. package/src/domain/groupChannelBannedUsers/module/moduleContext.tsx +30 -0
  603. package/src/domain/groupChannelBannedUsers/types.ts +50 -0
  604. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -1
  605. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +37 -43
  606. package/src/domain/groupChannelList/types.ts +3 -9
  607. package/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.tsx +14 -0
  608. package/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.tsx +84 -0
  609. package/src/domain/groupChannelModeration/index.ts +4 -0
  610. package/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.tsx +15 -0
  611. package/src/domain/groupChannelModeration/module/moduleContext.tsx +33 -0
  612. package/src/domain/groupChannelModeration/types.ts +48 -0
  613. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.tsx +14 -0
  614. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +31 -0
  615. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.tsx +18 -0
  616. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.tsx +19 -0
  617. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.tsx +18 -0
  618. package/src/domain/groupChannelMutedMembers/index.ts +7 -0
  619. package/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.tsx +21 -0
  620. package/src/domain/groupChannelMutedMembers/module/moduleContext.tsx +30 -0
  621. package/src/domain/groupChannelMutedMembers/types.ts +50 -0
  622. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.tsx +14 -0
  623. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +128 -0
  624. package/src/domain/groupChannelNotifications/index.ts +4 -0
  625. package/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.tsx +15 -0
  626. package/src/domain/groupChannelNotifications/module/moduleContext.tsx +31 -0
  627. package/src/domain/groupChannelNotifications/types.ts +38 -0
  628. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.tsx +25 -0
  629. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +30 -0
  630. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.tsx +18 -0
  631. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.tsx +19 -0
  632. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.tsx +18 -0
  633. package/src/domain/groupChannelOperators/index.ts +7 -0
  634. package/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.tsx +21 -0
  635. package/src/domain/groupChannelOperators/module/moduleContext.tsx +30 -0
  636. package/src/domain/groupChannelOperators/types.ts +52 -0
  637. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +2 -7
  638. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +51 -3
  639. package/src/domain/groupChannelSettings/module/moduleContext.tsx +9 -12
  640. package/src/domain/groupChannelSettings/types.ts +4 -0
  641. package/src/domain/groupChannelUserList/types.ts +31 -11
  642. package/src/domain/userList/component/UserListList.tsx +5 -1
  643. package/src/domain/userList/component/UserListStatusError.tsx +2 -2
  644. package/src/domain/userList/module/createUserListModule.tsx +3 -1
  645. package/src/domain/userList/types.ts +4 -1
  646. package/src/fragments/createGroupChannelBannedUsersFragment.tsx +80 -0
  647. package/src/fragments/createGroupChannelCreateFragment.tsx +18 -32
  648. package/src/fragments/createGroupChannelFragment.tsx +31 -11
  649. package/src/fragments/createGroupChannelInviteFragment.tsx +28 -50
  650. package/src/fragments/createGroupChannelListFragment.tsx +4 -10
  651. package/src/fragments/createGroupChannelMembersFragment.tsx +110 -67
  652. package/src/fragments/createGroupChannelModerationFragment.tsx +57 -0
  653. package/src/fragments/createGroupChannelMutedMembersFragment.tsx +93 -0
  654. package/src/fragments/createGroupChannelNotificationsFragment.tsx +27 -0
  655. package/src/fragments/createGroupChannelOperatorsFragment.tsx +101 -0
  656. package/src/fragments/createGroupChannelRegisterOperatorFragment.tsx +94 -0
  657. package/src/fragments/createGroupChannelSettingsFragment.tsx +11 -1
  658. package/src/hooks/useConnection.ts +5 -1
  659. package/src/hooks/useContext.ts +17 -3
  660. package/src/hooks/useKeyboardStatus.ts +54 -0
  661. package/src/hooks/useMentionSuggestion.ts +106 -0
  662. package/src/hooks/useMentionTextInput.ts +139 -0
  663. package/src/index.ts +22 -5
  664. package/src/libs/EmojiManager.ts +80 -0
  665. package/src/libs/MentionConfig.ts +40 -0
  666. package/src/libs/MentionManager.tsx +240 -0
  667. package/src/localization/StringSet.type.ts +137 -22
  668. package/src/platform/createFileService.native.ts +1 -1
  669. package/src/types.ts +12 -0
  670. package/src/utils/common.ts +8 -0
  671. package/src/version.ts +1 -1
  672. package/lib/commonjs/contexts/Localization.js.map +0 -1
  673. package/lib/commonjs/contexts/PlatformService.js.map +0 -1
  674. package/lib/commonjs/contexts/SendbirdChat.js.map +0 -1
  675. package/lib/module/contexts/Localization.js.map +0 -1
  676. package/lib/module/contexts/PlatformService.js.map +0 -1
  677. package/lib/module/contexts/SendbirdChat.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["name","createGroupChannelOperatorsFragment","initModule","GroupChannelOperatorsModule","createGroupChannelOperatorsModule","channel","onPressHeaderLeft","onPressHeaderRight","renderUser","uniqId","useUniqId","STRINGS","useLocalization","sdk","currentUser","useSendbirdChat","openMenu","useActionMenu","show","useUserProfile","users","deleteUser","upsertUser","loading","refresh","next","error","useUserList","queryCreator","createOperatorListQuery","limit","useChannelHandler","onUserLeft","eventChannel","user","isDifferentChannel","userId","onUserBanned","onOperatorUpdated","updatedUsers","operatorsAdded","length","forEach","_renderUser","useFreshCallback","props","profileUrl","nickname","LABELS","USER_NO_NAME","USER_BAR_ME_POSTFIX","ifOperator","myRole","title","menuItems","UNREGISTER_OPERATOR","onPress","removeOperators","then","Boolean"],"sources":["createGroupChannelOperatorsFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useChannelHandler, useUserList } from '@sendbird/uikit-chat-hooks';\nimport { useActionMenu } from '@sendbird/uikit-react-native-foundation';\nimport { ifOperator, isDifferentChannel, useFreshCallback, useUniqId } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserActionBar from '../components/UserActionBar';\nimport { createGroupChannelOperatorsModule } from '../domain/groupChannelOperators';\nimport type { GroupChannelOperatorsFragment, GroupChannelOperatorsModule } from '../domain/groupChannelOperators/types';\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../hooks/useContext';\n\nconst name = 'createGroupChannelOperatorsFragment';\nconst createGroupChannelOperatorsFragment = (\n initModule?: Partial<GroupChannelOperatorsModule>,\n): GroupChannelOperatorsFragment => {\n const GroupChannelOperatorsModule = createGroupChannelOperatorsModule(initModule);\n\n return ({ channel, onPressHeaderLeft, onPressHeaderRight, renderUser }) => {\n const uniqId = useUniqId(name);\n\n const { STRINGS } = useLocalization();\n const { sdk, currentUser } = useSendbirdChat();\n const { openMenu } = useActionMenu();\n const { show } = useUserProfile();\n\n const { users, deleteUser, upsertUser, loading, refresh, next, error } = useUserList(sdk, {\n queryCreator: () => channel.createOperatorListQuery({ limit: 20 }),\n });\n\n useChannelHandler(sdk, `${name}_${uniqId}`, {\n onUserLeft(eventChannel, user) {\n if (isDifferentChannel(eventChannel, channel)) return;\n deleteUser(user.userId);\n },\n onUserBanned(eventChannel, user) {\n if (isDifferentChannel(eventChannel, channel)) return;\n deleteUser(user.userId);\n },\n onOperatorUpdated(eventChannel, updatedUsers) {\n if (isDifferentChannel(eventChannel, channel)) return;\n const operatorsAdded = users.length < updatedUsers.length;\n if (operatorsAdded) updatedUsers.forEach(upsertUser);\n },\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((props) => {\n if (renderUser) return renderUser(props);\n\n const { user } = props;\n return (\n <UserActionBar\n muted={false}\n uri={user.profileUrl}\n name={\n (user.nickname || STRINGS.LABELS.USER_NO_NAME) +\n (user.userId === currentUser?.userId ? STRINGS.LABELS.USER_BAR_ME_POSTFIX : '')\n }\n disabled={user.userId === currentUser?.userId}\n onPressAvatar={() => show(user)}\n onPressActionMenu={ifOperator(channel.myRole, () => {\n openMenu({\n title: user.nickname || STRINGS.LABELS.USER_NO_NAME,\n menuItems: [\n {\n title: STRINGS.LABELS.UNREGISTER_OPERATOR,\n onPress: () => channel.removeOperators([user.userId]).then(() => deleteUser(user.userId)),\n },\n ],\n });\n })}\n />\n );\n });\n\n return (\n <GroupChannelOperatorsModule.Provider channel={channel}>\n <GroupChannelOperatorsModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={onPressHeaderRight}\n />\n\n <StatusComposition\n loading={loading}\n LoadingComponent={<GroupChannelOperatorsModule.StatusLoading />}\n error={Boolean(error)}\n ErrorComponent={<GroupChannelOperatorsModule.StatusError onPressRetry={refresh} />}\n >\n <GroupChannelOperatorsModule.List\n operators={users}\n renderUser={_renderUser}\n onLoadNext={next}\n ListEmptyComponent={<GroupChannelOperatorsModule.StatusEmpty />}\n />\n </StatusComposition>\n </GroupChannelOperatorsModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelOperatorsFragment;\n"],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _uikitChatHooks = require("@sendbird/uikit-chat-hooks");
13
+
14
+ var _StatusComposition = _interopRequireDefault(require("../components/StatusComposition"));
15
+
16
+ var _UserSelectableBar = _interopRequireDefault(require("../components/UserSelectableBar"));
17
+
18
+ var _createUserListModule = _interopRequireDefault(require("../domain/userList/module/createUserListModule"));
19
+
20
+ var _useContext = require("../hooks/useContext");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ const createGroupChannelRegisterOperatorFragment = initModule => {
29
+ const UserListModule = (0, _createUserListModule.default)(initModule);
30
+ return _ref => {
31
+ let {
32
+ channel,
33
+ onPressHeaderLeft,
34
+ sortComparator,
35
+ renderUser,
36
+ onPressHeaderRight
37
+ } = _ref;
38
+ const {
39
+ sdk,
40
+ currentUser
41
+ } = (0, _useContext.useSendbirdChat)();
42
+ const {
43
+ STRINGS
44
+ } = (0, _useContext.useLocalization)();
45
+ const {
46
+ users,
47
+ refreshing,
48
+ refresh,
49
+ next,
50
+ error,
51
+ loading
52
+ } = (0, _uikitChatHooks.useUserList)(sdk, {
53
+ queryCreator: () => channel.createMemberListQuery({
54
+ limit: 20
55
+ }),
56
+ sortComparator
57
+ });
58
+
59
+ const _renderUser = (0, _react.useCallback)((user, selectedUsers, setSelectedUsers) => {
60
+ if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
61
+ const userIdx = selectedUsers.findIndex(u => u.userId === user.userId);
62
+ const isSelected = userIdx > -1;
63
+ const isOperator = user.role === 'operator';
64
+ return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
65
+ activeOpacity: 0.7,
66
+ disabled: isOperator,
67
+ onPress: () => {
68
+ setSelectedUsers(_ref2 => {
69
+ let [...draft] = _ref2;
70
+ if (isSelected) draft.splice(userIdx, 1);else draft.push(user);
71
+ return draft;
72
+ });
73
+ }
74
+ }, /*#__PURE__*/_react.default.createElement(_UserSelectableBar.default, {
75
+ uri: user.profileUrl,
76
+ name: (user.nickname || STRINGS.LABELS.USER_NO_NAME) + (user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? STRINGS.LABELS.USER_BAR_ME_POSTFIX : ''),
77
+ selected: isOperator || isSelected,
78
+ disabled: isOperator
79
+ }));
80
+ }, [channel, renderUser]);
81
+
82
+ return /*#__PURE__*/_react.default.createElement(UserListModule.Provider, {
83
+ headerRight: selectedUsers => STRINGS.GROUP_CHANNEL_REGISTER_OPERATOR.HEADER_RIGHT({
84
+ selectedUsers
85
+ }),
86
+ headerTitle: STRINGS.GROUP_CHANNEL_REGISTER_OPERATOR.HEADER_TITLE
87
+ }, /*#__PURE__*/_react.default.createElement(UserListModule.Header, {
88
+ shouldActivateHeaderRight: selectedUsers => selectedUsers.length > 0,
89
+ onPressHeaderLeft: onPressHeaderLeft,
90
+ onPressHeaderRight: async users => {
91
+ await channel.addOperators(users.map(it => it.userId));
92
+ onPressHeaderRight(channel);
93
+ }
94
+ }), /*#__PURE__*/_react.default.createElement(_StatusComposition.default, {
95
+ loading: loading,
96
+ error: Boolean(error),
97
+ LoadingComponent: /*#__PURE__*/_react.default.createElement(UserListModule.StatusLoading, null),
98
+ ErrorComponent: /*#__PURE__*/_react.default.createElement(UserListModule.StatusError, {
99
+ onPressRetry: () => refresh()
100
+ })
101
+ }, /*#__PURE__*/_react.default.createElement(UserListModule.List, {
102
+ onLoadNext: next,
103
+ users: users,
104
+ renderUser: _renderUser,
105
+ onRefresh: refresh,
106
+ refreshing: refreshing,
107
+ ListEmptyComponent: /*#__PURE__*/_react.default.createElement(UserListModule.StatusEmpty, null)
108
+ })));
109
+ };
110
+ };
111
+
112
+ var _default = createGroupChannelRegisterOperatorFragment;
113
+ exports.default = _default;
114
+ //# sourceMappingURL=createGroupChannelRegisterOperatorFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createGroupChannelRegisterOperatorFragment","initModule","UserListModule","createUserListModule","channel","onPressHeaderLeft","sortComparator","renderUser","onPressHeaderRight","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","users","refreshing","refresh","next","error","loading","useUserList","queryCreator","createMemberListQuery","limit","_renderUser","useCallback","user","selectedUsers","setSelectedUsers","userIdx","findIndex","u","userId","isSelected","isOperator","role","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","USER_BAR_ME_POSTFIX","GROUP_CHANNEL_REGISTER_OPERATOR","HEADER_RIGHT","HEADER_TITLE","length","addOperators","map","it","Boolean"],"sources":["createGroupChannelRegisterOperatorFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdMember } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelRegisterOperatorFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelRegisterOperatorFragment = (\n initModule?: Partial<UserListModule<SendbirdMember>>,\n): GroupChannelRegisterOperatorFragment<SendbirdMember> => {\n const UserListModule = createUserListModule<SendbirdMember>(initModule);\n\n return ({ channel, onPressHeaderLeft, sortComparator, renderUser, onPressHeaderRight }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, refresh, next, error, loading } = useUserList(sdk, {\n queryCreator: () => channel.createMemberListQuery({ limit: 20 }),\n sortComparator,\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const userIdx = selectedUsers.findIndex((u) => u.userId === user.userId);\n const isSelected = userIdx > -1;\n const isOperator = user.role === 'operator';\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={isOperator}\n onPress={() => {\n setSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdx, 1);\n else draft.push(user);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={user.profileUrl}\n name={\n (user.nickname || STRINGS.LABELS.USER_NO_NAME) +\n (user.userId === currentUser?.userId ? STRINGS.LABELS.USER_BAR_ME_POSTFIX : '')\n }\n selected={isOperator || isSelected}\n disabled={isOperator}\n />\n </TouchableOpacity>\n );\n },\n [channel, renderUser],\n );\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_REGISTER_OPERATOR.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_REGISTER_OPERATOR.HEADER_TITLE}\n >\n <UserListModule.Header\n shouldActivateHeaderRight={(selectedUsers) => selectedUsers.length > 0}\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n await channel.addOperators(users.map((it) => it.userId));\n onPressHeaderRight(channel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelRegisterOperatorFragment;\n"],"mappings":"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"}
@@ -25,8 +25,10 @@ const createGroupChannelSettingsFragment = initModule => {
25
25
  let {
26
26
  onPressHeaderLeft = _uikitUtils.NOOP,
27
27
  channel,
28
+ onPressMenuModeration,
28
29
  onPressMenuMembers,
29
30
  onPressMenuLeaveChannel,
31
+ onPressMenuNotification,
30
32
  menuItemsCreator
31
33
  } = _ref;
32
34
  const {
@@ -50,8 +52,10 @@ const createGroupChannelSettingsFragment = initModule => {
50
52
  }
51
53
  }, /*#__PURE__*/_react.default.createElement(GroupChannelSettingsModule.Info, null), /*#__PURE__*/_react.default.createElement(GroupChannelSettingsModule.Menu, {
52
54
  menuItemsCreator: menuItemsCreator,
55
+ onPressMenuModeration: onPressMenuModeration,
53
56
  onPressMenuMembers: onPressMenuMembers,
54
- onPressMenuLeaveChannel: onPressMenuLeaveChannel
57
+ onPressMenuLeaveChannel: onPressMenuLeaveChannel,
58
+ onPressMenuNotification: onPressMenuNotification
55
59
  })));
56
60
  };
57
61
  };
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupChannelSettingsFragment","initModule","GroupChannelSettingsModule","createGroupChannelSettingsModule","onPressHeaderLeft","NOOP","channel","onPressMenuMembers","onPressMenuLeaveChannel","menuItemsCreator","colors","useUIKitTheme","left","right","useSafeAreaInsets","backgroundColor","background","paddingLeft","styles","viewContainer","paddingHorizontal","paddingRight","createStyleSheet"],"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 ({ onPressHeaderLeft = NOOP, channel, onPressMenuMembers, onPressMenuLeaveChannel, menuItemsCreator }) => {\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 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;;AACA;;AACA;;AAEA;;AACA;;AAEA;;;;AAGA,MAAMA,kCAAkC,GACtCC,UADyC,IAER;EACjC,MAAMC,0BAA0B,GAAG,IAAAC,yCAAA,EAAiCF,UAAjC,CAAnC;EAEA,OAAO,QAA0G;IAAA,IAAzG;MAAEG,iBAAiB,GAAGC,gBAAtB;MAA4BC,OAA5B;MAAqCC,kBAArC;MAAyDC,uBAAzD;MAAkFC;IAAlF,CAAyG;IAC/G,MAAM;MAAEC;IAAF,IAAa,IAAAC,yCAAA,GAAnB;IACA,MAAM;MAAEC,IAAF;MAAQC;IAAR,IAAkB,IAAAC,6CAAA,GAAxB;IAEA,oBACE,6BAAC,0BAAD,CAA4B,QAA5B;MAAqC,OAAO,EAAER;IAA9C,gBACE,6BAAC,0BAAD,CAA4B,MAA5B;MAAmC,iBAAiB,EAAEF;IAAtD,EADF,eAEE,6BAAC,uBAAD;MACE,KAAK,EAAE;QAAEW,eAAe,EAAEL,MAAM,CAACM;MAA1B,CADT;MAEE,qBAAqB,EAAE;QACrBC,WAAW,EAAEL,IAAI,GAAGM,MAAM,CAACC,aAAP,CAAqBC,iBADpB;QAErBC,YAAY,EAAER,KAAK,GAAGK,MAAM,CAACC,aAAP,CAAqBC;MAFtB;IAFzB,gBAOE,6BAAC,0BAAD,CAA4B,IAA5B,OAPF,eAQE,6BAAC,0BAAD,CAA4B,IAA5B;MACE,gBAAgB,EAAEX,gBADpB;MAEE,kBAAkB,EAAEF,kBAFtB;MAGE,uBAAuB,EAAEC;IAH3B,EARF,CAFF,CADF;EAmBD,CAvBD;AAwBD,CA7BD;;AA+BA,MAAMU,MAAM,GAAG,IAAAI,4CAAA,EAAiB;EAC9BH,aAAa,EAAE;IACbC,iBAAiB,EAAE;EADN;AADe,CAAjB,CAAf;eAMepB,kC"}
1
+ {"version":3,"names":["createGroupChannelSettingsFragment","initModule","GroupChannelSettingsModule","createGroupChannelSettingsModule","onPressHeaderLeft","NOOP","channel","onPressMenuModeration","onPressMenuMembers","onPressMenuLeaveChannel","onPressMenuNotification","menuItemsCreator","colors","useUIKitTheme","left","right","useSafeAreaInsets","backgroundColor","background","paddingLeft","styles","viewContainer","paddingHorizontal","paddingRight","createStyleSheet"],"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;;AACA;;AACA;;AAEA;;AACA;;AAEA;;;;AAGA,MAAMA,kCAAkC,GACtCC,UADyC,IAER;EACjC,MAAMC,0BAA0B,GAAG,IAAAC,yCAAA,EAAiCF,UAAjC,CAAnC;EAEA,OAAO,QAQD;IAAA,IARE;MACNG,iBAAiB,GAAGC,gBADd;MAENC,OAFM;MAGNC,qBAHM;MAINC,kBAJM;MAKNC,uBALM;MAMNC,uBANM;MAONC;IAPM,CAQF;IACJ,MAAM;MAAEC;IAAF,IAAa,IAAAC,yCAAA,GAAnB;IACA,MAAM;MAAEC,IAAF;MAAQC;IAAR,IAAkB,IAAAC,6CAAA,GAAxB;IAEA,oBACE,6BAAC,0BAAD,CAA4B,QAA5B;MAAqC,OAAO,EAAEV;IAA9C,gBACE,6BAAC,0BAAD,CAA4B,MAA5B;MAAmC,iBAAiB,EAAEF;IAAtD,EADF,eAEE,6BAAC,uBAAD;MACE,KAAK,EAAE;QAAEa,eAAe,EAAEL,MAAM,CAACM;MAA1B,CADT;MAEE,qBAAqB,EAAE;QACrBC,WAAW,EAAEL,IAAI,GAAGM,MAAM,CAACC,aAAP,CAAqBC,iBADpB;QAErBC,YAAY,EAAER,KAAK,GAAGK,MAAM,CAACC,aAAP,CAAqBC;MAFtB;IAFzB,gBAOE,6BAAC,0BAAD,CAA4B,IAA5B,OAPF,eAQE,6BAAC,0BAAD,CAA4B,IAA5B;MACE,gBAAgB,EAAEX,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,MAAMU,MAAM,GAAG,IAAAI,4CAAA,EAAiB;EAC9BH,aAAa,EAAE;IACbC,iBAAiB,EAAE;EADN;AADe,CAAjB,CAAf;eAMetB,kC"}
@@ -20,6 +20,7 @@ const cacheRestrictCodes = [400300, 400301, 400302, 400310];
20
20
  const useConnection = () => {
21
21
  const {
22
22
  sdk,
23
+ emojiManager,
23
24
  setCurrentUser,
24
25
  features
25
26
  } = (0, _useContext.useSendbirdChat)();
@@ -39,6 +40,10 @@ const useConnection = () => {
39
40
  await sdk.updateCurrentUserInfo({
40
41
  nickname: opts.nickname
41
42
  }).then(updatedUser => user = updatedUser).catch(e => _uikitUtils.Logger.warn('[useConnection]', 'nickname-sync failure', e));
43
+ } else if (features.useUserIdForNicknameEnabled) {
44
+ await sdk.updateCurrentUserInfo({
45
+ nickname: userId
46
+ }).then(updatedUser => user = updatedUser);
42
47
  }
43
48
 
44
49
  if (features.autoPushTokenRegistrationEnabled) {
@@ -52,6 +57,7 @@ const useConnection = () => {
52
57
  _uikitUtils.Logger.debug('[useConnection]', 'connected! (online)');
53
58
 
54
59
  setCurrentUser(user);
60
+ sdk.getAllEmoji().then(emojiManager.init);
55
61
  return user;
56
62
  } catch (e) {
57
63
  const error = e;
@@ -67,6 +73,7 @@ const useConnection = () => {
67
73
  _uikitUtils.Logger.debug('[useConnection]', 'connected! (offline)');
68
74
 
69
75
  setCurrentUser(sdk.currentUser);
76
+ sdk.getAllEmoji().finally(emojiManager.init);
70
77
  return sdk.currentUser;
71
78
  }
72
79
  }
@@ -1 +1 @@
1
- {"version":3,"names":["cacheRestrictCodes","useConnection","sdk","setCurrentUser","features","useSendbirdChat","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","usePushTokenRegistration","connect","useCallback","userId","opts","Logger","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","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 }\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":["cacheRestrictCodes","useConnection","sdk","emojiManager","setCurrentUser","features","useSendbirdChat","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","usePushTokenRegistration","connect","useCallback","userId","opts","Logger","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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"}
@@ -3,18 +3,22 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useSendbirdChat = exports.usePlatformService = exports.useLocalization = void 0;
6
+ exports.useUserProfile = exports.useSendbirdChat = exports.useReaction = exports.usePlatformService = exports.useLocalization = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- var _Localization = require("../contexts/Localization");
10
+ var _LocalizationCtx = require("../contexts/LocalizationCtx");
11
11
 
12
- var _PlatformService = require("../contexts/PlatformService");
12
+ var _PlatformServiceCtx = require("../contexts/PlatformServiceCtx");
13
13
 
14
- var _SendbirdChat = require("../contexts/SendbirdChat");
14
+ var _ReactionCtx = require("../contexts/ReactionCtx");
15
+
16
+ var _SendbirdChatCtx = require("../contexts/SendbirdChatCtx");
17
+
18
+ var _UserProfileCtx = require("../contexts/UserProfileCtx");
15
19
 
16
20
  const useLocalization = () => {
17
- const value = (0, _react.useContext)(_Localization.LocalizationContext);
21
+ const value = (0, _react.useContext)(_LocalizationCtx.LocalizationContext);
18
22
  if (!value) throw new Error('LocalizationContext is not provided');
19
23
  return value;
20
24
  };
@@ -22,7 +26,7 @@ const useLocalization = () => {
22
26
  exports.useLocalization = useLocalization;
23
27
 
24
28
  const usePlatformService = () => {
25
- const value = (0, _react.useContext)(_PlatformService.PlatformServiceContext);
29
+ const value = (0, _react.useContext)(_PlatformServiceCtx.PlatformServiceContext);
26
30
  if (!value) throw new Error('PlatformServiceContext is not provided');
27
31
  return value;
28
32
  };
@@ -30,10 +34,26 @@ const usePlatformService = () => {
30
34
  exports.usePlatformService = usePlatformService;
31
35
 
32
36
  const useSendbirdChat = () => {
33
- const value = (0, _react.useContext)(_SendbirdChat.SendbirdChatContext);
37
+ const value = (0, _react.useContext)(_SendbirdChatCtx.SendbirdChatContext);
34
38
  if (!value) throw new Error('SendbirdChatContext is not provided');
35
39
  return value;
36
40
  };
37
41
 
38
42
  exports.useSendbirdChat = useSendbirdChat;
43
+
44
+ const useUserProfile = () => {
45
+ const value = (0, _react.useContext)(_UserProfileCtx.UserProfileContext);
46
+ if (!value) throw new Error('UserProfileContext is not provided');
47
+ return value;
48
+ };
49
+
50
+ exports.useUserProfile = useUserProfile;
51
+
52
+ const useReaction = () => {
53
+ const value = (0, _react.useContext)(_ReactionCtx.ReactionContext);
54
+ if (!value) throw new Error('ReactionContext is not provided');
55
+ return value;
56
+ };
57
+
58
+ exports.useReaction = useReaction;
39
59
  //# sourceMappingURL=useContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useLocalization","value","useContext","LocalizationContext","Error","usePlatformService","PlatformServiceContext","useSendbirdChat","SendbirdChatContext"],"sources":["useContext.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { LocalizationContext } from '../contexts/Localization';\nimport { PlatformServiceContext } from '../contexts/PlatformService';\nimport { SendbirdChatContext } from '../contexts/SendbirdChat';\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"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAEO,MAAMA,eAAe,GAAG,MAAM;EACnC,MAAMC,KAAK,GAAG,IAAAC,iBAAA,EAAWC,iCAAX,CAAd;EACA,IAAI,CAACF,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM;;;;AAMA,MAAMI,kBAAkB,GAAG,MAAM;EACtC,MAAMJ,KAAK,GAAG,IAAAC,iBAAA,EAAWI,uCAAX,CAAd;EACA,IAAI,CAACL,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,wCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM;;;;AAMA,MAAMM,eAAe,GAAG,MAAM;EACnC,MAAMN,KAAK,GAAG,IAAAC,iBAAA,EAAWM,iCAAX,CAAd;EACA,IAAI,CAACP,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM"}
1
+ {"version":3,"names":["useLocalization","value","useContext","LocalizationContext","Error","usePlatformService","PlatformServiceContext","useSendbirdChat","SendbirdChatContext","useUserProfile","UserProfileContext","useReaction","ReactionContext"],"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;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEO,MAAMA,eAAe,GAAG,MAAM;EACnC,MAAMC,KAAK,GAAG,IAAAC,iBAAA,EAAWC,oCAAX,CAAd;EACA,IAAI,CAACF,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM;;;;AAMA,MAAMI,kBAAkB,GAAG,MAAM;EACtC,MAAMJ,KAAK,GAAG,IAAAC,iBAAA,EAAWI,0CAAX,CAAd;EACA,IAAI,CAACL,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,wCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM;;;;AAMA,MAAMM,eAAe,GAAG,MAAM;EACnC,MAAMN,KAAK,GAAG,IAAAC,iBAAA,EAAWM,oCAAX,CAAd;EACA,IAAI,CAACP,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,qCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM;;;;AAMA,MAAMQ,cAAc,GAAG,MAAM;EAClC,MAAMR,KAAK,GAAG,IAAAC,iBAAA,EAAWQ,kCAAX,CAAd;EACA,IAAI,CAACT,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,oCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM;;;;AAMA,MAAMU,WAAW,GAAG,MAAM;EAC/B,MAAMV,KAAK,GAAG,IAAAC,iBAAA,EAAWU,4BAAX,CAAd;EACA,IAAI,CAACX,KAAL,EAAY,MAAM,IAAIG,KAAJ,CAAU,iCAAV,CAAN;EACZ,OAAOH,KAAP;AACD,CAJM"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
+
14
+ var _uikitUtils = require("@sendbird/uikit-utils");
15
+
16
+ const configureNextLayoutAnimation = event => {
17
+ const config = _reactNative.LayoutAnimation.create(event.duration, event.easing);
18
+
19
+ _reactNative.LayoutAnimation.configureNext(config);
20
+ };
21
+
22
+ const {
23
+ showEvent,
24
+ hideEvent
25
+ } = _reactNative.Platform.select({
26
+ android: {
27
+ showEvent: 'keyboardDidShow',
28
+ hideEvent: 'keyboardDidHide'
29
+ },
30
+ default: {
31
+ showEvent: 'keyboardWillShow',
32
+ hideEvent: 'keyboardWillHide'
33
+ }
34
+ });
35
+
36
+ const useKeyboardStatus = () => {
37
+ const [keyboardStatus, setKeyboardStatus] = (0, _react.useState)({
38
+ visible: false,
39
+ height: 0,
40
+ bottomSpace: 0
41
+ });
42
+ const {
43
+ bottom: bottomInset
44
+ } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
45
+ (0, _react.useEffect)(() => {
46
+ const subscriptions = [_reactNative.Keyboard.addListener(showEvent, event => {
47
+ const height = event.endCoordinates.height;
48
+
49
+ const bottomSpace = _reactNative.Platform.select({
50
+ ios: height - bottomInset,
51
+ default: 0
52
+ });
53
+
54
+ const nextLayoutAnimation = _reactNative.Platform.select({
55
+ ios: configureNextLayoutAnimation,
56
+ default: _uikitUtils.NOOP
57
+ });
58
+
59
+ nextLayoutAnimation(event);
60
+ setKeyboardStatus({
61
+ visible: true,
62
+ height,
63
+ bottomSpace
64
+ });
65
+ }), _reactNative.Keyboard.addListener(hideEvent, event => {
66
+ const height = 0;
67
+
68
+ const bottomSpace = _reactNative.Platform.select({
69
+ default: height
70
+ });
71
+
72
+ const nextLayoutAnimation = _reactNative.Platform.select({
73
+ ios: configureNextLayoutAnimation,
74
+ default: _uikitUtils.NOOP
75
+ });
76
+
77
+ nextLayoutAnimation(event);
78
+ setKeyboardStatus({
79
+ visible: false,
80
+ height,
81
+ bottomSpace
82
+ });
83
+ })];
84
+ return () => {
85
+ subscriptions.forEach(it => it.remove());
86
+ };
87
+ }, []);
88
+ return keyboardStatus;
89
+ };
90
+
91
+ var _default = useKeyboardStatus;
92
+ exports.default = _default;
93
+ //# sourceMappingURL=useKeyboardStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["configureNextLayoutAnimation","event","config","LayoutAnimation","create","duration","easing","configureNext","showEvent","hideEvent","Platform","select","android","default","useKeyboardStatus","keyboardStatus","setKeyboardStatus","useState","visible","height","bottomSpace","bottom","bottomInset","useSafeAreaInsets","useEffect","subscriptions","Keyboard","addListener","endCoordinates","ios","nextLayoutAnimation","NOOP","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\nconst configureNextLayoutAnimation = (event: KeyboardEvent) => {\n const config = LayoutAnimation.create(event.duration, event.easing);\n LayoutAnimation.configureNext(config);\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, (event) => {\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;;AACA;;AACA;;AAEA;;AAOA,MAAMA,4BAA4B,GAAIC,KAAD,IAA0B;EAC7D,MAAMC,MAAM,GAAGC,4BAAA,CAAgBC,MAAhB,CAAuBH,KAAK,CAACI,QAA7B,EAAuCJ,KAAK,CAACK,MAA7C,CAAf;;EACAH,4BAAA,CAAgBI,aAAhB,CAA8BL,MAA9B;AACD,CAHD;;AAKA,MAAM;EAAEM,SAAF;EAAaC;AAAb,IAA2BC,qBAAA,CAASC,MAAT,CAAgC;EAC/DC,OAAO,EAAE;IAAEJ,SAAS,EAAE,iBAAb;IAAgCC,SAAS,EAAE;EAA3C,CADsD;EAE/DI,OAAO,EAAE;IAAEL,SAAS,EAAE,kBAAb;IAAiCC,SAAS,EAAE;EAA5C;AAFsD,CAAhC,CAAjC;;AAKA,MAAMK,iBAAiB,GAAG,MAAM;EAC9B,MAAM,CAACC,cAAD,EAAiBC,iBAAjB,IAAsC,IAAAC,eAAA,EAAS;IAAEC,OAAO,EAAE,KAAX;IAAkBC,MAAM,EAAE,CAA1B;IAA6BC,WAAW,EAAE;EAA1C,CAAT,CAA5C;EACA,MAAM;IAAEC,MAAM,EAAEC;EAAV,IAA0B,IAAAC,6CAAA,GAAhC;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACd,MAAMC,aAAa,GAAG,CACpBC,qBAAA,CAASC,WAAT,CAAqBnB,SAArB,EAAiCP,KAAD,IAAW;MACzC,MAAMkB,MAAM,GAAGlB,KAAK,CAAC2B,cAAN,CAAqBT,MAApC;;MACA,MAAMC,WAAW,GAAGV,qBAAA,CAASC,MAAT,CAAgB;QAAEkB,GAAG,EAAEV,MAAM,GAAGG,WAAhB;QAA6BT,OAAO,EAAE;MAAtC,CAAhB,CAApB;;MACA,MAAMiB,mBAAmB,GAAGpB,qBAAA,CAASC,MAAT,CAAgB;QAAEkB,GAAG,EAAE7B,4BAAP;QAAqCa,OAAO,EAAEkB;MAA9C,CAAhB,CAA5B;;MAEAD,mBAAmB,CAAC7B,KAAD,CAAnB;MACAe,iBAAiB,CAAC;QAAEE,OAAO,EAAE,IAAX;QAAiBC,MAAjB;QAAyBC;MAAzB,CAAD,CAAjB;IACD,CAPD,CADoB,EAUpBM,qBAAA,CAASC,WAAT,CAAqBlB,SAArB,EAAiCR,KAAD,IAAW;MACzC,MAAMkB,MAAM,GAAG,CAAf;;MACA,MAAMC,WAAW,GAAGV,qBAAA,CAASC,MAAT,CAAgB;QAAEE,OAAO,EAAEM;MAAX,CAAhB,CAApB;;MACA,MAAMW,mBAAmB,GAAGpB,qBAAA,CAASC,MAAT,CAAgB;QAAEkB,GAAG,EAAE7B,4BAAP;QAAqCa,OAAO,EAAEkB;MAA9C,CAAhB,CAA5B;;MAEAD,mBAAmB,CAAC7B,KAAD,CAAnB;MACAe,iBAAiB,CAAC;QAAEE,OAAO,EAAE,KAAX;QAAkBC,MAAlB;QAA0BC;MAA1B,CAAD,CAAjB;IACD,CAPD,CAVoB,CAAtB;IAmBA,OAAO,MAAM;MACXK,aAAa,CAACO,OAAd,CAAuBC,EAAD,IAAQA,EAAE,CAACC,MAAH,EAA9B;IACD,CAFD;EAGD,CAvBD,EAuBG,EAvBH;EAyBA,OAAOnB,cAAP;AACD,CA9BD;;eAgCeD,iB"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _uikitUtils = require("@sendbird/uikit-utils");
11
+
12
+ var _useContext = require("../hooks/useContext");
13
+
14
+ const useMentionSuggestion = params => {
15
+ const {
16
+ text,
17
+ selection,
18
+ channel,
19
+ mentionedUsers
20
+ } = params;
21
+ const [freshChannel, setFreshChannel] = (0, _react.useState)(channel);
22
+ (0, _uikitUtils.useAsyncEffect)(async () => {
23
+ setFreshChannel(await channel.refresh());
24
+ }, [channel.url]);
25
+ const {
26
+ mentionManager,
27
+ currentUser
28
+ } = (0, _useContext.useSendbirdChat)();
29
+ const [members, setMembers] = (0, _react.useState)([]);
30
+ const timeoutRef = (0, _react.useRef)();
31
+ const searchStringRangeRef = (0, _react.useRef)({
32
+ start: 0,
33
+ end: 0
34
+ });
35
+ const searchLimitedRef = (0, _react.useRef)(false);
36
+
37
+ const updateSearchStringRange = (selectionIndex, searchString) => {
38
+ searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);
39
+ return searchStringRangeRef.current;
40
+ };
41
+
42
+ const updateSearchLimited = (mentionCount, mentionLimit) => {
43
+ searchLimitedRef.current = mentionCount >= mentionLimit;
44
+ return searchLimitedRef.current;
45
+ };
46
+
47
+ const resetRefs = () => {
48
+ searchLimitedRef.current = false;
49
+ searchStringRangeRef.current = {
50
+ start: 0,
51
+ end: 0
52
+ };
53
+ };
54
+
55
+ const fetchMembers = async () => {
56
+ resetRefs();
57
+ const selectionRanged = selection.start !== selection.end;
58
+ if (selectionRanged) return [];
59
+ const selectionContainsMentionedUser = mentionedUsers.some(it => mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'));
60
+ if (selectionContainsMentionedUser) return [];
61
+ const {
62
+ isTriggered,
63
+ isValidSearchString,
64
+ searchString
65
+ } = mentionManager.getSearchString(text, selection.start);
66
+ if (!isTriggered() || !isValidSearchString()) return [];
67
+ const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);
68
+ if (limited) return [];
69
+ updateSearchStringRange(selection.start, searchString);
70
+
71
+ if (freshChannel.isSuper) {
72
+ return freshChannel.createMemberListQuery({
73
+ nicknameStartsWithFilter: searchString,
74
+ limit: mentionManager.config.suggestionLimit + 1
75
+ }).next().then(members => members.filter(member => member.userId !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId)));
76
+ } else {
77
+ return freshChannel.members.sort((a, b) => {
78
+ var _a$nickname;
79
+
80
+ return (_a$nickname = a.nickname) === null || _a$nickname === void 0 ? void 0 : _a$nickname.localeCompare(b.nickname);
81
+ }).filter(member => {
82
+ var _member$nickname;
83
+
84
+ 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);
85
+ }).slice(0, mentionManager.config.suggestionLimit);
86
+ }
87
+ };
88
+
89
+ (0, _react.useEffect)(() => {
90
+ timeoutRef.current = setTimeout(async () => {
91
+ fetchMembers().then(setMembers).catch(() => setMembers([])).finally(() => timeoutRef.current = undefined);
92
+ }, mentionManager.config.debounceMills);
93
+ return () => {
94
+ if (timeoutRef.current) {
95
+ clearTimeout(timeoutRef.current);
96
+ timeoutRef.current = undefined;
97
+ }
98
+ };
99
+ }, [text, selection]);
100
+ return {
101
+ members,
102
+ reset: (0, _react.useCallback)(() => setMembers([]), []),
103
+ searchStringRange: searchStringRangeRef.current,
104
+ searchLimited: searchLimitedRef.current
105
+ };
106
+ };
107
+
108
+ var _default = useMentionSuggestion;
109
+ exports.default = _default;
110
+ //# sourceMappingURL=useMentionSuggestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","useState","useAsyncEffect","refresh","url","mentionManager","currentUser","useSendbirdChat","members","setMembers","timeoutRef","useRef","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","useEffect","setTimeout","catch","finally","undefined","debounceMills","clearTimeout","reset","useCallback","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":"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"}