@sendbird/uikit-react-native 1.0.0 → 1.1.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 (336) hide show
  1. package/README.md +7 -7
  2. package/lib/commonjs/InternalErrorBoundary.js.map +1 -1
  3. package/lib/commonjs/SendbirdUIKitContainer.js +6 -3
  4. package/lib/commonjs/SendbirdUIKitContainer.js.map +1 -1
  5. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  6. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  7. package/lib/commonjs/components/FileViewer.js +326 -0
  8. package/lib/commonjs/components/FileViewer.js.map +1 -0
  9. package/lib/commonjs/components/GroupChannelPreviewContainer.js +180 -0
  10. package/lib/commonjs/components/GroupChannelPreviewContainer.js.map +1 -0
  11. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +1 -1
  12. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  13. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  14. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +116 -0
  15. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -0
  16. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +8 -0
  17. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -1
  18. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +1 -1
  19. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +1 -1
  20. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  21. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
  22. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +15 -24
  23. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -1
  24. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +1 -1
  25. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +1 -1
  26. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  27. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  28. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -1
  29. package/lib/commonjs/components/NewMessagesButton.js.map +1 -1
  30. package/lib/commonjs/components/ProviderLayout.js.map +1 -1
  31. package/lib/commonjs/components/SBUPressable.js +45 -0
  32. package/lib/commonjs/components/SBUPressable.js.map +1 -0
  33. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  34. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  35. package/lib/commonjs/components/UserActionBar.js +1 -3
  36. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  37. package/lib/commonjs/components/UserSelectableBar.js +1 -3
  38. package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
  39. package/lib/commonjs/constants.js +7 -1
  40. package/lib/commonjs/constants.js.map +1 -1
  41. package/lib/commonjs/contexts/Localization.js.map +1 -1
  42. package/lib/commonjs/contexts/PlatformService.js +4 -2
  43. package/lib/commonjs/contexts/PlatformService.js.map +1 -1
  44. package/lib/commonjs/contexts/SendbirdChat.js +6 -2
  45. package/lib/commonjs/contexts/SendbirdChat.js.map +1 -1
  46. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  47. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  48. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +1 -1
  49. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  50. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  51. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +30 -7
  52. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  53. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +2 -3
  54. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  55. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  56. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +2 -5
  57. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  58. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  59. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  60. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
  61. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  62. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  63. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
  64. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  65. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  66. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +1 -1
  67. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  68. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  69. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  70. package/lib/commonjs/domain/userList/module/moduleContext.js +2 -2
  71. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
  72. package/lib/commonjs/domain/userList/types.js.map +1 -1
  73. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +3 -7
  74. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  75. package/lib/commonjs/fragments/createGroupChannelFragment.js +13 -11
  76. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  77. package/lib/commonjs/fragments/createGroupChannelListFragment.js +7 -37
  78. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  79. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +1 -1
  80. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  81. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -3
  82. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  83. package/lib/commonjs/hooks/useContext.js.map +1 -1
  84. package/lib/commonjs/index.js +29 -2
  85. package/lib/commonjs/index.js.map +1 -1
  86. package/lib/commonjs/localization/StringSet.type.js +8 -0
  87. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  88. package/lib/commonjs/platform/createFileService.expo.js +38 -20
  89. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  90. package/lib/commonjs/platform/createFileService.native.js +20 -3
  91. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  92. package/lib/commonjs/platform/createMediaService.expo.js +64 -0
  93. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -0
  94. package/lib/commonjs/platform/createMediaService.native.js +67 -0
  95. package/lib/commonjs/platform/createMediaService.native.js.map +1 -0
  96. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
  97. package/lib/commonjs/platform/types.js.map +1 -1
  98. package/lib/commonjs/version.js +1 -1
  99. package/lib/commonjs/version.js.map +1 -1
  100. package/lib/module/InternalErrorBoundary.js.map +1 -1
  101. package/lib/module/SendbirdUIKitContainer.js +7 -4
  102. package/lib/module/SendbirdUIKitContainer.js.map +1 -1
  103. package/lib/module/components/ChannelCover.js.map +1 -1
  104. package/lib/module/components/ChatFlatList.js.map +1 -1
  105. package/lib/module/components/FileViewer.js +304 -0
  106. package/lib/module/components/FileViewer.js.map +1 -0
  107. package/lib/module/components/GroupChannelPreviewContainer.js +158 -0
  108. package/lib/module/components/GroupChannelPreviewContainer.js.map +1 -0
  109. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +1 -1
  110. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  111. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  112. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +100 -0
  113. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -0
  114. package/lib/module/components/MessageRenderer/FileMessage/index.js +6 -0
  115. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -1
  116. package/lib/module/components/MessageRenderer/MessageContainer.js.map +1 -1
  117. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +1 -1
  118. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  119. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
  120. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +17 -26
  121. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -1
  122. package/lib/module/components/MessageRenderer/MessageTime.js.map +1 -1
  123. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +1 -1
  124. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  125. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  126. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -1
  127. package/lib/module/components/NewMessagesButton.js.map +1 -1
  128. package/lib/module/components/ProviderLayout.js.map +1 -1
  129. package/lib/module/components/SBUPressable.js +33 -0
  130. package/lib/module/components/SBUPressable.js.map +1 -0
  131. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  132. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  133. package/lib/module/components/UserActionBar.js +1 -1
  134. package/lib/module/components/UserActionBar.js.map +1 -1
  135. package/lib/module/components/UserSelectableBar.js +1 -1
  136. package/lib/module/components/UserSelectableBar.js.map +1 -1
  137. package/lib/module/constants.js +5 -0
  138. package/lib/module/constants.js.map +1 -1
  139. package/lib/module/contexts/Localization.js.map +1 -1
  140. package/lib/module/contexts/PlatformService.js +4 -2
  141. package/lib/module/contexts/PlatformService.js.map +1 -1
  142. package/lib/module/contexts/SendbirdChat.js +6 -2
  143. package/lib/module/contexts/SendbirdChat.js.map +1 -1
  144. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  145. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  146. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +1 -1
  147. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  148. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  149. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +28 -7
  150. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  151. package/lib/module/domain/groupChannel/module/moduleContext.js +2 -3
  152. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  153. package/lib/module/domain/groupChannel/types.js.map +1 -1
  154. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js +2 -5
  155. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  156. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  157. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  158. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -1
  159. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  160. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  161. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
  162. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  163. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  164. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +1 -1
  165. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  166. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  167. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  168. package/lib/module/domain/userList/module/moduleContext.js +2 -2
  169. package/lib/module/domain/userList/module/moduleContext.js.map +1 -1
  170. package/lib/module/domain/userList/types.js.map +1 -1
  171. package/lib/module/fragments/createGroupChannelCreateFragment.js +4 -4
  172. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  173. package/lib/module/fragments/createGroupChannelFragment.js +15 -13
  174. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  175. package/lib/module/fragments/createGroupChannelListFragment.js +11 -38
  176. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  177. package/lib/module/fragments/createGroupChannelMembersFragment.js +1 -1
  178. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  179. package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -3
  180. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  181. package/lib/module/hooks/useContext.js.map +1 -1
  182. package/lib/module/index.js +4 -1
  183. package/lib/module/index.js.map +1 -1
  184. package/lib/module/localization/StringSet.type.js +8 -0
  185. package/lib/module/localization/StringSet.type.js.map +1 -1
  186. package/lib/module/platform/createFileService.expo.js +38 -20
  187. package/lib/module/platform/createFileService.expo.js.map +1 -1
  188. package/lib/module/platform/createFileService.native.js +20 -3
  189. package/lib/module/platform/createFileService.native.js.map +1 -1
  190. package/lib/module/platform/createMediaService.expo.js +54 -0
  191. package/lib/module/platform/createMediaService.expo.js.map +1 -0
  192. package/lib/module/platform/createMediaService.native.js +57 -0
  193. package/lib/module/platform/createMediaService.native.js.map +1 -0
  194. package/lib/module/platform/createNotificationService.expo.js.map +1 -1
  195. package/lib/module/platform/types.js.map +1 -1
  196. package/lib/module/version.js +1 -1
  197. package/lib/module/version.js.map +1 -1
  198. package/lib/typescript/__template__/component/__domain__Header.d.ts +1 -2
  199. package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +0 -1
  200. package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +0 -1
  201. package/lib/typescript/__template__/component/__domain__View.d.ts +1 -2
  202. package/lib/typescript/__template__/module/moduleContext.d.ts +2 -3
  203. package/lib/typescript/__template__/types.d.ts +2 -2
  204. package/lib/typescript/src/InternalErrorBoundary.d.ts +1 -0
  205. package/lib/typescript/src/SendbirdUIKitContainer.d.ts +9 -6
  206. package/lib/typescript/src/components/ChannelCover.d.ts +1 -2
  207. package/lib/typescript/src/components/FileViewer.d.ts +12 -0
  208. package/lib/typescript/src/components/GroupChannelPreviewContainer.d.ts +8 -0
  209. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +1 -2
  210. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +3 -3
  211. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +1 -2
  212. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +3 -0
  213. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +1 -1
  214. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +1 -1
  215. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +1 -2
  216. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +1 -2
  217. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +1 -2
  218. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +1 -1
  219. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +1 -2
  220. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +1 -2
  221. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +1 -2
  222. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +1 -2
  223. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +1 -1
  224. package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
  225. package/lib/typescript/src/components/ProviderLayout.d.ts +1 -1
  226. package/lib/typescript/src/components/SBUPressable.d.ts +18 -0
  227. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  228. package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -2
  229. package/lib/typescript/src/components/UserActionBar.d.ts +2 -3
  230. package/lib/typescript/src/components/UserSelectableBar.d.ts +2 -3
  231. package/lib/typescript/src/constants.d.ts +5 -0
  232. package/lib/typescript/src/contexts/Localization.d.ts +2 -3
  233. package/lib/typescript/src/contexts/PlatformService.d.ts +5 -4
  234. package/lib/typescript/src/contexts/SendbirdChat.d.ts +7 -3
  235. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +1 -2
  236. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +1 -2
  237. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +1 -2
  238. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +2 -2
  239. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +4 -3
  240. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +0 -1
  241. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +0 -1
  242. package/lib/typescript/src/domain/groupChannel/types.d.ts +8 -4
  243. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +1 -2
  244. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +1 -2
  245. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +0 -1
  246. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +0 -1
  247. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -2
  248. package/lib/typescript/src/domain/groupChannelList/module/moduleContext.d.ts +2 -3
  249. package/lib/typescript/src/domain/groupChannelList/types.d.ts +2 -2
  250. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +1 -2
  251. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -2
  252. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -2
  253. package/lib/typescript/src/domain/groupChannelSettings/module/moduleContext.d.ts +2 -3
  254. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -2
  255. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +4 -4
  256. package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +0 -1
  257. package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +0 -1
  258. package/lib/typescript/src/domain/userList/module/moduleContext.d.ts +2 -3
  259. package/lib/typescript/src/domain/userList/types.d.ts +1 -1
  260. package/lib/typescript/src/hooks/useContext.d.ts +8 -4
  261. package/lib/typescript/src/index.d.ts +3 -0
  262. package/lib/typescript/src/localization/StringSet.type.d.ts +4 -0
  263. package/lib/typescript/src/platform/createFileService.expo.d.ts +4 -4
  264. package/lib/typescript/src/platform/createMediaService.expo.d.ts +9 -0
  265. package/lib/typescript/src/platform/createMediaService.native.d.ts +9 -0
  266. package/lib/typescript/src/platform/createNotificationService.expo.d.ts +1 -1
  267. package/lib/typescript/src/platform/types.d.ts +20 -1
  268. package/lib/typescript/src/version.d.ts +1 -1
  269. package/package.json +16 -7
  270. package/src/InternalErrorBoundary.tsx +1 -0
  271. package/src/SendbirdUIKitContainer.tsx +17 -6
  272. package/src/components/ChannelCover.tsx +1 -1
  273. package/src/components/ChatFlatList.tsx +1 -1
  274. package/src/components/FileViewer.tsx +284 -0
  275. package/src/components/GroupChannelPreviewContainer.tsx +134 -0
  276. package/src/components/MessageRenderer/AdminMessage/index.tsx +1 -1
  277. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +4 -6
  278. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +1 -1
  279. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +91 -0
  280. package/src/components/MessageRenderer/FileMessage/index.tsx +7 -1
  281. package/src/components/MessageRenderer/MessageContainer.tsx +1 -1
  282. package/src/components/MessageRenderer/MessageDateSeparator.tsx +1 -1
  283. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +5 -2
  284. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +5 -2
  285. package/src/components/MessageRenderer/MessageOutgoingStatus.tsx +26 -33
  286. package/src/components/MessageRenderer/MessageTime.tsx +6 -2
  287. package/src/components/MessageRenderer/UnknownMessage/index.tsx +1 -1
  288. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +1 -1
  289. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +4 -2
  290. package/src/components/MessageRenderer/UserMessage/index.tsx +1 -1
  291. package/src/components/NewMessagesButton.tsx +1 -1
  292. package/src/components/ProviderLayout.tsx +1 -1
  293. package/src/components/SBUPressable.tsx +40 -0
  294. package/src/components/ScrollToBottomButton.tsx +1 -1
  295. package/src/components/TypedPlaceholder.tsx +1 -1
  296. package/src/components/UserActionBar.tsx +2 -2
  297. package/src/components/UserSelectableBar.tsx +2 -2
  298. package/src/constants.ts +5 -0
  299. package/src/contexts/Localization.tsx +2 -3
  300. package/src/contexts/PlatformService.tsx +13 -6
  301. package/src/contexts/SendbirdChat.tsx +15 -7
  302. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +1 -1
  303. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +1 -1
  304. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +2 -2
  305. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +2 -2
  306. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +25 -8
  307. package/src/domain/groupChannel/module/moduleContext.tsx +6 -13
  308. package/src/domain/groupChannel/types.ts +10 -4
  309. package/src/domain/groupChannelList/component/GroupChannelListHeader.tsx +2 -4
  310. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -2
  311. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +4 -4
  312. package/src/domain/groupChannelList/module/moduleContext.tsx +2 -2
  313. package/src/domain/groupChannelList/types.ts +3 -2
  314. package/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.tsx +1 -1
  315. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +1 -1
  316. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +2 -2
  317. package/src/domain/groupChannelSettings/module/moduleContext.tsx +7 -15
  318. package/src/domain/groupChannelSettings/types.ts +2 -2
  319. package/src/domain/groupChannelUserList/types.ts +4 -5
  320. package/src/domain/userList/module/moduleContext.tsx +3 -7
  321. package/src/domain/userList/types.ts +1 -1
  322. package/src/fragments/createGroupChannelCreateFragment.tsx +38 -41
  323. package/src/fragments/createGroupChannelFragment.tsx +23 -33
  324. package/src/fragments/createGroupChannelListFragment.tsx +10 -32
  325. package/src/fragments/createGroupChannelMembersFragment.tsx +34 -39
  326. package/src/fragments/createGroupChannelSettingsFragment.tsx +1 -9
  327. package/src/hooks/useContext.ts +3 -5
  328. package/src/index.ts +5 -1
  329. package/src/localization/StringSet.type.ts +8 -0
  330. package/src/platform/createFileService.expo.ts +29 -16
  331. package/src/platform/createFileService.native.ts +16 -3
  332. package/src/platform/createMediaService.expo.tsx +30 -0
  333. package/src/platform/createMediaService.native.tsx +37 -0
  334. package/src/platform/createNotificationService.expo.ts +1 -1
  335. package/src/platform/types.ts +26 -1
  336. package/src/version.ts +1 -1
