@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
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","Pressable","ScrollView","View","useWindowDimensions","useSafeAreaInsets","Avatar","Divider","Icon","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","conditionChaining","useLocalization","useSendbirdChat","useKeyboardStatus","useMentionSuggestion","GroupChannelContexts","GroupChannelSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","width","screenWidth","height","screenHeight","channel","Fragment","mentionManager","STRINGS","colors","topInset","left","right","keyboard","members","reset","searchStringRange","searchLimited","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","borderTopColor","onBackground04","marginRight","onBackground02","GROUP_CHANNEL","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","userId","userContainer","profileUrl","userAvatar","userInfo","onBackground01","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","position","bottom","container","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","paddingLeft","paddingRight","top","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal"],"sources":["GroupChannelSuggestedMentionList.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport {\n Avatar,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport useKeyboardStatus from '../../../hooks/useKeyboardStatus';\nimport useMentionSuggestion from '../../../hooks/useMentionSuggestion';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelSuggestedMentionList = ({\n text,\n selection,\n inputHeight,\n bottomInset,\n onPressToMention,\n mentionedUsers,\n}: GroupChannelProps['SuggestedMentionList']) => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n const { channel } = useContext(GroupChannelContexts.Fragment);\n const { mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { topInset } = useHeaderStyle();\n const { left, right } = useSafeAreaInsets();\n\n const keyboard = useKeyboardStatus();\n\n const { members, reset, searchStringRange, searchLimited } = useMentionSuggestion({\n text,\n selection,\n channel,\n mentionedUsers,\n });\n\n const isLandscape = screenWidth > screenHeight;\n const isShortened = isLandscape && keyboard.visible;\n const canRenderMembers = members.length > 0;\n const maxHeight = isShortened ? screenHeight - (topInset + inputHeight + keyboard.height) : styles.suggestion.height;\n\n const renderLimitGuide = () => {\n return (\n <View style={[styles.searchLimited, { borderTopColor: colors.onBackground04 }]}>\n <Icon icon={'info'} size={20} containerStyle={{ marginRight: 4 }} color={colors.onBackground02} />\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL.MENTION_LIMITED(mentionManager.config.mentionLimit)}\n </Text>\n </View>\n );\n };\n\n const renderMembers = () => {\n return (\n <View>\n {members.map((member) => {\n return (\n <Pressable\n onPress={() => {\n onPressToMention(member, searchStringRange);\n reset();\n }}\n key={member.userId}\n style={styles.userContainer}\n >\n <Avatar size={28} uri={member.profileUrl} containerStyle={styles.userAvatar} />\n <View style={styles.userInfo}>\n <Text body2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {member.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n <Text body3 color={colors.onBackground03} numberOfLines={1} style={styles.userId}>\n {member.userId}\n </Text>\n <Divider style={{ position: 'absolute', bottom: 0 }} />\n </View>\n </Pressable>\n );\n })}\n </View>\n );\n };\n\n return (\n <Pressable\n onPress={reset}\n pointerEvents={canRenderMembers ? 'auto' : 'none'}\n style={[styles.container, { bottom: inputHeight + bottomInset }]}\n >\n <ScrollView\n bounces={false}\n keyboardDismissMode={'none'}\n keyboardShouldPersistTaps={'always'}\n style={[\n styles.scrollView,\n {\n maxHeight,\n backgroundColor: colors.background,\n bottom: keyboard.bottomSpace,\n },\n canRenderMembers && {\n borderTopWidth: 1,\n borderTopColor: colors.onBackground04,\n },\n ]}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right }}\n >\n {conditionChaining([searchLimited, canRenderMembers], [renderLimitGuide(), renderMembers(), null])}\n </ScrollView>\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n suggestion: {\n height: 196,\n },\n container: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n },\n scrollView: {\n position: 'absolute',\n left: 0,\n right: 0,\n },\n userContainer: {\n paddingLeft: 16,\n flexDirection: 'row',\n height: 44,\n alignItems: 'center',\n justifyContent: 'center',\n },\n userAvatar: {\n marginRight: 16,\n },\n userInfo: {\n flexDirection: 'row',\n flex: 1,\n },\n userNickname: {\n flexShrink: 1,\n lineHeight: 44,\n textAlignVertical: 'center',\n marginRight: 6,\n },\n userId: {\n lineHeight: 44,\n textAlignVertical: 'center',\n minWidth: 32,\n flexShrink: 1,\n marginRight: 16,\n },\n searchLimited: {\n borderTopWidth: 1,\n paddingHorizontal: 16,\n height: 44,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\nexport default GroupChannelSuggestedMentionList;\n"],"mappings":"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"}
@@ -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 +1 @@
1
- {"version":3,"names":["default","GroupChannelHeader","GroupChannelMessageList","GroupChannelInput","GroupChannelStatusEmpty","GroupChannelStatusLoading","createGroupChannelModule","GroupChannelContextsProvider","GroupChannelContexts"],"sources":["index.ts"],"sourcesContent":["export { default as GroupChannelHeader } from './component/GroupChannelHeader';\nexport { default as GroupChannelMessageList } from './component/GroupChannelMessageList';\nexport { default as GroupChannelInput } from './component/GroupChannelInput';\nexport { default as GroupChannelStatusEmpty } from './component/GroupChannelStatusEmpty';\nexport { default as GroupChannelStatusLoading } from './component/GroupChannelStatusLoading';\nexport { default as createGroupChannelModule } from './module/createGroupChannelModule';\nexport { GroupChannelContextsProvider, GroupChannelContexts } from './module/moduleContext';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAApB,QAA8C,gCAA9C;AACA,SAASD,OAAO,IAAIE,uBAApB,QAAmD,qCAAnD;AACA,SAASF,OAAO,IAAIG,iBAApB,QAA6C,+BAA7C;AACA,SAASH,OAAO,IAAII,uBAApB,QAAmD,qCAAnD;AACA,SAASJ,OAAO,IAAIK,yBAApB,QAAqD,uCAArD;AACA,SAASL,OAAO,IAAIM,wBAApB,QAAoD,mCAApD;AACA,SAASC,4BAAT,EAAuCC,oBAAvC,QAAmE,wBAAnE"}
1
+ {"version":3,"names":["default","GroupChannelHeader","GroupChannelMessageList","GroupChannelInput","GroupChannelSuggestedMentionList","GroupChannelStatusEmpty","GroupChannelStatusLoading","createGroupChannelModule","GroupChannelContextsProvider","GroupChannelContexts"],"sources":["index.ts"],"sourcesContent":["export { default as GroupChannelHeader } from './component/GroupChannelHeader';\nexport { default as GroupChannelMessageList } from './component/GroupChannelMessageList';\nexport { default as GroupChannelInput } from './component/GroupChannelInput';\nexport { default as GroupChannelSuggestedMentionList } from './component/GroupChannelSuggestedMentionList';\nexport { default as GroupChannelStatusEmpty } from './component/GroupChannelStatusEmpty';\nexport { default as GroupChannelStatusLoading } from './component/GroupChannelStatusLoading';\nexport { default as createGroupChannelModule } from './module/createGroupChannelModule';\nexport { GroupChannelContextsProvider, GroupChannelContexts } from './module/moduleContext';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAApB,QAA8C,gCAA9C;AACA,SAASD,OAAO,IAAIE,uBAApB,QAAmD,qCAAnD;AACA,SAASF,OAAO,IAAIG,iBAApB,QAA6C,+BAA7C;AACA,SAASH,OAAO,IAAII,gCAApB,QAA4D,8CAA5D;AACA,SAASJ,OAAO,IAAIK,uBAApB,QAAmD,qCAAnD;AACA,SAASL,OAAO,IAAIM,yBAApB,QAAqD,uCAArD;AACA,SAASN,OAAO,IAAIO,wBAApB,QAAoD,mCAApD;AACA,SAASC,4BAAT,EAAuCC,oBAAvC,QAAmE,wBAAnE"}
@@ -3,6 +3,7 @@ import GroupChannelInput from '../component/GroupChannelInput';
3
3
  import GroupChannelMessageList from '../component/GroupChannelMessageList';
4
4
  import GroupChannelStatusEmpty from '../component/GroupChannelStatusEmpty';
5
5
  import GroupChannelStatusLoading from '../component/GroupChannelStatusLoading';
6
+ import GroupChannelSuggestedMentionList from '../component/GroupChannelSuggestedMentionList';
6
7
  import { GroupChannelContextsProvider } from './moduleContext';
7
8
 
8
9
  const createGroupChannelModule = function () {
@@ -10,6 +11,7 @@ const createGroupChannelModule = function () {
10
11
  Header = GroupChannelHeader,
11
12
  MessageList = GroupChannelMessageList,
12
13
  Input = GroupChannelInput,
14
+ SuggestedMentionList = GroupChannelSuggestedMentionList,
13
15
  StatusLoading = GroupChannelStatusLoading,
14
16
  StatusEmpty = GroupChannelStatusEmpty,
15
17
  Provider = GroupChannelContextsProvider,
@@ -19,6 +21,7 @@ const createGroupChannelModule = function () {
19
21
  Header,
20
22
  MessageList,
21
23
  Input,
24
+ SuggestedMentionList,
22
25
  StatusEmpty,
23
26
  StatusLoading,
24
27
  Provider,
@@ -1 +1 @@
1
- {"version":3,"names":["GroupChannelHeader","GroupChannelInput","GroupChannelMessageList","GroupChannelStatusEmpty","GroupChannelStatusLoading","GroupChannelContextsProvider","createGroupChannelModule","Header","MessageList","Input","StatusLoading","StatusEmpty","Provider","module"],"sources":["createGroupChannelModule.tsx"],"sourcesContent":["import GroupChannelHeader from '../component/GroupChannelHeader';\nimport GroupChannelInput from '../component/GroupChannelInput';\nimport GroupChannelMessageList from '../component/GroupChannelMessageList';\nimport GroupChannelStatusEmpty from '../component/GroupChannelStatusEmpty';\nimport GroupChannelStatusLoading from '../component/GroupChannelStatusLoading';\nimport type { GroupChannelModule } from '../types';\nimport { GroupChannelContextsProvider } from './moduleContext';\n\nconst createGroupChannelModule = ({\n Header = GroupChannelHeader,\n MessageList = GroupChannelMessageList,\n Input = GroupChannelInput,\n StatusLoading = GroupChannelStatusLoading,\n StatusEmpty = GroupChannelStatusEmpty,\n Provider = GroupChannelContextsProvider,\n ...module\n}: Partial<GroupChannelModule> = {}): GroupChannelModule => {\n return { Header, MessageList, Input, StatusEmpty, StatusLoading, Provider, ...module };\n};\n\nexport default createGroupChannelModule;\n"],"mappings":"AAAA,OAAOA,kBAAP,MAA+B,iCAA/B;AACA,OAAOC,iBAAP,MAA8B,gCAA9B;AACA,OAAOC,uBAAP,MAAoC,sCAApC;AACA,OAAOC,uBAAP,MAAoC,sCAApC;AACA,OAAOC,yBAAP,MAAsC,wCAAtC;AAEA,SAASC,4BAAT,QAA6C,iBAA7C;;AAEA,MAAMC,wBAAwB,GAAG,YAQ2B;EAAA,IAR1B;IAChCC,MAAM,GAAGP,kBADuB;IAEhCQ,WAAW,GAAGN,uBAFkB;IAGhCO,KAAK,GAAGR,iBAHwB;IAIhCS,aAAa,GAAGN,yBAJgB;IAKhCO,WAAW,GAAGR,uBALkB;IAMhCS,QAAQ,GAAGP,4BANqB;IAOhC,GAAGQ;EAP6B,CAQ0B,uEAA3B,EAA2B;EAC1D,OAAO;IAAEN,MAAF;IAAUC,WAAV;IAAuBC,KAAvB;IAA8BE,WAA9B;IAA2CD,aAA3C;IAA0DE,QAA1D;IAAoE,GAAGC;EAAvE,CAAP;AACD,CAVD;;AAYA,eAAeP,wBAAf"}
1
+ {"version":3,"names":["GroupChannelHeader","GroupChannelInput","GroupChannelMessageList","GroupChannelStatusEmpty","GroupChannelStatusLoading","GroupChannelSuggestedMentionList","GroupChannelContextsProvider","createGroupChannelModule","Header","MessageList","Input","SuggestedMentionList","StatusLoading","StatusEmpty","Provider","module"],"sources":["createGroupChannelModule.tsx"],"sourcesContent":["import GroupChannelHeader from '../component/GroupChannelHeader';\nimport GroupChannelInput from '../component/GroupChannelInput';\nimport GroupChannelMessageList from '../component/GroupChannelMessageList';\nimport GroupChannelStatusEmpty from '../component/GroupChannelStatusEmpty';\nimport GroupChannelStatusLoading from '../component/GroupChannelStatusLoading';\nimport GroupChannelSuggestedMentionList from '../component/GroupChannelSuggestedMentionList';\nimport type { GroupChannelModule } from '../types';\nimport { GroupChannelContextsProvider } from './moduleContext';\n\nconst createGroupChannelModule = ({\n Header = GroupChannelHeader,\n MessageList = GroupChannelMessageList,\n Input = GroupChannelInput,\n SuggestedMentionList = GroupChannelSuggestedMentionList,\n StatusLoading = GroupChannelStatusLoading,\n StatusEmpty = GroupChannelStatusEmpty,\n Provider = GroupChannelContextsProvider,\n ...module\n}: Partial<GroupChannelModule> = {}): GroupChannelModule => {\n return {\n Header,\n MessageList,\n Input,\n SuggestedMentionList,\n StatusEmpty,\n StatusLoading,\n Provider,\n ...module,\n };\n};\n\nexport default createGroupChannelModule;\n"],"mappings":"AAAA,OAAOA,kBAAP,MAA+B,iCAA/B;AACA,OAAOC,iBAAP,MAA8B,gCAA9B;AACA,OAAOC,uBAAP,MAAoC,sCAApC;AACA,OAAOC,uBAAP,MAAoC,sCAApC;AACA,OAAOC,yBAAP,MAAsC,wCAAtC;AACA,OAAOC,gCAAP,MAA6C,+CAA7C;AAEA,SAASC,4BAAT,QAA6C,iBAA7C;;AAEA,MAAMC,wBAAwB,GAAG,YAS2B;EAAA,IAT1B;IAChCC,MAAM,GAAGR,kBADuB;IAEhCS,WAAW,GAAGP,uBAFkB;IAGhCQ,KAAK,GAAGT,iBAHwB;IAIhCU,oBAAoB,GAAGN,gCAJS;IAKhCO,aAAa,GAAGR,yBALgB;IAMhCS,WAAW,GAAGV,uBANkB;IAOhCW,QAAQ,GAAGR,4BAPqB;IAQhC,GAAGS;EAR6B,CAS0B,uEAA3B,EAA2B;EAC1D,OAAO;IACLP,MADK;IAELC,WAFK;IAGLC,KAHK;IAILC,oBAJK;IAKLE,WALK;IAMLD,aANK;IAOLE,QAPK;IAQL,GAAGC;EARE,CAAP;AAUD,CApBD;;AAsBA,eAAeR,wBAAf"}
@@ -7,7 +7,7 @@ export const GroupChannelContexts = {
7
7
  Fragment: /*#__PURE__*/createContext({
8
8
  headerTitle: '',
9
9
  channel: {},
10
- setEditMessage: NOOP
10
+ setMessageToEdit: NOOP
11
11
  }),
12
12
  TypingIndicator: /*#__PURE__*/createContext({
13
13
  typingUsers: []
@@ -30,7 +30,7 @@ export const GroupChannelContextsProvider = _ref => {
30
30
  sdk
31
31
  } = useSendbirdChat();
32
32
  const [typingUsers, setTypingUsers] = useState([]);
33
- const [editMessage, setEditMessage] = useState();
33
+ const [messageToEdit, setMessageToEdit] = useState();
34
34
  useChannelHandler(sdk, `GroupChannelContextsProvider_${id}`, {
35
35
  onTypingStatusUpdated(eventChannel) {
36
36
  if (isDifferentChannel(channel, eventChannel)) return;
@@ -43,8 +43,8 @@ export const GroupChannelContextsProvider = _ref => {
43
43
  value: {
44
44
  headerTitle: STRINGS.GROUP_CHANNEL.HEADER_TITLE((currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ?? '', channel),
45
45
  channel,
46
- editMessage,
47
- setEditMessage,
46
+ messageToEdit,
47
+ setMessageToEdit,
48
48
  keyboardAvoidOffset
49
49
  }
50
50
  }, /*#__PURE__*/React.createElement(GroupChannelContexts.TypingIndicator.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useState","useChannelHandler","NOOP","isDifferentChannel","useUniqId","ProviderLayout","useLocalization","useSendbirdChat","GroupChannelContexts","Fragment","headerTitle","channel","setEditMessage","TypingIndicator","typingUsers","GroupChannelContextsProvider","children","enableTypingIndicator","keyboardAvoidOffset","Error","id","STRINGS","currentUser","sdk","setTypingUsers","editMessage","onTypingStatusUpdated","eventChannel","getTypingUsers","GROUP_CHANNEL","HEADER_TITLE","userId"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport {\n NOOP,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdUser,\n SendbirdUserMessage,\n isDifferentChannel,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelContextsType, GroupChannelModule } from '../types';\n\nexport const GroupChannelContexts: GroupChannelContextsType = {\n Fragment: createContext({\n headerTitle: '',\n channel: {} as SendbirdGroupChannel,\n setEditMessage: NOOP,\n }),\n TypingIndicator: createContext({\n typingUsers: [] as SendbirdUser[],\n }),\n};\n\nexport const GroupChannelContextsProvider: GroupChannelModule['Provider'] = ({\n children,\n channel,\n enableTypingIndicator,\n keyboardAvoidOffset = 0,\n}) => {\n if (!channel) throw new Error('GroupChannel is not provided to GroupChannelModule');\n\n const id = useUniqId('GroupChannelContextsProvider');\n const { STRINGS } = useLocalization();\n const { currentUser, sdk } = useSendbirdChat();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n const [editMessage, setEditMessage] = useState<SendbirdUserMessage | SendbirdFileMessage>();\n\n useChannelHandler(sdk, `GroupChannelContextsProvider_${id}`, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (!enableTypingIndicator) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n\n return (\n <ProviderLayout>\n <GroupChannelContexts.Fragment.Provider\n value={{\n headerTitle: STRINGS.GROUP_CHANNEL.HEADER_TITLE(currentUser?.userId ?? '', channel),\n channel,\n editMessage,\n setEditMessage,\n keyboardAvoidOffset,\n }}\n >\n <GroupChannelContexts.TypingIndicator.Provider value={{ typingUsers }}>\n {children}\n </GroupChannelContexts.TypingIndicator.Provider>\n </GroupChannelContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,QAA/B,QAA+C,OAA/C;AAEA,SAASC,iBAAT,QAAkC,4BAAlC;AACA,SACEC,IADF,EAMEC,kBANF,EAOEC,SAPF,QAQO,uBARP;AAUA,OAAOC,cAAP,MAA2B,oCAA3B;AACA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,2BAAjD;AAGA,OAAO,MAAMC,oBAA8C,GAAG;EAC5DC,QAAQ,eAAEV,aAAa,CAAC;IACtBW,WAAW,EAAE,EADS;IAEtBC,OAAO,EAAE,EAFa;IAGtBC,cAAc,EAAEV;EAHM,CAAD,CADqC;EAM5DW,eAAe,eAAEd,aAAa,CAAC;IAC7Be,WAAW,EAAE;EADgB,CAAD;AAN8B,CAAvD;AAWP,OAAO,MAAMC,4BAA4D,GAAG,QAKtE;EAAA,IALuE;IAC3EC,QAD2E;IAE3EL,OAF2E;IAG3EM,qBAH2E;IAI3EC,mBAAmB,GAAG;EAJqD,CAKvE;EACJ,IAAI,CAACP,OAAL,EAAc,MAAM,IAAIQ,KAAJ,CAAU,oDAAV,CAAN;EAEd,MAAMC,EAAE,GAAGhB,SAAS,CAAC,8BAAD,CAApB;EACA,MAAM;IAAEiB;EAAF,IAAcf,eAAe,EAAnC;EACA,MAAM;IAAEgB,WAAF;IAAeC;EAAf,IAAuBhB,eAAe,EAA5C;EAEA,MAAM,CAACO,WAAD,EAAcU,cAAd,IAAgCxB,QAAQ,CAAiB,EAAjB,CAA9C;EACA,MAAM,CAACyB,WAAD,EAAcb,cAAd,IAAgCZ,QAAQ,EAA9C;EAEAC,iBAAiB,CAACsB,GAAD,EAAO,gCAA+BH,EAAG,EAAzC,EAA4C;IAC3DM,qBAAqB,CAACC,YAAD,EAAe;MAClC,IAAIxB,kBAAkB,CAACQ,OAAD,EAAUgB,YAAV,CAAtB,EAA+C;MAC/C,IAAI,CAACV,qBAAL,EAA4B;MAC5BO,cAAc,CAACG,YAAY,CAACC,cAAb,EAAD,CAAd;IACD;;EAL0D,CAA5C,CAAjB;EAQA,oBACE,oBAAC,cAAD,qBACE,oBAAC,oBAAD,CAAsB,QAAtB,CAA+B,QAA/B;IACE,KAAK,EAAE;MACLlB,WAAW,EAAEW,OAAO,CAACQ,aAAR,CAAsBC,YAAtB,CAAmC,CAAAR,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAES,MAAb,KAAuB,EAA1D,EAA8DpB,OAA9D,CADR;MAELA,OAFK;MAGLc,WAHK;MAILb,cAJK;MAKLM;IALK;EADT,gBASE,oBAAC,oBAAD,CAAsB,eAAtB,CAAsC,QAAtC;IAA+C,KAAK,EAAE;MAAEJ;IAAF;EAAtD,GACGE,QADH,CATF,CADF,CADF;AAiBD,CAxCM"}
1
+ {"version":3,"names":["React","createContext","useState","useChannelHandler","NOOP","isDifferentChannel","useUniqId","ProviderLayout","useLocalization","useSendbirdChat","GroupChannelContexts","Fragment","headerTitle","channel","setMessageToEdit","TypingIndicator","typingUsers","GroupChannelContextsProvider","children","enableTypingIndicator","keyboardAvoidOffset","Error","id","STRINGS","currentUser","sdk","setTypingUsers","messageToEdit","onTypingStatusUpdated","eventChannel","getTypingUsers","GROUP_CHANNEL","HEADER_TITLE","userId"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport {\n NOOP,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdUser,\n SendbirdUserMessage,\n isDifferentChannel,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelContextsType, GroupChannelModule } from '../types';\n\nexport const GroupChannelContexts: GroupChannelContextsType = {\n Fragment: createContext({\n headerTitle: '',\n channel: {} as SendbirdGroupChannel,\n setMessageToEdit: NOOP,\n }),\n TypingIndicator: createContext({\n typingUsers: [] as SendbirdUser[],\n }),\n};\n\nexport const GroupChannelContextsProvider: GroupChannelModule['Provider'] = ({\n children,\n channel,\n enableTypingIndicator,\n keyboardAvoidOffset = 0,\n}) => {\n if (!channel) throw new Error('GroupChannel is not provided to GroupChannelModule');\n\n const id = useUniqId('GroupChannelContextsProvider');\n const { STRINGS } = useLocalization();\n const { currentUser, sdk } = useSendbirdChat();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n const [messageToEdit, setMessageToEdit] = useState<SendbirdUserMessage | SendbirdFileMessage>();\n\n useChannelHandler(sdk, `GroupChannelContextsProvider_${id}`, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (!enableTypingIndicator) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n\n return (\n <ProviderLayout>\n <GroupChannelContexts.Fragment.Provider\n value={{\n headerTitle: STRINGS.GROUP_CHANNEL.HEADER_TITLE(currentUser?.userId ?? '', channel),\n channel,\n messageToEdit,\n setMessageToEdit,\n keyboardAvoidOffset,\n }}\n >\n <GroupChannelContexts.TypingIndicator.Provider value={{ typingUsers }}>\n {children}\n </GroupChannelContexts.TypingIndicator.Provider>\n </GroupChannelContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,QAA/B,QAA+C,OAA/C;AAEA,SAASC,iBAAT,QAAkC,4BAAlC;AACA,SACEC,IADF,EAMEC,kBANF,EAOEC,SAPF,QAQO,uBARP;AAUA,OAAOC,cAAP,MAA2B,oCAA3B;AACA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,2BAAjD;AAGA,OAAO,MAAMC,oBAA8C,GAAG;EAC5DC,QAAQ,eAAEV,aAAa,CAAC;IACtBW,WAAW,EAAE,EADS;IAEtBC,OAAO,EAAE,EAFa;IAGtBC,gBAAgB,EAAEV;EAHI,CAAD,CADqC;EAM5DW,eAAe,eAAEd,aAAa,CAAC;IAC7Be,WAAW,EAAE;EADgB,CAAD;AAN8B,CAAvD;AAWP,OAAO,MAAMC,4BAA4D,GAAG,QAKtE;EAAA,IALuE;IAC3EC,QAD2E;IAE3EL,OAF2E;IAG3EM,qBAH2E;IAI3EC,mBAAmB,GAAG;EAJqD,CAKvE;EACJ,IAAI,CAACP,OAAL,EAAc,MAAM,IAAIQ,KAAJ,CAAU,oDAAV,CAAN;EAEd,MAAMC,EAAE,GAAGhB,SAAS,CAAC,8BAAD,CAApB;EACA,MAAM;IAAEiB;EAAF,IAAcf,eAAe,EAAnC;EACA,MAAM;IAAEgB,WAAF;IAAeC;EAAf,IAAuBhB,eAAe,EAA5C;EAEA,MAAM,CAACO,WAAD,EAAcU,cAAd,IAAgCxB,QAAQ,CAAiB,EAAjB,CAA9C;EACA,MAAM,CAACyB,aAAD,EAAgBb,gBAAhB,IAAoCZ,QAAQ,EAAlD;EAEAC,iBAAiB,CAACsB,GAAD,EAAO,gCAA+BH,EAAG,EAAzC,EAA4C;IAC3DM,qBAAqB,CAACC,YAAD,EAAe;MAClC,IAAIxB,kBAAkB,CAACQ,OAAD,EAAUgB,YAAV,CAAtB,EAA+C;MAC/C,IAAI,CAACV,qBAAL,EAA4B;MAC5BO,cAAc,CAACG,YAAY,CAACC,cAAb,EAAD,CAAd;IACD;;EAL0D,CAA5C,CAAjB;EAQA,oBACE,oBAAC,cAAD,qBACE,oBAAC,oBAAD,CAAsB,QAAtB,CAA+B,QAA/B;IACE,KAAK,EAAE;MACLlB,WAAW,EAAEW,OAAO,CAACQ,aAAR,CAAsBC,YAAtB,CAAmC,CAAAR,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAES,MAAb,KAAuB,EAA1D,EAA8DpB,OAA9D,CADR;MAELA,OAFK;MAGLc,aAHK;MAILb,gBAJK;MAKLM;IALK;EADT,gBASE,oBAAC,oBAAD,CAAsB,eAAtB,CAAsC,QAAtC;IAA+C,KAAK,EAAE;MAAEJ;IAAF;EAAtD,GACGE,QADH,CATF,CADF,CADF;AAiBD,CAxCM"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUser,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../../platform/types';\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];\n\n onBeforeSendFileMessage?: (\n params: SendbirdFileMessageCreateParams,\n ) => SendbirdFileMessageCreateParams | Promise<SendbirdFileMessageCreateParams>;\n onBeforeSendUserMessage?: (\n params: SendbirdUserMessageCreateParams,\n ) => SendbirdUserMessageCreateParams | Promise<SendbirdUserMessageCreateParams>;\n onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];\n\n renderMessage?: GroupChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: GroupChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: GroupChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableTypingIndicator?: GroupChannelProps['Provider']['enableTypingIndicator'];\n enableMessageGrouping?: GroupChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: GroupChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: GroupChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];\n collectionCreator?: UseGroupChannelMessagesOptions['collectionCreator'];\n queryCreator?: UseGroupChannelMessagesOptions['queryCreator'];\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: GroupChannelProps['MessageList']['onPressImageMessage'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n MessageList: {\n enableMessageGrouping: boolean;\n currentUserId?: string;\n channel: SendbirdGroupChannel;\n messages: SendbirdMessage[];\n nextMessages: SendbirdMessage[];\n newMessagesFromMembers: SendbirdMessage[];\n onTopReached: () => void;\n onBottomReached: () => void;\n\n onResendFailedMessage: (failedMessage: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onDeleteMessage: (message: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;\n\n renderMessage: (props: {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n channel: GroupChannelProps['MessageList']['channel'];\n currentUserId?: GroupChannelProps['MessageList']['currentUserId'];\n enableMessageGrouping: GroupChannelProps['MessageList']['enableMessageGrouping'];\n }) => React.ReactElement | null;\n renderNewMessagesButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n newMessages: SendbirdMessage[];\n }>;\n renderScrollToBottomButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n }>;\n flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: (message: SendbirdFileMessage, uri: string) => void;\n };\n Input: {\n shouldRenderInput: boolean;\n onSendFileMessage: (file: FileType) => Promise<void>;\n onSendUserMessage: (text: string) => Promise<void>;\n onUpdateFileMessage: (editedFile: FileType, message: SendbirdFileMessage) => Promise<void>;\n onUpdateUserMessage: (editedText: string, message: SendbirdUserMessage) => Promise<void>;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n enableTypingIndicator: boolean;\n keyboardAvoidOffset?: number;\n };\n}\n\n/**\n * Internal context for GroupChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n editMessage?: SendbirdUserMessage | SendbirdFileMessage;\n setEditMessage: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n keyboardAvoidOffset?: number;\n }>;\n TypingIndicator: React.Context<{\n typingUsers: SendbirdUser[];\n }>;\n}\nexport interface GroupChannelModule {\n Provider: CommonComponent<GroupChannelProps['Provider']>;\n Header: CommonComponent<GroupChannelProps['Header']>;\n MessageList: CommonComponent<GroupChannelProps['MessageList']>;\n Input: CommonComponent<GroupChannelProps['Input']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelFragment = CommonComponent<GroupChannelProps['Fragment']>;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdUser,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../../platform/types';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\n\ntype UserMessageMentionParams = Required<{\n messageTemplate: SendbirdUserMessageCreateParams['mentionedMessageTemplate'];\n userIds: SendbirdUserMessageCreateParams['mentionedUserIds'];\n type: SendbirdUserMessageCreateParams['mentionType'];\n}>;\n\nexport interface GroupChannelProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];\n\n onBeforeSendFileMessage?: (\n params: SendbirdFileMessageCreateParams,\n ) => SendbirdFileMessageCreateParams | Promise<SendbirdFileMessageCreateParams>;\n onBeforeSendUserMessage?: (\n params: SendbirdUserMessageCreateParams,\n ) => SendbirdUserMessageCreateParams | Promise<SendbirdUserMessageCreateParams>;\n onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];\n\n renderMessage?: GroupChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: GroupChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: GroupChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableTypingIndicator?: GroupChannelProps['Provider']['enableTypingIndicator'];\n enableMessageGrouping?: GroupChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: GroupChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: GroupChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];\n collectionCreator?: UseGroupChannelMessagesOptions['collectionCreator'];\n queryCreator?: UseGroupChannelMessagesOptions['queryCreator'];\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: GroupChannelProps['MessageList']['onPressImageMessage'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n MessageList: {\n enableMessageGrouping: boolean;\n currentUserId?: string;\n channel: SendbirdGroupChannel;\n messages: SendbirdMessage[];\n nextMessages: SendbirdMessage[];\n newMessagesFromMembers: SendbirdMessage[];\n onTopReached: () => void;\n onBottomReached: () => void;\n\n onResendFailedMessage: (failedMessage: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onDeleteMessage: (message: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;\n\n renderMessage: (props: {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n channel: GroupChannelProps['MessageList']['channel'];\n currentUserId?: GroupChannelProps['MessageList']['currentUserId'];\n enableMessageGrouping: GroupChannelProps['MessageList']['enableMessageGrouping'];\n }) => React.ReactElement | null;\n renderNewMessagesButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n newMessages: SendbirdMessage[];\n }>;\n renderScrollToBottomButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n }>;\n flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: (message: SendbirdFileMessage, uri: string) => void;\n };\n Input: {\n shouldRenderInput: boolean;\n onSendFileMessage: (file: FileType) => Promise<void>;\n onSendUserMessage: (text: string, mention?: UserMessageMentionParams) => Promise<void>;\n onUpdateFileMessage: (editedFile: FileType, message: SendbirdFileMessage) => Promise<void>;\n onUpdateUserMessage: (\n editedText: string,\n message: SendbirdUserMessage,\n mention?: UserMessageMentionParams,\n ) => Promise<void>;\n SuggestedMentionList: (props: GroupChannelProps['SuggestedMentionList']) => JSX.Element | null;\n };\n\n SuggestedMentionList: {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n enableTypingIndicator: boolean;\n keyboardAvoidOffset?: number;\n };\n}\n\n/**\n * Internal context for GroupChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n keyboardAvoidOffset?: number;\n }>;\n TypingIndicator: React.Context<{\n typingUsers: SendbirdUser[];\n }>;\n}\nexport interface GroupChannelModule {\n Provider: CommonComponent<GroupChannelProps['Provider']>;\n Header: CommonComponent<GroupChannelProps['Header']>;\n MessageList: CommonComponent<GroupChannelProps['MessageList']>;\n Input: CommonComponent<GroupChannelProps['Input']>;\n SuggestedMentionList: CommonComponent<GroupChannelProps['SuggestedMentionList']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelFragment = CommonComponent<GroupChannelProps['Fragment']>;\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FlatList } from 'react-native';
3
3
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
- import { useFreshCallback } from '@sendbird/uikit-utils';
4
+ import { getUserUniqId, useFreshCallback } from '@sendbird/uikit-utils';
5
5
 
6
6
  const GroupChannelBannedUsersList = _ref => {
7
7
  let {
@@ -31,8 +31,9 @@ const GroupChannelBannedUsersList = _ref => {
31
31
  flexGrow: 1
32
32
  },
33
33
  ListEmptyComponent: ListEmptyComponent,
34
- onEndReached: () => onLoadNext(),
35
- bounces: false
34
+ onEndReached: onLoadNext,
35
+ bounces: false,
36
+ keyExtractor: getUserUniqId
36
37
  });
37
38
  };
38
39
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","FlatList","useSafeAreaInsets","useFreshCallback","GroupChannelBannedUsersList","renderUser","bannedUsers","onLoadNext","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelBannedUsersList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { SendbirdRestrictedUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelBannedUsersProps } from '../types';\n\nconst GroupChannelBannedUsersList = ({\n renderUser,\n bannedUsers,\n onLoadNext,\n ListEmptyComponent,\n}: GroupChannelBannedUsersProps['List']) => {\n const renderItem: ListRenderItem<SendbirdRestrictedUser> = useFreshCallback(({ item }) =>\n renderUser?.({ user: item }),\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={bannedUsers}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n onEndReached={() => onLoadNext()}\n bounces={false}\n />\n );\n};\n\nexport default GroupChannelBannedUsersList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAAiCC,gBAAjC,QAAyD,uBAAzD;;AAIA,MAAMC,2BAA2B,GAAG,QAKQ;EAAA,IALP;IACnCC,UADmC;IAEnCC,WAFmC;IAGnCC,UAHmC;IAInCC;EAJmC,CAKO;EAC1C,MAAMC,UAAkD,GAAGN,gBAAgB,CAAC;IAAA,IAAC;MAAEO;IAAF,CAAD;IAAA,OAC1EL,UAD0E,aAC1EA,UAD0E,uBAC1EA,UAAU,CAAG;MAAEM,IAAI,EAAED;IAAR,CAAH,CADgE;EAAA,CAAD,CAA3E;EAGA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBX,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEI,WADR;IAEE,UAAU,EAAEG,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,YAAY,EAAE,MAAMD,UAAU,EALhC;IAME,OAAO,EAAE;EANX,EADF;AAUD,CArBD;;AAuBA,eAAeH,2BAAf"}
1
+ {"version":3,"names":["React","FlatList","useSafeAreaInsets","getUserUniqId","useFreshCallback","GroupChannelBannedUsersList","renderUser","bannedUsers","onLoadNext","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelBannedUsersList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { SendbirdRestrictedUser, getUserUniqId, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelBannedUsersProps } from '../types';\n\nconst GroupChannelBannedUsersList = ({\n renderUser,\n bannedUsers,\n onLoadNext,\n ListEmptyComponent,\n}: GroupChannelBannedUsersProps['List']) => {\n const renderItem: ListRenderItem<SendbirdRestrictedUser> = useFreshCallback(({ item }) =>\n renderUser?.({ user: item }),\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={bannedUsers}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n onEndReached={onLoadNext}\n bounces={false}\n keyExtractor={getUserUniqId}\n />\n );\n};\n\nexport default GroupChannelBannedUsersList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAAiCC,aAAjC,EAAgDC,gBAAhD,QAAwE,uBAAxE;;AAIA,MAAMC,2BAA2B,GAAG,QAKQ;EAAA,IALP;IACnCC,UADmC;IAEnCC,WAFmC;IAGnCC,UAHmC;IAInCC;EAJmC,CAKO;EAC1C,MAAMC,UAAkD,GAAGN,gBAAgB,CAAC;IAAA,IAAC;MAAEO;IAAF,CAAD;IAAA,OAC1EL,UAD0E,aAC1EA,UAD0E,uBAC1EA,UAAU,CAAG;MAAEM,IAAI,EAAED;IAAR,CAAH,CADgE;EAAA,CAAD,CAA3E;EAGA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBZ,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEK,WADR;IAEE,UAAU,EAAEG,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,YAAY,EAAED,UALhB;IAME,OAAO,EAAE,KANX;IAOE,YAAY,EAAEL;EAPhB,EADF;AAWD,CAtBD;;AAwBA,eAAeE,2BAAf"}
@@ -5,7 +5,7 @@ import { FlatList } from 'react-native';
5
5
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
6
6
  import { PushTriggerOption } from '@sendbird/chat';
7
7
  import { useActionMenu, useToast } from '@sendbird/uikit-react-native-foundation';
8
- import { PASS, useFreshCallback } from '@sendbird/uikit-utils';
8
+ import { PASS, getChannelUniqId, useFreshCallback } from '@sendbird/uikit-utils';
9
9
  import { useLocalization, useSendbirdChat } from '../../../hooks/useContext';
10
10
 
11
11
  const GroupChannelListList = _ref => {
@@ -72,7 +72,8 @@ const GroupChannelListList = _ref => {
72
72
  contentContainerStyle: [flatListProps === null || flatListProps === void 0 ? void 0 : flatListProps.contentContainerStyle, {
73
73
  paddingLeft: left,
74
74
  paddingRight: right
75
- }]
75
+ }],
76
+ keyExtractor: getChannelUniqId
76
77
  }));
77
78
  };
78
79
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","FlatList","useSafeAreaInsets","PushTriggerOption","useActionMenu","useToast","PASS","useFreshCallback","useLocalization","useSendbirdChat","GroupChannelListList","renderGroupChannelPreview","groupChannels","onLoadNext","flatListProps","menuItemCreator","toast","openMenu","STRINGS","sdk","currentUser","onLongPress","channel","action","myPushTriggerOption","menuItem","title","GROUP_CHANNEL_LIST","DIALOG_CHANNEL_TITLE","userId","menuItems","DIALOG_CHANNEL_NOTIFICATION","onPress","setMyPushTriggerOption","DEFAULT","OFF","onError","show","TOAST","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","DIALOG_CHANNEL_LEAVE","leave","then","clearCachedMessages","url","catch","LEAVE_CHANNEL_ERROR","renderItem","item","left","right","contentContainerStyle","paddingLeft","paddingRight"],"sources":["GroupChannelListList.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { PushTriggerOption } from '@sendbird/chat';\nimport { useActionMenu, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { PASS, SendbirdGroupChannel, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelListProps } from '../types';\n\nconst GroupChannelListList = ({\n renderGroupChannelPreview,\n groupChannels,\n onLoadNext,\n flatListProps,\n menuItemCreator = PASS,\n}: GroupChannelListProps['List']) => {\n const toast = useToast();\n const { openMenu } = useActionMenu();\n const { STRINGS } = useLocalization();\n const { sdk, currentUser } = useSendbirdChat();\n\n const onLongPress = useFreshCallback((channel: SendbirdGroupChannel) => {\n const action = channel.myPushTriggerOption === 'off' ? 'on' : 'off';\n const menuItem = menuItemCreator({\n title: STRINGS.GROUP_CHANNEL_LIST.DIALOG_CHANNEL_TITLE(currentUser?.userId ?? '', channel),\n menuItems: [\n {\n title: STRINGS.GROUP_CHANNEL_LIST.DIALOG_CHANNEL_NOTIFICATION(channel),\n onPress: async () => {\n if (action === 'on') {\n await channel.setMyPushTriggerOption(PushTriggerOption.DEFAULT);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n },\n onError: () => {\n toast.show(\n action === 'on' ? STRINGS.TOAST.TURN_ON_NOTIFICATIONS_ERROR : STRINGS.TOAST.TURN_OFF_NOTIFICATIONS_ERROR,\n 'error',\n );\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL_LIST.DIALOG_CHANNEL_LEAVE,\n onPress: async () => {\n channel.leave().then(() => sdk.clearCachedMessages([channel.url]).catch());\n },\n onError: () => toast.show(STRINGS.TOAST.LEAVE_CHANNEL_ERROR, 'error'),\n },\n ],\n });\n\n openMenu(menuItem);\n });\n\n const renderItem: ListRenderItem<SendbirdGroupChannel> = useCallback(\n ({ item }) => renderGroupChannelPreview?.(item, () => onLongPress(item)),\n [renderGroupChannelPreview, onLongPress],\n );\n\n const { left, right } = useSafeAreaInsets();\n return (\n <FlatList\n bounces={false}\n data={groupChannels}\n renderItem={renderItem}\n onEndReached={onLoadNext}\n {...flatListProps}\n contentContainerStyle={[flatListProps?.contentContainerStyle, { paddingLeft: left, paddingRight: right }]}\n />\n );\n};\n\nexport default GroupChannelListList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","FlatList","useSafeAreaInsets","PushTriggerOption","useActionMenu","useToast","PASS","getChannelUniqId","useFreshCallback","useLocalization","useSendbirdChat","GroupChannelListList","renderGroupChannelPreview","groupChannels","onLoadNext","flatListProps","menuItemCreator","toast","openMenu","STRINGS","sdk","currentUser","onLongPress","channel","action","myPushTriggerOption","menuItem","title","GROUP_CHANNEL_LIST","DIALOG_CHANNEL_TITLE","userId","menuItems","DIALOG_CHANNEL_NOTIFICATION","onPress","setMyPushTriggerOption","DEFAULT","OFF","onError","show","TOAST","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","DIALOG_CHANNEL_LEAVE","leave","then","clearCachedMessages","url","catch","LEAVE_CHANNEL_ERROR","renderItem","item","left","right","contentContainerStyle","paddingLeft","paddingRight"],"sources":["GroupChannelListList.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { PushTriggerOption } from '@sendbird/chat';\nimport { useActionMenu, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { PASS, SendbirdGroupChannel, getChannelUniqId, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelListProps } from '../types';\n\nconst GroupChannelListList = ({\n renderGroupChannelPreview,\n groupChannels,\n onLoadNext,\n flatListProps,\n menuItemCreator = PASS,\n}: GroupChannelListProps['List']) => {\n const toast = useToast();\n const { openMenu } = useActionMenu();\n const { STRINGS } = useLocalization();\n const { sdk, currentUser } = useSendbirdChat();\n\n const onLongPress = useFreshCallback((channel: SendbirdGroupChannel) => {\n const action = channel.myPushTriggerOption === 'off' ? 'on' : 'off';\n const menuItem = menuItemCreator({\n title: STRINGS.GROUP_CHANNEL_LIST.DIALOG_CHANNEL_TITLE(currentUser?.userId ?? '', channel),\n menuItems: [\n {\n title: STRINGS.GROUP_CHANNEL_LIST.DIALOG_CHANNEL_NOTIFICATION(channel),\n onPress: async () => {\n if (action === 'on') {\n await channel.setMyPushTriggerOption(PushTriggerOption.DEFAULT);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n },\n onError: () => {\n toast.show(\n action === 'on' ? STRINGS.TOAST.TURN_ON_NOTIFICATIONS_ERROR : STRINGS.TOAST.TURN_OFF_NOTIFICATIONS_ERROR,\n 'error',\n );\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL_LIST.DIALOG_CHANNEL_LEAVE,\n onPress: async () => {\n channel.leave().then(() => sdk.clearCachedMessages([channel.url]).catch());\n },\n onError: () => toast.show(STRINGS.TOAST.LEAVE_CHANNEL_ERROR, 'error'),\n },\n ],\n });\n\n openMenu(menuItem);\n });\n\n const renderItem: ListRenderItem<SendbirdGroupChannel> = useCallback(\n ({ item }) => renderGroupChannelPreview?.(item, () => onLongPress(item)),\n [renderGroupChannelPreview, onLongPress],\n );\n\n const { left, right } = useSafeAreaInsets();\n return (\n <FlatList\n bounces={false}\n data={groupChannels}\n renderItem={renderItem}\n onEndReached={onLoadNext}\n {...flatListProps}\n contentContainerStyle={[flatListProps?.contentContainerStyle, { paddingLeft: left, paddingRight: right }]}\n keyExtractor={getChannelUniqId}\n />\n );\n};\n\nexport default GroupChannelListList;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FlatList } from 'react-native';
3
3
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
- import { useFreshCallback } from '@sendbird/uikit-utils';
4
+ import { getUserUniqId, useFreshCallback } from '@sendbird/uikit-utils';
5
5
 
6
6
  const GroupChannelMutedMembersList = _ref => {
7
7
  let {
@@ -30,7 +30,8 @@ const GroupChannelMutedMembersList = _ref => {
30
30
  flexGrow: 1
31
31
  },
32
32
  ListEmptyComponent: ListEmptyComponent,
33
- bounces: false
33
+ bounces: false,
34
+ keyExtractor: getUserUniqId
34
35
  });
35
36
  };
36
37
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","FlatList","useSafeAreaInsets","useFreshCallback","GroupChannelMutedMembersList","renderUser","mutedMembers","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelMutedMembersList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { SendbirdRestrictedUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelMutedMembersProps } from '../types';\n\nconst GroupChannelMutedMembersList = ({\n renderUser,\n mutedMembers,\n ListEmptyComponent,\n}: GroupChannelMutedMembersProps['List']) => {\n const renderItem: ListRenderItem<SendbirdRestrictedUser> = useFreshCallback(({ item }) =>\n renderUser?.({ user: item }),\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={mutedMembers}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n bounces={false}\n />\n );\n};\n\nexport default GroupChannelMutedMembersList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAAiCC,gBAAjC,QAAyD,uBAAzD;;AAIA,MAAMC,4BAA4B,GAAG,QAIQ;EAAA,IAJP;IACpCC,UADoC;IAEpCC,YAFoC;IAGpCC;EAHoC,CAIO;EAC3C,MAAMC,UAAkD,GAAGL,gBAAgB,CAAC;IAAA,IAAC;MAAEM;IAAF,CAAD;IAAA,OAC1EJ,UAD0E,aAC1EA,UAD0E,uBAC1EA,UAAU,CAAG;MAAEK,IAAI,EAAED;IAAR,CAAH,CADgE;EAAA,CAAD,CAA3E;EAGA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBV,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEI,YADR;IAEE,UAAU,EAAEE,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,OAAO,EAAE;EALX,EADF;AASD,CAnBD;;AAqBA,eAAeH,4BAAf"}
1
+ {"version":3,"names":["React","FlatList","useSafeAreaInsets","getUserUniqId","useFreshCallback","GroupChannelMutedMembersList","renderUser","mutedMembers","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelMutedMembersList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { SendbirdRestrictedUser, getUserUniqId, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelMutedMembersProps } from '../types';\n\nconst GroupChannelMutedMembersList = ({\n renderUser,\n mutedMembers,\n ListEmptyComponent,\n}: GroupChannelMutedMembersProps['List']) => {\n const renderItem: ListRenderItem<SendbirdRestrictedUser> = useFreshCallback(({ item }) =>\n renderUser?.({ user: item }),\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={mutedMembers}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n bounces={false}\n keyExtractor={getUserUniqId}\n />\n );\n};\n\nexport default GroupChannelMutedMembersList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAAiCC,aAAjC,EAAgDC,gBAAhD,QAAwE,uBAAxE;;AAIA,MAAMC,4BAA4B,GAAG,QAIQ;EAAA,IAJP;IACpCC,UADoC;IAEpCC,YAFoC;IAGpCC;EAHoC,CAIO;EAC3C,MAAMC,UAAkD,GAAGL,gBAAgB,CAAC;IAAA,IAAC;MAAEM;IAAF,CAAD;IAAA,OAC1EJ,UAD0E,aAC1EA,UAD0E,uBAC1EA,UAAU,CAAG;MAAEK,IAAI,EAAED;IAAR,CAAH,CADgE;EAAA,CAAD,CAA3E;EAGA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBX,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEK,YADR;IAEE,UAAU,EAAEE,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,OAAO,EAAE,KALX;IAME,YAAY,EAAEL;EANhB,EADF;AAUD,CApBD;;AAsBA,eAAeE,4BAAf"}
@@ -0,0 +1,25 @@
1
+ import React, { useContext } from 'react';
2
+ import { Icon, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';
3
+ import { GroupChannelNotificationsContexts } from '../module/moduleContext';
4
+
5
+ const GroupChannelNotificationsHeader = _ref => {
6
+ let {
7
+ onPressHeaderLeft
8
+ } = _ref;
9
+ const {
10
+ headerTitle
11
+ } = useContext(GroupChannelNotificationsContexts.Fragment);
12
+ const {
13
+ HeaderComponent
14
+ } = useHeaderStyle();
15
+ return /*#__PURE__*/React.createElement(HeaderComponent, {
16
+ title: headerTitle,
17
+ left: /*#__PURE__*/React.createElement(Icon, {
18
+ icon: 'arrow-left'
19
+ }),
20
+ onPressLeft: onPressHeaderLeft
21
+ });
22
+ };
23
+
24
+ export default GroupChannelNotificationsHeader;
25
+ //# sourceMappingURL=GroupChannelNotificationsHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","Icon","useHeaderStyle","GroupChannelNotificationsContexts","GroupChannelNotificationsHeader","onPressHeaderLeft","headerTitle","Fragment","HeaderComponent"],"sources":["GroupChannelNotificationsHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport { Icon, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport { GroupChannelNotificationsContexts } from '../module/moduleContext';\nimport type { GroupChannelNotificationsProps } from '../types';\n\nconst GroupChannelNotificationsHeader = ({ onPressHeaderLeft }: GroupChannelNotificationsProps['Header']) => {\n const { headerTitle } = useContext(GroupChannelNotificationsContexts.Fragment);\n const { HeaderComponent } = useHeaderStyle();\n return <HeaderComponent title={headerTitle} left={<Icon icon={'arrow-left'} />} onPressLeft={onPressHeaderLeft} />;\n};\n\nexport default GroupChannelNotificationsHeader;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AAEA,SAASC,IAAT,EAAeC,cAAf,QAAqC,yCAArC;AAEA,SAASC,iCAAT,QAAkD,yBAAlD;;AAGA,MAAMC,+BAA+B,GAAG,QAAqE;EAAA,IAApE;IAAEC;EAAF,CAAoE;EAC3G,MAAM;IAAEC;EAAF,IAAkBN,UAAU,CAACG,iCAAiC,CAACI,QAAnC,CAAlC;EACA,MAAM;IAAEC;EAAF,IAAsBN,cAAc,EAA1C;EACA,oBAAO,oBAAC,eAAD;IAAiB,KAAK,EAAEI,WAAxB;IAAqC,IAAI,eAAE,oBAAC,IAAD;MAAM,IAAI,EAAE;IAAZ,EAA3C;IAAyE,WAAW,EAAED;EAAtF,EAAP;AACD,CAJD;;AAMA,eAAeD,+BAAf"}
@@ -0,0 +1,122 @@
1
+ import React, { useContext } from 'react';
2
+ import { Pressable, ScrollView, View } from 'react-native';
3
+ import { PushTriggerOption } from '@sendbird/chat';
4
+ import { Divider, Icon, Switch, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
+ import { useForceUpdate } from '@sendbird/uikit-utils';
6
+ import { useLocalization } from '../../../hooks/useContext';
7
+ import { GroupChannelNotificationsContexts } from '../module/moduleContext';
8
+
9
+ const GroupChannelNotificationsView = () => {
10
+ const {
11
+ channel
12
+ } = useContext(GroupChannelNotificationsContexts.Fragment);
13
+ const {
14
+ STRINGS
15
+ } = useLocalization();
16
+ const {
17
+ colors
18
+ } = useUIKitTheme();
19
+ const forceUpdate = useForceUpdate();
20
+ const turnedOnNotifications = channel.myPushTriggerOption !== PushTriggerOption.OFF;
21
+ const turnedOnNotificationsOptionAll = [PushTriggerOption.ALL, PushTriggerOption.DEFAULT].some(it => it === channel.myPushTriggerOption);
22
+ const turnedOnNotificationsOptionMentionsOnly = channel.myPushTriggerOption === PushTriggerOption.MENTION_ONLY;
23
+
24
+ const toggleNotificationSwitch = async val => {
25
+ if (val) {
26
+ await channel.setMyPushTriggerOption(PushTriggerOption.ALL);
27
+ } else {
28
+ await channel.setMyPushTriggerOption(PushTriggerOption.OFF);
29
+ }
30
+
31
+ forceUpdate();
32
+ };
33
+
34
+ const onPressNotificationsOption = async option => {
35
+ await channel.setMyPushTriggerOption(option);
36
+ forceUpdate();
37
+ };
38
+
39
+ return /*#__PURE__*/React.createElement(ScrollView, {
40
+ bounces: false,
41
+ contentContainerStyle: styles.container
42
+ }, /*#__PURE__*/React.createElement(Bar, {
43
+ subtitle2: true,
44
+ title: STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS,
45
+ description: STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS_DESC,
46
+ component: /*#__PURE__*/React.createElement(Switch, {
47
+ value: turnedOnNotifications,
48
+ onChangeValue: toggleNotificationSwitch
49
+ })
50
+ }), /*#__PURE__*/React.createElement(Divider, null), turnedOnNotifications && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Bar, {
51
+ body3: true,
52
+ onPress: () => onPressNotificationsOption(PushTriggerOption.ALL),
53
+ title: STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS_OPTION_ALL,
54
+ component: /*#__PURE__*/React.createElement(Icon, {
55
+ color: turnedOnNotificationsOptionAll ? colors.primary : colors.onBackground03,
56
+ icon: turnedOnNotificationsOptionAll ? 'radio-on' : 'radio-off',
57
+ size: 24
58
+ })
59
+ }), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(Bar, {
60
+ body3: true,
61
+ onPress: () => onPressNotificationsOption(PushTriggerOption.MENTION_ONLY),
62
+ title: STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS_OPTION_MENTION_ONLY,
63
+ component: /*#__PURE__*/React.createElement(Icon, {
64
+ color: turnedOnNotificationsOptionMentionsOnly ? colors.primary : colors.onBackground03,
65
+ icon: turnedOnNotificationsOptionMentionsOnly ? 'radio-on' : 'radio-off',
66
+ size: 24
67
+ })
68
+ }), /*#__PURE__*/React.createElement(Divider, null)));
69
+ };
70
+
71
+ const Bar = _ref => {
72
+ let {
73
+ title,
74
+ onPress,
75
+ description,
76
+ component,
77
+ subtitle2,
78
+ body3
79
+ } = _ref;
80
+ const {
81
+ colors
82
+ } = useUIKitTheme();
83
+ return /*#__PURE__*/React.createElement(Pressable, {
84
+ onPress: onPress,
85
+ style: styles.barContainer
86
+ }, /*#__PURE__*/React.createElement(View, {
87
+ style: styles.titleContainer
88
+ }, /*#__PURE__*/React.createElement(Text, {
89
+ body3: body3,
90
+ subtitle2: subtitle2,
91
+ numberOfLines: 1,
92
+ color: colors.onBackground01,
93
+ style: styles.title
94
+ }, title), /*#__PURE__*/React.createElement(View, null, component)), Boolean(description) && /*#__PURE__*/React.createElement(Text, {
95
+ body3: true,
96
+ color: colors.onBackground02,
97
+ style: styles.desc
98
+ }, description));
99
+ };
100
+
101
+ const styles = createStyleSheet({
102
+ container: {
103
+ paddingHorizontal: 16
104
+ },
105
+ barContainer: {
106
+ paddingVertical: 16
107
+ },
108
+ titleContainer: {
109
+ flexDirection: 'row',
110
+ alignItems: 'center'
111
+ },
112
+ title: {
113
+ flex: 1,
114
+ marginRight: 8
115
+ },
116
+ desc: {
117
+ marginTop: 8,
118
+ flex: 1
119
+ }
120
+ });
121
+ export default GroupChannelNotificationsView;
122
+ //# sourceMappingURL=GroupChannelNotificationsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","Pressable","ScrollView","View","PushTriggerOption","Divider","Icon","Switch","Text","createStyleSheet","useUIKitTheme","useForceUpdate","useLocalization","GroupChannelNotificationsContexts","GroupChannelNotificationsView","channel","Fragment","STRINGS","colors","forceUpdate","turnedOnNotifications","myPushTriggerOption","OFF","turnedOnNotificationsOptionAll","ALL","DEFAULT","some","it","turnedOnNotificationsOptionMentionsOnly","MENTION_ONLY","toggleNotificationSwitch","val","setMyPushTriggerOption","onPressNotificationsOption","option","styles","container","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","primary","onBackground03","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","Bar","title","onPress","description","component","subtitle2","body3","barContainer","titleContainer","onBackground01","Boolean","onBackground02","desc","paddingHorizontal","paddingVertical","flexDirection","alignItems","flex","marginRight","marginTop"],"sources":["GroupChannelNotificationsView.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Pressable, ScrollView, View } from 'react-native';\n\nimport { PushTriggerOption } from '@sendbird/chat';\nimport { Divider, Icon, Switch, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport { GroupChannelNotificationsContexts } from '../module/moduleContext';\n\nconst GroupChannelNotificationsView = () => {\n const { channel } = useContext(GroupChannelNotificationsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const forceUpdate = useForceUpdate();\n\n const turnedOnNotifications = channel.myPushTriggerOption !== PushTriggerOption.OFF;\n const turnedOnNotificationsOptionAll = [PushTriggerOption.ALL, PushTriggerOption.DEFAULT].some(\n (it) => it === channel.myPushTriggerOption,\n );\n const turnedOnNotificationsOptionMentionsOnly = channel.myPushTriggerOption === PushTriggerOption.MENTION_ONLY;\n\n const toggleNotificationSwitch = async (val: boolean) => {\n if (val) {\n await channel.setMyPushTriggerOption(PushTriggerOption.ALL);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n forceUpdate();\n };\n\n const onPressNotificationsOption = async (option: PushTriggerOption.ALL | PushTriggerOption.MENTION_ONLY) => {\n await channel.setMyPushTriggerOption(option);\n forceUpdate();\n };\n\n return (\n <ScrollView bounces={false} contentContainerStyle={styles.container}>\n <Bar\n subtitle2\n title={STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS}\n description={STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS_DESC}\n component={<Switch value={turnedOnNotifications} onChangeValue={toggleNotificationSwitch} />}\n />\n <Divider />\n {turnedOnNotifications && (\n <>\n <Bar\n body3\n onPress={() => onPressNotificationsOption(PushTriggerOption.ALL)}\n title={STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS_OPTION_ALL}\n component={\n <Icon\n color={turnedOnNotificationsOptionAll ? colors.primary : colors.onBackground03}\n icon={turnedOnNotificationsOptionAll ? 'radio-on' : 'radio-off'}\n size={24}\n />\n }\n />\n <Divider />\n <Bar\n body3\n onPress={() => onPressNotificationsOption(PushTriggerOption.MENTION_ONLY)}\n title={STRINGS.GROUP_CHANNEL_NOTIFICATIONS.MENU_NOTIFICATIONS_OPTION_MENTION_ONLY}\n component={\n <Icon\n color={turnedOnNotificationsOptionMentionsOnly ? colors.primary : colors.onBackground03}\n icon={turnedOnNotificationsOptionMentionsOnly ? 'radio-on' : 'radio-off'}\n size={24}\n />\n }\n />\n <Divider />\n </>\n )}\n </ScrollView>\n );\n};\n\ntype BarProps = {\n title: string;\n onPress?: () => void;\n description?: string;\n component: React.ReactNode;\n subtitle2?: boolean;\n body3?: boolean;\n};\nconst Bar = ({ title, onPress, description, component, subtitle2, body3 }: BarProps) => {\n const { colors } = useUIKitTheme();\n return (\n <Pressable onPress={onPress} style={styles.barContainer}>\n <View style={styles.titleContainer}>\n <Text body3={body3} subtitle2={subtitle2} numberOfLines={1} color={colors.onBackground01} style={styles.title}>\n {title}\n </Text>\n <View>{component}</View>\n </View>\n {Boolean(description) && (\n <Text body3 color={colors.onBackground02} style={styles.desc}>\n {description}\n </Text>\n )}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 16,\n },\n barContainer: {\n paddingVertical: 16,\n },\n titleContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n title: {\n flex: 1,\n marginRight: 8,\n },\n desc: {\n marginTop: 8,\n flex: 1,\n },\n});\n\nexport default GroupChannelNotificationsView;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,SAAT,EAAoBC,UAApB,EAAgCC,IAAhC,QAA4C,cAA5C;AAEA,SAASC,iBAAT,QAAkC,gBAAlC;AACA,SAASC,OAAT,EAAkBC,IAAlB,EAAwBC,MAAxB,EAAgCC,IAAhC,EAAsCC,gBAAtC,EAAwDC,aAAxD,QAA6E,yCAA7E;AACA,SAASC,cAAT,QAA+B,uBAA/B;AAEA,SAASC,eAAT,QAAgC,2BAAhC;AACA,SAASC,iCAAT,QAAkD,yBAAlD;;AAEA,MAAMC,6BAA6B,GAAG,MAAM;EAC1C,MAAM;IAAEC;EAAF,IAAcf,UAAU,CAACa,iCAAiC,CAACG,QAAnC,CAA9B;EACA,MAAM;IAAEC;EAAF,IAAcL,eAAe,EAAnC;EACA,MAAM;IAAEM;EAAF,IAAaR,aAAa,EAAhC;EACA,MAAMS,WAAW,GAAGR,cAAc,EAAlC;EAEA,MAAMS,qBAAqB,GAAGL,OAAO,CAACM,mBAAR,KAAgCjB,iBAAiB,CAACkB,GAAhF;EACA,MAAMC,8BAA8B,GAAG,CAACnB,iBAAiB,CAACoB,GAAnB,EAAwBpB,iBAAiB,CAACqB,OAA1C,EAAmDC,IAAnD,CACpCC,EAAD,IAAQA,EAAE,KAAKZ,OAAO,CAACM,mBADc,CAAvC;EAGA,MAAMO,uCAAuC,GAAGb,OAAO,CAACM,mBAAR,KAAgCjB,iBAAiB,CAACyB,YAAlG;;EAEA,MAAMC,wBAAwB,GAAG,MAAOC,GAAP,IAAwB;IACvD,IAAIA,GAAJ,EAAS;MACP,MAAMhB,OAAO,CAACiB,sBAAR,CAA+B5B,iBAAiB,CAACoB,GAAjD,CAAN;IACD,CAFD,MAEO;MACL,MAAMT,OAAO,CAACiB,sBAAR,CAA+B5B,iBAAiB,CAACkB,GAAjD,CAAN;IACD;;IACDH,WAAW;EACZ,CAPD;;EASA,MAAMc,0BAA0B,GAAG,MAAOC,MAAP,IAA0E;IAC3G,MAAMnB,OAAO,CAACiB,sBAAR,CAA+BE,MAA/B,CAAN;IACAf,WAAW;EACZ,CAHD;;EAKA,oBACE,oBAAC,UAAD;IAAY,OAAO,EAAE,KAArB;IAA4B,qBAAqB,EAAEgB,MAAM,CAACC;EAA1D,gBACE,oBAAC,GAAD;IACE,SAAS,MADX;IAEE,KAAK,EAAEnB,OAAO,CAACoB,2BAAR,CAAoCC,kBAF7C;IAGE,WAAW,EAAErB,OAAO,CAACoB,2BAAR,CAAoCE,uBAHnD;IAIE,SAAS,eAAE,oBAAC,MAAD;MAAQ,KAAK,EAAEnB,qBAAf;MAAsC,aAAa,EAAEU;IAArD;EAJb,EADF,eAOE,oBAAC,OAAD,OAPF,EAQGV,qBAAqB,iBACpB,uDACE,oBAAC,GAAD;IACE,KAAK,MADP;IAEE,OAAO,EAAE,MAAMa,0BAA0B,CAAC7B,iBAAiB,CAACoB,GAAnB,CAF3C;IAGE,KAAK,EAAEP,OAAO,CAACoB,2BAAR,CAAoCG,6BAH7C;IAIE,SAAS,eACP,oBAAC,IAAD;MACE,KAAK,EAAEjB,8BAA8B,GAAGL,MAAM,CAACuB,OAAV,GAAoBvB,MAAM,CAACwB,cADlE;MAEE,IAAI,EAAEnB,8BAA8B,GAAG,UAAH,GAAgB,WAFtD;MAGE,IAAI,EAAE;IAHR;EALJ,EADF,eAaE,oBAAC,OAAD,OAbF,eAcE,oBAAC,GAAD;IACE,KAAK,MADP;IAEE,OAAO,EAAE,MAAMU,0BAA0B,CAAC7B,iBAAiB,CAACyB,YAAnB,CAF3C;IAGE,KAAK,EAAEZ,OAAO,CAACoB,2BAAR,CAAoCM,sCAH7C;IAIE,SAAS,eACP,oBAAC,IAAD;MACE,KAAK,EAAEf,uCAAuC,GAAGV,MAAM,CAACuB,OAAV,GAAoBvB,MAAM,CAACwB,cAD3E;MAEE,IAAI,EAAEd,uCAAuC,GAAG,UAAH,GAAgB,WAF/D;MAGE,IAAI,EAAE;IAHR;EALJ,EAdF,eA0BE,oBAAC,OAAD,OA1BF,CATJ,CADF;AAyCD,CAnED;;AA6EA,MAAMgB,GAAG,GAAG,QAA4E;EAAA,IAA3E;IAAEC,KAAF;IAASC,OAAT;IAAkBC,WAAlB;IAA+BC,SAA/B;IAA0CC,SAA1C;IAAqDC;EAArD,CAA2E;EACtF,MAAM;IAAEhC;EAAF,IAAaR,aAAa,EAAhC;EACA,oBACE,oBAAC,SAAD;IAAW,OAAO,EAAEoC,OAApB;IAA6B,KAAK,EAAEX,MAAM,CAACgB;EAA3C,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAEhB,MAAM,CAACiB;EAApB,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAEF,KAAb;IAAoB,SAAS,EAAED,SAA/B;IAA0C,aAAa,EAAE,CAAzD;IAA4D,KAAK,EAAE/B,MAAM,CAACmC,cAA1E;IAA0F,KAAK,EAAElB,MAAM,CAACU;EAAxG,GACGA,KADH,CADF,eAIE,oBAAC,IAAD,QAAOG,SAAP,CAJF,CADF,EAOGM,OAAO,CAACP,WAAD,CAAP,iBACC,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAE7B,MAAM,CAACqC,cAA1B;IAA0C,KAAK,EAAEpB,MAAM,CAACqB;EAAxD,GACGT,WADH,CARJ,CADF;AAeD,CAjBD;;AAmBA,MAAMZ,MAAM,GAAG1B,gBAAgB,CAAC;EAC9B2B,SAAS,EAAE;IACTqB,iBAAiB,EAAE;EADV,CADmB;EAI9BN,YAAY,EAAE;IACZO,eAAe,EAAE;EADL,CAJgB;EAO9BN,cAAc,EAAE;IACdO,aAAa,EAAE,KADD;IAEdC,UAAU,EAAE;EAFE,CAPc;EAW9Bf,KAAK,EAAE;IACLgB,IAAI,EAAE,CADD;IAELC,WAAW,EAAE;EAFR,CAXuB;EAe9BN,IAAI,EAAE;IACJO,SAAS,EAAE,CADP;IAEJF,IAAI,EAAE;EAFF;AAfwB,CAAD,CAA/B;AAqBA,eAAe/C,6BAAf"}
@@ -0,0 +1,5 @@
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';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","GroupChannelNotificationsView","GroupChannelNotificationsHeader","createGroupChannelNotificationsModule","GroupChannelNotificationsContextsProvider","GroupChannelNotificationsContexts"],"sources":["index.ts"],"sourcesContent":["export { default as GroupChannelNotificationsView } from './component/GroupChannelNotificationsView';\nexport { default as GroupChannelNotificationsHeader } from './component/GroupChannelNotificationsHeader';\nexport { default as createGroupChannelNotificationsModule } from './module/createGroupChannelNotificationsModule';\nexport { GroupChannelNotificationsContextsProvider, GroupChannelNotificationsContexts } from './module/moduleContext';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,6BAApB,QAAyD,2CAAzD;AACA,SAASD,OAAO,IAAIE,+BAApB,QAA2D,6CAA3D;AACA,SAASF,OAAO,IAAIG,qCAApB,QAAiE,gDAAjE;AACA,SAASC,yCAAT,EAAoDC,iCAApD,QAA6F,wBAA7F"}
@@ -0,0 +1,21 @@
1
+ import GroupChannelNotificationsHeader from '../component/GroupChannelNotificationsHeader';
2
+ import GroupChannelNotificationsView from '../component/GroupChannelNotificationsView';
3
+ import { GroupChannelNotificationsContextsProvider } from './moduleContext';
4
+
5
+ const createGroupChannelNotificationsModule = function () {
6
+ let {
7
+ Header = GroupChannelNotificationsHeader,
8
+ View = GroupChannelNotificationsView,
9
+ Provider = GroupChannelNotificationsContextsProvider,
10
+ ...module
11
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
+ return {
13
+ Header,
14
+ View,
15
+ Provider,
16
+ ...module
17
+ };
18
+ };
19
+
20
+ export default createGroupChannelNotificationsModule;
21
+ //# sourceMappingURL=createGroupChannelNotificationsModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GroupChannelNotificationsHeader","GroupChannelNotificationsView","GroupChannelNotificationsContextsProvider","createGroupChannelNotificationsModule","Header","View","Provider","module"],"sources":["createGroupChannelNotificationsModule.tsx"],"sourcesContent":["import GroupChannelNotificationsHeader from '../component/GroupChannelNotificationsHeader';\nimport GroupChannelNotificationsView from '../component/GroupChannelNotificationsView';\nimport type { GroupChannelNotificationsModule } from '../types';\nimport { GroupChannelNotificationsContextsProvider } from './moduleContext';\n\nconst createGroupChannelNotificationsModule = ({\n Header = GroupChannelNotificationsHeader,\n View = GroupChannelNotificationsView,\n Provider = GroupChannelNotificationsContextsProvider,\n ...module\n}: Partial<GroupChannelNotificationsModule> = {}): GroupChannelNotificationsModule => {\n return { Header, View, Provider, ...module };\n};\n\nexport default createGroupChannelNotificationsModule;\n"],"mappings":"AAAA,OAAOA,+BAAP,MAA4C,8CAA5C;AACA,OAAOC,6BAAP,MAA0C,4CAA1C;AAEA,SAASC,yCAAT,QAA0D,iBAA1D;;AAEA,MAAMC,qCAAqC,GAAG,YAKwC;EAAA,IALvC;IAC7CC,MAAM,GAAGJ,+BADoC;IAE7CK,IAAI,GAAGJ,6BAFsC;IAG7CK,QAAQ,GAAGJ,yCAHkC;IAI7C,GAAGK;EAJ0C,CAKuC,uEAAxC,EAAwC;EACpF,OAAO;IAAEH,MAAF;IAAUC,IAAV;IAAgBC,QAAhB;IAA0B,GAAGC;EAA7B,CAAP;AACD,CAPD;;AASA,eAAeJ,qCAAf"}
@@ -0,0 +1,25 @@
1
+ import React, { createContext } from 'react';
2
+ import ProviderLayout from '../../../components/ProviderLayout';
3
+ import { useLocalization } from '../../../hooks/useContext';
4
+ export const GroupChannelNotificationsContexts = {
5
+ Fragment: /*#__PURE__*/createContext({
6
+ headerTitle: '',
7
+ channel: {}
8
+ })
9
+ };
10
+ export const GroupChannelNotificationsContextsProvider = _ref => {
11
+ let {
12
+ children,
13
+ channel
14
+ } = _ref;
15
+ const {
16
+ STRINGS
17
+ } = useLocalization();
18
+ return /*#__PURE__*/React.createElement(ProviderLayout, null, /*#__PURE__*/React.createElement(GroupChannelNotificationsContexts.Fragment.Provider, {
19
+ value: {
20
+ channel,
21
+ headerTitle: STRINGS.GROUP_CHANNEL_NOTIFICATIONS.HEADER_TITLE
22
+ }
23
+ }, children));
24
+ };
25
+ //# sourceMappingURL=moduleContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","ProviderLayout","useLocalization","GroupChannelNotificationsContexts","Fragment","headerTitle","channel","GroupChannelNotificationsContextsProvider","children","STRINGS","GROUP_CHANNEL_NOTIFICATIONS","HEADER_TITLE"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext } from 'react';\n\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { GroupChannelNotificationsContextsType, GroupChannelNotificationsModule } from '../types';\n\nexport const GroupChannelNotificationsContexts: GroupChannelNotificationsContextsType = {\n Fragment: createContext({\n headerTitle: '',\n channel: {} as SendbirdGroupChannel,\n }),\n};\n\nexport const GroupChannelNotificationsContextsProvider: GroupChannelNotificationsModule['Provider'] = ({\n children,\n channel,\n}) => {\n const { STRINGS } = useLocalization();\n\n return (\n <ProviderLayout>\n <GroupChannelNotificationsContexts.Fragment.Provider\n value={{ channel, headerTitle: STRINGS.GROUP_CHANNEL_NOTIFICATIONS.HEADER_TITLE }}\n >\n {children}\n </GroupChannelNotificationsContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AAIA,OAAOC,cAAP,MAA2B,oCAA3B;AACA,SAASC,eAAT,QAAgC,2BAAhC;AAGA,OAAO,MAAMC,iCAAwE,GAAG;EACtFC,QAAQ,eAAEJ,aAAa,CAAC;IACtBK,WAAW,EAAE,EADS;IAEtBC,OAAO,EAAE;EAFa,CAAD;AAD+D,CAAjF;AAOP,OAAO,MAAMC,yCAAsF,GAAG,QAGhG;EAAA,IAHiG;IACrGC,QADqG;IAErGF;EAFqG,CAGjG;EACJ,MAAM;IAAEG;EAAF,IAAcP,eAAe,EAAnC;EAEA,oBACE,oBAAC,cAAD,qBACE,oBAAC,iCAAD,CAAmC,QAAnC,CAA4C,QAA5C;IACE,KAAK,EAAE;MAAEI,OAAF;MAAWD,WAAW,EAAEI,OAAO,CAACC,2BAAR,CAAoCC;IAA5D;EADT,GAGGH,QAHH,CADF,CADF;AASD,CAfM"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelNotificationsProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelNotificationsProps['Header']['onPressHeaderLeft'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n View: {};\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelNotifications\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelNotificationsContextsType = {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n }>;\n};\nexport interface GroupChannelNotificationsModule {\n Provider: CommonComponent<GroupChannelNotificationsProps['Provider']>;\n Header: CommonComponent<GroupChannelNotificationsProps['Header']>;\n View: CommonComponent<GroupChannelNotificationsProps['View']>;\n}\n\nexport type GroupChannelNotificationsFragment = CommonComponent<GroupChannelNotificationsProps['Fragment']>;\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FlatList } from 'react-native';
3
3
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
- import { useFreshCallback } from '@sendbird/uikit-utils';
4
+ import { getUserUniqId, useFreshCallback } from '@sendbird/uikit-utils';
5
5
 
6
6
  const GroupChannelOperatorsList = _ref => {
7
7
  let {
@@ -30,7 +30,8 @@ const GroupChannelOperatorsList = _ref => {
30
30
  flexGrow: 1
31
31
  },
32
32
  ListEmptyComponent: ListEmptyComponent,
33
- bounces: false
33
+ bounces: false,
34
+ keyExtractor: getUserUniqId
34
35
  });
35
36
  };
36
37
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","FlatList","useSafeAreaInsets","useFreshCallback","GroupChannelOperatorsList","operators","renderUser","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelOperatorsList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\nimport { useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelOperatorsProps } from '../types';\n\nconst GroupChannelOperatorsList = ({\n operators,\n renderUser,\n ListEmptyComponent,\n}: GroupChannelOperatorsProps['List']) => {\n const renderItem: ListRenderItem<SendbirdUser> = useFreshCallback(({ item }) => renderUser?.({ user: item }));\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={operators}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n bounces={false}\n />\n );\n};\n\nexport default GroupChannelOperatorsList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAGA,SAASC,gBAAT,QAAiC,uBAAjC;;AAIA,MAAMC,yBAAyB,GAAG,QAIQ;EAAA,IAJP;IACjCC,SADiC;IAEjCC,UAFiC;IAGjCC;EAHiC,CAIO;EACxC,MAAMC,UAAwC,GAAGL,gBAAgB,CAAC;IAAA,IAAC;MAAEM;IAAF,CAAD;IAAA,OAAcH,UAAd,aAAcA,UAAd,uBAAcA,UAAU,CAAG;MAAEI,IAAI,EAAED;IAAR,CAAH,CAAxB;EAAA,CAAD,CAAjE;EACA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBV,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEG,SADR;IAEE,UAAU,EAAEG,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,OAAO,EAAE;EALX,EADF;AASD,CAjBD;;AAmBA,eAAeH,yBAAf"}
1
+ {"version":3,"names":["React","FlatList","useSafeAreaInsets","getUserUniqId","useFreshCallback","GroupChannelOperatorsList","operators","renderUser","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelOperatorsList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\nimport { getUserUniqId, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelOperatorsProps } from '../types';\n\nconst GroupChannelOperatorsList = ({\n operators,\n renderUser,\n ListEmptyComponent,\n}: GroupChannelOperatorsProps['List']) => {\n const renderItem: ListRenderItem<SendbirdUser> = useFreshCallback(({ item }) => renderUser?.({ user: item }));\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={operators}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n bounces={false}\n keyExtractor={getUserUniqId}\n />\n );\n};\n\nexport default GroupChannelOperatorsList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAGA,SAASC,aAAT,EAAwBC,gBAAxB,QAAgD,uBAAhD;;AAIA,MAAMC,yBAAyB,GAAG,QAIQ;EAAA,IAJP;IACjCC,SADiC;IAEjCC,UAFiC;IAGjCC;EAHiC,CAIO;EACxC,MAAMC,UAAwC,GAAGL,gBAAgB,CAAC;IAAA,IAAC;MAAEM;IAAF,CAAD;IAAA,OAAcH,UAAd,aAAcA,UAAd,uBAAcA,UAAU,CAAG;MAAEI,IAAI,EAAED;IAAR,CAAH,CAAxB;EAAA,CAAD,CAAjE;EACA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBX,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEI,SADR;IAEE,UAAU,EAAEG,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,OAAO,EAAE,KALX;IAME,YAAY,EAAEL;EANhB,EADF;AAUD,CAlBD;;AAoBA,eAAeE,yBAAf"}