@sendbird/uikit-react-native 2.1.0 → 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 (388) hide show
  1. package/lib/commonjs/components/ChatFlatList.js +2 -1
  2. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  3. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
  4. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  5. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
  6. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  7. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +25 -10
  8. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  9. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -10
  10. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  11. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +99 -14
  12. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  13. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -1
  14. package/lib/commonjs/components/MessageRenderer/index.js +22 -3
  15. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
  16. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +150 -0
  17. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
  18. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +135 -0
  19. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
  20. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +87 -0
  21. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
  22. package/lib/commonjs/components/ReactionAddons/index.js +19 -0
  23. package/lib/commonjs/components/ReactionAddons/index.js.map +1 -0
  24. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +150 -0
  25. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
  26. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +276 -0
  27. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
  28. package/lib/commonjs/components/ReactionBottomSheets/index.js +19 -0
  29. package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -0
  30. package/lib/commonjs/constants.js +3 -1
  31. package/lib/commonjs/constants.js.map +1 -1
  32. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +4 -1
  33. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  34. package/lib/commonjs/containers/SendbirdUIKitContainer.js +118 -78
  35. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  36. package/lib/commonjs/contexts/ReactionCtx.js +107 -0
  37. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -0
  38. package/lib/commonjs/contexts/SendbirdChatCtx.js +18 -6
  39. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  40. package/lib/commonjs/contexts/UserProfileCtx.js +9 -0
  41. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  42. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +33 -37
  43. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  44. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +28 -11
  45. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  46. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +120 -31
  47. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  48. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +31 -12
  49. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  50. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +210 -0
  51. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
  52. package/lib/commonjs/domain/groupChannel/index.js +8 -0
  53. package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
  54. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +4 -0
  55. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  56. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +4 -4
  57. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  58. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  59. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +3 -2
  60. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  61. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +2 -1
  62. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  63. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +2 -1
  64. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  65. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +39 -0
  66. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
  67. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +140 -0
  68. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
  69. package/lib/commonjs/domain/groupChannelNotifications/index.js +46 -0
  70. package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -0
  71. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +33 -0
  72. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
  73. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +45 -0
  74. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
  75. package/lib/commonjs/domain/groupChannelNotifications/types.js +6 -0
  76. package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -0
  77. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +2 -1
  78. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  79. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +49 -6
  80. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  81. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +9 -14
  82. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  83. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  84. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  85. package/lib/commonjs/domain/userList/component/UserListList.js +4 -1
  86. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  87. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
  88. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  89. package/lib/commonjs/fragments/createGroupChannelFragment.js +11 -4
  90. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  91. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  92. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +34 -0
  93. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
  94. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +3 -1
  95. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  96. package/lib/commonjs/hooks/useConnection.js +3 -0
  97. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  98. package/lib/commonjs/hooks/useContext.js +11 -1
  99. package/lib/commonjs/hooks/useContext.js.map +1 -1
  100. package/lib/commonjs/hooks/useKeyboardStatus.js +93 -0
  101. package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -0
  102. package/lib/commonjs/hooks/useMentionSuggestion.js +110 -0
  103. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -0
  104. package/lib/commonjs/hooks/useMentionTextInput.js +139 -0
  105. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -0
  106. package/lib/commonjs/index.js +95 -40
  107. package/lib/commonjs/index.js.map +1 -1
  108. package/lib/commonjs/libs/EmojiManager.js +100 -0
  109. package/lib/commonjs/libs/EmojiManager.js.map +1 -0
  110. package/lib/commonjs/libs/MentionConfig.js +47 -0
  111. package/lib/commonjs/libs/MentionConfig.js.map +1 -0
  112. package/lib/commonjs/libs/MentionManager.js +235 -0
  113. package/lib/commonjs/libs/MentionManager.js.map +1 -0
  114. package/lib/commonjs/localization/StringSet.type.js +17 -5
  115. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  116. package/lib/commonjs/types.js.map +1 -1
  117. package/lib/commonjs/utils/common.js +19 -0
  118. package/lib/commonjs/utils/common.js.map +1 -0
  119. package/lib/commonjs/version.js +1 -1
  120. package/lib/commonjs/version.js.map +1 -1
  121. package/lib/module/components/ChatFlatList.js +3 -2
  122. package/lib/module/components/ChatFlatList.js.map +1 -1
  123. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
  124. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  125. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
  126. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  127. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +25 -10
  128. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  129. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -12
  130. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  131. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +101 -17
  132. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  133. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -1
  134. package/lib/module/components/MessageRenderer/index.js +21 -4
  135. package/lib/module/components/MessageRenderer/index.js.map +1 -1
  136. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +132 -0
  137. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
  138. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +118 -0
  139. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
  140. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +74 -0
  141. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
  142. package/lib/module/components/ReactionAddons/index.js +7 -0
  143. package/lib/module/components/ReactionAddons/index.js.map +1 -0
  144. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +135 -0
  145. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
  146. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +259 -0
  147. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
  148. package/lib/module/components/ReactionBottomSheets/index.js +7 -0
  149. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -0
  150. package/lib/module/constants.js +1 -0
  151. package/lib/module/constants.js.map +1 -1
  152. package/lib/module/containers/GroupChannelPreviewContainer.js +4 -1
  153. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  154. package/lib/module/containers/SendbirdUIKitContainer.js +116 -80
  155. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  156. package/lib/module/contexts/ReactionCtx.js +85 -0
  157. package/lib/module/contexts/ReactionCtx.js.map +1 -0
  158. package/lib/module/contexts/SendbirdChatCtx.js +18 -6
  159. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  160. package/lib/module/contexts/UserProfileCtx.js +7 -0
  161. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  162. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +34 -39
  163. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  164. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +24 -13
  165. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  166. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +117 -33
  167. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  168. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +32 -14
  169. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  170. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +188 -0
  171. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
  172. package/lib/module/domain/groupChannel/index.js +1 -0
  173. package/lib/module/domain/groupChannel/index.js.map +1 -1
  174. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +3 -0
  175. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  176. package/lib/module/domain/groupChannel/module/moduleContext.js +4 -4
  177. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  178. package/lib/module/domain/groupChannel/types.js.map +1 -1
  179. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +4 -3
  180. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  181. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +3 -2
  182. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  183. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +3 -2
  184. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  185. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +25 -0
  186. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
  187. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +122 -0
  188. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
  189. package/lib/module/domain/groupChannelNotifications/index.js +5 -0
  190. package/lib/module/domain/groupChannelNotifications/index.js.map +1 -0
  191. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +21 -0
  192. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
  193. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +25 -0
  194. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
  195. package/lib/module/domain/groupChannelNotifications/types.js +2 -0
  196. package/lib/module/domain/groupChannelNotifications/types.js.map +1 -0
  197. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +3 -2
  198. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  199. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +46 -6
  200. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  201. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +10 -15
  202. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  203. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  204. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  205. package/lib/module/domain/userList/component/UserListList.js +3 -1
  206. package/lib/module/domain/userList/component/UserListList.js.map +1 -1
  207. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
  208. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  209. package/lib/module/fragments/createGroupChannelFragment.js +11 -4
  210. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  211. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  212. package/lib/module/fragments/createGroupChannelNotificationsFragment.js +22 -0
  213. package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
  214. package/lib/module/fragments/createGroupChannelSettingsFragment.js +3 -1
  215. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  216. package/lib/module/hooks/useConnection.js +3 -0
  217. package/lib/module/hooks/useConnection.js.map +1 -1
  218. package/lib/module/hooks/useContext.js +6 -0
  219. package/lib/module/hooks/useContext.js.map +1 -1
  220. package/lib/module/hooks/useKeyboardStatus.js +75 -0
  221. package/lib/module/hooks/useKeyboardStatus.js.map +1 -0
  222. package/lib/module/hooks/useMentionSuggestion.js +100 -0
  223. package/lib/module/hooks/useMentionSuggestion.js.map +1 -0
  224. package/lib/module/hooks/useMentionTextInput.js +128 -0
  225. package/lib/module/hooks/useMentionTextInput.js.map +1 -0
  226. package/lib/module/index.js +8 -3
  227. package/lib/module/index.js.map +1 -1
  228. package/lib/module/libs/EmojiManager.js +90 -0
  229. package/lib/module/libs/EmojiManager.js.map +1 -0
  230. package/lib/module/libs/MentionConfig.js +39 -0
  231. package/lib/module/libs/MentionConfig.js.map +1 -0
  232. package/lib/module/libs/MentionManager.js +223 -0
  233. package/lib/module/libs/MentionManager.js.map +1 -0
  234. package/lib/module/localization/StringSet.type.js +18 -6
  235. package/lib/module/localization/StringSet.type.js.map +1 -1
  236. package/lib/module/types.js.map +1 -1
  237. package/lib/module/utils/common.js +7 -0
  238. package/lib/module/utils/common.js.map +1 -0
  239. package/lib/module/version.js +1 -1
  240. package/lib/module/version.js.map +1 -1
  241. package/lib/typescript/__template__/types.d.ts +3 -3
  242. package/lib/typescript/src/components/ChannelCover.d.ts +1 -1
  243. package/lib/typescript/src/components/ChatFlatList.d.ts +1 -1
  244. package/lib/typescript/src/components/FileViewer.d.ts +1 -1
  245. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +1 -1
  246. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +2 -2
  247. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +1 -1
  248. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +1 -1
  249. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +11 -2
  250. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +1 -1
  251. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +1 -1
  252. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +1 -1
  253. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +1 -1
  254. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +1 -1
  255. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +1 -1
  256. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +1 -1
  257. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +2 -2
  258. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +4 -1
  259. package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -3
  260. package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
  261. package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +8 -0
  262. package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +6 -0
  263. package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +14 -0
  264. package/lib/typescript/src/components/ReactionAddons/index.d.ts +11 -0
  265. package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +3 -0
  266. package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +3 -0
  267. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +20 -0
  268. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  269. package/lib/typescript/src/components/StatusComposition.d.ts +1 -1
  270. package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
  271. package/lib/typescript/src/components/UserActionBar.d.ts +1 -1
  272. package/lib/typescript/src/components/UserSelectableBar.d.ts +1 -1
  273. package/lib/typescript/src/constants.d.ts +1 -0
  274. package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +1 -1
  275. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +12 -3
  276. package/lib/typescript/src/contexts/LocalizationCtx.d.ts +2 -2
  277. package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +1 -1
  278. package/lib/typescript/src/contexts/ReactionCtx.d.ts +18 -0
  279. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +10 -2
  280. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +4 -4
  281. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +35 -7
  282. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +32 -5
  283. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +19 -2
  284. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +3 -0
  285. package/lib/typescript/src/domain/groupChannel/index.d.ts +1 -0
  286. package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +1 -1
  287. package/lib/typescript/src/domain/groupChannel/types.d.ts +24 -7
  288. package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +3 -3
  289. package/lib/typescript/src/domain/groupChannelList/types.d.ts +2 -2
  290. package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +3 -3
  291. package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +3 -3
  292. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +3 -0
  293. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -0
  294. package/lib/typescript/src/domain/groupChannelNotifications/index.d.ts +4 -0
  295. package/lib/typescript/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.d.ts +3 -0
  296. package/lib/typescript/src/domain/groupChannelNotifications/module/moduleContext.d.ts +3 -0
  297. package/lib/typescript/src/domain/groupChannelNotifications/types.d.ts +33 -0
  298. package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +3 -3
  299. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  300. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +3 -1
  301. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +6 -6
  302. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +2 -1
  303. package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +2 -1
  304. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +1 -1
  305. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +1 -1
  306. package/lib/typescript/src/fragments/createGroupChannelNotificationsFragment.d.ts +3 -0
  307. package/lib/typescript/src/hooks/useConnection.d.ts +1 -1
  308. package/lib/typescript/src/hooks/useContext.d.ts +4 -0
  309. package/lib/typescript/src/hooks/useKeyboardStatus.d.ts +6 -0
  310. package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +17 -0
  311. package/lib/typescript/src/hooks/useMentionTextInput.d.ts +18 -0
  312. package/lib/typescript/src/index.d.ts +7 -2
  313. package/lib/typescript/src/libs/EmojiManager.d.ts +16 -0
  314. package/lib/typescript/src/libs/MentionConfig.d.ts +24 -0
  315. package/lib/typescript/src/libs/MentionManager.d.ts +61 -0
  316. package/lib/typescript/src/localization/StringSet.type.d.ts +16 -2
  317. package/lib/typescript/src/platform/createMediaService.expo.d.ts +1 -1
  318. package/lib/typescript/src/platform/createMediaService.native.d.ts +1 -1
  319. package/lib/typescript/src/platform/dynamicModule.d.ts +1 -1
  320. package/lib/typescript/src/platform/types.d.ts +5 -5
  321. package/lib/typescript/src/types.d.ts +13 -4
  322. package/lib/typescript/src/utils/common.d.ts +1 -0
  323. package/lib/typescript/src/version.d.ts +1 -1
  324. package/package.json +6 -6
  325. package/src/components/ChatFlatList.tsx +2 -1
  326. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +17 -12
  327. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +25 -18
  328. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +20 -10
  329. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +82 -14
  330. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +135 -61
  331. package/src/components/MessageRenderer/UserMessage/index.tsx +8 -1
  332. package/src/components/MessageRenderer/index.tsx +39 -7
  333. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +106 -0
  334. package/src/components/ReactionAddons/MessageReactionAddon.tsx +123 -0
  335. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +71 -0
  336. package/src/components/ReactionAddons/index.tsx +7 -0
  337. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +113 -0
  338. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +249 -0
  339. package/src/components/ReactionBottomSheets/index.tsx +24 -0
  340. package/src/constants.ts +2 -0
  341. package/src/containers/GroupChannelPreviewContainer.tsx +3 -1
  342. package/src/containers/SendbirdUIKitContainer.tsx +141 -83
  343. package/src/contexts/ReactionCtx.tsx +102 -0
  344. package/src/contexts/SendbirdChatCtx.tsx +24 -2
  345. package/src/contexts/UserProfileCtx.tsx +9 -0
  346. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +56 -30
  347. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +48 -19
  348. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +137 -43
  349. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +27 -10
  350. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +173 -0
  351. package/src/domain/groupChannel/index.ts +1 -0
  352. package/src/domain/groupChannel/module/createGroupChannelModule.tsx +12 -1
  353. package/src/domain/groupChannel/module/moduleContext.tsx +4 -4
  354. package/src/domain/groupChannel/types.ts +28 -5
  355. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -2
  356. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -1
  357. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +2 -1
  358. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.tsx +14 -0
  359. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +128 -0
  360. package/src/domain/groupChannelNotifications/index.ts +4 -0
  361. package/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.tsx +15 -0
  362. package/src/domain/groupChannelNotifications/module/moduleContext.tsx +31 -0
  363. package/src/domain/groupChannelNotifications/types.ts +38 -0
  364. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +2 -1
  365. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +42 -3
  366. package/src/domain/groupChannelSettings/module/moduleContext.tsx +9 -12
  367. package/src/domain/groupChannelSettings/types.ts +2 -0
  368. package/src/domain/groupChannelUserList/types.ts +7 -2
  369. package/src/domain/userList/component/UserListList.tsx +5 -1
  370. package/src/domain/userList/module/createUserListModule.tsx +3 -1
  371. package/src/fragments/createGroupChannelCreateFragment.tsx +8 -2
  372. package/src/fragments/createGroupChannelFragment.tsx +19 -6
  373. package/src/fragments/createGroupChannelInviteFragment.tsx +2 -2
  374. package/src/fragments/createGroupChannelNotificationsFragment.tsx +27 -0
  375. package/src/fragments/createGroupChannelSettingsFragment.tsx +2 -0
  376. package/src/hooks/useConnection.ts +3 -1
  377. package/src/hooks/useContext.ts +7 -0
  378. package/src/hooks/useKeyboardStatus.ts +54 -0
  379. package/src/hooks/useMentionSuggestion.ts +106 -0
  380. package/src/hooks/useMentionTextInput.ts +139 -0
  381. package/src/index.ts +13 -2
  382. package/src/libs/EmojiManager.ts +80 -0
  383. package/src/libs/MentionConfig.ts +40 -0
  384. package/src/libs/MentionManager.tsx +240 -0
  385. package/src/localization/StringSet.type.ts +38 -8
  386. package/src/types.ts +12 -0
  387. package/src/utils/common.ts +8 -0
  388. package/src/version.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  export { default as GroupChannelHeader } from './component/GroupChannelHeader';
