@sendbird/uikit-react-native 2.5.0 → 3.0.0-rc.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 (313) hide show
  1. package/README.md +6 -1
  2. package/lib/commonjs/components/{MessageRenderer/MessageTime.js → ChannelInput/AttachmentsButton.js} +20 -17
  3. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -0
  4. package/lib/commonjs/components/ChannelInput/EditInput.js +10 -18
  5. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  6. package/lib/commonjs/components/ChannelInput/SendInput.js +220 -163
  7. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  8. package/lib/commonjs/components/ChannelInput/index.js +5 -3
  9. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  10. package/lib/commonjs/components/ChannelMessageList/index.js +27 -27
  11. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  12. package/lib/commonjs/components/ChatFlatList.js +18 -6
  13. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  14. package/lib/commonjs/components/{MessageRenderer/MessageDateSeparator.js → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js} +3 -3
  15. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -0
  16. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +47 -0
  17. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -0
  18. package/lib/commonjs/components/{MessageRenderer/MessageOutgoingStatus.js → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js} +11 -14
  19. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -0
  20. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +204 -0
  21. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -0
  22. package/lib/commonjs/components/MessageSearchResultItem.js +3 -2
  23. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
  24. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +15 -9
  25. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
  26. package/lib/commonjs/constants.js +1 -7
  27. package/lib/commonjs/constants.js.map +1 -1
  28. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +13 -13
  29. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  30. package/lib/commonjs/containers/SendbirdUIKitContainer.js +29 -19
  31. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  32. package/lib/commonjs/contexts/SendbirdChatCtx.js +17 -14
  33. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  34. package/lib/commonjs/contexts/UserProfileCtx.js +6 -4
  35. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  36. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +4 -13
  37. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  38. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  39. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +10 -6
  40. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  41. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +3 -3
  42. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  43. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  44. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -10
  45. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  46. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +4 -8
  47. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  48. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  49. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +3 -1
  50. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  51. package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
  52. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +1 -1
  53. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  54. package/lib/commonjs/fragments/createGroupChannelFragment.js +22 -100
  55. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  56. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +1 -1
  57. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  58. package/lib/commonjs/fragments/createGroupChannelListFragment.js +8 -13
  59. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  60. package/lib/commonjs/fragments/createMessageSearchFragment.js +2 -2
  61. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  62. package/lib/commonjs/fragments/createOpenChannelFragment.js +1 -7
  63. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  64. package/lib/commonjs/fragments/createOpenChannelListFragment.js +2 -1
  65. package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
  66. package/lib/commonjs/hooks/useConnection.js +11 -7
  67. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  68. package/lib/commonjs/hooks/useMentionTextInput.js +3 -2
  69. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
  70. package/lib/commonjs/index.js +20 -4
  71. package/lib/commonjs/index.js.map +1 -1
  72. package/lib/commonjs/libs/MentionManager.js +8 -9
  73. package/lib/commonjs/libs/MentionManager.js.map +1 -1
  74. package/lib/commonjs/libs/SBUUtils.js +7 -3
  75. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  76. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  77. package/lib/commonjs/localization/createBaseStringSet.js +20 -62
  78. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  79. package/lib/module/components/ChannelInput/AttachmentsButton.js +29 -0
  80. package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -0
  81. package/lib/module/components/ChannelInput/EditInput.js +10 -18
  82. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  83. package/lib/module/components/ChannelInput/SendInput.js +221 -164
  84. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  85. package/lib/module/components/ChannelInput/index.js +5 -3
  86. package/lib/module/components/ChannelInput/index.js.map +1 -1
  87. package/lib/module/components/ChannelMessageList/index.js +28 -28
  88. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  89. package/lib/module/components/ChatFlatList.js +17 -5
  90. package/lib/module/components/ChatFlatList.js.map +1 -1
  91. package/lib/module/components/{MessageRenderer/MessageDateSeparator.js → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js} +3 -3
  92. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -0
  93. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +38 -0
  94. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -0
  95. package/lib/module/components/{MessageRenderer/MessageOutgoingStatus.js → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js} +12 -15
  96. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -0
  97. package/lib/module/components/GroupChannelMessageRenderer/index.js +196 -0
  98. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -0
  99. package/lib/module/components/MessageSearchResultItem.js +2 -1
  100. package/lib/module/components/MessageSearchResultItem.js.map +1 -1
  101. package/lib/module/components/OpenChannelMessageRenderer/index.js +16 -10
  102. package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
  103. package/lib/module/constants.js +0 -5
  104. package/lib/module/constants.js.map +1 -1
  105. package/lib/module/containers/GroupChannelPreviewContainer.js +13 -13
  106. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  107. package/lib/module/containers/SendbirdUIKitContainer.js +29 -19
  108. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  109. package/lib/module/contexts/SendbirdChatCtx.js +17 -14
  110. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  111. package/lib/module/contexts/UserProfileCtx.js +6 -4
  112. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  113. package/lib/module/domain/groupChannel/component/GroupChannelInput.js +4 -13
  114. package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  115. package/lib/module/domain/groupChannel/types.js.map +1 -1
  116. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +9 -4
  117. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  118. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +3 -3
  119. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  120. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  121. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -10
  122. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  123. package/lib/module/domain/openChannel/component/OpenChannelInput.js +4 -8
  124. package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  125. package/lib/module/domain/openChannel/types.js.map +1 -1
  126. package/lib/module/domain/openChannelList/component/OpenChannelListList.js +3 -1
  127. package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  128. package/lib/module/domain/openChannelList/types.js.map +1 -1
  129. package/lib/module/fragments/createGroupChannelCreateFragment.js +1 -1
  130. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  131. package/lib/module/fragments/createGroupChannelFragment.js +24 -102
  132. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  133. package/lib/module/fragments/createGroupChannelInviteFragment.js +1 -1
  134. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  135. package/lib/module/fragments/createGroupChannelListFragment.js +8 -13
  136. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  137. package/lib/module/fragments/createMessageSearchFragment.js +1 -1
  138. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
  139. package/lib/module/fragments/createOpenChannelFragment.js +2 -8
  140. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  141. package/lib/module/fragments/createOpenChannelListFragment.js +2 -1
  142. package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
  143. package/lib/module/hooks/useConnection.js +11 -7
  144. package/lib/module/hooks/useConnection.js.map +1 -1
  145. package/lib/module/hooks/useMentionTextInput.js +3 -2
  146. package/lib/module/hooks/useMentionTextInput.js.map +1 -1
  147. package/lib/module/index.js +5 -2
  148. package/lib/module/index.js.map +1 -1
  149. package/lib/module/libs/MentionManager.js +8 -9
  150. package/lib/module/libs/MentionManager.js.map +1 -1
  151. package/lib/module/libs/SBUUtils.js +7 -3
  152. package/lib/module/libs/SBUUtils.js.map +1 -1
  153. package/lib/module/localization/StringSet.type.js.map +1 -1
  154. package/lib/module/localization/createBaseStringSet.js +20 -62
  155. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  156. package/lib/typescript/src/components/ChannelInput/AttachmentsButton.d.ts +6 -0
  157. package/lib/typescript/src/components/ChannelInput/index.d.ts +2 -14
  158. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +2 -4
  159. package/lib/typescript/src/components/ChatFlatList.d.ts +1 -5
  160. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +6 -0
  161. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.d.ts +5 -0
  162. package/lib/typescript/src/components/{MessageRenderer/MessageOutgoingStatus.d.ts → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.d.ts} +3 -1
  163. package/lib/typescript/src/components/{MessageRenderer → GroupChannelMessageRenderer}/index.d.ts +2 -13
  164. package/lib/typescript/src/components/MessageSearchResultItem.d.ts +2 -1
  165. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -1
  166. package/lib/typescript/src/constants.d.ts +0 -5
  167. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +15 -10
  168. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +33 -19
  169. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
  170. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -4
  171. package/lib/typescript/src/domain/groupChannel/types.d.ts +2 -9
  172. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +1 -1
  173. package/lib/typescript/src/domain/groupChannelList/types.d.ts +8 -23
  174. package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
  175. package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
  176. package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
  177. package/lib/typescript/src/domain/openChannel/types.d.ts +2 -2
  178. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +1 -1
  179. package/lib/typescript/src/domain/openChannelList/types.d.ts +3 -12
  180. package/lib/typescript/src/index.d.ts +4 -1
  181. package/lib/typescript/src/libs/MentionManager.d.ts +4 -5
  182. package/lib/typescript/src/libs/SBUUtils.d.ts +1 -1
  183. package/lib/typescript/src/localization/StringSet.type.d.ts +2 -43
  184. package/package.json +13 -10
  185. package/src/components/ChannelInput/AttachmentsButton.tsx +32 -0
  186. package/src/components/ChannelInput/EditInput.tsx +17 -18
  187. package/src/components/ChannelInput/SendInput.tsx +237 -181
  188. package/src/components/ChannelInput/index.tsx +8 -21
  189. package/src/components/ChannelMessageList/index.tsx +33 -41
  190. package/src/components/ChatFlatList.tsx +39 -13
  191. package/src/components/{MessageRenderer/MessageDateSeparator.tsx → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.tsx} +7 -5
  192. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.tsx +29 -0
  193. package/src/components/{MessageRenderer/MessageOutgoingStatus.tsx → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.tsx} +15 -15
  194. package/src/components/GroupChannelMessageRenderer/index.tsx +203 -0
  195. package/src/components/MessageSearchResultItem.tsx +3 -1
  196. package/src/components/OpenChannelMessageRenderer/index.tsx +10 -5
  197. package/src/constants.ts +0 -5
  198. package/src/containers/GroupChannelPreviewContainer.tsx +14 -13
  199. package/src/containers/SendbirdUIKitContainer.tsx +98 -90
  200. package/src/contexts/SendbirdChatCtx.tsx +49 -36
  201. package/src/contexts/UserProfileCtx.tsx +10 -5
  202. package/src/domain/groupChannel/component/GroupChannelInput.tsx +1 -10
  203. package/src/domain/groupChannel/types.ts +1 -14
  204. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +8 -4
  205. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +3 -3
  206. package/src/domain/groupChannelList/types.ts +8 -30
  207. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +22 -10
  208. package/src/domain/openChannel/component/OpenChannelInput.tsx +1 -5
  209. package/src/domain/openChannel/types.ts +1 -1
  210. package/src/domain/openChannelList/component/OpenChannelListList.tsx +2 -1
  211. package/src/domain/openChannelList/types.ts +6 -13
  212. package/src/fragments/createGroupChannelCreateFragment.tsx +1 -1
  213. package/src/fragments/createGroupChannelFragment.tsx +21 -97
  214. package/src/fragments/createGroupChannelInviteFragment.tsx +1 -1
  215. package/src/fragments/createGroupChannelListFragment.tsx +9 -15
  216. package/src/fragments/createMessageSearchFragment.tsx +1 -1
  217. package/src/fragments/createOpenChannelFragment.tsx +2 -3
  218. package/src/fragments/createOpenChannelListFragment.tsx +2 -1
  219. package/src/hooks/useConnection.ts +9 -7
  220. package/src/hooks/useMentionTextInput.ts +7 -2
  221. package/src/index.ts +4 -2
  222. package/src/libs/MentionManager.tsx +8 -7
  223. package/src/libs/SBUUtils.ts +7 -3
  224. package/src/localization/StringSet.type.ts +2 -46
  225. package/src/localization/createBaseStringSet.ts +19 -71
  226. package/src/version.ts +1 -1
  227. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +0 -46
  228. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +0 -1
  229. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -73
  230. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
  231. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -93
  232. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
  233. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +0 -132
  234. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +0 -1
  235. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +0 -24
  236. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +0 -1
  237. package/lib/commonjs/components/MessageRenderer/MessageContainer.js +0 -27
  238. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +0 -1
  239. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
  240. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +0 -41
  241. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
  242. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +0 -41
  243. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
  244. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
  245. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +0 -1
  246. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +0 -46
  247. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
  248. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -113
  249. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
  250. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -200
  251. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
  252. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +0 -22
  253. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +0 -1
  254. package/lib/commonjs/components/MessageRenderer/index.js +0 -186
  255. package/lib/commonjs/components/MessageRenderer/index.js.map +0 -1
  256. package/lib/module/components/MessageRenderer/AdminMessage/index.js +0 -38
  257. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +0 -1
  258. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -65
  259. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
  260. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -84
  261. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
  262. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +0 -123
  263. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +0 -1
  264. package/lib/module/components/MessageRenderer/FileMessage/index.js +0 -16
  265. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +0 -1
  266. package/lib/module/components/MessageRenderer/MessageContainer.js +0 -19
  267. package/lib/module/components/MessageRenderer/MessageContainer.js.map +0 -1
  268. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
  269. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +0 -33
  270. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
  271. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +0 -33
  272. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
  273. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
  274. package/lib/module/components/MessageRenderer/MessageTime.js +0 -26
  275. package/lib/module/components/MessageRenderer/MessageTime.js.map +0 -1
  276. package/lib/module/components/MessageRenderer/UnknownMessage/index.js +0 -38
  277. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
  278. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -105
  279. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
  280. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -190
  281. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
  282. package/lib/module/components/MessageRenderer/UserMessage/index.js +0 -14
  283. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +0 -1
  284. package/lib/module/components/MessageRenderer/index.js +0 -178
  285. package/lib/module/components/MessageRenderer/index.js.map +0 -1
  286. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +0 -5
  287. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +0 -6
  288. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +0 -3
  289. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +0 -3
  290. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +0 -15
  291. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +0 -3
  292. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +0 -7
  293. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +0 -7
  294. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +0 -7
  295. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +0 -9
  296. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +0 -4
  297. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +0 -3
  298. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +0 -7
  299. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +0 -9
  300. package/src/components/MessageRenderer/AdminMessage/index.tsx +0 -40
  301. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +0 -51
  302. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +0 -98
  303. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +0 -113
  304. package/src/components/MessageRenderer/FileMessage/index.tsx +0 -20
  305. package/src/components/MessageRenderer/MessageContainer.tsx +0 -17
  306. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +0 -34
  307. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +0 -36
  308. package/src/components/MessageRenderer/MessageTime.tsx +0 -28
  309. package/src/components/MessageRenderer/UnknownMessage/index.tsx +0 -34
  310. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +0 -102
  311. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +0 -188
  312. package/src/components/MessageRenderer/UserMessage/index.tsx +0 -24
  313. package/src/components/MessageRenderer/index.tsx +0 -198
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","Animated","Easing","useGroupChannelMessages","NOOP","PASS","messageComparator","useFreshCallback","useRefTracker","MessageRenderer","NewMessagesButton","ScrollToBottomButton","StatusComposition","MESSAGE_FOCUS_ANIMATION_DELAY","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","createGroupChannelModule","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","flatListProps","onPressImageMessage","sdk","currentUser","internalSearchItem","setInternalSearchItem","navigateFromMessageSearch","Boolean","groupChannelPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","loading","messages","newMessages","resetNewMessages","next","prev","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","userId","enableCollectionWithoutLocalCache","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","startingPoint","MessageComponent","withFocusingAnimation","Fragment","_renderMessage","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","callback","Number","MAX_SAFE_INTEGER","undefined","onPending","message","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","onSendFileMessage","file","onSendUserMessage","text","mention","mentionedUserIds","userIds","mentionedMessageTemplate","messageTemplate","mentionType","onUpdateFileMessage","editedFile","onUpdateUserMessage","editedText","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","nextMessages","newMessagesFromMembers","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","Component","memo","translateY","Value","focused","setTimeout","sequence","toValue","duration","map","timing","useNativeDriver","easing","inOut","ease","start","View","style","transform"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nimport { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport {\n NOOP,\n PASS,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdUserMessage,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport MessageRenderer from '../components/MessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport { MESSAGE_FOCUS_ANIMATION_DELAY, MESSAGE_SEARCH_SAFE_SCROLL_DELAY } from '../constants';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n queryCreator,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n onPressImageMessage,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n next,\n prev,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {\n collectionCreator,\n queryCreator,\n sortComparator,\n onChannelDeleted,\n enableCollectionWithoutLocalCache: !queryCreator,\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const MessageComponent: GroupChannelProps['MessageList']['renderMessage'] = useCallback(\n withFocusingAnimation(renderMessage ? (props) => <>{renderMessage(props)}</> : MessageRenderer),\n [renderMessage],\n );\n\n const _renderMessage: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n return <MessageComponent {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback((callback?: () => void) => {\n resetWithStartingPoint(Number.MAX_SAFE_INTEGER, callback);\n setInternalSearchItem(undefined);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n /** @deprecated **/\n const onSendFileMessage: GroupChannelProps['Input']['onSendFileMessage'] = useFreshCallback(async (file) => {\n const processedParams = await onBeforeSendFileMessage({ file });\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n });\n /** @deprecated **/\n const onSendUserMessage: GroupChannelProps['Input']['onSendUserMessage'] = useFreshCallback(\n async (text, mention) => {\n const processedParams = await onBeforeSendUserMessage({\n message: text,\n mentionedUserIds: mention?.userIds,\n mentionedMessageTemplate: mention?.messageTemplate,\n mentionType: mention?.type,\n });\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n /** @deprecated **/\n const onUpdateFileMessage: GroupChannelProps['Input']['onUpdateFileMessage'] = useFreshCallback(\n async (editedFile, message) => {\n const processedParams = await onBeforeSendFileMessage({ file: editedFile });\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n /** @deprecated **/\n const onUpdateUserMessage: GroupChannelProps['Input']['onUpdateUserMessage'] = useFreshCallback(\n async (editedText, message, mention) => {\n const processedParams = await onBeforeSendUserMessage({\n message: editedText,\n mentionedUserIds: mention?.userIds,\n mentionedMessageTemplate: mention?.messageTemplate,\n mentionType: mention?.type,\n });\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={_renderMessage}\n messages={messages}\n newMessages={newMessages}\n onTopReached={prev}\n onBottomReached={next}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n nextMessages={newMessages}\n newMessagesFromMembers={newMessages}\n onPressImageMessage={onPressImageMessage}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n onSendFileMessage={onSendFileMessage}\n onSendUserMessage={onSendUserMessage}\n onUpdateFileMessage={onUpdateFileMessage}\n onUpdateUserMessage={onUpdateUserMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction withFocusingAnimation<P extends unknown & { focused: boolean }>(Component: React.ComponentType<P>) {\n return React.memo<P>((props) => {\n const translateY = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n if (props.focused) {\n setTimeout(() => {\n Animated.sequence(\n [\n { toValue: -10, duration: 500 },\n { toValue: 0, duration: 100 },\n { toValue: -10, duration: 200 },\n { toValue: 0, duration: 100 },\n ].map((value) =>\n Animated.timing(translateY, { ...value, useNativeDriver: true, easing: Easing.inOut(Easing.ease) }),\n ),\n ).start();\n }, MESSAGE_SEARCH_SAFE_SCROLL_DELAY + MESSAGE_FOCUS_ANIMATION_DELAY);\n }\n }, [props.focused]);\n\n return (\n <Animated.View style={{ transform: [{ translateY }] }}>\n <Component {...props} />\n </Animated.View>\n );\n });\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useMemo","useState","ReplyType","useGroupChannelMessages","NOOP","PASS","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","collectionCreator","sortComparator","flatListProps","sdk","currentUser","sbOptions","internalSearchItem","setInternalSearchItem","navigateFromMessageSearch","Boolean","groupChannelPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","replyType","uikit","groupChannel","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","next","prev","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","userId","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","startingPoint","enableCollectionWithoutLocalCache","renderItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","callback","Number","MAX_SAFE_INTEGER","undefined","onPending","message","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\n\nimport { ReplyType } from '@sendbird/chat/message';\nimport { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport {\n NOOP,\n PASS,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdUserMessage,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n }) => {\n const { sdk, currentUser, sbOptions } = useSendbirdChat();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') return ReplyType.NONE;\n else return ReplyType.ONLY_REPLY_TO_CHANNEL;\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n next,\n prev,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n collectionCreator,\n sortComparator,\n onChannelDeleted,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n enableCollectionWithoutLocalCache: true,\n });\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <GroupChannelMessageRenderer {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback((callback?: () => void) => {\n resetWithStartingPoint(Number.MAX_SAFE_INTEGER, callback);\n setInternalSearchItem(undefined);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={prev}\n onBottomReached={next}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAE7D,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,SACEC,IAAI,EACJC,IAAI,EAIJC,iBAAiB,EACjBC,gBAAgB,EAChBC,OAAO,EACPC,aAAa,QACR,uBAAuB;AAE9B,OAAOC,2BAA2B,MAAM,2CAA2C;AACnF,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,OAAOC,oBAAoB,MAAM,oCAAoC;AACrE,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,OAAOC,wBAAwB,MAAM,wDAAwD;AAO7F,SAASC,eAAe,QAAQ,qBAAqB;AACrD,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,MAAMC,0BAA0B,GAAIC,UAAwC,IAA2B;EACrG,MAAMC,kBAAkB,GAAGL,wBAAwB,CAACI,UAAU,CAAC;EAE/D,OAAOE,IAAA,IAoBD;IAAA,IApBE;MACNC,UAAU;MACVC,uBAAuB,GAAIC,KAAK,iBAAKzB,KAAA,CAAA0B,aAAA,CAACb,iBAAiB,EAAKY,KAAK,CAAI;MACrEE,0BAA0B,GAAIF,KAAK,iBAAKzB,KAAA,CAAA0B,aAAA,CAACZ,oBAAoB,EAAKW,KAAK,CAAI;MAC3EG,aAAa;MACbC,qBAAqB,GAAG,IAAI;MAC5BC,qBAAqB;MACrBC,iBAAiB,GAAGzB,IAAI;MACxB0B,kBAAkB,GAAG1B,IAAI;MACzB2B,mBAAmB,GAAG3B,IAAI;MAC1B4B,gBAAgB,GAAG5B,IAAI;MACvB6B,uBAAuB,GAAG5B,IAAI;MAC9B6B,uBAAuB,GAAG7B,IAAI;MAC9B8B,yBAAyB,GAAG9B,IAAI;MAChC+B,yBAAyB,GAAG/B,IAAI;MAChCgC,OAAO;MACPC,mBAAmB;MACnBC,iBAAiB;MACjBC,cAAc,GAAGlC,iBAAiB;MAClCmC;IACF,CAAC,GAAArB,IAAA;IACC,MAAM;MAAEsB,GAAG;MAAEC,WAAW;MAAEC;IAAU,CAAC,GAAG7B,eAAe,EAAE;IAEzD,MAAM,CAAC8B,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG7C,QAAQ,CAACoB,UAAU,CAAC;IACxE,MAAM0B,yBAAyB,GAAGhD,WAAW,CAAC,MAAMiD,OAAO,CAAC3B,UAAU,CAAC,EAAE,EAAE,CAAC;IAE5E,MAAM,CAAC4B,kBAAkB,CAAC,GAAGhD,QAAQ,CAAC,MAAMe,MAAM,EAAoC,CAAC;IACvF,MAAM,CAACkC,sBAAsB,EAAEC,yBAAyB,CAAC,GAAGlD,QAAQ,CAAC,KAAK,CAAC;IAC3E,MAAMmD,yBAAyB,GAAG3C,aAAa,CAACyC,sBAAsB,CAAC;IAEvE,MAAMG,SAAS,GAAG7C,OAAO,CAAC,MAAM;MAC9B,IAAIoC,SAAS,CAACU,KAAK,CAACC,YAAY,CAAClB,OAAO,CAACgB,SAAS,KAAK,MAAM,EAAE,OAAOnD,SAAS,CAACsD,IAAI,CAAC,KAChF,OAAOtD,SAAS,CAACuD,qBAAqB;IAC7C,CAAC,CAAC;IAEF,MAAM;MACJC,OAAO;MACPC,QAAQ;MACRC,WAAW;MACXC,gBAAgB;MAChBC,IAAI;MACJC,IAAI;MACJC,OAAO;MACPC,eAAe;MACfC,eAAe;MACfC,iBAAiB;MACjBC,iBAAiB;MACjBC,aAAa;MACbC,aAAa;MACbC;IACF,CAAC,GAAGpE,uBAAuB,CAACuC,GAAG,EAAEL,OAAO,EAAEM,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE6B,MAAM,EAAE;MAC7DC,sBAAsB,EAAEA,CAAA,KAAMrB,yBAAyB,CAACsB,OAAO;MAC/DC,kBAAkBA,CAAChB,QAAQ,EAAE;QAC3BV,kBAAkB,CAAC2B,OAAO,CAAC;UAAEC,IAAI,EAAE,mBAAmB;UAAEC,IAAI,EAAE;YAAEnB;UAAS;QAAE,CAAC,CAAC;MAC/E,CAAC;MACDpB,iBAAiB;MACjBC,cAAc;MACdR,gBAAgB;MAChBqB,SAAS;MACT0B,aAAa,EAAElC,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEkC,aAAa;MAChDC,iCAAiC,EAAE;IACrC,CAAC,CAAC;IAEF,MAAMC,UAA6D,GAAG1E,gBAAgB,CAAEgB,KAAK,IAAK;MAChG,IAAIG,aAAa,EAAE,OAAOA,aAAa,CAACH,KAAK,CAAC;MAC9C,oBAAOzB,KAAA,CAAA0B,aAAA,CAACd,2BAA2B,EAAKa,KAAK,CAAI;IACnD,CAAC,CAAC;IAEF,MAAM2D,qBAAqB,GAAGlF,OAAO,CACnC,OAAO;MACLmF,kBAAkB,eAAErF,KAAA,CAAA0B,aAAA,CAACL,kBAAkB,CAACiE,WAAW,OAAG;MACtDC,qBAAqB,EAAE;QAAEC,QAAQ,EAAE;MAAE,CAAC;MACtC,GAAG7C;IACL,CAAC,CAAC,EACF,CAACA,aAAa,CAAC,CAChB;IAED,MAAM8C,kBAAkB,GAAGxF,WAAW,CAAEyF,QAAqB,IAAK;MAChEjB,sBAAsB,CAACkB,MAAM,CAACC,gBAAgB,EAAEF,QAAQ,CAAC;MACzD1C,qBAAqB,CAAC6C,SAAS,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMC,SAAS,GAAIC,OAAkD,IAAK;MACxE5C,kBAAkB,CAAC2B,OAAO,CAAC;QAAEC,IAAI,EAAE,sBAAsB;QAAEC,IAAI,EAAE;UAAEe;QAAQ;MAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAMC,MAAM,GAAID,OAAkD,IAAK;MACrE5C,kBAAkB,CAAC2B,OAAO,CAAC;QAAEC,IAAI,EAAE,sBAAsB;QAAEC,IAAI,EAAE;UAAEe;QAAQ;MAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAME,sBAA4E,GAAGxF,gBAAgB,CACnG,MAAOyF,MAAM,IAAK;MAChB,MAAMC,eAAe,GAAG,MAAMhE,uBAAuB,CAAC+D,MAAM,CAAC;MAC7D,MAAMH,OAAO,GAAG,MAAM3B,eAAe,CAAC+B,eAAe,EAAEL,SAAS,CAAC;MACjEE,MAAM,CAACD,OAAO,CAAC;IACjB,CAAC,CACF;IACD,MAAMK,sBAA4E,GAAG3F,gBAAgB,CACnG,MAAOyF,MAAM,IAAK;MAChB,MAAMC,eAAe,GAAG,MAAM/D,uBAAuB,CAAC8D,MAAM,CAAC;MAC7D,MAAMH,OAAO,GAAG,MAAM5B,eAAe,CAACgC,eAAe,EAAEL,SAAS,CAAC;MACjEE,MAAM,CAACD,OAAO,CAAC;IACjB,CAAC,CACF;IACD,MAAMM,wBAAgF,GAAG5F,gBAAgB,CACvG,OAAOsF,OAAO,EAAEG,MAAM,KAAK;MACzB,MAAMC,eAAe,GAAG,MAAM9D,yBAAyB,CAAC6D,MAAM,CAAC;MAC/D,MAAM5B,iBAAiB,CAACyB,OAAO,CAACO,SAAS,EAAEH,eAAe,CAAC;IAC7D,CAAC,CACF;IACD,MAAMI,wBAAgF,GAAG9F,gBAAgB,CACvG,OAAOsF,OAAO,EAAEG,MAAM,KAAK;MACzB,MAAMC,eAAe,GAAG,MAAM7D,yBAAyB,CAAC4D,MAAM,CAAC;MAC/D,MAAM7B,iBAAiB,CAAC0B,OAAO,CAACO,SAAS,EAAEH,eAAe,CAAC;IAC7D,CAAC,CACF;IACD,MAAMK,wBAAwB,GAAG/F,gBAAgB,CAAEgG,KAAc,IAAK;MACpE,IAAI,CAACA,KAAK,EAAE1C,gBAAgB,EAAE;MAC9BV,yBAAyB,CAACoD,KAAK,CAAC;IAClC,CAAC,CAAC;IAEF,oBACEzG,KAAA,CAAA0B,aAAA,CAACL,kBAAkB,CAACqF,QAAQ;MAC1BnE,OAAO,EAAEA,OAAQ;MACjBY,kBAAkB,EAAEA,kBAAmB;MACvCrB,qBAAqB,EAAEA,qBAAqB,IAAIgB,SAAS,CAACU,KAAK,CAACC,YAAY,CAAClB,OAAO,CAACT,qBAAsB;MAC3GU,mBAAmB,EAAEA;IAAoB,gBAEzCxC,KAAA,CAAA0B,aAAA,CAACL,kBAAkB,CAACsF,MAAM;MACxBC,eAAe,EAAE3D,yBAA0B;MAC3ClB,iBAAiB,EAAEA,iBAAkB;MACrCC,kBAAkB,EAAEA;IAAmB,EACvC,eACFhC,KAAA,CAAA0B,aAAA,CAACX,iBAAiB;MAAC6C,OAAO,EAAEA,OAAQ;MAACiD,gBAAgB,eAAE7G,KAAA,CAAA0B,aAAA,CAACL,kBAAkB,CAACyF,aAAa;IAAI,gBAC1F9G,KAAA,CAAA0B,aAAA,CAACL,kBAAkB,CAAC0F,WAAW;MAC7BxE,OAAO,EAAEA,OAAQ;MACjBhB,UAAU,EAAEwB,kBAAmB;MAC/B0C,kBAAkB,EAAEA,kBAAmB;MACvC5D,qBAAqB,EAAEA,qBAAsB;MAC7CmF,aAAa,EAAEnE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE6B,MAAO;MACnC9C,aAAa,EAAEuD,UAAW;MAC1BtB,QAAQ,EAAEA,QAAS;MACnBC,WAAW,EAAEA,WAAY;MACzBmD,YAAY,EAAEhD,IAAK;MACnBiD,eAAe,EAAElD,IAAK;MACtBE,OAAO,EAAEA,OAAQ;MACjBd,sBAAsB,EAAEA,sBAAuB;MAC/CoD,wBAAwB,EAAEA,wBAAyB;MACnDhF,uBAAuB,EAAEA,uBAAwB;MACjDG,0BAA0B,EAAEA,0BAA2B;MACvDwF,qBAAqB,EAAE5C,aAAc;MACrC6C,eAAe,EAAE5C,aAAc;MAC/BvC,mBAAmB,EAAEA,mBAAoB;MACzCU,aAAa,EAAEyC;IAAsB,EACrC,eACFpF,KAAA,CAAA0B,aAAA,CAACL,kBAAkB,CAACgG,KAAK;MACvBC,oBAAoB,EAAEjG,kBAAkB,CAACiG,oBAAqB;MAC9DC,iBAAiB,EAAEA,iBAAiB,CAAChF,OAAO,CAAE;MAC9C0D,sBAAsB,EAAEA,sBAAuB;MAC/CG,sBAAsB,EAAEA,sBAAuB;MAC/CC,wBAAwB,EAAEA,wBAAyB;MACnDE,wBAAwB,EAAEA;IAAyB,EACnD,CACgB,CACQ;EAElC,CAAC;AACH,CAAC;AAED,SAASgB,iBAAiBA,CAAChF,OAA6B,EAAE;EACxD,IAAIA,OAAO,CAACiF,WAAW,EAAE;IACvB,OAAOjF,OAAO,CAACkF,MAAM,KAAK,UAAU;EACtC;EAEA,OAAO,IAAI;AACb;AAEA,eAAetG,0BAA0B"}
@@ -36,7 +36,7 @@ const createGroupChannelInviteFragment = initModule => {
36
36
  const memberIds = shouldFilterMember(channel) ? channel.members.map(it => it.userId) : [];
37
37
  const _renderUser = useCallback((user, selectedUsers, setSelectedUsers) => {
38
38
  if (queryCreator && !renderUser) {
39
- const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
39
+ const hasRequiredKey = 'profileUrl' in user && 'nickname' in user;
40
40
  if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
41
41
  }
42
42
  if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","TouchableOpacity","useUserList","StatusComposition","UserSelectableBar","createUserListModule","useLocalization","useSendbirdChat","createGroupChannelInviteFragment","initModule","UserListModule","_ref","channel","onPressHeaderLeft","onInviteMembers","sortComparator","queryCreator","renderUser","sdk","STRINGS","users","refreshing","refresh","next","error","loading","memberIds","shouldFilterMember","members","map","it","userId","_renderUser","user","selectedUsers","setSelectedUsers","hasRequiredKey","Object","hasOwn","Error","userIdxInMembers","indexOf","userIdxInSelectedUsers","findIndex","isMember","isSelected","createElement","activeOpacity","disabled","onPress","_ref2","draft","splice","push","uri","profileUrl","name","nickname","LABELS","USER_NO_NAME","selected","Provider","headerRight","GROUP_CHANNEL_INVITE","HEADER_RIGHT","headerTitle","HEADER_TITLE","Header","onPressHeaderRight","userIds","updatedChannel","inviteWithUserIds","Boolean","LoadingComponent","StatusLoading","ErrorComponent","StatusError","onPressRetry","List","onLoadNext","onRefresh","ListEmptyComponent","StatusEmpty","isSuper","isBroadcast"],"sources":["createGroupChannelInviteFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdUser, UserStruct } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelInviteFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelInviteFragment = <UserType extends UserStruct>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelInviteFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({ channel, onPressHeaderLeft, onInviteMembers, sortComparator, queryCreator, renderUser }) => {\n const { sdk } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, refresh, next, error, loading } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const memberIds = shouldFilterMember(channel) ? channel.members.map((it) => it.userId) : [];\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');\n if (!hasRequiredKey) throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const userIdxInMembers = memberIds.indexOf(user.userId);\n const userIdxInSelectedUsers = selectedUsers.findIndex((it) => it.userId === user.userId);\n\n const isMember = userIdxInMembers > -1;\n const isSelected = userIdxInSelectedUsers > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={isMember}\n onPress={() => {\n setSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdxInSelectedUsers, 1);\n else draft.push(user);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={(user as unknown as SendbirdUser).profileUrl}\n name={(user as unknown as SendbirdUser).nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isMember || isSelected}\n disabled={isMember}\n />\n </TouchableOpacity>\n );\n },\n [channel, renderUser, queryCreator],\n );\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_INVITE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_INVITE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const userIds = users.map((it) => it.userId);\n const updatedChannel = await channel.inviteWithUserIds(userIds);\n onInviteMembers(updatedChannel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nfunction shouldFilterMember(channel: SendbirdGroupChannel) {\n return !channel.isSuper && !channel.isBroadcast;\n}\n\nexport default createGroupChannelInviteFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","TouchableOpacity","useUserList","StatusComposition","UserSelectableBar","createUserListModule","useLocalization","useSendbirdChat","createGroupChannelInviteFragment","initModule","UserListModule","_ref","channel","onPressHeaderLeft","onInviteMembers","sortComparator","queryCreator","renderUser","sdk","STRINGS","users","refreshing","refresh","next","error","loading","memberIds","shouldFilterMember","members","map","it","userId","_renderUser","user","selectedUsers","setSelectedUsers","hasRequiredKey","Error","userIdxInMembers","indexOf","userIdxInSelectedUsers","findIndex","isMember","isSelected","createElement","activeOpacity","disabled","onPress","_ref2","draft","splice","push","uri","profileUrl","name","nickname","LABELS","USER_NO_NAME","selected","Provider","headerRight","GROUP_CHANNEL_INVITE","HEADER_RIGHT","headerTitle","HEADER_TITLE","Header","onPressHeaderRight","userIds","updatedChannel","inviteWithUserIds","Boolean","LoadingComponent","StatusLoading","ErrorComponent","StatusError","onPressRetry","List","onLoadNext","onRefresh","ListEmptyComponent","StatusEmpty","isSuper","isBroadcast"],"sources":["createGroupChannelInviteFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdUser, UserStruct } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelInviteFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelInviteFragment = <UserType extends UserStruct>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelInviteFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({ channel, onPressHeaderLeft, onInviteMembers, sortComparator, queryCreator, renderUser }) => {\n const { sdk } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, refresh, next, error, loading } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const memberIds = shouldFilterMember(channel) ? channel.members.map((it) => it.userId) : [];\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n const hasRequiredKey = 'profileUrl' in user && 'nickname' in user;\n if (!hasRequiredKey) throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const userIdxInMembers = memberIds.indexOf(user.userId);\n const userIdxInSelectedUsers = selectedUsers.findIndex((it) => it.userId === user.userId);\n\n const isMember = userIdxInMembers > -1;\n const isSelected = userIdxInSelectedUsers > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={isMember}\n onPress={() => {\n setSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdxInSelectedUsers, 1);\n else draft.push(user);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={(user as unknown as SendbirdUser).profileUrl}\n name={(user as unknown as SendbirdUser).nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isMember || isSelected}\n disabled={isMember}\n />\n </TouchableOpacity>\n );\n },\n [channel, renderUser, queryCreator],\n );\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_INVITE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_INVITE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const userIds = users.map((it) => it.userId);\n const updatedChannel = await channel.inviteWithUserIds(userIds);\n onInviteMembers(updatedChannel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nfunction shouldFilterMember(channel: SendbirdGroupChannel) {\n return !channel.isSuper && !channel.isBroadcast;\n}\n\nexport default createGroupChannelInviteFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,gBAAgB,QAAQ,cAAc;AAE/C,SAASC,WAAW,QAAQ,4BAA4B;AAGxD,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,OAAOC,iBAAiB,MAAM,iCAAiC;AAE/D,OAAOC,oBAAoB,MAAM,gDAAgD;AAEjF,SAASC,eAAe,EAAEC,eAAe,QAAQ,qBAAqB;AAEtE,MAAMC,gCAAgC,GACpCC,UAA8C,IACL;EACzC,MAAMC,cAAc,GAAGL,oBAAoB,CAAWI,UAAU,CAAC;EAEjE,OAAOE,IAAA,IAA+F;IAAA,IAA9F;MAAEC,OAAO;MAAEC,iBAAiB;MAAEC,eAAe;MAAEC,cAAc;MAAEC,YAAY;MAAEC;IAAW,CAAC,GAAAN,IAAA;IAC/F,MAAM;MAAEO;IAAI,CAAC,GAAGX,eAAe,EAAE;IACjC,MAAM;MAAEY;IAAQ,CAAC,GAAGb,eAAe,EAAE;IACrC,MAAM;MAAEc,KAAK;MAAEC,UAAU;MAAEC,OAAO;MAAEC,IAAI;MAAEC,KAAK;MAAEC;IAAQ,CAAC,GAAGvB,WAAW,CAACgB,GAAG,EAAE;MAC5EF,YAAY;MACZD;IACF,CAAC,CAAC;IAEF,MAAMW,SAAS,GAAGC,kBAAkB,CAACf,OAAO,CAAC,GAAGA,OAAO,CAACgB,OAAO,CAACC,GAAG,CAAEC,EAAE,IAAKA,EAAE,CAACC,MAAM,CAAC,GAAG,EAAE;IAE3F,MAAMC,WAA2C,GAAGhC,WAAW,CAC7D,CAACiC,IAAI,EAAEC,aAAa,EAAEC,gBAAgB,KAAK;MACzC,IAAInB,YAAY,IAAI,CAACC,UAAU,EAAE;QAC/B,MAAMmB,cAAc,GAAG,YAAY,IAAIH,IAAI,IAAI,UAAU,IAAIA,IAAI;QACjE,IAAI,CAACG,cAAc,EAAE,MAAM,IAAIC,KAAK,CAAC,+DAA+D,CAAC;MACvG;MAEA,IAAIpB,UAAU,EAAE,OAAOA,UAAU,CAACgB,IAAI,EAAEC,aAAa,EAAEC,gBAAgB,CAAC;MAExE,MAAMG,gBAAgB,GAAGZ,SAAS,CAACa,OAAO,CAACN,IAAI,CAACF,MAAM,CAAC;MACvD,MAAMS,sBAAsB,GAAGN,aAAa,CAACO,SAAS,CAAEX,EAAE,IAAKA,EAAE,CAACC,MAAM,KAAKE,IAAI,CAACF,MAAM,CAAC;MAEzF,MAAMW,QAAQ,GAAGJ,gBAAgB,GAAG,CAAC,CAAC;MACtC,MAAMK,UAAU,GAAGH,sBAAsB,GAAG,CAAC,CAAC;MAE9C,oBACEzC,KAAA,CAAA6C,aAAA,CAAC3C,gBAAgB;QACf4C,aAAa,EAAE,GAAI;QACnBC,QAAQ,EAAEJ,QAAS;QACnBK,OAAO,EAAEA,CAAA,KAAM;UACbZ,gBAAgB,CAACa,KAAA,IAAgB;YAAA,IAAf,CAAC,GAAGC,KAAK,CAAC,GAAAD,KAAA;YAC1B,IAAIL,UAAU,EAAEM,KAAK,CAACC,MAAM,CAACV,sBAAsB,EAAE,CAAC,CAAC,CAAC,KACnDS,KAAK,CAACE,IAAI,CAAClB,IAAI,CAAC;YACrB,OAAOgB,KAAK;UACd,CAAC,CAAC;QACJ;MAAE,gBAEFlD,KAAA,CAAA6C,aAAA,CAACxC,iBAAiB;QAChBgD,GAAG,EAAGnB,IAAI,CAA6BoB,UAAW;QAClDC,IAAI,EAAGrB,IAAI,CAA6BsB,QAAQ,IAAIpC,OAAO,CAACqC,MAAM,CAACC,YAAa;QAChFC,QAAQ,EAAEhB,QAAQ,IAAIC,UAAW;QACjCG,QAAQ,EAAEJ;MAAS,EACnB,CACe;IAEvB,CAAC,EACD,CAAC9B,OAAO,EAAEK,UAAU,EAAED,YAAY,CAAC,CACpC;IAED,oBACEjB,KAAA,CAAA6C,aAAA,CAAClC,cAAc,CAACiD,QAAQ;MACtBC,WAAW,EAAG1B,aAAa,IAAKf,OAAO,CAAC0C,oBAAoB,CAACC,YAAY,CAAC;QAAE5B;MAAc,CAAC,CAAE;MAC7F6B,WAAW,EAAE5C,OAAO,CAAC0C,oBAAoB,CAACG;IAAa,gBAEvDjE,KAAA,CAAA6C,aAAA,CAAClC,cAAc,CAACuD,MAAM;MACpBpD,iBAAiB,EAAEA,iBAAkB;MACrCqD,kBAAkB,EAAE,MAAO9C,KAAK,IAAK;QACnC,MAAM+C,OAAO,GAAG/C,KAAK,CAACS,GAAG,CAAEC,EAAE,IAAKA,EAAE,CAACC,MAAM,CAAC;QAC5C,MAAMqC,cAAc,GAAG,MAAMxD,OAAO,CAACyD,iBAAiB,CAACF,OAAO,CAAC;QAC/DrD,eAAe,CAACsD,cAAc,CAAC;MACjC;IAAE,EACF,eACFrE,KAAA,CAAA6C,aAAA,CAACzC,iBAAiB;MAChBsB,OAAO,EAAEA,OAAQ;MACjBD,KAAK,EAAE8C,OAAO,CAAC9C,KAAK,CAAE;MACtB+C,gBAAgB,eAAExE,KAAA,CAAA6C,aAAA,CAAClC,cAAc,CAAC8D,aAAa,OAAI;MACnDC,cAAc,eAAE1E,KAAA,CAAA6C,aAAA,CAAClC,cAAc,CAACgE,WAAW;QAACC,YAAY,EAAEA,CAAA,KAAMrD,OAAO;MAAG;IAAI,gBAE9EvB,KAAA,CAAA6C,aAAA,CAAClC,cAAc,CAACkE,IAAI;MAClBC,UAAU,EAAEtD,IAAK;MACjBH,KAAK,EAAEA,KAAM;MACbH,UAAU,EAAEe,WAAY;MACxB8C,SAAS,EAAExD,OAAQ;MACnBD,UAAU,EAAEA,UAAW;MACvB0D,kBAAkB,eAAEhF,KAAA,CAAA6C,aAAA,CAAClC,cAAc,CAACsE,WAAW;IAAI,EACnD,CACgB,CACI;EAE9B,CAAC;AACH,CAAC;AAED,SAASrD,kBAAkBA,CAACf,OAA6B,EAAE;EACzD,OAAO,CAACA,OAAO,CAACqE,OAAO,IAAI,CAACrE,OAAO,CAACsE,WAAW;AACjD;AAEA,eAAe1E,gCAAgC"}
@@ -11,7 +11,6 @@ const createGroupChannelListFragment = initModule => {
11
11
  let {
12
12
  onPressChannel,
13
13
  onPressCreateChannel,
14
- queryCreator,
15
14
  collectionCreator,
16
15
  renderGroupChannelPreview,
17
16
  skipTypeSelection = false,
@@ -21,7 +20,7 @@ const createGroupChannelListFragment = initModule => {
21
20
  const {
22
21
  sdk,
23
22
  currentUser,
24
- features,
23
+ sbOptions,
25
24
  markAsDeliveredWithChannel
26
25
  } = useSendbirdChat();
27
26
  const {
@@ -29,28 +28,24 @@ const createGroupChannelListFragment = initModule => {
29
28
  next,
30
29
  loading
31
30
  } = useGroupChannelList(sdk, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId, {
32
- queryCreator,
33
31
  collectionCreator,
34
- enableCollectionWithoutLocalCache: !queryCreator
32
+ enableCollectionWithoutLocalCache: true
35
33
  });
36
- if (features.deliveryReceiptEnabled) {
34
+ if (sbOptions.appInfo.deliveryReceiptEnabled) {
37
35
  useAppState('change', status => {
38
36
  if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);
39
37
  });
40
38
  }
41
- const _renderGroupChannelPreview = useFreshCallback((channel, onLongPressChannel) => {
42
- if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);
43
- return /*#__PURE__*/React.createElement(GroupChannelPreviewContainer, {
44
- channel: channel,
45
- onPress: () => onPressChannel(channel),
46
- onLongPress: () => onLongPressChannel()
47
- });
39
+ const _renderGroupChannelPreview = useFreshCallback(props => {
40
+ if (renderGroupChannelPreview) return renderGroupChannelPreview(props);
41
+ return /*#__PURE__*/React.createElement(GroupChannelPreviewContainer, props);
48
42
  });
49
- const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;
43
+ const isChannelTypeAvailable = sbOptions.appInfo.broadcastChannelEnabled || sbOptions.appInfo.superGroupChannelEnabled;
50
44
  return /*#__PURE__*/React.createElement(GroupChannelListModule.Provider, null, /*#__PURE__*/React.createElement(GroupChannelListModule.Header, null), /*#__PURE__*/React.createElement(StatusComposition, {
51
45
  loading: loading,
52
46
  LoadingComponent: /*#__PURE__*/React.createElement(GroupChannelListModule.StatusLoading, null)
53
47
  }, /*#__PURE__*/React.createElement(GroupChannelListModule.List, {
48
+ onPressChannel: onPressChannel,
54
49
  menuItemCreator: menuItemCreator,
55
50
  renderGroupChannelPreview: _renderGroupChannelPreview,
56
51
  groupChannels: groupChannels,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useGroupChannelList","PASS","useAppState","useFreshCallback","StatusComposition","GroupChannelPreviewContainer","createGroupChannelListModule","useSendbirdChat","createGroupChannelListFragment","initModule","GroupChannelListModule","_ref","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","skipTypeSelection","flatListProps","menuItemCreator","sdk","currentUser","features","markAsDeliveredWithChannel","groupChannels","next","loading","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","status","forEach","_renderGroupChannelPreview","channel","onLongPressChannel","createElement","onPress","onLongPress","isChannelTypeAvailable","broadcastChannelEnabled","superGroupChannelEnabled","Provider","Header","LoadingComponent","StatusLoading","List","onLoadNext","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","TypeSelector","onSelectType"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { PASS, useAppState, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n skipTypeSelection = false,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useAppState('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n skipTypeSelection={isChannelTypeAvailable ? skipTypeSelection : true}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SAASC,IAAI,EAAEC,WAAW,EAAEC,gBAAgB,QAAQ,uBAAuB;AAE3E,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,OAAOC,4BAA4B,MAAM,4CAA4C;AACrF,OAAOC,4BAA4B,MAAM,gEAAgE;AAMzG,SAASC,eAAe,QAAQ,qBAAqB;AAErD,MAAMC,8BAA8B,GAAIC,UAA4C,IAA+B;EACjH,MAAMC,sBAAsB,GAAGJ,4BAA4B,CAACG,UAAU,CAAC;EACvE,OAAOE,IAAA,IASD;IAAA,IATE;MACNC,cAAc;MACdC,oBAAoB;MACpBC,YAAY;MACZC,iBAAiB;MACjBC,yBAAyB;MACzBC,iBAAiB,GAAG,KAAK;MACzBC,aAAa,GAAG,CAAC,CAAC;MAClBC,eAAe,GAAGlB;IACpB,CAAC,GAAAU,IAAA;IACC,MAAM;MAAES,GAAG;MAAEC,WAAW;MAAEC,QAAQ;MAAEC;IAA2B,CAAC,GAAGhB,eAAe,EAAE;IACpF,MAAM;MAAEiB,aAAa;MAAEC,IAAI;MAAEC;IAAQ,CAAC,GAAG1B,mBAAmB,CAACoB,GAAG,EAAEC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEM,MAAM,EAAE;MACrFb,YAAY;MACZC,iBAAiB;MACjBa,iCAAiC,EAAE,CAACd;IACtC,CAAC,CAAC;IAEF,IAAIQ,QAAQ,CAACO,sBAAsB,EAAE;MACnC3B,WAAW,CAAC,QAAQ,EAAG4B,MAAM,IAAK;QAChC,IAAIA,MAAM,KAAK,QAAQ,EAAEN,aAAa,CAACO,OAAO,CAACR,0BAA0B,CAAC;MAC5E,CAAC,CAAC;IACJ;IAEA,MAAMS,0BAAsF,GAAG7B,gBAAgB,CAC7G,CAAC8B,OAAO,EAAEC,kBAAkB,KAAK;MAC/B,IAAIlB,yBAAyB,EAAE,OAAOA,yBAAyB,CAACiB,OAAO,EAAEC,kBAAkB,CAAC;MAC5F,oBACEnC,KAAA,CAAAoC,aAAA,CAAC9B,4BAA4B;QAC3B4B,OAAO,EAAEA,OAAQ;QACjBG,OAAO,EAAEA,CAAA,KAAMxB,cAAc,CAACqB,OAAO,CAAE;QACvCI,WAAW,EAAEA,CAAA,KAAMH,kBAAkB;MAAG,EACxC;IAEN,CAAC,CACF;IAED,MAAMI,sBAAsB,GAAGhB,QAAQ,CAACiB,uBAAuB,IAAIjB,QAAQ,CAACkB,wBAAwB;IAEpG,oBACEzC,KAAA,CAAAoC,aAAA,CAACzB,sBAAsB,CAAC+B,QAAQ,qBAC9B1C,KAAA,CAAAoC,aAAA,CAACzB,sBAAsB,CAACgC,MAAM,OAAG,eACjC3C,KAAA,CAAAoC,aAAA,CAAC/B,iBAAiB;MAACsB,OAAO,EAAEA,OAAQ;MAACiB,gBAAgB,eAAE5C,KAAA,CAAAoC,aAAA,CAACzB,sBAAsB,CAACkC,aAAa;IAAI,gBAC9F7C,KAAA,CAAAoC,aAAA,CAACzB,sBAAsB,CAACmC,IAAI;MAC1B1B,eAAe,EAAEA,eAAgB;MACjCH,yBAAyB,EAAEgB,0BAA2B;MACtDR,aAAa,EAAEA,aAAc;MAC7BsB,UAAU,EAAErB,IAAK;MACjBP,aAAa,EAAE;QACb6B,kBAAkB,eAAEhD,KAAA,CAAAoC,aAAA,CAACzB,sBAAsB,CAACsC,WAAW,OAAG;QAC1DC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAE,CAAC;QACtC,GAAGhC;MACL;IAAE,EACF,CACgB,eACpBnB,KAAA,CAAAoC,aAAA,CAACzB,sBAAsB,CAACyC,YAAY;MAClClC,iBAAiB,EAAEqB,sBAAsB,GAAGrB,iBAAiB,GAAG,IAAK;MACrEmC,YAAY,EAAEvC;IAAqB,EACnC,CAC8B;EAEtC,CAAC;AACH,CAAC;AAED,eAAeL,8BAA8B"}
1
+ {"version":3,"names":["React","useGroupChannelList","PASS","useAppState","useFreshCallback","StatusComposition","GroupChannelPreviewContainer","createGroupChannelListModule","useSendbirdChat","createGroupChannelListFragment","initModule","GroupChannelListModule","_ref","onPressChannel","onPressCreateChannel","collectionCreator","renderGroupChannelPreview","skipTypeSelection","flatListProps","menuItemCreator","sdk","currentUser","sbOptions","markAsDeliveredWithChannel","groupChannels","next","loading","userId","enableCollectionWithoutLocalCache","appInfo","deliveryReceiptEnabled","status","forEach","_renderGroupChannelPreview","props","createElement","isChannelTypeAvailable","broadcastChannelEnabled","superGroupChannelEnabled","Provider","Header","LoadingComponent","StatusLoading","List","onLoadNext","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","TypeSelector","onSelectType"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { PASS, useAppState, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n onPressChannel,\n onPressCreateChannel,\n collectionCreator,\n renderGroupChannelPreview,\n skipTypeSelection = false,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, sbOptions, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n collectionCreator,\n enableCollectionWithoutLocalCache: true,\n });\n\n if (sbOptions.appInfo.deliveryReceiptEnabled) {\n useAppState('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (props) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(props);\n return <GroupChannelPreviewContainer {...props} />;\n },\n );\n\n const isChannelTypeAvailable =\n sbOptions.appInfo.broadcastChannelEnabled || sbOptions.appInfo.superGroupChannelEnabled;\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n onPressChannel={onPressChannel}\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n skipTypeSelection={isChannelTypeAvailable ? skipTypeSelection : true}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SAASC,IAAI,EAAEC,WAAW,EAAEC,gBAAgB,QAAQ,uBAAuB;AAE3E,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,OAAOC,4BAA4B,MAAM,4CAA4C;AACrF,OAAOC,4BAA4B,MAAM,gEAAgE;AAMzG,SAASC,eAAe,QAAQ,qBAAqB;AAErD,MAAMC,8BAA8B,GAAIC,UAA4C,IAA+B;EACjH,MAAMC,sBAAsB,GAAGJ,4BAA4B,CAACG,UAAU,CAAC;EACvE,OAAOE,IAAA,IAQD;IAAA,IARE;MACNC,cAAc;MACdC,oBAAoB;MACpBC,iBAAiB;MACjBC,yBAAyB;MACzBC,iBAAiB,GAAG,KAAK;MACzBC,aAAa,GAAG,CAAC,CAAC;MAClBC,eAAe,GAAGjB;IACpB,CAAC,GAAAU,IAAA;IACC,MAAM;MAAEQ,GAAG;MAAEC,WAAW;MAAEC,SAAS;MAAEC;IAA2B,CAAC,GAAGf,eAAe,EAAE;IACrF,MAAM;MAAEgB,aAAa;MAAEC,IAAI;MAAEC;IAAQ,CAAC,GAAGzB,mBAAmB,CAACmB,GAAG,EAAEC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEM,MAAM,EAAE;MACrFZ,iBAAiB;MACjBa,iCAAiC,EAAE;IACrC,CAAC,CAAC;IAEF,IAAIN,SAAS,CAACO,OAAO,CAACC,sBAAsB,EAAE;MAC5C3B,WAAW,CAAC,QAAQ,EAAG4B,MAAM,IAAK;QAChC,IAAIA,MAAM,KAAK,QAAQ,EAAEP,aAAa,CAACQ,OAAO,CAACT,0BAA0B,CAAC;MAC5E,CAAC,CAAC;IACJ;IAEA,MAAMU,0BAAsF,GAAG7B,gBAAgB,CAC5G8B,KAAK,IAAK;MACT,IAAIlB,yBAAyB,EAAE,OAAOA,yBAAyB,CAACkB,KAAK,CAAC;MACtE,oBAAOlC,KAAA,CAAAmC,aAAA,CAAC7B,4BAA4B,EAAK4B,KAAK,CAAI;IACpD,CAAC,CACF;IAED,MAAME,sBAAsB,GAC1Bd,SAAS,CAACO,OAAO,CAACQ,uBAAuB,IAAIf,SAAS,CAACO,OAAO,CAACS,wBAAwB;IAEzF,oBACEtC,KAAA,CAAAmC,aAAA,CAACxB,sBAAsB,CAAC4B,QAAQ,qBAC9BvC,KAAA,CAAAmC,aAAA,CAACxB,sBAAsB,CAAC6B,MAAM,OAAG,eACjCxC,KAAA,CAAAmC,aAAA,CAAC9B,iBAAiB;MAACqB,OAAO,EAAEA,OAAQ;MAACe,gBAAgB,eAAEzC,KAAA,CAAAmC,aAAA,CAACxB,sBAAsB,CAAC+B,aAAa;IAAI,gBAC9F1C,KAAA,CAAAmC,aAAA,CAACxB,sBAAsB,CAACgC,IAAI;MAC1B9B,cAAc,EAAEA,cAAe;MAC/BM,eAAe,EAAEA,eAAgB;MACjCH,yBAAyB,EAAEiB,0BAA2B;MACtDT,aAAa,EAAEA,aAAc;MAC7BoB,UAAU,EAAEnB,IAAK;MACjBP,aAAa,EAAE;QACb2B,kBAAkB,eAAE7C,KAAA,CAAAmC,aAAA,CAACxB,sBAAsB,CAACmC,WAAW,OAAG;QAC1DC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAE,CAAC;QACtC,GAAG9B;MACL;IAAE,EACF,CACgB,eACpBlB,KAAA,CAAAmC,aAAA,CAACxB,sBAAsB,CAACsC,YAAY;MAClChC,iBAAiB,EAAEmB,sBAAsB,GAAGnB,iBAAiB,GAAG,IAAK;MACrEiC,YAAY,EAAEpC;IAAqB,EACnC,CAC8B;EAEtC,CAAC;AACH,CAAC;AAED,eAAeL,8BAA8B"}
@@ -1,7 +1,7 @@
1
1
  import React, { useRef, useState } from 'react';
2
2
  import { MessageSearchOrder } from '@sendbird/chat/message';
3
3
  import { Logger, NOOP, useFreshCallback, useSafeAreaPadding } from '@sendbird/uikit-utils';
4
- import { MessageSearchResultItem } from '../components/MessageSearchResultItem';
4
+ import MessageSearchResultItem from '../components/MessageSearchResultItem';
5
5
  import StatusComposition from '../components/StatusComposition';
6
6
  import { createMessageSearchModule } from '../domain/messageSearch';
7
7
  import { useSendbirdChat } from '../hooks/useContext';
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useState","MessageSearchOrder","Logger","NOOP","useFreshCallback","useSafeAreaPadding","MessageSearchResultItem","StatusComposition","createMessageSearchModule","useSendbirdChat","getMessageSearchQuery","sdk","options","queryCreator","createMessageSearchQuery","createMessageSearchFragment","initModule","MessageSearchModule","_ref","onPressHeaderLeft","channel","renderSearchResultItem","onPressSearchResultItem","padding","keyword","setKeyword","search","searchResults","loading","next","error","query","useMessageSearch","renderItem","props","createElement","Provider","Header","onChangeKeyword","onPressHeaderRight","LoadingComponent","StatusLoading","Boolean","ErrorComponent","StatusError","onPressRetry","List","messages","flatListProps","keyboardDismissMode","keyboardShouldPersistTaps","onEndReached","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","_ref2","setQuery","setLoading","setError","setSearchResults","queryInProgress","length","current","channelUrl","url","messageTimestampFrom","Math","max","joinedAt","invitedAt","order","TIMESTAMP","result","err","warn","hasNext","prev"],"sources":["createMessageSearchFragment.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\n\nimport { MessageSearchOrder } from '@sendbird/chat/message';\nimport {\n Logger,\n NOOP,\n SendbirdBaseMessage,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdMessageSearchQuery,\n useFreshCallback,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { MessageSearchResultItem } from '../components/MessageSearchResultItem';\nimport StatusComposition from '../components/StatusComposition';\nimport { createMessageSearchModule } from '../domain/messageSearch';\nimport type { MessageSearchFragment, MessageSearchModule, MessageSearchProps } from '../domain/messageSearch/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\ntype DefaultMessageSearchQueryParams = {\n keyword: string;\n channelUrl: string;\n messageTimestampFrom: number;\n order: MessageSearchOrder;\n};\n\ntype SearchQueryOptions = DefaultMessageSearchQueryParams & {\n queryCreator?: (params: DefaultMessageSearchQueryParams) => SendbirdMessageSearchQuery;\n};\n\nfunction getMessageSearchQuery(sdk: SendbirdChatSDK, options: SearchQueryOptions) {\n if (options.queryCreator) return options.queryCreator(options);\n return sdk.createMessageSearchQuery(options);\n}\n\nconst createMessageSearchFragment = (initModule?: Partial<MessageSearchModule>): MessageSearchFragment => {\n const MessageSearchModule = createMessageSearchModule(initModule);\n\n return ({ onPressHeaderLeft = NOOP, channel, queryCreator, renderSearchResultItem, onPressSearchResultItem }) => {\n const padding = useSafeAreaPadding(['left', 'right', 'bottom']);\n\n const { sdk } = useSendbirdChat();\n const { keyword, setKeyword, search, searchResults, loading, next, error, query } = useMessageSearch(sdk, {\n channel,\n queryCreator,\n });\n\n const renderItem: MessageSearchProps['List']['renderSearchResultItem'] = useFreshCallback((props) => {\n if (renderSearchResultItem) return renderSearchResultItem(props);\n return <MessageSearchResultItem {...props} />;\n });\n\n return (\n <MessageSearchModule.Provider>\n <MessageSearchModule.Header\n keyword={keyword}\n onChangeKeyword={setKeyword}\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={search}\n />\n <StatusComposition\n loading={loading}\n LoadingComponent={<MessageSearchModule.StatusLoading />}\n error={Boolean(error)}\n ErrorComponent={<MessageSearchModule.StatusError onPressRetry={search} />}\n >\n {query && (\n <MessageSearchModule.List\n channel={channel}\n onPressSearchResultItem={onPressSearchResultItem}\n messages={searchResults}\n renderSearchResultItem={renderItem}\n flatListProps={{\n keyboardDismissMode: 'on-drag',\n keyboardShouldPersistTaps: 'handled',\n onEndReached: next,\n ListEmptyComponent: MessageSearchModule.StatusEmpty,\n contentContainerStyle: { flexGrow: 1, ...padding },\n }}\n />\n )}\n </StatusComposition>\n </MessageSearchModule.Provider>\n );\n };\n};\n\nconst useMessageSearch = (\n sdk: SendbirdChatSDK,\n { channel, queryCreator }: { channel: SendbirdGroupChannel; queryCreator: SearchQueryOptions['queryCreator'] },\n) => {\n const [query, setQuery] = useState<SendbirdMessageSearchQuery>();\n const [keyword, setKeyword] = useState('');\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<unknown>(null);\n const [searchResults, setSearchResults] = useState<SendbirdBaseMessage[]>([]);\n const queryInProgress = useRef(false);\n\n const search = useFreshCallback(async () => {\n if (keyword.length <= 0) return;\n if (queryInProgress.current) return;\n\n const query = getMessageSearchQuery(sdk, {\n keyword,\n channelUrl: channel.url,\n messageTimestampFrom: Math.max(channel.joinedAt, channel.invitedAt),\n order: MessageSearchOrder.TIMESTAMP,\n queryCreator,\n });\n\n setQuery(query);\n setLoading(true);\n setError(null);\n\n try {\n queryInProgress.current = true;\n const result = await query.next();\n setSearchResults(result);\n } catch (err) {\n Logger.warn('[MessageSearchFragment] search failure', err);\n setError(err);\n } finally {\n queryInProgress.current = false;\n setLoading(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (!query?.hasNext) return;\n if (queryInProgress.current) return;\n\n try {\n queryInProgress.current = true;\n const result = await query.next();\n setSearchResults((prev) => [...prev, ...result]);\n } catch (err) {\n Logger.warn('[MessageSearchFragment] next failure', err);\n setError(err);\n } finally {\n queryInProgress.current = false;\n }\n });\n\n return {\n keyword,\n setKeyword,\n\n query,\n loading,\n error,\n searchResults,\n\n search,\n next,\n };\n};\n\nexport default createMessageSearchFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useRef","useState","MessageSearchOrder","Logger","NOOP","useFreshCallback","useSafeAreaPadding","MessageSearchResultItem","StatusComposition","createMessageSearchModule","useSendbirdChat","getMessageSearchQuery","sdk","options","queryCreator","createMessageSearchQuery","createMessageSearchFragment","initModule","MessageSearchModule","_ref","onPressHeaderLeft","channel","renderSearchResultItem","onPressSearchResultItem","padding","keyword","setKeyword","search","searchResults","loading","next","error","query","useMessageSearch","renderItem","props","createElement","Provider","Header","onChangeKeyword","onPressHeaderRight","LoadingComponent","StatusLoading","Boolean","ErrorComponent","StatusError","onPressRetry","List","messages","flatListProps","keyboardDismissMode","keyboardShouldPersistTaps","onEndReached","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","_ref2","setQuery","setLoading","setError","setSearchResults","queryInProgress","length","current","channelUrl","url","messageTimestampFrom","Math","max","joinedAt","invitedAt","order","TIMESTAMP","result","err","warn","hasNext","prev"],"sources":["createMessageSearchFragment.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\n\nimport { MessageSearchOrder } from '@sendbird/chat/message';\nimport {\n Logger,\n NOOP,\n SendbirdBaseMessage,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdMessageSearchQuery,\n useFreshCallback,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport MessageSearchResultItem from '../components/MessageSearchResultItem';\nimport StatusComposition from '../components/StatusComposition';\nimport { createMessageSearchModule } from '../domain/messageSearch';\nimport type { MessageSearchFragment, MessageSearchModule, MessageSearchProps } from '../domain/messageSearch/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\ntype DefaultMessageSearchQueryParams = {\n keyword: string;\n channelUrl: string;\n messageTimestampFrom: number;\n order: MessageSearchOrder;\n};\n\ntype SearchQueryOptions = DefaultMessageSearchQueryParams & {\n queryCreator?: (params: DefaultMessageSearchQueryParams) => SendbirdMessageSearchQuery;\n};\n\nfunction getMessageSearchQuery(sdk: SendbirdChatSDK, options: SearchQueryOptions) {\n if (options.queryCreator) return options.queryCreator(options);\n return sdk.createMessageSearchQuery(options);\n}\n\nconst createMessageSearchFragment = (initModule?: Partial<MessageSearchModule>): MessageSearchFragment => {\n const MessageSearchModule = createMessageSearchModule(initModule);\n\n return ({ onPressHeaderLeft = NOOP, channel, queryCreator, renderSearchResultItem, onPressSearchResultItem }) => {\n const padding = useSafeAreaPadding(['left', 'right', 'bottom']);\n\n const { sdk } = useSendbirdChat();\n const { keyword, setKeyword, search, searchResults, loading, next, error, query } = useMessageSearch(sdk, {\n channel,\n queryCreator,\n });\n\n const renderItem: MessageSearchProps['List']['renderSearchResultItem'] = useFreshCallback((props) => {\n if (renderSearchResultItem) return renderSearchResultItem(props);\n return <MessageSearchResultItem {...props} />;\n });\n\n return (\n <MessageSearchModule.Provider>\n <MessageSearchModule.Header\n keyword={keyword}\n onChangeKeyword={setKeyword}\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={search}\n />\n <StatusComposition\n loading={loading}\n LoadingComponent={<MessageSearchModule.StatusLoading />}\n error={Boolean(error)}\n ErrorComponent={<MessageSearchModule.StatusError onPressRetry={search} />}\n >\n {query && (\n <MessageSearchModule.List\n channel={channel}\n onPressSearchResultItem={onPressSearchResultItem}\n messages={searchResults}\n renderSearchResultItem={renderItem}\n flatListProps={{\n keyboardDismissMode: 'on-drag',\n keyboardShouldPersistTaps: 'handled',\n onEndReached: next,\n ListEmptyComponent: MessageSearchModule.StatusEmpty,\n contentContainerStyle: { flexGrow: 1, ...padding },\n }}\n />\n )}\n </StatusComposition>\n </MessageSearchModule.Provider>\n );\n };\n};\n\nconst useMessageSearch = (\n sdk: SendbirdChatSDK,\n { channel, queryCreator }: { channel: SendbirdGroupChannel; queryCreator: SearchQueryOptions['queryCreator'] },\n) => {\n const [query, setQuery] = useState<SendbirdMessageSearchQuery>();\n const [keyword, setKeyword] = useState('');\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<unknown>(null);\n const [searchResults, setSearchResults] = useState<SendbirdBaseMessage[]>([]);\n const queryInProgress = useRef(false);\n\n const search = useFreshCallback(async () => {\n if (keyword.length <= 0) return;\n if (queryInProgress.current) return;\n\n const query = getMessageSearchQuery(sdk, {\n keyword,\n channelUrl: channel.url,\n messageTimestampFrom: Math.max(channel.joinedAt, channel.invitedAt),\n order: MessageSearchOrder.TIMESTAMP,\n queryCreator,\n });\n\n setQuery(query);\n setLoading(true);\n setError(null);\n\n try {\n queryInProgress.current = true;\n const result = await query.next();\n setSearchResults(result);\n } catch (err) {\n Logger.warn('[MessageSearchFragment] search failure', err);\n setError(err);\n } finally {\n queryInProgress.current = false;\n setLoading(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (!query?.hasNext) return;\n if (queryInProgress.current) return;\n\n try {\n queryInProgress.current = true;\n const result = await query.next();\n setSearchResults((prev) => [...prev, ...result]);\n } catch (err) {\n Logger.warn('[MessageSearchFragment] next failure', err);\n setError(err);\n } finally {\n queryInProgress.current = false;\n }\n });\n\n return {\n keyword,\n setKeyword,\n\n query,\n loading,\n error,\n searchResults,\n\n search,\n next,\n };\n};\n\nexport default createMessageSearchFragment;\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
1
  import React, { useMemo, useState } from 'react';
3
2
  import { SendbirdError } from '@sendbird/chat';
4
3
  import { useOpenChannelMessages } from '@sendbird/uikit-chat-hooks';
@@ -9,7 +8,7 @@ import ScrollToBottomButton from '../components/ScrollToBottomButton';
9
8
  import StatusComposition from '../components/StatusComposition';
10
9
  import { UNKNOWN_USER_ID } from '../constants';
11
10
  import { createOpenChannelModule } from '../domain/openChannel';
12
- import { useLocalization, useSendbirdChat, useUserProfile } from '../hooks/useContext';
11
+ import { useLocalization, useSendbirdChat } from '../hooks/useContext';
13
12
  import pubsub from '../utils/pubsub';
14
13
  const createOpenChannelFragment = initModule => {
15
14
  const OpenChannelModule = createOpenChannelModule(initModule);
@@ -44,9 +43,6 @@ const createOpenChannelFragment = initModule => {
44
43
  const {
45
44
  show: showToast
46
45
  } = useToast();
47
- const {
48
- show: showUserProfile
49
- } = useUserProfile();
50
46
  const [openChannelPubSub] = useState(() => pubsub());
51
47
  const {
52
48
  messages,
@@ -90,9 +86,7 @@ const createOpenChannelFragment = initModule => {
90
86
  const isOperator = channel.isOperator((currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ?? UNKNOWN_USER_ID);
91
87
  const _renderMessage = useFreshCallback(props => {
92
88
  if (renderMessage) return renderMessage(props);
93
- return /*#__PURE__*/React.createElement(OpenChannelMessageRenderer, _extends({}, props, {
94
- onPressAvatar: showUserProfile
95
- }));
89
+ return /*#__PURE__*/React.createElement(OpenChannelMessageRenderer, props);
96
90
  });
97
91
  const memoizedFlatListProps = useMemo(() => ({
98
92
  ListEmptyComponent: /*#__PURE__*/React.createElement(OpenChannelModule.StatusEmpty, null),
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useState","SendbirdError","useOpenChannelMessages","useToast","NOOP","PASS","SBErrorCode","messageComparator","useFreshCallback","OpenChannelMessageRenderer","ScrollToBottomButton","StatusComposition","UNKNOWN_USER_ID","createOpenChannelModule","useLocalization","useSendbirdChat","useUserProfile","pubsub","createOpenChannelFragment","initModule","OpenChannelModule","_ref","channel","onChannelDeleted","onPressHeaderLeft","onPressHeaderRightWithSettings","onPressHeaderRightWithParticipants","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","onPressMediaMessage","renderMessage","renderNewMessagesButton","renderScrollToBottomButton","props","createElement","enableMessageGrouping","keyboardAvoidOffset","flatListProps","queryCreator","sortComparator","sdk","currentUser","STRINGS","show","showToast","showUserProfile","openChannelPubSub","messages","newMessages","next","prev","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","userId","onError","error","code","RESOURCE_NOT_FOUND","CHANNEL_NOT_FOUND","BANNED_USER_SEND_MESSAGE_NOT_ALLOWED","TOAST","GET_CHANNEL_ERROR","UNKNOWN_ERROR","onMessagesReceived","publish","type","data","isOperator","_renderMessage","_extends","onPressAvatar","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onPending","message","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","Provider","Header","rightIconName","onPressHeaderRight","LoadingComponent","StatusLoading","MessageList","currentUserId","onTopReached","onBottomReached","scrolledAwayFromBottom","onScrolledAwayFromBottom","onResendFailedMessage","onDeleteMessage","Input","shouldRenderInput"],"sources":["createOpenChannelFragment.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\n\nimport { SendbirdError } from '@sendbird/chat';\nimport { useOpenChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n PASS,\n SBErrorCode,\n SendbirdFileMessage,\n SendbirdUserMessage,\n messageComparator,\n useFreshCallback,\n} from '@sendbird/uikit-utils';\n\nimport OpenChannelMessageRenderer from '../components/OpenChannelMessageRenderer';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport { UNKNOWN_USER_ID } from '../constants';\nimport { createOpenChannelModule } from '../domain/openChannel';\nimport type {\n OpenChannelFragment,\n OpenChannelModule,\n OpenChannelProps,\n OpenChannelPubSubContextPayload,\n} from '../domain/openChannel/types';\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): OpenChannelFragment => {\n const OpenChannelModule = createOpenChannelModule(initModule);\n\n return ({\n channel,\n onChannelDeleted = NOOP,\n onPressHeaderLeft = NOOP,\n onPressHeaderRightWithSettings = NOOP,\n onPressHeaderRightWithParticipants = NOOP,\n\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n onPressMediaMessage = NOOP,\n\n renderMessage,\n renderNewMessagesButton = () => null,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n\n enableMessageGrouping = true,\n keyboardAvoidOffset,\n flatListProps,\n queryCreator,\n sortComparator = messageComparator,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const { STRINGS } = useLocalization();\n const { show: showToast } = useToast();\n const { show: showUserProfile } = useUserProfile();\n\n const [openChannelPubSub] = useState(() => pubsub<OpenChannelPubSubContextPayload>());\n\n const {\n messages,\n newMessages,\n next,\n prev,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useOpenChannelMessages(sdk, channel, currentUser?.userId, {\n queryCreator,\n sortComparator,\n onChannelDeleted,\n onError(error) {\n if (error instanceof SendbirdError) {\n switch (error.code) {\n case SBErrorCode.RESOURCE_NOT_FOUND:\n case SBErrorCode.CHANNEL_NOT_FOUND:\n case SBErrorCode.BANNED_USER_SEND_MESSAGE_NOT_ALLOWED: {\n return showToast(STRINGS.TOAST.GET_CHANNEL_ERROR, 'error');\n }\n }\n }\n\n showToast(STRINGS.TOAST.UNKNOWN_ERROR, 'error');\n },\n onMessagesReceived(messages) {\n openChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n });\n\n const isOperator = channel.isOperator(currentUser?.userId ?? UNKNOWN_USER_ID);\n\n const _renderMessage: OpenChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <OpenChannelMessageRenderer {...props} onPressAvatar={showUserProfile} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <OpenChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n openChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n openChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: OpenChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: OpenChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressUpdateUserMessage: OpenChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: OpenChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <OpenChannelModule.Provider\n openChannelPubSub={openChannelPubSub}\n channel={channel}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <OpenChannelModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n rightIconName={isOperator ? 'info' : 'members'}\n onPressHeaderRight={isOperator ? onPressHeaderRightWithSettings : onPressHeaderRightWithParticipants}\n />\n <StatusComposition loading={loading} LoadingComponent={<OpenChannelModule.StatusLoading />}>\n <OpenChannelModule.MessageList\n channel={channel}\n hasNext={hasNext}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={_renderMessage}\n messages={messages}\n newMessages={newMessages}\n onTopReached={prev}\n onBottomReached={next}\n scrolledAwayFromBottom={false}\n onScrolledAwayFromBottom={NOOP}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <OpenChannelModule.Input\n shouldRenderInput\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </OpenChannelModule.Provider>\n );\n };\n};\n\nexport default createOpenChannelFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useMemo","useState","SendbirdError","useOpenChannelMessages","useToast","NOOP","PASS","SBErrorCode","messageComparator","useFreshCallback","OpenChannelMessageRenderer","ScrollToBottomButton","StatusComposition","UNKNOWN_USER_ID","createOpenChannelModule","useLocalization","useSendbirdChat","pubsub","createOpenChannelFragment","initModule","OpenChannelModule","_ref","channel","onChannelDeleted","onPressHeaderLeft","onPressHeaderRightWithSettings","onPressHeaderRightWithParticipants","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","onPressMediaMessage","renderMessage","renderNewMessagesButton","renderScrollToBottomButton","props","createElement","enableMessageGrouping","keyboardAvoidOffset","flatListProps","queryCreator","sortComparator","sdk","currentUser","STRINGS","show","showToast","openChannelPubSub","messages","newMessages","next","prev","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","userId","onError","error","code","RESOURCE_NOT_FOUND","CHANNEL_NOT_FOUND","BANNED_USER_SEND_MESSAGE_NOT_ALLOWED","TOAST","GET_CHANNEL_ERROR","UNKNOWN_ERROR","onMessagesReceived","publish","type","data","isOperator","_renderMessage","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onPending","message","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","Provider","Header","rightIconName","onPressHeaderRight","LoadingComponent","StatusLoading","MessageList","currentUserId","onTopReached","onBottomReached","scrolledAwayFromBottom","onScrolledAwayFromBottom","onResendFailedMessage","onDeleteMessage","Input","shouldRenderInput"],"sources":["createOpenChannelFragment.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\n\nimport { SendbirdError } from '@sendbird/chat';\nimport { useOpenChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n PASS,\n SBErrorCode,\n SendbirdFileMessage,\n SendbirdUserMessage,\n messageComparator,\n useFreshCallback,\n} from '@sendbird/uikit-utils';\n\nimport OpenChannelMessageRenderer from '../components/OpenChannelMessageRenderer';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport { UNKNOWN_USER_ID } from '../constants';\nimport { createOpenChannelModule } from '../domain/openChannel';\nimport type {\n OpenChannelFragment,\n OpenChannelModule,\n OpenChannelProps,\n OpenChannelPubSubContextPayload,\n} from '../domain/openChannel/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): OpenChannelFragment => {\n const OpenChannelModule = createOpenChannelModule(initModule);\n\n return ({\n channel,\n onChannelDeleted = NOOP,\n onPressHeaderLeft = NOOP,\n onPressHeaderRightWithSettings = NOOP,\n onPressHeaderRightWithParticipants = NOOP,\n\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n onPressMediaMessage = NOOP,\n\n renderMessage,\n renderNewMessagesButton = () => null,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n\n enableMessageGrouping = true,\n keyboardAvoidOffset,\n flatListProps,\n queryCreator,\n sortComparator = messageComparator,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const { STRINGS } = useLocalization();\n const { show: showToast } = useToast();\n\n const [openChannelPubSub] = useState(() => pubsub<OpenChannelPubSubContextPayload>());\n\n const {\n messages,\n newMessages,\n next,\n prev,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useOpenChannelMessages(sdk, channel, currentUser?.userId, {\n queryCreator,\n sortComparator,\n onChannelDeleted,\n onError(error) {\n if (error instanceof SendbirdError) {\n switch (error.code) {\n case SBErrorCode.RESOURCE_NOT_FOUND:\n case SBErrorCode.CHANNEL_NOT_FOUND:\n case SBErrorCode.BANNED_USER_SEND_MESSAGE_NOT_ALLOWED: {\n return showToast(STRINGS.TOAST.GET_CHANNEL_ERROR, 'error');\n }\n }\n }\n\n showToast(STRINGS.TOAST.UNKNOWN_ERROR, 'error');\n },\n onMessagesReceived(messages) {\n openChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n });\n\n const isOperator = channel.isOperator(currentUser?.userId ?? UNKNOWN_USER_ID);\n\n const _renderMessage: OpenChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <OpenChannelMessageRenderer {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <OpenChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n openChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n openChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: OpenChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: OpenChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressUpdateUserMessage: OpenChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: OpenChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <OpenChannelModule.Provider\n openChannelPubSub={openChannelPubSub}\n channel={channel}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <OpenChannelModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n rightIconName={isOperator ? 'info' : 'members'}\n onPressHeaderRight={isOperator ? onPressHeaderRightWithSettings : onPressHeaderRightWithParticipants}\n />\n <StatusComposition loading={loading} LoadingComponent={<OpenChannelModule.StatusLoading />}>\n <OpenChannelModule.MessageList\n channel={channel}\n hasNext={hasNext}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={_renderMessage}\n messages={messages}\n newMessages={newMessages}\n onTopReached={prev}\n onBottomReached={next}\n scrolledAwayFromBottom={false}\n onScrolledAwayFromBottom={NOOP}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <OpenChannelModule.Input\n shouldRenderInput\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </OpenChannelModule.Provider>\n );\n };\n};\n\nexport default createOpenChannelFragment;\n"],"mappings":"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"}
@@ -36,7 +36,7 @@ const createOpenChannelListFragment = initModule => {
36
36
  if (renderOpenChannelPreview) return renderOpenChannelPreview(props);
37
37
  return /*#__PURE__*/React.createElement(PressBox, {
38
38
  activeOpacity: 0.8,
39
- onPress: () => onPressChannel(props.channel)
39
+ onPress: props.onPress
40
40
  }, /*#__PURE__*/React.createElement(OpenChannelPreview, {
41
41
  coverUrl: props.channel.coverUrl,
42
42
  title: STRINGS.OPEN_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(props.channel),
@@ -54,6 +54,7 @@ const createOpenChannelListFragment = initModule => {
54
54
  onPressRetry: refresh
55
55
  })
56
56
  }, /*#__PURE__*/React.createElement(OpenChannelListModule.List, {
57
+ onPressChannel: onPressChannel,
57
58
  renderOpenChannelPreview: _renderOpenChannelPreview,
58
59
  openChannels: openChannels,
59
60
  onLoadNext: next,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useOpenChannelList","OpenChannelPreview","PressBox","NOOP","StatusComposition","createOpenChannelListModule","useLocalization","useSendbirdChat","createOpenChannelListFragment","initModule","OpenChannelListModule","_ref","onPressCreateChannel","onPressChannel","flatListProps","renderOpenChannelPreview","queryCreator","sdk","currentUser","STRINGS","openChannels","next","refresh","refreshing","loading","error","userId","_renderOpenChannelPreview","props","createElement","activeOpacity","onPress","channel","coverUrl","title","OPEN_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","frozen","isFrozen","participantsCount","participantCount","Provider","Header","onPressHeaderRight","LoadingComponent","StatusLoading","Boolean","ErrorComponent","StatusError","onPressRetry","List","onLoadNext","onRefresh","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow"],"sources":["createOpenChannelListFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useOpenChannelList } from '@sendbird/uikit-chat-hooks';\nimport { OpenChannelPreview, PressBox } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport { createOpenChannelListModule } from '../domain/openChannelList';\nimport type {\n OpenChannelListFragment,\n OpenChannelListModule,\n OpenChannelListProps,\n} from '../domain/openChannelList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createOpenChannelListFragment = (initModule?: Partial<OpenChannelListModule>): OpenChannelListFragment => {\n const OpenChannelListModule = createOpenChannelListModule(initModule);\n\n return ({ onPressCreateChannel, onPressChannel = NOOP, flatListProps, renderOpenChannelPreview, queryCreator }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { openChannels, next, refresh, refreshing, loading, error } = useOpenChannelList(sdk, currentUser?.userId, {\n queryCreator,\n });\n\n const _renderOpenChannelPreview: OpenChannelListProps['List']['renderOpenChannelPreview'] = (props) => {\n if (renderOpenChannelPreview) return renderOpenChannelPreview(props);\n return (\n <PressBox activeOpacity={0.8} onPress={() => onPressChannel(props.channel)}>\n <OpenChannelPreview\n coverUrl={props.channel.coverUrl}\n title={STRINGS.OPEN_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(props.channel)}\n frozen={props.channel.isFrozen}\n participantsCount={props.channel.participantCount}\n />\n </PressBox>\n );\n };\n\n return (\n <OpenChannelListModule.Provider>\n <OpenChannelListModule.Header onPressHeaderRight={onPressCreateChannel} />\n <StatusComposition\n loading={loading}\n LoadingComponent={<OpenChannelListModule.StatusLoading />}\n error={Boolean(error)}\n ErrorComponent={<OpenChannelListModule.StatusError onPressRetry={refresh} />}\n >\n <OpenChannelListModule.List\n renderOpenChannelPreview={_renderOpenChannelPreview}\n openChannels={openChannels}\n onLoadNext={next}\n refreshing={refreshing}\n onRefresh={refresh}\n flatListProps={{\n ListEmptyComponent: <OpenChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n </OpenChannelListModule.Provider>\n );\n };\n};\n\nexport default createOpenChannelListFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,kBAAkB,EAAEC,QAAQ,QAAQ,yCAAyC;AACtF,SAASC,IAAI,QAAQ,uBAAuB;AAE5C,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,SAASC,2BAA2B,QAAQ,2BAA2B;AAMvE,SAASC,eAAe,EAAEC,eAAe,QAAQ,qBAAqB;AAEtE,MAAMC,6BAA6B,GAAIC,UAA2C,IAA8B;EAC9G,MAAMC,qBAAqB,GAAGL,2BAA2B,CAACI,UAAU,CAAC;EAErE,OAAOE,IAAA,IAA4G;IAAA,IAA3G;MAAEC,oBAAoB;MAAEC,cAAc,GAAGV,IAAI;MAAEW,aAAa;MAAEC,wBAAwB;MAAEC;IAAa,CAAC,GAAAL,IAAA;IAC5G,MAAM;MAAEM,GAAG;MAAEC;IAAY,CAAC,GAAGX,eAAe,EAAE;IAC9C,MAAM;MAAEY;IAAQ,CAAC,GAAGb,eAAe,EAAE;IACrC,MAAM;MAAEc,YAAY;MAAEC,IAAI;MAAEC,OAAO;MAAEC,UAAU;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAGzB,kBAAkB,CAACiB,GAAG,EAAEC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEQ,MAAM,EAAE;MAC/GV;IACF,CAAC,CAAC;IAEF,MAAMW,yBAAmF,GAAIC,KAAK,IAAK;MACrG,IAAIb,wBAAwB,EAAE,OAAOA,wBAAwB,CAACa,KAAK,CAAC;MACpE,oBACE7B,KAAA,CAAA8B,aAAA,CAAC3B,QAAQ;QAAC4B,aAAa,EAAE,GAAI;QAACC,OAAO,EAAEA,CAAA,KAAMlB,cAAc,CAACe,KAAK,CAACI,OAAO;MAAE,gBACzEjC,KAAA,CAAA8B,aAAA,CAAC5B,kBAAkB;QACjBgC,QAAQ,EAAEL,KAAK,CAACI,OAAO,CAACC,QAAS;QACjCC,KAAK,EAAEf,OAAO,CAACgB,iBAAiB,CAACC,qBAAqB,CAACR,KAAK,CAACI,OAAO,CAAE;QACtEK,MAAM,EAAET,KAAK,CAACI,OAAO,CAACM,QAAS;QAC/BC,iBAAiB,EAAEX,KAAK,CAACI,OAAO,CAACQ;MAAiB,EAClD,CACO;IAEf,CAAC;IAED,oBACEzC,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAAC+B,QAAQ,qBAC7B1C,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACgC,MAAM;MAACC,kBAAkB,EAAE/B;IAAqB,EAAG,eAC1Eb,KAAA,CAAA8B,aAAA,CAACzB,iBAAiB;MAChBoB,OAAO,EAAEA,OAAQ;MACjBoB,gBAAgB,eAAE7C,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACmC,aAAa,OAAI;MAC1DpB,KAAK,EAAEqB,OAAO,CAACrB,KAAK,CAAE;MACtBsB,cAAc,eAAEhD,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACsC,WAAW;QAACC,YAAY,EAAE3B;MAAQ;IAAI,gBAE7EvB,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACwC,IAAI;MACzBnC,wBAAwB,EAAEY,yBAA0B;MACpDP,YAAY,EAAEA,YAAa;MAC3B+B,UAAU,EAAE9B,IAAK;MACjBE,UAAU,EAAEA,UAAW;MACvB6B,SAAS,EAAE9B,OAAQ;MACnBR,aAAa,EAAE;QACbuC,kBAAkB,eAAEtD,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAAC4C,WAAW,OAAG;QACzDC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAE,CAAC;QACtC,GAAG1C;MACL;IAAE,EACF,CACgB,CACW;EAErC,CAAC;AACH,CAAC;AAED,eAAeN,6BAA6B"}
1
+ {"version":3,"names":["React","useOpenChannelList","OpenChannelPreview","PressBox","NOOP","StatusComposition","createOpenChannelListModule","useLocalization","useSendbirdChat","createOpenChannelListFragment","initModule","OpenChannelListModule","_ref","onPressCreateChannel","onPressChannel","flatListProps","renderOpenChannelPreview","queryCreator","sdk","currentUser","STRINGS","openChannels","next","refresh","refreshing","loading","error","userId","_renderOpenChannelPreview","props","createElement","activeOpacity","onPress","coverUrl","channel","title","OPEN_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","frozen","isFrozen","participantsCount","participantCount","Provider","Header","onPressHeaderRight","LoadingComponent","StatusLoading","Boolean","ErrorComponent","StatusError","onPressRetry","List","onLoadNext","onRefresh","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow"],"sources":["createOpenChannelListFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useOpenChannelList } from '@sendbird/uikit-chat-hooks';\nimport { OpenChannelPreview, PressBox } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport { createOpenChannelListModule } from '../domain/openChannelList';\nimport type {\n OpenChannelListFragment,\n OpenChannelListModule,\n OpenChannelListProps,\n} from '../domain/openChannelList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createOpenChannelListFragment = (initModule?: Partial<OpenChannelListModule>): OpenChannelListFragment => {\n const OpenChannelListModule = createOpenChannelListModule(initModule);\n\n return ({ onPressCreateChannel, onPressChannel = NOOP, flatListProps, renderOpenChannelPreview, queryCreator }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { openChannels, next, refresh, refreshing, loading, error } = useOpenChannelList(sdk, currentUser?.userId, {\n queryCreator,\n });\n\n const _renderOpenChannelPreview: OpenChannelListProps['List']['renderOpenChannelPreview'] = (props) => {\n if (renderOpenChannelPreview) return renderOpenChannelPreview(props);\n return (\n <PressBox activeOpacity={0.8} onPress={props.onPress}>\n <OpenChannelPreview\n coverUrl={props.channel.coverUrl}\n title={STRINGS.OPEN_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(props.channel)}\n frozen={props.channel.isFrozen}\n participantsCount={props.channel.participantCount}\n />\n </PressBox>\n );\n };\n\n return (\n <OpenChannelListModule.Provider>\n <OpenChannelListModule.Header onPressHeaderRight={onPressCreateChannel} />\n <StatusComposition\n loading={loading}\n LoadingComponent={<OpenChannelListModule.StatusLoading />}\n error={Boolean(error)}\n ErrorComponent={<OpenChannelListModule.StatusError onPressRetry={refresh} />}\n >\n <OpenChannelListModule.List\n onPressChannel={onPressChannel}\n renderOpenChannelPreview={_renderOpenChannelPreview}\n openChannels={openChannels}\n onLoadNext={next}\n refreshing={refreshing}\n onRefresh={refresh}\n flatListProps={{\n ListEmptyComponent: <OpenChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n </OpenChannelListModule.Provider>\n );\n };\n};\n\nexport default createOpenChannelListFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,kBAAkB,EAAEC,QAAQ,QAAQ,yCAAyC;AACtF,SAASC,IAAI,QAAQ,uBAAuB;AAE5C,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,SAASC,2BAA2B,QAAQ,2BAA2B;AAMvE,SAASC,eAAe,EAAEC,eAAe,QAAQ,qBAAqB;AAEtE,MAAMC,6BAA6B,GAAIC,UAA2C,IAA8B;EAC9G,MAAMC,qBAAqB,GAAGL,2BAA2B,CAACI,UAAU,CAAC;EAErE,OAAOE,IAAA,IAA4G;IAAA,IAA3G;MAAEC,oBAAoB;MAAEC,cAAc,GAAGV,IAAI;MAAEW,aAAa;MAAEC,wBAAwB;MAAEC;IAAa,CAAC,GAAAL,IAAA;IAC5G,MAAM;MAAEM,GAAG;MAAEC;IAAY,CAAC,GAAGX,eAAe,EAAE;IAC9C,MAAM;MAAEY;IAAQ,CAAC,GAAGb,eAAe,EAAE;IACrC,MAAM;MAAEc,YAAY;MAAEC,IAAI;MAAEC,OAAO;MAAEC,UAAU;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAGzB,kBAAkB,CAACiB,GAAG,EAAEC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEQ,MAAM,EAAE;MAC/GV;IACF,CAAC,CAAC;IAEF,MAAMW,yBAAmF,GAAIC,KAAK,IAAK;MACrG,IAAIb,wBAAwB,EAAE,OAAOA,wBAAwB,CAACa,KAAK,CAAC;MACpE,oBACE7B,KAAA,CAAA8B,aAAA,CAAC3B,QAAQ;QAAC4B,aAAa,EAAE,GAAI;QAACC,OAAO,EAAEH,KAAK,CAACG;MAAQ,gBACnDhC,KAAA,CAAA8B,aAAA,CAAC5B,kBAAkB;QACjB+B,QAAQ,EAAEJ,KAAK,CAACK,OAAO,CAACD,QAAS;QACjCE,KAAK,EAAEf,OAAO,CAACgB,iBAAiB,CAACC,qBAAqB,CAACR,KAAK,CAACK,OAAO,CAAE;QACtEI,MAAM,EAAET,KAAK,CAACK,OAAO,CAACK,QAAS;QAC/BC,iBAAiB,EAAEX,KAAK,CAACK,OAAO,CAACO;MAAiB,EAClD,CACO;IAEf,CAAC;IAED,oBACEzC,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAAC+B,QAAQ,qBAC7B1C,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACgC,MAAM;MAACC,kBAAkB,EAAE/B;IAAqB,EAAG,eAC1Eb,KAAA,CAAA8B,aAAA,CAACzB,iBAAiB;MAChBoB,OAAO,EAAEA,OAAQ;MACjBoB,gBAAgB,eAAE7C,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACmC,aAAa,OAAI;MAC1DpB,KAAK,EAAEqB,OAAO,CAACrB,KAAK,CAAE;MACtBsB,cAAc,eAAEhD,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACsC,WAAW;QAACC,YAAY,EAAE3B;MAAQ;IAAI,gBAE7EvB,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAACwC,IAAI;MACzBrC,cAAc,EAAEA,cAAe;MAC/BE,wBAAwB,EAAEY,yBAA0B;MACpDP,YAAY,EAAEA,YAAa;MAC3B+B,UAAU,EAAE9B,IAAK;MACjBE,UAAU,EAAEA,UAAW;MACvB6B,SAAS,EAAE9B,OAAQ;MACnBR,aAAa,EAAE;QACbuC,kBAAkB,eAAEtD,KAAA,CAAA8B,aAAA,CAACnB,qBAAqB,CAAC4C,WAAW,OAAG;QACzDC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAE,CAAC;QACtC,GAAG1C;MACL;IAAE,EACF,CACgB,CACW;EAErC,CAAC;AACH,CAAC;AAED,eAAeN,6BAA6B"}
@@ -1,4 +1,5 @@
1
1
  import { useCallback } from 'react';
2
+ import { useUIKitConfig } from '@sendbird/uikit-tools';
2
3
  import { Logger } from '@sendbird/uikit-utils';
3
4
  import { useSendbirdChat } from './useContext';
4
5
  import usePushTokenRegistration from './usePushTokenRegistration';
@@ -16,11 +17,14 @@ async function initEmoji(sdk, emojiManager) {
16
17
  }
17
18
  }
18
19
  const useConnection = () => {
20
+ const {
21
+ initDashboardConfigs
22
+ } = useUIKitConfig();
19
23
  const {
20
24
  sdk,
21
25
  emojiManager,
22
26
  setCurrentUser,
23
- features
27
+ sbOptions
24
28
  } = useSendbirdChat();
25
29
  const {
26
30
  registerPushTokenForCurrentUser,
@@ -35,18 +39,18 @@ const useConnection = () => {
35
39
  await sdk.updateCurrentUserInfo({
36
40
  nickname: opts.nickname
37
41
  }).then(updatedUser => user = updatedUser).catch(e => Logger.warn('[useConnection]', 'nickname-sync failure', e));
38
- } else if (features.useUserIdForNicknameEnabled) {
42
+ } else if (sbOptions.chat.useUserIdForNicknameEnabled) {
39
43
  await sdk.updateCurrentUserInfo({
40
44
  nickname: userId
41
45
  }).then(updatedUser => user = updatedUser);
42
46
  }
43
- if (features.autoPushTokenRegistrationEnabled) {
47
+ if (sbOptions.chat.autoPushTokenRegistrationEnabled) {
44
48
  Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');
45
49
  await registerPushTokenForCurrentUser().catch(e => {
46
50
  Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);
47
51
  });
48
52
  }
49
- await initEmoji(sdk, emojiManager);
53
+ await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);
50
54
  Logger.debug('[useConnection]', 'connected! (online)');
51
55
  setCurrentUser(user);
52
56
  return user;
@@ -67,10 +71,10 @@ const useConnection = () => {
67
71
  Logger.warn('[useConnection]', 'connect failure', error.message, error.code);
68
72
  throw error;
69
73
  }
70
- }, [sdk, registerPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);
74
+ }, [sdk, registerPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);
71
75
  const disconnect = useCallback(async () => {
72
76
  Logger.debug('[useConnection]', 'disconnect start');
73
- if (features.autoPushTokenRegistrationEnabled) {
77
+ if (sbOptions.chat.autoPushTokenRegistrationEnabled) {
74
78
  Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');
75
79
  await unregisterPushTokenForCurrentUser().catch(e => {
76
80
  Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);
@@ -78,7 +82,7 @@ const useConnection = () => {
78
82
  }
79
83
  await sdk.disconnect().then(() => setCurrentUser(undefined));
80
84
  Logger.debug('[useConnection]', 'disconnected!');
81
- }, [sdk, unregisterPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);
85
+ }, [sdk, unregisterPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);
82
86
  return {
83
87
  connect,
84
88
  disconnect,