@@ -1,6 +1,6 @@
1
- import type React from 'react';
2
1
  import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';
3
2
  import type { SendbirdGroupChannel, SendbirdGroupChannelParams } from '@sendbird/uikit-utils';
3
+ import type { CommonComponent } from '../../types';
4
4
  import type { GroupChannelType } from '../groupChannelList/types';
5
5
  import type { UserListProps } from '../userList/types';
6
6
  declare type UserIds = string[];
@@ -16,7 +16,7 @@ export interface GroupChannelCreateProps<User> {
16
16
  renderUser?: UserListProps<User>['List']['renderUser'];
17
17
  };
18
18
  }
19
- export declare type GroupChannelCreateFragment<User> = React.FC<GroupChannelCreateProps<User>['Fragment']>;
19
+ export declare type GroupChannelCreateFragment<User> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;
20
20
  export interface GroupChannelInviteProps<User> {
21
21
  Fragment: {
22
22
  channel: SendbirdGroupChannel;
@@ -28,7 +28,7 @@ export interface GroupChannelInviteProps<User> {
28
28
  sortComparator?: UseUserListOptions<User>['sortComparator'];
29
29
  };
30
30
  }
31
- export declare type GroupChannelInviteFragment<User> = React.FC<GroupChannelInviteProps<User>['Fragment']>;
31
+ export declare type GroupChannelInviteFragment<User> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;
32
32
  export interface GroupChannelMembersProps<User> {
33
33
  Fragment: {
34
34
  channel: SendbirdGroupChannel;
@@ -38,5 +38,5 @@ export interface GroupChannelMembersProps<User> {
38
38
  renderUser?: UserListProps<User>['List']['renderUser'];
39
39
  };
40
40
  }
41
- export declare type GroupChannelMembersFragment<User> = React.FC<GroupChannelMembersProps<User>['Fragment']>;
41
+ export declare type GroupChannelMembersFragment<User> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;
42
42
  export {};
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  declare const UserListStatusEmpty: () => JSX.Element;
3
2
  export default UserListStatusEmpty;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  declare const UserListStatusLoading: () => JSX.Element;
3
2
  export default UserListStatusLoading;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
- import type { UserListContextsType, UserListProps } from '../types';
1
+ import type { UserListContextsType, UserListModule } from '../types';
3
2
  export declare const UserListContexts: UserListContextsType<unknown>;
4
- export declare const UserListContextsProvider: React.FC<UserListProps<any>['Provider']>;
3
+ export declare const UserListContextsProvider: UserListModule<any>['Provider'];
@@ -47,7 +47,7 @@ export interface UserListContextsType<User> {
47
47
  }>;
48
48
  }
49
49
  export interface UserListModule<User> {
50
- Provider: React.FC<UserListProps<User>['Provider']>;
50
+ Provider: CommonComponent<UserListProps<User>['Provider']>;
51
51
  Header: CommonComponent<UserListProps<User>['Header']>;
52
52
  List: CommonComponent<UserListProps<User>['List']>;
53
53
  StatusEmpty: CommonComponent;
@@ -1,19 +1,23 @@
1
- import React from 'react';
2
- import { LocalizationContextType } from '../contexts/Localization';
3
- export declare const useLocalization: () => LocalizationContextType;
1
+ /// <reference types="react" />
2
+ export declare const useLocalization: () => import("../contexts/Localization").LocalizationContextType;
4
3
  export declare const usePlatformService: () => {
5
4
  fileService: import("..").FileServiceInterface;
6
5
  clipboardService: import("..").ClipboardServiceInterface;
7
6
  notificationService: import("..").NotificationServiceInterface;
7
+ mediaService?: import("../platform/types").MediaServiceInterface | undefined;
8
+ } & {
9
+ children?: import("react").ReactNode;
8
10
  };
9
11
  export declare const useSendbirdChat: () => {
10
12
  sdk: import("sendbird").SendBirdInstance;
11
13
  currentUser?: import("sendbird").User | undefined;
12
- setCurrentUser: React.Dispatch<React.SetStateAction<import("sendbird").User | undefined>>;
14
+ setCurrentUser: import("react").Dispatch<import("react").SetStateAction<import("sendbird").User | undefined>>;
13
15
  updateCurrentUserInfo: (nickname: string, profile?: string | import("..").FileType | undefined) => Promise<import("sendbird").User>;
14
16
  markAsDeliveredWithChannel: (channel: import("sendbird").GroupChannel) => void;
15
17
  features: {
16
18
  autoPushTokenRegistrationEnabled: boolean;
19
+ channelListTypingIndicatorEnabled: boolean;
20
+ channelListMessageReceiptStatusEnabled: boolean;
17
21
  deliveryReceiptEnabled: boolean;
18
22
  broadcastChannelEnabled: boolean;
19
23
  superGroupChannelEnabled: boolean;
@@ -1,6 +1,7 @@
1
1
  export { default as MessageRenderer } from './components/MessageRenderer';
2
2
  export { default as ChannelCover } from './components/ChannelCover';
3
3
  export { default as ChatFlatList } from './components/ChatFlatList';
4
+ export { default as FileViewer } from './components/FileViewer';
4
5
  export { default as NewMessagesButton } from './components/NewMessagesButton';
5
6
  export { default as ProviderLayout } from './components/ProviderLayout';
6
7
  export { default as ScrollToBottomButton } from './components/ScrollToBottomButton';
@@ -31,9 +32,11 @@ export type { StringSet } from './localization/StringSet.type';
31
32
  export { default as createNativeFileService } from './platform/createFileService.native';
32
33
  export { default as createNativeClipboardService } from './platform/createClipboardService.native';
33
34
  export { default as createNativeNotificationService } from './platform/createNotificationService.native';
35
+ export { default as createNativeMediaService } from './platform/createMediaService.native';
34
36
  export { default as createExpoFileService } from './platform/createFileService.expo';
35
37
  export { default as createExpoClipboardService } from './platform/createClipboardService.expo';
36
38
  export { default as createExpoNotificationService } from './platform/createNotificationService.expo';
39
+ export { default as createExpoMediaService } from './platform/createMediaService.expo';
37
40
  export type { FileServiceInterface, ClipboardServiceInterface, FilePickerServiceInterface, FileSystemServiceInterface, SaveOptions, OpenDocumentOptions, OpenCameraOptions, OpenMediaLibraryOptions, OpenResultListener, DownloadedPath, Unsubscribe, FilePickerResponse, FileType, NotificationServiceInterface, } from './platform/types';
38
41
  /** Domain **/
39
42
  export * from './domain/groupChannel';
@@ -107,6 +107,10 @@ export interface StringSet {
107
107
  CHANNEL_NO_MEMBERS: string;
108
108
  TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;
109
109
  };
110
+ FILE_VIEWER: {
111
+ TITLE: (message: SendbirdFileMessage) => string;
112
+ SUBTITLE: (message: SendbirdFileMessage) => string;
113
+ };
110
114
  PLACEHOLDER: {
111
115
  NO_BANNED_MEMBERS: string;
112
116
  NO_USERS: string;
@@ -1,7 +1,7 @@
1
- import type ExpoDocumentPicker from 'expo-document-picker';
2
- import type ExpoFs from 'expo-file-system';
3
- import type ExpoImagePicker from 'expo-image-picker';
4
- import type ExpoMediaLibrary from 'expo-media-library';
1
+ import type * as ExpoDocumentPicker from 'expo-document-picker';
2
+ import type * as ExpoFs from 'expo-file-system';
3
+ import type * as ExpoImagePicker from 'expo-image-picker';
4
+ import type * as ExpoMediaLibrary from 'expo-media-library';
5
5
  import type { FileServiceInterface } from './types';
6
6
  declare const createExpoFileService: ({ imagePickerModule, documentPickerModule, mediaLibraryModule, fsModule, }: {
7
7
  imagePickerModule: typeof ExpoImagePicker;
@@ -0,0 +1,9 @@
1
+ import type * as ExpoAV from 'expo-av';
2
+ import type * as ExpoVideoThumbnail from 'expo-video-thumbnails';
3
+ import type { MediaServiceInterface } from './types';
4
+ declare type Modules = {
5
+ avModule: typeof ExpoAV;
6
+ thumbnailModule: typeof ExpoVideoThumbnail;
7
+ };
8
+ declare const createExpoMediaService: ({ avModule, thumbnailModule }: Modules) => MediaServiceInterface;
9
+ export default createExpoMediaService;
@@ -0,0 +1,9 @@
1
+ import type * as CreateThumbnail from 'react-native-create-thumbnail';
2
+ import type Video from 'react-native-video';
3
+ import type { MediaServiceInterface } from './types';
4
+ declare type Modules = {
5
+ VideoComponent: typeof Video;
6
+ thumbnailModule: typeof CreateThumbnail;
7
+ };
8
+ declare const createNativeMediaService: ({ VideoComponent, thumbnailModule }: Modules) => MediaServiceInterface;
9
+ export default createNativeMediaService;
@@ -1,4 +1,4 @@
1
- import type ExpoNotification from 'expo-notifications';
1
+ import type * as ExpoNotification from 'expo-notifications';
2
2
  import type { NotificationServiceInterface } from './types';
3
3
  declare const createExpoNotificationService: (messagingModule: typeof ExpoNotification) => NotificationServiceInterface;
4
4
  export default createExpoNotificationService;
@@ -29,7 +29,7 @@ export interface OpenMediaLibraryOptions extends OpenResultListener {
29
29
  }
30
30
  export interface OpenCameraOptions extends OpenResultListener {
31
31
  cameraType?: 'front' | 'back';
32
- mediaType?: 'photo' | 'video';
32
+ mediaType?: 'photo' | 'video' | 'all';
33
33
  }
34
34
  export declare type OpenDocumentOptions = OpenResultListener;
35
35
  export interface SaveOptions {
@@ -45,3 +45,22 @@ export interface FilePickerServiceInterface {
45
45
  export interface FileSystemServiceInterface {
46
46
  save(options?: SaveOptions): Promise<DownloadedPath | null>;
47
47
  }
48
+ interface VideoProps {
49
+ source: {
50
+ uri: string;
51
+ } | number;
52
+ resizeMode?: 'cover' | 'contain' | 'stretch';
53
+ onLoad?: () => void;
54
+ }
55
+ interface GetVideoThumbnailOptions {
56
+ url: string;
57
+ timeMills?: number;
58
+ quality?: number;
59
+ }
60
+ export interface MediaServiceInterface {
61
+ VideoComponent<Props = {}>(props: VideoProps & Props): JSX.Element;
62
+ getVideoThumbnail(options: GetVideoThumbnailOptions): Promise<{
63
+ path: string;
64
+ } | null>;
65
+ }
66
+ export {};
@@ -1,2 +1,2 @@
1
- declare const VERSION = "1.0.0-rc.4";
1
+ declare const VERSION = "1.1.0";
2
2
  export default VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-react-native",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "react-native-uikit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -41,9 +41,9 @@
41
41
  "access": "public"
42
42
  },
43
43
  "dependencies": {
44
- "@sendbird/uikit-chat-hooks": "1.0.0",
45
- "@sendbird/uikit-react-native-foundation": "1.0.0",
46
- "@sendbird/uikit-utils": "1.0.0"
44
+ "@sendbird/uikit-chat-hooks": "1.1.0",
45
+ "@sendbird/uikit-react-native-foundation": "1.1.0",
46
+ "@sendbird/uikit-utils": "1.1.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@react-native-clipboard/clipboard": "^1.8.5",
@@ -51,26 +51,31 @@
51
51
  "@react-native-community/netinfo": "^9.3.0",
52
52
  "@react-native-firebase/app": "^14.4.0",
53
53
  "@react-native-firebase/messaging": "^14.4.0",
54
- "@types/react": "17.0.2",
55
- "@types/react-native": "^0.66.15",
54
+ "@types/react": "*",
55
+ "@types/react-native": "*",
56
+ "@types/react-native-video": "^5.0.14",
56
57
  "date-fns": "^2.28.0",
58
+ "expo-av": "^12.0.4",
57
59
  "expo-clipboard": "^2.1.1",
58
60
  "expo-document-picker": "^10.1.3",
59
61
  "expo-file-system": "^13.1.4",
60
62
  "expo-image-picker": "^12.0.2",
61
63
  "expo-media-library": "^14.0.1",
62
64
  "expo-notifications": "^0.14.1",
65
+ "expo-video-thumbnails": "^6.4.0",
63
66
  "glob": "^7.2.0",
64
67
  "inquirer": "^8.2.0",
65
68
  "js-convert-case": "^4.2.0",
66
69
  "react": "17.0.2",
67
70
  "react-native": "0.66.4",
68
71
  "react-native-builder-bob": "^0.18.0",
72
+ "react-native-create-thumbnail": "^1.5.1",
69
73
  "react-native-document-picker": "^8.0.0",
70
74
  "react-native-file-access": "^2.4.3",
71
75
  "react-native-image-picker": "^4.7.1",
72
76
  "react-native-permissions": "^3.6.0",
73
77
  "react-native-safe-area-context": "^3.3.2",
78
+ "react-native-video": "^5.2.0",
74
79
  "typescript": "^4.1.3"
75
80
  },
76
81
  "peerDependencies": {
@@ -79,18 +84,22 @@
79
84
  "@react-native-community/netinfo": ">=9.3.0",
80
85
  "@react-native-firebase/messaging": ">=14.4.0",
81
86
  "date-fns": ">=2.28.0",
87
+ "expo-av": ">=12.0.4",
82
88
  "expo-clipboard": ">=2.1.1",
83
89
  "expo-document-picker": ">=10.1.3",
84
90
  "expo-file-system": ">=13.1.4",
85
91
  "expo-image-picker": ">=12.0.2",
86
92
  "expo-notifications": ">=0.14.1",
93
+ "expo-video-thumbnails": ">=6.4.0",
87
94
  "react": ">=16.13.1",
88
95
  "react-native": ">=0.63.3",
96
+ "react-native-create-thumbnail": ">=1.5.1",
89
97
  "react-native-document-picker": ">=8.0.0",
90
98
  "react-native-file-access": ">=2.4.3",
91
99
  "react-native-image-picker": ">=4.7.1",
92
100
  "react-native-permissions": ">=3.6.0",
93
101
  "react-native-safe-area-context": ">=3.3.2",
102
+ "react-native-video": ">=5.2.0",
94
103
  "sendbird": "^3.1.22"
95
104
  },
96
105
  "peerDependenciesMeta": {
@@ -150,5 +159,5 @@
150
159
  "readmeFile": "./README.md",
151
160
  "displayName": "@sendbird/uikit-react-native"
152
161
  },
153
- "gitHead": "c95ed8b6819a446b1136d2849939df57c323ac23"
162
+ "gitHead": "787ef6d52fec5d01e9b831d7a6f17e33614e2d09"
154
163
  }
@@ -15,6 +15,7 @@ const DefaultErrorBoundaryComponent = (props: ErrorBoundaryProps) => {
15
15
  class InternalErrorBoundary extends React.PureComponent<{
16
16
  onError?: (props: ErrorBoundaryProps) => void;
17
17
  ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;
18
+ children?: React.ReactNode;
18
19
  }> {
19
20
  static defaultProps = {
20
21
  ErrorInfoComponent: DefaultErrorBoundaryComponent,
@@ -23,7 +23,12 @@ import { useLocalization } from './hooks/useContext';
23
23
  import StringSetEn from './localization/StringSet.en';
24
24
  import type { StringSet } from './localization/StringSet.type';
25
25
  import SBUDynamicModule from './platform/dynamicModule';
26
- import type { ClipboardServiceInterface, FileServiceInterface, NotificationServiceInterface } from './platform/types';
26
+ import type {
27
+ ClipboardServiceInterface,
28
+ FileServiceInterface,
29
+ MediaServiceInterface,
30
+ NotificationServiceInterface,
31
+ } from './platform/types';
27
32
  import type { ErrorBoundaryProps, LocalCacheStorage } from './types';
28
33
  import VERSION from './version';
29
34
 
@@ -34,18 +39,20 @@ export const SendbirdUIKit = Object.freeze({
34
39
  PLATFORM: Platform.OS.toLowerCase(),
35
40
  });
36
41
 
37
- export type SendbirdUIKitContainerProps = {
38
- children?: React.ReactNode;
42
+ export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
39
43
  appId: string;
40
44
  platformServices: {
41
45
  file: FileServiceInterface;
42
46
  notification: NotificationServiceInterface;
43
47
  clipboard: ClipboardServiceInterface;
48
+ media?: MediaServiceInterface;
44
49
  };
45
50
  chatOptions?: {
46
51
  localCacheStorage?: LocalCacheStorage;
47
- enableAutoPushTokenRegistration?: boolean;
48
52
  onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;
53
+ enableAutoPushTokenRegistration?: boolean;
54
+ enableChannelListTypingIndicator?: boolean;
55
+ enableChannelListMessageReceiptStatus?: boolean;
49
56
  };
50
57
  localization?: {
51
58
  stringSet?: StringSet;
@@ -54,6 +61,7 @@ export type SendbirdUIKitContainerProps = {
54
61
  theme?: UIKitTheme;
55
62
  statusBarTranslucent?: boolean;
56
63
  defaultHeaderTitleAlign?: 'left' | 'center';
64
+ defaultHeaderHeight?: number;
57
65
  HeaderComponent?: HeaderStyleContextType['HeaderComponent'];
58
66
  };
59
67
  toast?: {
@@ -63,7 +71,7 @@ export type SendbirdUIKitContainerProps = {
63
71
  onError?: (props: ErrorBoundaryProps) => void;
64
72
  ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;
65
73
  };
66
- };
74
+ }>;
67
75
 
68
76
  const SendbirdUIKitContainer = ({
69
77
  children,
@@ -133,12 +141,15 @@ const SendbirdUIKitContainer = ({
133
141
  <SendbirdChatProvider
134
142
  sdkInstance={sdkInstance}
135
143
  enableAutoPushTokenRegistration={chatOptions?.enableAutoPushTokenRegistration ?? true}
144
+ enableChannelListTypingIndicator={chatOptions?.enableChannelListTypingIndicator ?? false}
145
+ enableChannelListMessageReceiptStatus={chatOptions?.enableChannelListMessageReceiptStatus ?? false}
136
146
  >
137
147
  <LocalizationProvider stringSet={localization?.stringSet ?? StringSetEn}>
138
148
  <PlatformServiceProvider
139
149
  fileService={platformServices.file}
140
150
  notificationService={platformServices.notification}
141
151
  clipboardService={platformServices.clipboard}
152
+ mediaService={platformServices.media}
142
153
  >
143
154
  <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>
144
155
  <HeaderStyleProvider
@@ -160,7 +171,7 @@ const SendbirdUIKitContainer = ({
160
171
  );
161
172
  };
162
173
 
163
- const LocalizedDialogProvider: React.FC = ({ children }) => {
174
+ const LocalizedDialogProvider = ({ children }: React.PropsWithChildren) => {
164
175
  const { STRINGS } = useLocalization();
165
176
  return (
166
177
  <DialogProvider
@@ -12,7 +12,7 @@ type Props = {
12
12
  containerStyle?: StyleProp<ViewStyle>;
13
13
  };
14
14
 
15
- const ChannelCover: React.FC<Props> = ({ channel, ...avatarProps }) => {
15
+ const ChannelCover = ({ channel, ...avatarProps }: Props) => {
16
16
  const { currentUser } = useSendbirdChat();
17
17
 
18
18
  // channel cover
@@ -48,7 +48,7 @@ const ChatFlatList = forwardRef<ChatFlatListRef, Props>(function CustomFlatList(
48
48
  }
49
49
  }, [onBottomReached, nextMessages, currentUserId]);
50
50
 
51
- const _onScroll: Props['onScroll'] = useCallback(
51
+ const _onScroll = useCallback<NonNullable<Props['onScroll']>>(
52
52
  (event) => {
53
53
  const { contentOffset } = event.nativeEvent;
54
54
  if (BOTTOM_DETECT_THRESHOLD < yPos.current && contentOffset.y <= BOTTOM_DETECT_THRESHOLD) {