@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
@@ -21,17 +21,27 @@ const GroupChannelSettingsMenu = ({
21
21
  onPressMenuNotification,
22
22
  menuItemsCreator = (menu) => menu,
23
23
  }: GroupChannelSettingsProps['Menu']) => {
24
- const { sdk, features } = useSendbirdChat();
24
+ const { sdk, sbOptions } = useSendbirdChat();
25
25
  const { channel } = useContext(GroupChannelSettingsContexts.Fragment);
26
26
  const { STRINGS } = useLocalization();
27
27
  const { colors } = useUIKitTheme();
28
28
 
29
- if (__DEV__ && !WARN_onPressMenuNotification && !onPressMenuNotification && features.userMentionEnabled) {
29
+ if (
30
+ __DEV__ &&
31
+ !WARN_onPressMenuNotification &&
32
+ !onPressMenuNotification &&
33
+ sbOptions.uikit.groupChannel.channel.enableMention
34
+ ) {
30
35
  Logger.warn('If you are using mention, make sure to pass the `onPressMenuNotification` prop');
31
36
  WARN_onPressMenuNotification = true;
32
37
  }
33
38
 
34
- if (__DEV__ && !WARN_onPressMenuSearchInChannel && !onPressMenuSearchInChannel && features.messageSearchEnabled) {
39
+ if (
40
+ __DEV__ &&
41
+ !WARN_onPressMenuSearchInChannel &&
42
+ !onPressMenuSearchInChannel &&
43
+ sbOptions.uikitWithAppInfo.groupChannel.setting.enableMessageSearch
44
+ ) {
35
45
  Logger.warn('If you are using message search, make sure to pass the `onPressMenuSearchInChannel` prop');
36
46
  WARN_onPressMenuSearchInChannel = true;
37
47
  }
@@ -60,20 +70,20 @@ const GroupChannelSettingsMenu = ({
60
70
  return {
61
71
  actionLabelNotificationMenu: getNotificationsLabel(),
62
72
  actionItemNotificationMenu: conditionChaining(
63
- [features.userMentionEnabled],
73
+ [sbOptions.uikit.groupChannel.channel.enableMention],
64
74
  [
65
75
  <Icon icon={'chevron-right'} color={colors.onBackground01} />,
66
76
  <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,
67
77
  ],
68
78
  ),
69
79
  onPressNotificationMenu: () => {
70
- if (features.userMentionEnabled) onPressMenuNotification?.();
80
+ if (sbOptions.uikit.groupChannel.channel.enableMention) onPressMenuNotification?.();
71
81
  else toggleNotification();
72
82
  },
73
83
  };
74
84
  });
75
85
 
76
- const menuItems: MenuBarProps[] = menuItemsCreator([
86
+ const defaultMenuItems: MenuBarProps[] = [
77
87
  {
78
88
  icon: 'moderation',
79
89
  visible: channel.myRole === 'operator',
@@ -95,17 +105,17 @@ const GroupChannelSettingsMenu = ({
95
105
  actionLabel: String(channel.memberCount),
96
106
  actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,
97
107
  },
98
- ]);
108
+ ];
99
109
 
100
- if (features.messageSearchEnabled) {
101
- menuItems.push({
110
+ if (sbOptions.uikitWithAppInfo.groupChannel.setting.enableMessageSearch && !channel.isEphemeral) {
111
+ defaultMenuItems.push({
102
112
  icon: 'search',
103
113
  name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_SEARCH,
104
114
  onPress: () => onPressMenuSearchInChannel?.(),
105
115
  });
106
116
  }
107
117
 
108
- menuItems.push({
118
+ defaultMenuItems.push({
109
119
  icon: 'leave',
110
120
  iconColor: colors.error,
111
121
  name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_LEAVE_CHANNEL,
@@ -117,6 +127,8 @@ const GroupChannelSettingsMenu = ({
117
127
  },
118
128
  });
119
129
 
130
+ const menuItems = menuItemsCreator(defaultMenuItems);
131
+
120
132
  return (
121
133
  <View>
122
134
  {menuItems.map((menu) => {
@@ -68,11 +68,7 @@ const OpenChannelInput = (props: OpenChannelProps['Input']) => {
68
68
  inputFrozen={channel.isFrozen}
69
69
  inputDisabled={chatAvailableState.disabled}
70
70
  keyboardAvoidOffset={keyboardAvoidOffset}
71
- shouldRenderInput={props.shouldRenderInput}
72
- onPressSendUserMessage={props.onPressSendUserMessage}
73
- onPressSendFileMessage={props.onPressSendFileMessage}
74
- onPressUpdateUserMessage={props.onPressUpdateUserMessage}
75
- onPressUpdateFileMessage={props.onPressUpdateFileMessage}
71
+ {...props}
76
72
  />
77
73
  );
78
74
  };
@@ -69,7 +69,6 @@ export type OpenChannelProps = {
69
69
  | 'renderNewMessagesButton'
70
70
  | 'renderScrollToBottomButton'
71
71
  | 'flatListProps'
72
- | 'onPressImageMessage'
73
72
  | 'hasNext'
74
73
  >;
75
74
  Input: Pick<
@@ -79,6 +78,7 @@ export type OpenChannelProps = {
79
78
  | 'onPressSendFileMessage'
80
79
  | 'onPressUpdateUserMessage'
81
80
  | 'onPressUpdateFileMessage'
81
+ | 'AttachmentsButton'
82
82
  >;
83
83
 
84
84
  Provider: {
@@ -7,6 +7,7 @@ import { SendbirdOpenChannel, getChannelUniqId, useFreshCallback } from '@sendbi
7
7
  import type { OpenChannelListProps } from '../types';
8
8
 
9
9
  const OpenChanelListList = ({
10
+ onPressChannel,
10
11
  openChannels,
11
12
  onLoadNext,
12
13
  flatListProps,
@@ -15,7 +16,7 @@ const OpenChanelListList = ({
15
16
  onRefresh,
16
17
  }: OpenChannelListProps['List']) => {
17
18
  const renderItem: ListRenderItem<SendbirdOpenChannel> = useFreshCallback(({ item }) =>
18
- renderOpenChannelPreview?.({ channel: item }),
19
+ renderOpenChannelPreview?.({ channel: item, onPress: () => onPressChannel(item) }),
19
20
  );
20
21
 
21
22
  const { left, right } = useSafeAreaInsets();
@@ -8,32 +8,25 @@ import type { CommonComponent } from '../../types';
8
8
 
9
9
  export type OpenChannelListProps = {
10
10
  Fragment: {
11
- /** Handler for navigating to OpenChannelFragment **/
12
- onPressChannel: (channel: SendbirdOpenChannel) => void;
13
- /** Handler for navigating to OpenChannelCreateFragment **/
11
+ onPressChannel: OpenChannelListProps['List']['onPressChannel'];
14
12
  onPressCreateChannel: () => void;
15
- /** Method for rendering open channel preview **/
16
13
  renderOpenChannelPreview?: OpenChannelListProps['List']['renderOpenChannelPreview'];
17
- /** Method for creating a custom query of open channel list **/
18
14
  queryCreator?: UseOpenChannelListOptions['queryCreator'];
19
- /** Props for FlatList component, it passed to OpenChannelList.List **/
20
15
  flatListProps?: OpenChannelListProps['List']['flatListProps'];
21
16
  };
22
17
  Header: {
23
18
  onPressHeaderRight: () => void;
24
19
  };
25
20
  List: {
26
- /** OpenChannels from SendbirdChat SDK **/
21
+ onPressChannel: (channel: SendbirdOpenChannel) => void;
27
22
  openChannels: SendbirdOpenChannel[];
28
- /** Method for rendering a preview of each open channel **/
29
- renderOpenChannelPreview: (props: { channel: SendbirdOpenChannel }) => React.ReactElement | null;
30
- /** Handler for loading the next batch of open channels **/
23
+ renderOpenChannelPreview: (props: {
24
+ channel: SendbirdOpenChannel;
25
+ onPress: () => void;
26
+ }) => React.ReactElement | null;
31
27
  onLoadNext: () => Promise<void>;
32
- /** Props for the FlatList component, passed to the OpenChannelList.List **/
33
28
  flatListProps?: Omit<FlatListProps<SendbirdOpenChannel>, 'data' | 'renderItem'>;
34
- /** Props for the indicates if the FlatList is currently being refreshed **/
35
29
  refreshing: boolean;
36
- /** Handler for refreshing the list of open channels **/
37
30
  onRefresh: () => void;
38
31
  };
39
32
  StatusError: {
@@ -40,7 +40,7 @@ const createGroupChannelCreateFragment = <UserType extends UserStruct>(
40
40
 
41
41
  const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((user, selectedUsers, setSelectedUsers) => {
42
42
  if (queryCreator && !renderUser) {
43
- const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
43
+ const hasRequiredKey = 'profileUrl' in user && 'nickname' in user;
44
44
  if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
45
45
  }
46
46
 
@@ -1,6 +1,6 @@
1
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
- import { Animated, Easing } from 'react-native';
1
+ import React, { useCallback, useMemo, useState } from 'react';
3
2
 
3
+ import { ReplyType } from '@sendbird/chat/message';
4
4
  import { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';
5
5
  import {
6
6
  NOOP,
@@ -10,14 +10,14 @@ import {
10
10
  SendbirdUserMessage,
11
11
  messageComparator,
12
12
  useFreshCallback,
13
+ useIIFE,
13
14
  useRefTracker,
14
15
  } from '@sendbird/uikit-utils';
15
16
 
16
- import MessageRenderer from '../components/MessageRenderer';
17
+ import GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';
17
18
  import NewMessagesButton from '../components/NewMessagesButton';
18
19
  import ScrollToBottomButton from '../components/ScrollToBottomButton';
19
20
  import StatusComposition from '../components/StatusComposition';
20
- import { MESSAGE_FOCUS_ANIMATION_DELAY, MESSAGE_SEARCH_SAFE_SCROLL_DELAY } from '../constants';
21
21
  import createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';
22
22
  import type {
23
23
  GroupChannelFragment,
@@ -37,7 +37,7 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
37
37
  renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,
38
38
  renderMessage,
39
39
  enableMessageGrouping = true,
40
- enableTypingIndicator = true,
40
+ enableTypingIndicator,
41
41
  onPressHeaderLeft = NOOP,
42
42
  onPressHeaderRight = NOOP,
43
43
  onPressMediaMessage = NOOP,
@@ -48,13 +48,11 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
48
48
  onBeforeUpdateFileMessage = PASS,
49
49
  channel,
50
50
  keyboardAvoidOffset,
51
- queryCreator,
52
51
  collectionCreator,
53
52
  sortComparator = messageComparator,
54
53
  flatListProps,
55
- onPressImageMessage,
56
54
  }) => {
57
- const { sdk, currentUser } = useSendbirdChat();
55
+ const { sdk, currentUser, sbOptions } = useSendbirdChat();
58
56
 
59
57
  const [internalSearchItem, setInternalSearchItem] = useState(searchItem);
60
58
  const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);
@@ -63,6 +61,11 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
63
61
  const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);
64
62
  const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);
65
63
 
64
+ const replyType = useIIFE(() => {
65
+ if (sbOptions.uikit.groupChannel.channel.replyType === 'none') return ReplyType.NONE;
66
+ else return ReplyType.ONLY_REPLY_TO_CHANNEL;
67
+ });
68
+
66
69
  const {
67
70
  loading,
68
71
  messages,
@@ -79,25 +82,21 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
79
82
  deleteMessage,
80
83
  resetWithStartingPoint,
81
84
  } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {
82
- collectionCreator,
83
- queryCreator,
84
- sortComparator,
85
- onChannelDeleted,
86
- enableCollectionWithoutLocalCache: !queryCreator,
87
85
  shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,
88
86
  onMessagesReceived(messages) {
89
87
  groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });
90
88
  },
89
+ collectionCreator,
90
+ sortComparator,
91
+ onChannelDeleted,
92
+ replyType,
91
93
  startingPoint: internalSearchItem?.startingPoint,
94
+ enableCollectionWithoutLocalCache: true,
92
95
  });
93
96
 
94
- const MessageComponent: GroupChannelProps['MessageList']['renderMessage'] = useCallback(
95
- withFocusingAnimation(renderMessage ? (props) => <>{renderMessage(props)}</> : MessageRenderer),
96
- [renderMessage],
97
- );
98
-
99
- const _renderMessage: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {
100
- return <MessageComponent {...props} />;
97
+ const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {
98
+ if (renderMessage) return renderMessage(props);
99
+ return <GroupChannelMessageRenderer {...props} />;
101
100
  });
102
101
 
103
102
  const memoizedFlatListProps = useMemo(
@@ -153,50 +152,11 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
153
152
  setScrolledAwayFromBottom(value);
154
153
  });
155
154
 
156
- /** @deprecated **/
157
- const onSendFileMessage: GroupChannelProps['Input']['onSendFileMessage'] = useFreshCallback(async (file) => {
158
- const processedParams = await onBeforeSendFileMessage({ file });
159
- const message = await sendFileMessage(processedParams, onPending);
160
- onSent(message);
161
- });
162
- /** @deprecated **/
163
- const onSendUserMessage: GroupChannelProps['Input']['onSendUserMessage'] = useFreshCallback(
164
- async (text, mention) => {
165
- const processedParams = await onBeforeSendUserMessage({
166
- message: text,
167
- mentionedUserIds: mention?.userIds,
168
- mentionedMessageTemplate: mention?.messageTemplate,
169
- mentionType: mention?.type,
170
- });
171
- const message = await sendUserMessage(processedParams, onPending);
172
- onSent(message);
173
- },
174
- );
175
- /** @deprecated **/
176
- const onUpdateFileMessage: GroupChannelProps['Input']['onUpdateFileMessage'] = useFreshCallback(
177
- async (editedFile, message) => {
178
- const processedParams = await onBeforeSendFileMessage({ file: editedFile });
179
- await updateFileMessage(message.messageId, processedParams);
180
- },
181
- );
182
- /** @deprecated **/
183
- const onUpdateUserMessage: GroupChannelProps['Input']['onUpdateUserMessage'] = useFreshCallback(
184
- async (editedText, message, mention) => {
185
- const processedParams = await onBeforeSendUserMessage({
186
- message: editedText,
187
- mentionedUserIds: mention?.userIds,
188
- mentionedMessageTemplate: mention?.messageTemplate,
189
- mentionType: mention?.type,
190
- });
191
- await updateUserMessage(message.messageId, processedParams);
192
- },
193
- );
194
-
195
155
  return (
196
156
  <GroupChannelModule.Provider
197
157
  channel={channel}
198
158
  groupChannelPubSub={groupChannelPubSub}
199
- enableTypingIndicator={enableTypingIndicator}
159
+ enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}
200
160
  keyboardAvoidOffset={keyboardAvoidOffset}
201
161
  >
202
162
  <GroupChannelModule.Header
@@ -211,7 +171,7 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
211
171
  onResetMessageList={onResetMessageList}
212
172
  enableMessageGrouping={enableMessageGrouping}
213
173
  currentUserId={currentUser?.userId}
214
- renderMessage={_renderMessage}
174
+ renderMessage={renderItem}
215
175
  messages={messages}
216
176
  newMessages={newMessages}
217
177
  onTopReached={prev}
@@ -225,9 +185,6 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
225
185
  onDeleteMessage={deleteMessage}
226
186
  onPressMediaMessage={onPressMediaMessage}
227
187
  flatListProps={memoizedFlatListProps}
228
- nextMessages={newMessages}
229
- newMessagesFromMembers={newMessages}
230
- onPressImageMessage={onPressImageMessage}
231
188
  />
232
189
  <GroupChannelModule.Input
233
190
  SuggestedMentionList={GroupChannelModule.SuggestedMentionList}
@@ -236,10 +193,6 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
236
193
  onPressSendFileMessage={onPressSendFileMessage}
237
194
  onPressUpdateUserMessage={onPressUpdateUserMessage}
238
195
  onPressUpdateFileMessage={onPressUpdateFileMessage}
239
- onSendFileMessage={onSendFileMessage}
240
- onSendUserMessage={onSendUserMessage}
241
- onUpdateFileMessage={onUpdateFileMessage}
242
- onUpdateUserMessage={onUpdateUserMessage}
243
196
  />
244
197
  </StatusComposition>
245
198
  </GroupChannelModule.Provider>
@@ -255,33 +208,4 @@ function shouldRenderInput(channel: SendbirdGroupChannel) {
255
208
  return true;
256
209
  }
257
210
 
258
- function withFocusingAnimation<P extends unknown & { focused: boolean }>(Component: React.ComponentType<P>) {
259
- return React.memo<P>((props) => {
260
- const translateY = useRef(new Animated.Value(0)).current;
261
-
262
- useEffect(() => {
263
- if (props.focused) {
264
- setTimeout(() => {
265
- Animated.sequence(
266
- [
267
- { toValue: -10, duration: 500 },
268
- { toValue: 0, duration: 100 },
269
- { toValue: -10, duration: 200 },
270
- { toValue: 0, duration: 100 },
271
- ].map((value) =>
272
- Animated.timing(translateY, { ...value, useNativeDriver: true, easing: Easing.inOut(Easing.ease) }),
273
- ),
274
- ).start();
275
- }, MESSAGE_SEARCH_SAFE_SCROLL_DELAY + MESSAGE_FOCUS_ANIMATION_DELAY);
276
- }
277
- }, [props.focused]);
278
-
279
- return (
280
- <Animated.View style={{ transform: [{ translateY }] }}>
281
- <Component {...props} />
282
- </Animated.View>
283
- );
284
- });
285
- }
286
-
287
211
  export default createGroupChannelFragment;
@@ -29,7 +29,7 @@ const createGroupChannelInviteFragment = <UserType extends UserStruct>(
29
29
  const _renderUser: NonNullable<typeof renderUser> = useCallback(
30
30
  (user, selectedUsers, setSelectedUsers) => {
31
31
  if (queryCreator && !renderUser) {
32
- const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
32
+ const hasRequiredKey = 'profileUrl' in user && 'nickname' in user;
33
33
  if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
34
34
  }
35
35
 
@@ -18,46 +18,40 @@ const createGroupChannelListFragment = (initModule?: Partial<GroupChannelListMod
18
18
  return ({
19
19
  onPressChannel,
20
20
  onPressCreateChannel,
21
- queryCreator,
22
21
  collectionCreator,
23
22
  renderGroupChannelPreview,
24
23
  skipTypeSelection = false,
25
24
  flatListProps = {},
26
25
  menuItemCreator = PASS,
27
26
  }) => {
28
- const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();
27
+ const { sdk, currentUser, sbOptions, markAsDeliveredWithChannel } = useSendbirdChat();
29
28
  const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {
30
- queryCreator,
31
29
  collectionCreator,
32
- enableCollectionWithoutLocalCache: !queryCreator,
30
+ enableCollectionWithoutLocalCache: true,
33
31
  });
34
32
 
35
- if (features.deliveryReceiptEnabled) {
33
+ if (sbOptions.appInfo.deliveryReceiptEnabled) {
36
34
  useAppState('change', (status) => {
37
35
  if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);
38
36
  });
39
37
  }
40
38
 
41
39
  const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(
42
- (channel, onLongPressChannel) => {
43
- if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);
44
- return (
45
- <GroupChannelPreviewContainer
46
- channel={channel}
47
- onPress={() => onPressChannel(channel)}
48
- onLongPress={() => onLongPressChannel()}
49
- />
50
- );
40
+ (props) => {
41
+ if (renderGroupChannelPreview) return renderGroupChannelPreview(props);
42
+ return <GroupChannelPreviewContainer {...props} />;
51
43
  },
52
44
  );
53
45
 
54
- const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;
46
+ const isChannelTypeAvailable =
47
+ sbOptions.appInfo.broadcastChannelEnabled || sbOptions.appInfo.superGroupChannelEnabled;
55
48
 
56
49
  return (
57
50
  <GroupChannelListModule.Provider>
58
51
  <GroupChannelListModule.Header />
59
52
  <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>
60
53
  <GroupChannelListModule.List
54
+ onPressChannel={onPressChannel}
61
55
  menuItemCreator={menuItemCreator}
62
56
  renderGroupChannelPreview={_renderGroupChannelPreview}
63
57
  groupChannels={groupChannels}
@@ -12,7 +12,7 @@ import {
12
12
  useSafeAreaPadding,
13
13
  } from '@sendbird/uikit-utils';
14
14
 
15
- import { MessageSearchResultItem } from '../components/MessageSearchResultItem';
15
+ import MessageSearchResultItem from '../components/MessageSearchResultItem';
16
16
  import StatusComposition from '../components/StatusComposition';
17
17
  import { createMessageSearchModule } from '../domain/messageSearch';
18
18
  import type { MessageSearchFragment, MessageSearchModule, MessageSearchProps } from '../domain/messageSearch/types';
@@ -24,7 +24,7 @@ import type {
24
24
  OpenChannelProps,
25
25
  OpenChannelPubSubContextPayload,
26
26
  } from '../domain/openChannel/types';
27
- import { useLocalization, useSendbirdChat, useUserProfile } from '../hooks/useContext';
27
+ import { useLocalization, useSendbirdChat } from '../hooks/useContext';
28
28
  import pubsub from '../utils/pubsub';
29
29
 
30
30
  const createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): OpenChannelFragment => {
@@ -57,7 +57,6 @@ const createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): Ope
57
57
 
58
58
  const { STRINGS } = useLocalization();
59
59
  const { show: showToast } = useToast();
60
- const { show: showUserProfile } = useUserProfile();
61
60
 
62
61
  const [openChannelPubSub] = useState(() => pubsub<OpenChannelPubSubContextPayload>());
63
62
 
@@ -100,7 +99,7 @@ const createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): Ope
100
99
 
101
100
  const _renderMessage: OpenChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {
102
101
  if (renderMessage) return renderMessage(props);
103
- return <OpenChannelMessageRenderer {...props} onPressAvatar={showUserProfile} />;
102
+ return <OpenChannelMessageRenderer {...props} />;
104
103
  });
105
104
 
106
105
  const memoizedFlatListProps = useMemo(
@@ -26,7 +26,7 @@ const createOpenChannelListFragment = (initModule?: Partial<OpenChannelListModul
26
26
  const _renderOpenChannelPreview: OpenChannelListProps['List']['renderOpenChannelPreview'] = (props) => {
27
27
  if (renderOpenChannelPreview) return renderOpenChannelPreview(props);
28
28
  return (
29
- <PressBox activeOpacity={0.8} onPress={() => onPressChannel(props.channel)}>
29
+ <PressBox activeOpacity={0.8} onPress={props.onPress}>
30
30
  <OpenChannelPreview
31
31
  coverUrl={props.channel.coverUrl}
32
32
  title={STRINGS.OPEN_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(props.channel)}
@@ -47,6 +47,7 @@ const createOpenChannelListFragment = (initModule?: Partial<OpenChannelListModul
47
47
  ErrorComponent={<OpenChannelListModule.StatusError onPressRetry={refresh} />}
48
48
  >
49
49
  <OpenChannelListModule.List
50
+ onPressChannel={onPressChannel}
50
51
  renderOpenChannelPreview={_renderOpenChannelPreview}
51
52
  openChannels={openChannels}
52
53
  onLoadNext={next}
@@ -1,5 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
 
3
+ import { useUIKitConfig } from '@sendbird/uikit-tools';
3
4
  import { Logger, SendbirdChatSDK, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';
4
5
 
5
6
  import type EmojiManager from '../libs/EmojiManager';
@@ -24,7 +25,8 @@ async function initEmoji(sdk: SendbirdChatSDK, emojiManager: EmojiManager) {
24
25
  }
25
26
 
26
27
  const useConnection = () => {
27
- const { sdk, emojiManager, setCurrentUser, features } = useSendbirdChat();
28
+ const { initDashboardConfigs } = useUIKitConfig();
29
+ const { sdk, emojiManager, setCurrentUser, sbOptions } = useSendbirdChat();
28
30
  const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();
29
31
 
30
32
  const connect = useCallback(
@@ -39,18 +41,18 @@ const useConnection = () => {
39
41
  .updateCurrentUserInfo({ nickname: opts.nickname })
40
42
  .then((updatedUser) => (user = updatedUser))
41
43
  .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));
42
- } else if (features.useUserIdForNicknameEnabled) {
44
+ } else if (sbOptions.chat.useUserIdForNicknameEnabled) {
43
45
  await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));
44
46
  }
45
47
 
46
- if (features.autoPushTokenRegistrationEnabled) {
48
+ if (sbOptions.chat.autoPushTokenRegistrationEnabled) {
47
49
  Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');
48
50
  await registerPushTokenForCurrentUser().catch((e) => {
49
51
  Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);
50
52
  });
51
53
  }
52
54
 
53
- await initEmoji(sdk, emojiManager);
55
+ await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);
54
56
 
55
57
  Logger.debug('[useConnection]', 'connected! (online)');
56
58
  setCurrentUser(user);
@@ -77,13 +79,13 @@ const useConnection = () => {
77
79
  throw error;
78
80
  }
79
81
  },
80
- [sdk, registerPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled],
82
+ [sdk, registerPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled],
81
83
  );
82
84
 
83
85
  const disconnect = useCallback(async () => {
84
86
  Logger.debug('[useConnection]', 'disconnect start');
85
87
 
86
- if (features.autoPushTokenRegistrationEnabled) {
88
+ if (sbOptions.chat.autoPushTokenRegistrationEnabled) {
87
89
  Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');
88
90
  await unregisterPushTokenForCurrentUser().catch((e) => {
89
91
  Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);
@@ -92,7 +94,7 @@ const useConnection = () => {
92
94
 
93
95
  await sdk.disconnect().then(() => setCurrentUser(undefined));
94
96
  Logger.debug('[useConnection]', 'disconnected!');
95
- }, [sdk, unregisterPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);
97
+ }, [sdk, unregisterPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);
96
98
 
97
99
  return { connect, disconnect, reconnect: () => sdk.reconnect() };
98
100
  };
@@ -8,7 +8,7 @@ import type { MentionedUser } from '../types';
8
8
  import { useSendbirdChat } from './useContext';
9
9
 
10
10
  const useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | SendbirdFileMessage }) => {
11
- const { mentionManager } = useSendbirdChat();
11
+ const { mentionManager, sbOptions } = useSendbirdChat();
12
12
 
13
13
  const mentionedUsersRef = useRef<MentionedUser[]>([]);
14
14
  const textInputRef = useRef<TextInput>();
@@ -18,7 +18,12 @@ const useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | Sen
18
18
 
19
19
  // TODO: Refactor text edit logic more clearly
20
20
  useEffect(() => {
21
- if (mentionManager.shouldUseMentionedMessageTemplate(params.messageToEdit)) {
21
+ if (
22
+ mentionManager.shouldUseMentionedMessageTemplate(
23
+ params.messageToEdit,
24
+ sbOptions.uikit.groupChannel.channel.enableMention,
25
+ )
26
+ ) {
22
27
  const result = mentionManager.templateToTextAndMentionedUsers(
23
28
  params.messageToEdit.mentionedMessageTemplate,
24
29
  params.messageToEdit.mentionedUsers,
package/src/index.ts CHANGED
@@ -1,16 +1,18 @@
1
- /** Components **/
2
1
  import { Platform } from 'react-native';
3
2
 
4
3
  import { Logger } from '@sendbird/uikit-utils';
5
4
 
5
+ /** Components **/
6
6
  export { default as ChannelInput } from './components/ChannelInput';
7
- export { default as MessageRenderer } from './components/MessageRenderer';
7
+ export { default as ChannelMessageList } from './components/ChannelMessageList';
8
+ export { default as GroupChannelMessageRenderer } from './components/GroupChannelMessageRenderer';
8
9
  export { default as OpenChannelMessageRenderer } from './components/OpenChannelMessageRenderer';
9
10
  export { ReactionAddons } from './components/ReactionAddons';
10
11
  export { ReactionBottomSheets } from './components/ReactionBottomSheets';
11
12
  export { default as ChannelCover } from './components/ChannelCover';
12
13
  export { default as ChatFlatList } from './components/ChatFlatList';
13
14
  export { default as FileViewer } from './components/FileViewer';
15
+ export { default as MessageSearchResultItem } from './components/MessageSearchResultItem';
14
16
  export { default as NewMessagesButton } from './components/NewMessagesButton';
15
17
  export { default as ProviderLayout } from './components/ProviderLayout';
16
18
  export { default as ScrollToBottomButton } from './components/ScrollToBottomButton';