2
2
  export { default as GroupChannelMessageList } from './component/GroupChannelMessageList';
3
3
  export { default as GroupChannelInput } from './component/GroupChannelInput';
4
+ export { default as GroupChannelSuggestedMentionList } from './component/GroupChannelSuggestedMentionList';
4
5
  export { default as GroupChannelStatusEmpty } from './component/GroupChannelStatusEmpty';
5
6
  export { default as GroupChannelStatusLoading } from './component/GroupChannelStatusLoading';
6
7
  export { default as createGroupChannelModule } from './module/createGroupChannelModule';
@@ -1,3 +1,3 @@
1
1
  import type { GroupChannelModule } from '../types';
2
- declare const createGroupChannelModule: ({ Header, MessageList, Input, StatusLoading, StatusEmpty, Provider, ...module }?: Partial<GroupChannelModule>) => GroupChannelModule;
2
+ declare const createGroupChannelModule: ({ Header, MessageList, Input, SuggestedMentionList, StatusLoading, StatusEmpty, Provider, ...module }?: Partial<GroupChannelModule>) => GroupChannelModule;
3
3
  export default createGroupChannelModule;
@@ -1,9 +1,14 @@
1
1
  import type React from 'react';
2
2
  import type { FlatListProps } from 'react-native';
3
3
  import type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';
4
- import type { SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdGroupChannel, SendbirdMessage, SendbirdUser, SendbirdUserMessage, SendbirdUserMessageCreateParams } from '@sendbird/uikit-utils';
4
+ import type { SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdGroupChannel, SendbirdMember, SendbirdMessage, SendbirdUser, SendbirdUserMessage, SendbirdUserMessageCreateParams } from '@sendbird/uikit-utils';
5
5
  import type { FileType } from '../../platform/types';
6
- import type { CommonComponent } from '../../types';
6
+ import type { CommonComponent, MentionedUser, Range } from '../../types';
7
+ type UserMessageMentionParams = Required<{
8
+ messageTemplate: SendbirdUserMessageCreateParams['mentionedMessageTemplate'];
9
+ userIds: SendbirdUserMessageCreateParams['mentionedUserIds'];
10
+ type: SendbirdUserMessageCreateParams['mentionType'];
11
+ }>;
7
12
  export interface GroupChannelProps {
8
13
  Fragment: {
9
14
  channel: SendbirdGroupChannel;
@@ -68,9 +73,19 @@ export interface GroupChannelProps {
68
73
  Input: {
69
74
  shouldRenderInput: boolean;
70
75
  onSendFileMessage: (file: FileType) => Promise<void>;
71
- onSendUserMessage: (text: string) => Promise<void>;
76
+ onSendUserMessage: (text: string, mention?: UserMessageMentionParams) => Promise<void>;
72
77
  onUpdateFileMessage: (editedFile: FileType, message: SendbirdFileMessage) => Promise<void>;
73
- onUpdateUserMessage: (editedText: string, message: SendbirdUserMessage) => Promise<void>;
78
+ onUpdateUserMessage: (editedText: string, message: SendbirdUserMessage, mention?: UserMessageMentionParams) => Promise<void>;
79
+ SuggestedMentionList: (props: GroupChannelProps['SuggestedMentionList']) => JSX.Element | null;
80
+ };
81
+ SuggestedMentionList: {
82
+ text: string;
83
+ selection: Range;
84
+ topInset: number;
85
+ bottomInset: number;
86
+ inputHeight: number;
87
+ onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;
88
+ mentionedUsers: MentionedUser[];
74
89
  };
75
90
  Provider: {
76
91
  channel: SendbirdGroupChannel;
@@ -87,8 +102,8 @@ export interface GroupChannelContextsType {
87
102
  Fragment: React.Context<{
88
103
  headerTitle: string;
89
104
  channel: SendbirdGroupChannel;
90
- editMessage?: SendbirdUserMessage | SendbirdFileMessage;
91
- setEditMessage: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;
105
+ messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;
106
+ setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;
92
107
  keyboardAvoidOffset?: number;
93
108
  }>;
94
109
  TypingIndicator: React.Context<{
@@ -100,7 +115,9 @@ export interface GroupChannelModule {
100
115
  Header: CommonComponent<GroupChannelProps['Header']>;
101
116
  MessageList: CommonComponent<GroupChannelProps['MessageList']>;
102
117
  Input: CommonComponent<GroupChannelProps['Input']>;
118
+ SuggestedMentionList: CommonComponent<GroupChannelProps['SuggestedMentionList']>;
103
119
  StatusEmpty: CommonComponent;
104
120
  StatusLoading: CommonComponent;
105
121
  }
106
- export declare type GroupChannelFragment = CommonComponent<GroupChannelProps['Fragment']>;
122
+ export type GroupChannelFragment = CommonComponent<GroupChannelProps['Fragment']>;
123
+ export {};
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';
3
3
  import type { CommonComponent } from '../../types';
4
- export declare type GroupChannelBannedUsersProps = {
4
+ export type GroupChannelBannedUsersProps = {
5
5
  Fragment: {
6
6
  channel: SendbirdGroupChannel;
7
7
  onPressHeaderLeft: GroupChannelBannedUsersProps['Header']['onPressHeaderLeft'];
@@ -30,7 +30,7 @@ export declare type GroupChannelBannedUsersProps = {
30
30
  * For example, the developer can create a custom header
31
31
  * with getting data from the domain context
32
32
  * */
33
- export declare type GroupChannelBannedUsersContextsType = {
33
+ export type GroupChannelBannedUsersContextsType = {
34
34
  Fragment: React.Context<{
35
35
  headerTitle: string;
36
36
  channel: SendbirdGroupChannel;
@@ -44,4 +44,4 @@ export interface GroupChannelBannedUsersModule {
44
44
  StatusLoading: CommonComponent;
45
45
  StatusError: CommonComponent<GroupChannelBannedUsersProps['StatusError']>;
46
46
  }
47
- export declare type GroupChannelBannedUsersFragment = CommonComponent<GroupChannelBannedUsersProps['Fragment']>;
47
+ export type GroupChannelBannedUsersFragment = CommonComponent<GroupChannelBannedUsersProps['Fragment']>;
@@ -71,5 +71,5 @@ export interface GroupChannelListModule {
71
71
  StatusEmpty: CommonComponent;
72
72
  StatusLoading: CommonComponent;
73
73
  }
74
- export declare type GroupChannelListFragment = CommonComponent<GroupChannelListProps['Fragment']>;
75
- export declare type GroupChannelType = 'GROUP' | 'SUPER_GROUP' | 'BROADCAST';
74
+ export type GroupChannelListFragment = CommonComponent<GroupChannelListProps['Fragment']>;
75
+ export type GroupChannelType = 'GROUP' | 'SUPER_GROUP' | 'BROADCAST';
@@ -2,7 +2,7 @@ import type React from 'react';
2
2
  import type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';
3
3
  import type { SendbirdGroupChannel } from '@sendbird/uikit-utils';
4
4
  import type { CommonComponent } from '../../types';
5
- export declare type GroupChannelModerationProps = {
5
+ export type GroupChannelModerationProps = {
6
6
  Fragment: {
7
7
  channel: SendbirdGroupChannel;
8
8
  onPressHeaderLeft: GroupChannelModerationProps['Header']['onPressHeaderLeft'];
@@ -29,7 +29,7 @@ export declare type GroupChannelModerationProps = {
29
29
  * For example, the developer can create a custom header
30
30
  * with getting data from the domain context
31
31
  * */
32
- export declare type GroupChannelModerationContextsType = {
32
+ export type GroupChannelModerationContextsType = {
33
33
  Fragment: React.Context<{
34
34
  headerTitle: string;
35
35
  channel: SendbirdGroupChannel;
@@ -40,4 +40,4 @@ export interface GroupChannelModerationModule {
40
40
  Header: CommonComponent<GroupChannelModerationProps['Header']>;
41
41
  Menu: CommonComponent<GroupChannelModerationProps['Menu']>;
42
42
  }
43
- export declare type GroupChannelModerationFragment = CommonComponent<GroupChannelModerationProps['Fragment']>;
43
+ export type GroupChannelModerationFragment = CommonComponent<GroupChannelModerationProps['Fragment']>;
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';
3
3
  import type { CommonComponent } from '../../types';
4
- export declare type GroupChannelMutedMembersProps = {
4
+ export type GroupChannelMutedMembersProps = {
5
5
  Fragment: {
6
6
  channel: SendbirdGroupChannel;
7
7
  onPressHeaderLeft: GroupChannelMutedMembersProps['Header']['onPressHeaderLeft'];
@@ -30,7 +30,7 @@ export declare type GroupChannelMutedMembersProps = {
30
30
  * For example, the developer can create a custom header
31
31
  * with getting data from the domain context
32
32
  * */
33
- export declare type GroupChannelMutedMembersContextsType = {
33
+ export type GroupChannelMutedMembersContextsType = {
34
34
  Fragment: React.Context<{
35
35
  headerTitle: string;
36
36
  channel: SendbirdGroupChannel;
@@ -44,4 +44,4 @@ export interface GroupChannelMutedMembersModule {
44
44
  StatusLoading: CommonComponent;
45
45
  StatusError: CommonComponent<GroupChannelMutedMembersProps['StatusError']>;
46
46
  }
47
- export declare type GroupChannelMutedMembersFragment = CommonComponent<GroupChannelMutedMembersProps['Fragment']>;
47
+ export type GroupChannelMutedMembersFragment = CommonComponent<GroupChannelMutedMembersProps['Fragment']>;
@@ -0,0 +1,3 @@
1
+ import type { GroupChannelNotificationsProps } from '../types';
2
+ declare const GroupChannelNotificationsHeader: ({ onPressHeaderLeft }: GroupChannelNotificationsProps['Header']) => JSX.Element;
3
+ export default GroupChannelNotificationsHeader;
@@ -0,0 +1,2 @@
1
+ declare const GroupChannelNotificationsView: () => JSX.Element;
2
+ export default GroupChannelNotificationsView;
@@ -0,0 +1,4 @@
1
+ export { default as GroupChannelNotificationsView } from './component/GroupChannelNotificationsView';
2
+ export { default as GroupChannelNotificationsHeader } from './component/GroupChannelNotificationsHeader';
3
+ export { default as createGroupChannelNotificationsModule } from './module/createGroupChannelNotificationsModule';
4
+ export { GroupChannelNotificationsContextsProvider, GroupChannelNotificationsContexts } from './module/moduleContext';
@@ -0,0 +1,3 @@
1
+ import type { GroupChannelNotificationsModule } from '../types';
2
+ declare const createGroupChannelNotificationsModule: ({ Header, View, Provider, ...module }?: Partial<GroupChannelNotificationsModule>) => GroupChannelNotificationsModule;
3
+ export default createGroupChannelNotificationsModule;
@@ -0,0 +1,3 @@
1
+ import type { GroupChannelNotificationsContextsType, GroupChannelNotificationsModule } from '../types';
2
+ export declare const GroupChannelNotificationsContexts: GroupChannelNotificationsContextsType;
3
+ export declare const GroupChannelNotificationsContextsProvider: GroupChannelNotificationsModule['Provider'];
@@ -0,0 +1,33 @@
1
+ import type React from 'react';
2
+ import type { SendbirdGroupChannel } from '@sendbird/uikit-utils';
3
+ import type { CommonComponent } from '../../types';
4
+ export type GroupChannelNotificationsProps = {
5
+ Fragment: {
6
+ channel: SendbirdGroupChannel;
7
+ onPressHeaderLeft: GroupChannelNotificationsProps['Header']['onPressHeaderLeft'];
8
+ };
9
+ Header: {
10
+ onPressHeaderLeft: () => void;
11
+ };
12
+ View: {};
13
+ Provider: {
14
+ channel: SendbirdGroupChannel;
15
+ };
16
+ };
17
+ /**
18
+ * Internal context for GroupChannelNotifications
19
+ * For example, the developer can create a custom header
20
+ * with getting data from the domain context
21
+ * */
22
+ export type GroupChannelNotificationsContextsType = {
23
+ Fragment: React.Context<{
24
+ channel: SendbirdGroupChannel;
25
+ headerTitle: string;
26
+ }>;
27
+ };
28
+ export interface GroupChannelNotificationsModule {
29
+ Provider: CommonComponent<GroupChannelNotificationsProps['Provider']>;
30
+ Header: CommonComponent<GroupChannelNotificationsProps['Header']>;
31
+ View: CommonComponent<GroupChannelNotificationsProps['View']>;
32
+ }
33
+ export type GroupChannelNotificationsFragment = CommonComponent<GroupChannelNotificationsProps['Fragment']>;
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';
3
3
  import type { CommonComponent } from '../../types';
4
- export declare type GroupChannelOperatorsProps = {
4
+ export type GroupChannelOperatorsProps = {
5
5
  Fragment: {
6
6
  channel: SendbirdGroupChannel;
7
7
  onPressHeaderLeft: GroupChannelOperatorsProps['Header']['onPressHeaderLeft'];
@@ -32,7 +32,7 @@ export declare type GroupChannelOperatorsProps = {
32
32
  * For example, the developer can create a custom header
33
33
  * with getting data from the domain context
34
34
  * */
35
- export declare type GroupChannelOperatorsContextsType = {
35
+ export type GroupChannelOperatorsContextsType = {
36
36
  Fragment: React.Context<{
37
37
  headerTitle: string;
38
38
  channel: SendbirdGroupChannel;
@@ -46,4 +46,4 @@ export interface GroupChannelOperatorsModule {
46
46
  StatusLoading: CommonComponent;
47
47
  StatusError: CommonComponent<GroupChannelOperatorsProps['StatusError']>;
48
48
  }
49
- export declare type GroupChannelOperatorsFragment = CommonComponent<GroupChannelOperatorsProps['Fragment']>;
49
+ export type GroupChannelOperatorsFragment = CommonComponent<GroupChannelOperatorsProps['Fragment']>;
@@ -1,3 +1,3 @@
1
1
  import type { GroupChannelSettingsProps } from '../types';
2
- declare const GroupChannelSettingsMenu: ({ onPressMenuModeration, onPressMenuMembers, onPressMenuLeaveChannel, menuItemsCreator, }: GroupChannelSettingsProps['Menu']) => JSX.Element;
2
+ declare const GroupChannelSettingsMenu: ({ onPressMenuModeration, onPressMenuMembers, onPressMenuLeaveChannel, onPressMenuNotification, menuItemsCreator, }: GroupChannelSettingsProps['Menu']) => JSX.Element;
3
3
  export default GroupChannelSettingsMenu;
@@ -9,6 +9,7 @@ export interface GroupChannelSettingsProps {
9
9
  onPressMenuModeration: GroupChannelSettingsProps['Menu']['onPressMenuModeration'];
10
10
  onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];
11
11
  onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];
12
+ onPressMenuNotification?: GroupChannelSettingsProps['Menu']['onPressMenuNotification'];
12
13
  menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];
13
14
  };
14
15
  Header: {
@@ -19,6 +20,7 @@ export interface GroupChannelSettingsProps {
19
20
  onPressMenuModeration: () => void;
20
21
  onPressMenuMembers: () => void;
21
22
  onPressMenuLeaveChannel: () => void;
23
+ onPressMenuNotification?: () => void;
22
24
  menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];
23
25
  };
24
26
  Provider: {
@@ -44,4 +46,4 @@ export interface GroupChannelSettingsModule {
44
46
  Info: CommonComponent<GroupChannelSettingsProps['Info']>;
45
47
  Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;
46
48
  }
47
- export declare type GroupChannelSettingsFragment = CommonComponent<GroupChannelSettingsProps['Fragment']>;
49
+ export type GroupChannelSettingsFragment = CommonComponent<GroupChannelSettingsProps['Fragment']>;
@@ -1,5 +1,5 @@
1
- import type { UseUserListOptions, UserStruct } from '@sendbird/uikit-chat-hooks';
2
- import type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember } from '@sendbird/uikit-utils';
1
+ import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';
2
+ import type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, UserStruct } from '@sendbird/uikit-utils';
3
3
  import type { CommonComponent } from '../../types';
4
4
  import type { GroupChannelType } from '../groupChannelList/types';
5
5
  import type { UserListProps } from '../userList/types';
@@ -14,7 +14,7 @@ export interface GroupChannelCreateProps<User extends UserStruct> {
14
14
  renderUser?: UserListProps<User>['List']['renderUser'];
15
15
  };
16
16
  }
17
- export declare type GroupChannelCreateFragment<User extends UserStruct> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;
17
+ export type GroupChannelCreateFragment<User extends UserStruct> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;
18
18
  export interface GroupChannelInviteProps<User extends UserStruct> {
19
19
  Fragment: {
20
20
  channel: SendbirdGroupChannel;
@@ -25,7 +25,7 @@ export interface GroupChannelInviteProps<User extends UserStruct> {
25
25
  sortComparator?: UseUserListOptions<User>['sortComparator'];
26
26
  };
27
27
  }
28
- export declare type GroupChannelInviteFragment<User extends UserStruct> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;
28
+ export type GroupChannelInviteFragment<User extends UserStruct> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;
29
29
  export interface GroupChannelMembersProps<User extends UserStruct> {
30
30
  Fragment: {
31
31
  channel: SendbirdGroupChannel;
@@ -35,7 +35,7 @@ export interface GroupChannelMembersProps<User extends UserStruct> {
35
35
  renderUser?: UserListProps<User>['List']['renderUser'];
36
36
  };
37
37
  }
38
- export declare type GroupChannelMembersFragment<User extends UserStruct> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;
38
+ export type GroupChannelMembersFragment<User extends UserStruct> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;
39
39
  export interface GroupChannelRegisterOperatorProps<User extends UserStruct = SendbirdMember> {
40
40
  Fragment: {
41
41
  channel: SendbirdGroupChannel;
@@ -45,4 +45,4 @@ export interface GroupChannelRegisterOperatorProps<User extends UserStruct = Sen
45
45
  renderUser?: UserListProps<User>['List']['renderUser'];
46
46
  };
47
47
  }
48
- export declare type GroupChannelRegisterOperatorFragment<User extends UserStruct> = CommonComponent<GroupChannelRegisterOperatorProps<User>['Fragment']>;
48
+ export type GroupChannelRegisterOperatorFragment<User extends UserStruct> = CommonComponent<GroupChannelRegisterOperatorProps<User>['Fragment']>;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import type { UserStruct } from '@sendbird/uikit-utils';
2
3
  import type { UserListProps } from '../types';
3
- declare const UserListList: <T>({ users, onRefresh, refreshing, renderUser, onLoadNext, ListEmptyComponent, }: {
4
+ declare const UserListList: <T extends UserStruct>({ users, onRefresh, refreshing, renderUser, onLoadNext, ListEmptyComponent, }: {
4
5
  users: T[];
5
6
  renderUser: (user: T, selectedUsers: T[], setSelectedUsers: React.Dispatch<React.SetStateAction<T[]>>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
6
7
  onLoadNext: () => Promise<void>;
@@ -1,3 +1,4 @@
1
+ import type { UserStruct } from '@sendbird/uikit-utils';
1
2
  import type { UserListModule } from '../types';
2
- declare const createUserListModule: <T>({ Header, List, StatusLoading, StatusEmpty, StatusError, Provider, ...module }?: Partial<UserListModule<T>>) => UserListModule<T>;
3
+ declare const createUserListModule: <T extends UserStruct>({ Header, List, StatusLoading, StatusEmpty, StatusError, Provider, ...module }?: Partial<UserListModule<T>>) => UserListModule<T>;
3
4
  export default createUserListModule;
@@ -1,4 +1,4 @@
1
- import { UserStruct } from '@sendbird/uikit-chat-hooks';
1
+ import { UserStruct } from '@sendbird/uikit-utils';
2
2
  import type { GroupChannelCreateFragment } from '../domain/groupChannelUserList/types';
3
3
  import type { UserListModule } from '../domain/userList/types';
4
4
  declare const createGroupChannelCreateFragment: <UserType extends UserStruct>(initModule?: Partial<UserListModule<UserType>> | undefined) => GroupChannelCreateFragment<UserType>;
@@ -1,4 +1,4 @@
1
- import { UserStruct } from '@sendbird/uikit-chat-hooks';
1
+ import type { UserStruct } from '@sendbird/uikit-utils';
2
2
  import type { GroupChannelInviteFragment } from '../domain/groupChannelUserList/types';
3
3
  import type { UserListModule } from '../domain/userList/types';
4
4
  declare const createGroupChannelInviteFragment: <UserType extends UserStruct>(initModule?: Partial<UserListModule<UserType>> | undefined) => GroupChannelInviteFragment<UserType>;
@@ -0,0 +1,3 @@
1
+ import type { GroupChannelNotificationsFragment, GroupChannelNotificationsModule } from '../domain/groupChannelNotifications/types';
2
+ declare const createGroupChannelNotificationsFragment: (initModule?: Partial<GroupChannelNotificationsModule>) => GroupChannelNotificationsFragment;
3
+ export default createGroupChannelNotificationsFragment;
@@ -1,5 +1,5 @@
1
1
  import { SendbirdUser } from '@sendbird/uikit-utils';
2
- declare type ConnectOptions = {
2
+ type ConnectOptions = {
3
3
  nickname?: string;
4
4
  accessToken?: string;
5
5
  };
@@ -10,6 +10,8 @@ export declare const usePlatformService: () => {
10
10
  };
11
11
  export declare const useSendbirdChat: () => {
12
12
  sdk: import("packages/uikit-utils/lib/typescript/src").SendbirdChatSDK;
13
+ emojiManager: import("../libs/EmojiManager").default;
14
+ mentionManager: import("../libs/MentionManager").default;
13
15
  currentUser?: import("@sendbird/chat").User | undefined;
14
16
  setCurrentUser: import("react").Dispatch<import("react").SetStateAction<import("@sendbird/chat").User | undefined>>;
15
17
  updateCurrentUserInfo: (nickname?: string | undefined, profile?: string | import("..").FileType | undefined) => Promise<import("@sendbird/chat").User>;
@@ -19,6 +21,7 @@ export declare const useSendbirdChat: () => {
19
21
  channelListTypingIndicatorEnabled: boolean;
20
22
  channelListMessageReceiptStatusEnabled: boolean;
21
23
  useUserIdForNicknameEnabled: boolean;
24
+ userMentionEnabled: boolean;
22
25
  deliveryReceiptEnabled: boolean;
23
26
  broadcastChannelEnabled: boolean;
24
27
  superGroupChannelEnabled: boolean;
@@ -26,3 +29,4 @@ export declare const useSendbirdChat: () => {
26
29
  };
27
30
  };
28
31
  export declare const useUserProfile: () => import("../contexts/UserProfileCtx").UserProfileContextType;
32
+ export declare const useReaction: () => import("../contexts/ReactionCtx").ReactionContextType;
@@ -0,0 +1,6 @@
1
+ declare const useKeyboardStatus: () => {
2
+ visible: boolean;
3
+ height: number;
4
+ bottomSpace: number;
5
+ };
6
+ export default useKeyboardStatus;
@@ -0,0 +1,17 @@
1
+ import type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';
2
+ import type { Range } from '../types';
3
+ declare const useMentionSuggestion: (params: {
4
+ text: string;
5
+ selection: Range;
6
+ channel: SendbirdGroupChannel;
7
+ mentionedUsers: {
8
+ user: SendbirdUser;
9
+ range: Range;
10
+ }[];
11
+ }) => {
12
+ members: import("@sendbird/chat/groupChannel").Member[];
13
+ reset: () => void;
14
+ searchStringRange: Range;
15
+ searchLimited: boolean;
16
+ };
17
+ export default useMentionSuggestion;
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import type { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native';
3
+ import { SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';
4
+ import type { MentionedUser } from '../types';
5
+ declare const useMentionTextInput: (params: {
6
+ messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;
7
+ }) => {
8
+ textInputRef: import("react").MutableRefObject<TextInput | undefined>;
9
+ selection: {
10
+ start: number;
11
+ end: number;
12
+ };
13
+ onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;
14
+ text: string;
15
+ onChangeText: (_nextText: string, addedMentionedUser?: MentionedUser) => void;
16
+ mentionedUsers: MentionedUser[];
17
+ };
18
+ export default useMentionTextInput;
@@ -1,4 +1,6 @@
1
1
  export { default as MessageRenderer } from './components/MessageRenderer';
2
+ export { ReactionAddons } from './components/ReactionAddons';
3
+ export { ReactionBottomSheets } from './components/ReactionBottomSheets';
2
4
  export { default as ChannelCover } from './components/ChannelCover';
3
5
  export { default as ChatFlatList } from './components/ChatFlatList';
4
6
  export { default as FileViewer } from './components/FileViewer';
@@ -21,6 +23,7 @@ export { default as createGroupChannelOperatorsFragment } from './fragments/crea
21
23
  export { default as createGroupChannelRegisterOperatorFragment } from './fragments/createGroupChannelRegisterOperatorFragment';
22
24
  export { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';
23
25
  export { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';
26
+ export { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';
24
27
  /** Context **/
25
28
  export { SendbirdChatContext, SendbirdChatProvider } from './contexts/SendbirdChatCtx';
26
29
  export { PlatformServiceContext, PlatformServiceProvider } from './contexts/PlatformServiceCtx';
@@ -29,7 +32,7 @@ export { LocalizationContext, LocalizationProvider } from './contexts/Localizati
29
32
  /** Hooks **/
30
33
  export { default as useConnection } from './hooks/useConnection';
31
34
  export { default as usePushTokenRegistration } from './hooks/usePushTokenRegistration';
32
- export { useLocalization, usePlatformService, useSendbirdChat, useUserProfile } from './hooks/useContext';
35
+ export * from './hooks/useContext';
33
36
  /** Localization **/
34
37
  export { default as StringSetEn } from './localization/StringSet.en';
35
38
  export { createBaseStringSet } from './localization/StringSet.type';
@@ -51,9 +54,11 @@ export * from './domain/groupChannelSettings';
51
54
  export type { GroupChannelSettingsProps, GroupChannelSettingsModule, GroupChannelSettingsFragment, GroupChannelSettingsContextsType, } from './domain/groupChannelSettings/types';
52
55
  export * from './domain/groupChannelList';
53
56
  export type { GroupChannelType, GroupChannelListProps, GroupChannelListModule, GroupChannelListFragment, GroupChannelListContextsType, } from './domain/groupChannelList/types';
57
+ export * from './domain/groupChannelNotifications';
58
+ export { GroupChannelNotificationsProps, GroupChannelNotificationsContextsType, GroupChannelNotificationsFragment, GroupChannelNotificationsModule, } from './domain/groupChannelNotifications/types';
59
+ export * from './domain/groupChannelUserList/types';
54
60
  export * from './domain/userList';
55
61
  export type { UserListProps, UserListModule, UserListContextsType } from './domain/userList/types';
56
- export * from './domain/groupChannelUserList/types';
57
62
  /** UIKit **/
58
63
  export { default as SendbirdUIKitContainer, SendbirdUIKit } from './containers/SendbirdUIKitContainer';
59
64
  export type { SendbirdUIKitContainerProps } from './containers/SendbirdUIKitContainer';
@@ -0,0 +1,16 @@
1
+ import type { SendbirdEmojiContainer } from '@sendbird/uikit-utils';
2
+ import InternalLocalCacheStorage from './InternalLocalCacheStorage';
3
+ declare class EmojiManager {
4
+ private internalStorage;
5
+ static key: string;
6
+ constructor(internalStorage?: InternalLocalCacheStorage);
7
+ private emojiStorage;
8
+ private _emojiCategoryMap;
9
+ get emojiCategoryMap(): Record<string, import("@sendbird/chat").EmojiCategory>;
10
+ private _allEmojiMap;
11
+ get allEmojiMap(): Record<string, import("@sendbird/chat").Emoji>;
12
+ private _allEmoji;
13
+ get allEmoji(): import("@sendbird/chat").Emoji[];
14
+ init: (emojiContainer?: SendbirdEmojiContainer) => Promise<void>;
15
+ }
16
+ export default EmojiManager;
@@ -0,0 +1,24 @@
1
+ export interface MentionConfigInterface {
2
+ mentionLimit: number;
3
+ suggestionLimit: number;
4
+ debounceMills: number;
5
+ delimiter: string;
6
+ trigger: string;
7
+ }
8
+ declare class MentionConfig {
9
+ private _config;
10
+ static DEFAULT: {
11
+ MENTION_LIMIT: number;
12
+ SUGGESTION_LIMIT: number;
13
+ DEBOUNCE_MILLS: number;
14
+ DELIMITER: string;
15
+ TRIGGER: string;
16
+ };
17
+ constructor(_config: MentionConfigInterface);
18
+ get mentionLimit(): number;
19
+ get suggestionLimit(): number;
20
+ get delimiter(): string;
21
+ get debounceMills(): number;
22
+ get trigger(): string;
23
+ }
24
+ export default MentionConfig;
@@ -0,0 +1,61 @@
1
+ import type { SendbirdFileMessage, SendbirdUser, SendbirdUserMessage } from '@sendbird/uikit-utils';
2
+ import type { MentionedUser, Range } from '../types';
3
+ import type { MentionConfigInterface } from './MentionConfig';
4
+ declare class MentionManager {
5
+ config: MentionConfigInterface;
6
+ mentionEnabled: boolean;
7
+ private _invalidStartsKeywords;
8
+ private _templateRegex;
9
+ constructor(config: MentionConfigInterface, mentionEnabled: boolean);
10
+ rangeHelpers: {
11
+ inRangeUnderOver(start: number, num: number, end: number): boolean;
12
+ inRangeUnderMore(start: number, num: number, end: number): boolean;
13
+ inRangeLessOver(start: number, num: number, end: number): boolean;
14
+ inRangeLessMore(start: number, num: number, end: number): boolean;
15
+ overlaps(a: Range, b: Range, compare?: 'underOver' | 'underMore' | 'lessOver' | 'lessMore'): boolean;
16
+ };
17
+ get templateRegex(): RegExp;
18
+ getSearchString: (text: string, selectionIndex: number) => {
19
+ searchString: string;
20
+ isTriggered: () => boolean;
21
+ isValidSearchString: () => boolean;
22
+ };
23
+ /**
24
+ * @description Reconcile the range by offset in the mentioned users
25
+ * */
26
+ reconcileRangeOfMentionedUsers: (offset: number, selectionIndex: number, mentionedUsers: MentionedUser[]) => MentionedUser[];
27
+ /**
28
+ * @description Remove users who in a range
29
+ * */
30
+ removeMentionedUsersInSelection: (selection: Range, mentionedUsers: MentionedUser[]) => {
31
+ filtered: MentionedUser[];
32
+ lastSelection: number;
33
+ removedOffset: number;
34
+ };
35
+ getSearchStringRangeInText: (selectionIndex: number, searchString: string) => Range;
36
+ /**
37
+ * @description User to @{user.id} template format
38
+ * */
39
+ asMentionedMessageTemplate: (user: SendbirdUser, delimiter?: boolean) => string;
40
+ /**
41
+ * @description User to @user.nickname text format
42
+ * */
43
+ asMentionedMessageText: (user: SendbirdUser, delimiter?: boolean) => string;
44
+ /**
45
+ * @description Bold @user.nickname
46
+ * */
47
+ textToMentionedComponents: (text: string, mentionedUsers: MentionedUser[]) => string | (string | JSX.Element)[];
48
+ textToMentionedMessageTemplate: (text: string, mentionedUsers: MentionedUser[]) => string;
49
+ /**
50
+ * @description Convert @{user.id} template to @user.nickname text and MentionedUser[] array.
51
+ * */
52
+ templateToTextAndMentionedUsers: (template: string, mentionedUsers: SendbirdUser[]) => {
53
+ mentionedText: string;
54
+ mentionedUsers: MentionedUser[];
55
+ };
56
+ shouldUseMentionedMessageTemplate: (message?: SendbirdUserMessage | SendbirdFileMessage) => message is RequiredSpecific<import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage, "mentionedMessageTemplate" | "mentionedUserIds" | "mentionType" | "mentionedUsers">;
57
+ }
58
+ type RequiredSpecific<T, K extends keyof T> = T & {
59
+ [P in K]-?: T[P];
60
+ };
61
+ export default MentionManager;
@@ -24,6 +24,8 @@ export interface StringSet {
24
24
  INPUT_PLACEHOLDER_MUTED: string;
25
25
  INPUT_EDIT_OK: string;
26
26
  INPUT_EDIT_CANCEL: string;
27
+ /** GroupChannel > Suggested mention list */
28
+ MENTION_LIMITED: (mentionLimit: number) => string;
27
29
  /** GroupChannel > Dialog > Message */
28
30
  DIALOG_MESSAGE_COPY: string;
29
31
  DIALOG_MESSAGE_EDIT: string;
@@ -47,9 +49,12 @@ export interface StringSet {
47
49
  HEADER_RIGHT: string;
48
50
  /** GroupChannelSettings > Menu */
49
51
  MENU_MODERATION: string;
50
- MENU_NOTIFICATION: string;
51
52
  MENU_MEMBERS: string;
52
53
  MENU_LEAVE_CHANNEL: string;
54
+ MENU_NOTIFICATION: string;
55
+ MENU_NOTIFICATION_LABEL_ON: string;
56
+ MENU_NOTIFICATION_LABEL_OFF: string;
57
+ MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;
53
58
  /** GroupChannelSettings > Dialog */
54
59
  DIALOG_CHANGE_NAME: string;
55
60
  DIALOG_CHANGE_IMAGE: string;
@@ -61,6 +66,15 @@ export interface StringSet {
61
66
  DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;
62
67
  DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;
63
68
  };
69
+ GROUP_CHANNEL_NOTIFICATIONS: {
70
+ /** GroupChannelNotifications > Header */
71
+ HEADER_TITLE: string;
72
+ /** GroupChannelNotifications > Menu */
73
+ MENU_NOTIFICATIONS: string;
74
+ MENU_NOTIFICATIONS_DESC: string;
75
+ MENU_NOTIFICATIONS_OPTION_ALL: string;
76
+ MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;
77
+ };
64
78
  GROUP_CHANNEL_MODERATION: {
65
79
  /** GroupChannelModeration > Header */
66
80
  HEADER_TITLE: string;
@@ -189,7 +203,7 @@ export interface StringSet {
189
203
  BODY: (user: SendbirdUser | SendbirdMember) => string;
190
204
  };
191
205
  }
192
- declare type StringSetCreateOptions = {
206
+ type StringSetCreateOptions = {
193
207
  dateLocale: Locale;
194
208
  overrides?: PartialDeep<StringSet>;
195
209
  };
@@ -1,7 +1,7 @@
1
1
  import type * as ExpoAV from 'expo-av';
2
2
  import type * as ExpoVideoThumbnail from 'expo-video-thumbnails';
3
3
  import type { MediaServiceInterface } from './types';
4
- declare type Modules = {
4
+ type Modules = {
5
5
  avModule: typeof ExpoAV;
6
6
  thumbnailModule: typeof ExpoVideoThumbnail;
7
7
  };