@sendbird/uikit-react-native 1.0.0-rc.1

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 (570) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +410 -0
  3. package/lib/commonjs/InternalErrorBoundary.js +84 -0
  4. package/lib/commonjs/InternalErrorBoundary.js.map +1 -0
  5. package/lib/commonjs/InternalLocalCacheStorage.js +59 -0
  6. package/lib/commonjs/InternalLocalCacheStorage.js.map +1 -0
  7. package/lib/commonjs/SendbirdUIKitContainer.js +166 -0
  8. package/lib/commonjs/SendbirdUIKitContainer.js.map +1 -0
  9. package/lib/commonjs/components/ChannelCover.js +59 -0
  10. package/lib/commonjs/components/ChannelCover.js.map +1 -0
  11. package/lib/commonjs/components/ChatFlatList.js +118 -0
  12. package/lib/commonjs/components/ChatFlatList.js.map +1 -0
  13. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +52 -0
  14. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +1 -0
  15. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +76 -0
  16. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -0
  17. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +61 -0
  18. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -0
  19. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +31 -0
  20. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -0
  21. package/lib/commonjs/components/MessageRenderer/MessageContainer.js +33 -0
  22. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +1 -0
  23. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js +58 -0
  24. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +1 -0
  25. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +42 -0
  26. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -0
  27. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +48 -0
  28. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -0
  29. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +134 -0
  30. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -0
  31. package/lib/commonjs/components/MessageRenderer/MessageTime.js +41 -0
  32. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +1 -0
  33. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +53 -0
  34. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +1 -0
  35. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +54 -0
  36. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -0
  37. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +131 -0
  38. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -0
  39. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +31 -0
  40. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -0
  41. package/lib/commonjs/components/MessageRenderer/index.js +189 -0
  42. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -0
  43. package/lib/commonjs/components/NewMessagesButton.js +73 -0
  44. package/lib/commonjs/components/NewMessagesButton.js.map +1 -0
  45. package/lib/commonjs/components/ProviderLayout.js +37 -0
  46. package/lib/commonjs/components/ProviderLayout.js.map +1 -0
  47. package/lib/commonjs/components/ScrollToBottomButton.js +66 -0
  48. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -0
  49. package/lib/commonjs/components/StatusComposition.js +27 -0
  50. package/lib/commonjs/components/StatusComposition.js.map +1 -0
  51. package/lib/commonjs/components/TypedPlaceholder.js +80 -0
  52. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -0
  53. package/lib/commonjs/components/UserActionBar.js +96 -0
  54. package/lib/commonjs/components/UserActionBar.js.map +1 -0
  55. package/lib/commonjs/components/UserSelectableBar.js +78 -0
  56. package/lib/commonjs/components/UserSelectableBar.js.map +1 -0
  57. package/lib/commonjs/constants.js +9 -0
  58. package/lib/commonjs/constants.js.map +1 -0
  59. package/lib/commonjs/contexts/Localization.js +29 -0
  60. package/lib/commonjs/contexts/Localization.js.map +1 -0
  61. package/lib/commonjs/contexts/PlatformService.js +33 -0
  62. package/lib/commonjs/contexts/PlatformService.js.map +1 -0
  63. package/lib/commonjs/contexts/SendbirdChat.js +87 -0
  64. package/lib/commonjs/contexts/SendbirdChat.js.map +1 -0
  65. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +88 -0
  66. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -0
  67. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +118 -0
  68. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -0
  69. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +148 -0
  70. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -0
  71. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +115 -0
  72. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -0
  73. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +343 -0
  74. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -0
  75. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +34 -0
  76. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -0
  77. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +34 -0
  78. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -0
  79. package/lib/commonjs/domain/groupChannel/index.js +70 -0
  80. package/lib/commonjs/domain/groupChannel/index.js.map +1 -0
  81. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +45 -0
  82. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -0
  83. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +79 -0
  84. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -0
  85. package/lib/commonjs/domain/groupChannel/types.js +6 -0
  86. package/lib/commonjs/domain/groupChannel/types.js.map +1 -0
  87. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +38 -0
  88. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -0
  89. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +96 -0
  90. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -0
  91. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +34 -0
  92. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -0
  93. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +34 -0
  94. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -0
  95. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +141 -0
  96. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -0
  97. package/lib/commonjs/domain/groupChannelList/index.js +70 -0
  98. package/lib/commonjs/domain/groupChannelList/index.js.map +1 -0
  99. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +45 -0
  100. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -0
  101. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +61 -0
  102. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -0
  103. package/lib/commonjs/domain/groupChannelList/types.js +6 -0
  104. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -0
  105. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +49 -0
  106. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -0
  107. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +77 -0
  108. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -0
  109. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +94 -0
  110. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -0
  111. package/lib/commonjs/domain/groupChannelSettings/index.js +54 -0
  112. package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -0
  113. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +37 -0
  114. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -0
  115. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +150 -0
  116. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -0
  117. package/lib/commonjs/domain/groupChannelSettings/types.js +6 -0
  118. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -0
  119. package/lib/commonjs/domain/groupChannelUserList/types.js +6 -0
  120. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -0
  121. package/lib/commonjs/domain/userList/component/UserListHeader.js +56 -0
  122. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -0
  123. package/lib/commonjs/domain/userList/component/UserListList.js +57 -0
  124. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -0
  125. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +34 -0
  126. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -0
  127. package/lib/commonjs/domain/userList/component/UserListStatusError.js +38 -0
  128. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -0
  129. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +34 -0
  130. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -0
  131. package/lib/commonjs/domain/userList/index.js +70 -0
  132. package/lib/commonjs/domain/userList/index.js.map +1 -0
  133. package/lib/commonjs/domain/userList/module/createUserListModule.js +45 -0
  134. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -0
  135. package/lib/commonjs/domain/userList/module/moduleContext.js +54 -0
  136. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -0
  137. package/lib/commonjs/domain/userList/types.js +6 -0
  138. package/lib/commonjs/domain/userList/types.js.map +1 -0
  139. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +145 -0
  140. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -0
  141. package/lib/commonjs/fragments/createGroupChannelFragment.js +154 -0
  142. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -0
  143. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +139 -0
  144. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -0
  145. package/lib/commonjs/fragments/createGroupChannelListFragment.js +141 -0
  146. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -0
  147. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +134 -0
  148. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -0
  149. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +67 -0
  150. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -0
  151. package/lib/commonjs/hooks/useConnection.js +102 -0
  152. package/lib/commonjs/hooks/useConnection.js.map +1 -0
  153. package/lib/commonjs/hooks/useContext.js +39 -0
  154. package/lib/commonjs/hooks/useContext.js.map +1 -0
  155. package/lib/commonjs/hooks/usePushTokenRegistration.js +83 -0
  156. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -0
  157. package/lib/commonjs/index.js +449 -0
  158. package/lib/commonjs/index.js.map +1 -0
  159. package/lib/commonjs/localization/StringSet.en.js +19 -0
  160. package/lib/commonjs/localization/StringSet.en.js.map +1 -0
  161. package/lib/commonjs/localization/StringSet.type.js +178 -0
  162. package/lib/commonjs/localization/StringSet.type.js.map +1 -0
  163. package/lib/commonjs/platform/createClipboardService.expo.js +23 -0
  164. package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -0
  165. package/lib/commonjs/platform/createClipboardService.native.js +23 -0
  166. package/lib/commonjs/platform/createClipboardService.native.js.map +1 -0
  167. package/lib/commonjs/platform/createFileService.expo.js +176 -0
  168. package/lib/commonjs/platform/createFileService.expo.js.map +1 -0
  169. package/lib/commonjs/platform/createFileService.native.js +253 -0
  170. package/lib/commonjs/platform/createFileService.native.js.map +1 -0
  171. package/lib/commonjs/platform/createNotificationService.expo.js +50 -0
  172. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -0
  173. package/lib/commonjs/platform/createNotificationService.native.js +65 -0
  174. package/lib/commonjs/platform/createNotificationService.native.js.map +1 -0
  175. package/lib/commonjs/platform/dynamicModule.js +114 -0
  176. package/lib/commonjs/platform/dynamicModule.js.map +1 -0
  177. package/lib/commonjs/platform/types.js +2 -0
  178. package/lib/commonjs/platform/types.js.map +1 -0
  179. package/lib/commonjs/types.js +6 -0
  180. package/lib/commonjs/types.js.map +1 -0
  181. package/lib/commonjs/utils/expoPermissionGranted.js +32 -0
  182. package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -0
  183. package/lib/commonjs/utils/fileTypeGuard.js +26 -0
  184. package/lib/commonjs/utils/fileTypeGuard.js.map +1 -0
  185. package/lib/commonjs/utils/nativePermissionGranted.js +23 -0
  186. package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -0
  187. package/lib/commonjs/version.js +10 -0
  188. package/lib/commonjs/version.js.map +1 -0
  189. package/lib/module/InternalErrorBoundary.js +72 -0
  190. package/lib/module/InternalErrorBoundary.js.map +1 -0
  191. package/lib/module/InternalLocalCacheStorage.js +50 -0
  192. package/lib/module/InternalLocalCacheStorage.js.map +1 -0
  193. package/lib/module/SendbirdUIKitContainer.js +136 -0
  194. package/lib/module/SendbirdUIKitContainer.js.map +1 -0
  195. package/lib/module/components/ChannelCover.js +46 -0
  196. package/lib/module/components/ChannelCover.js.map +1 -0
  197. package/lib/module/components/ChatFlatList.js +102 -0
  198. package/lib/module/components/ChatFlatList.js.map +1 -0
  199. package/lib/module/components/MessageRenderer/AdminMessage/index.js +40 -0
  200. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +1 -0
  201. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +62 -0
  202. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -0
  203. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +47 -0
  204. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -0
  205. package/lib/module/components/MessageRenderer/FileMessage/index.js +17 -0
  206. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -0
  207. package/lib/module/components/MessageRenderer/MessageContainer.js +21 -0
  208. package/lib/module/components/MessageRenderer/MessageContainer.js.map +1 -0
  209. package/lib/module/components/MessageRenderer/MessageDateSeparator.js +44 -0
  210. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +1 -0
  211. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +30 -0
  212. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -0
  213. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +35 -0
  214. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -0
  215. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +116 -0
  216. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -0
  217. package/lib/module/components/MessageRenderer/MessageTime.js +28 -0
  218. package/lib/module/components/MessageRenderer/MessageTime.js.map +1 -0
  219. package/lib/module/components/MessageRenderer/UnknownMessage/index.js +40 -0
  220. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +1 -0
  221. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +41 -0
  222. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -0
  223. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +115 -0
  224. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -0
  225. package/lib/module/components/MessageRenderer/UserMessage/index.js +18 -0
  226. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -0
  227. package/lib/module/components/MessageRenderer/index.js +163 -0
  228. package/lib/module/components/MessageRenderer/index.js.map +1 -0
  229. package/lib/module/components/NewMessagesButton.js +58 -0
  230. package/lib/module/components/NewMessagesButton.js.map +1 -0
  231. package/lib/module/components/ProviderLayout.js +25 -0
  232. package/lib/module/components/ProviderLayout.js.map +1 -0
  233. package/lib/module/components/ScrollToBottomButton.js +52 -0
  234. package/lib/module/components/ScrollToBottomButton.js.map +1 -0
  235. package/lib/module/components/StatusComposition.js +17 -0
  236. package/lib/module/components/StatusComposition.js.map +1 -0
  237. package/lib/module/components/TypedPlaceholder.js +68 -0
  238. package/lib/module/components/TypedPlaceholder.js.map +1 -0
  239. package/lib/module/components/UserActionBar.js +81 -0
  240. package/lib/module/components/UserActionBar.js.map +1 -0
  241. package/lib/module/components/UserSelectableBar.js +63 -0
  242. package/lib/module/components/UserSelectableBar.js.map +1 -0
  243. package/lib/module/constants.js +2 -0
  244. package/lib/module/constants.js.map +1 -0
  245. package/lib/module/contexts/Localization.js +14 -0
  246. package/lib/module/contexts/Localization.js.map +1 -0
  247. package/lib/module/contexts/PlatformService.js +18 -0
  248. package/lib/module/contexts/PlatformService.js.map +1 -0
  249. package/lib/module/contexts/SendbirdChat.js +66 -0
  250. package/lib/module/contexts/SendbirdChat.js.map +1 -0
  251. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +69 -0
  252. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -0
  253. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +102 -0
  254. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -0
  255. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +134 -0
  256. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -0
  257. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +92 -0
  258. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -0
  259. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +317 -0
  260. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -0
  261. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js +21 -0
  262. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -0
  263. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js +21 -0
  264. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -0
  265. package/lib/module/domain/groupChannel/index.js +8 -0
  266. package/lib/module/domain/groupChannel/index.js.map +1 -0
  267. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +30 -0
  268. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -0
  269. package/lib/module/domain/groupChannel/module/moduleContext.js +57 -0
  270. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -0
  271. package/lib/module/domain/groupChannel/types.js +2 -0
  272. package/lib/module/domain/groupChannel/types.js.map +1 -0
  273. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js +24 -0
  274. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -0
  275. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +79 -0
  276. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -0
  277. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +21 -0
  278. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -0
  279. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js +21 -0
  280. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -0
  281. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +124 -0
  282. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -0
  283. package/lib/module/domain/groupChannelList/index.js +8 -0
  284. package/lib/module/domain/groupChannelList/index.js.map +1 -0
  285. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +30 -0
  286. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -0
  287. package/lib/module/domain/groupChannelList/module/moduleContext.js +40 -0
  288. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -0
  289. package/lib/module/domain/groupChannelList/types.js +2 -0
  290. package/lib/module/domain/groupChannelList/types.js.map +1 -0
  291. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +35 -0
  292. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -0
  293. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +56 -0
  294. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -0
  295. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +78 -0
  296. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -0
  297. package/lib/module/domain/groupChannelSettings/index.js +6 -0
  298. package/lib/module/domain/groupChannelSettings/index.js.map +1 -0
  299. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +24 -0
  300. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -0
  301. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +127 -0
  302. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -0
  303. package/lib/module/domain/groupChannelSettings/types.js +2 -0
  304. package/lib/module/domain/groupChannelSettings/types.js.map +1 -0
  305. package/lib/module/domain/groupChannelUserList/types.js +2 -0
  306. package/lib/module/domain/groupChannelUserList/types.js.map +1 -0
  307. package/lib/module/domain/userList/component/UserListHeader.js +42 -0
  308. package/lib/module/domain/userList/component/UserListHeader.js.map +1 -0
  309. package/lib/module/domain/userList/component/UserListList.js +42 -0
  310. package/lib/module/domain/userList/component/UserListList.js.map +1 -0
  311. package/lib/module/domain/userList/component/UserListStatusEmpty.js +21 -0
  312. package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -0
  313. package/lib/module/domain/userList/component/UserListStatusError.js +25 -0
  314. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -0
  315. package/lib/module/domain/userList/component/UserListStatusLoading.js +21 -0
  316. package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -0
  317. package/lib/module/domain/userList/index.js +8 -0
  318. package/lib/module/domain/userList/index.js.map +1 -0
  319. package/lib/module/domain/userList/module/createUserListModule.js +30 -0
  320. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -0
  321. package/lib/module/domain/userList/module/moduleContext.js +34 -0
  322. package/lib/module/domain/userList/module/moduleContext.js.map +1 -0
  323. package/lib/module/domain/userList/types.js +2 -0
  324. package/lib/module/domain/userList/types.js.map +1 -0
  325. package/lib/module/fragments/createGroupChannelCreateFragment.js +124 -0
  326. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -0
  327. package/lib/module/fragments/createGroupChannelFragment.js +132 -0
  328. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -0
  329. package/lib/module/fragments/createGroupChannelInviteFragment.js +118 -0
  330. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -0
  331. package/lib/module/fragments/createGroupChannelListFragment.js +115 -0
  332. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -0
  333. package/lib/module/fragments/createGroupChannelMembersFragment.js +114 -0
  334. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -0
  335. package/lib/module/fragments/createGroupChannelSettingsFragment.js +52 -0
  336. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -0
  337. package/lib/module/hooks/useConnection.js +79 -0
  338. package/lib/module/hooks/useConnection.js.map +1 -0
  339. package/lib/module/hooks/useContext.js +20 -0
  340. package/lib/module/hooks/useContext.js.map +1 -0
  341. package/lib/module/hooks/usePushTokenRegistration.js +69 -0
  342. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -0
  343. package/lib/module/index.js +57 -0
  344. package/lib/module/index.js.map +1 -0
  345. package/lib/module/localization/StringSet.en.js +7 -0
  346. package/lib/module/localization/StringSet.en.js.map +1 -0
  347. package/lib/module/localization/StringSet.type.js +173 -0
  348. package/lib/module/localization/StringSet.type.js.map +1 -0
  349. package/lib/module/platform/createClipboardService.expo.js +15 -0
  350. package/lib/module/platform/createClipboardService.expo.js.map +1 -0
  351. package/lib/module/platform/createClipboardService.native.js +15 -0
  352. package/lib/module/platform/createClipboardService.native.js.map +1 -0
  353. package/lib/module/platform/createFileService.expo.js +164 -0
  354. package/lib/module/platform/createFileService.expo.js.map +1 -0
  355. package/lib/module/platform/createFileService.native.js +237 -0
  356. package/lib/module/platform/createFileService.native.js.map +1 -0
  357. package/lib/module/platform/createNotificationService.expo.js +42 -0
  358. package/lib/module/platform/createNotificationService.expo.js.map +1 -0
  359. package/lib/module/platform/createNotificationService.native.js +57 -0
  360. package/lib/module/platform/createNotificationService.native.js.map +1 -0
  361. package/lib/module/platform/dynamicModule.js +103 -0
  362. package/lib/module/platform/dynamicModule.js.map +1 -0
  363. package/lib/module/platform/types.js +2 -0
  364. package/lib/module/platform/types.js.map +1 -0
  365. package/lib/module/types.js +2 -0
  366. package/lib/module/types.js.map +1 -0
  367. package/lib/module/utils/expoPermissionGranted.js +24 -0
  368. package/lib/module/utils/expoPermissionGranted.js.map +1 -0
  369. package/lib/module/utils/fileTypeGuard.js +18 -0
  370. package/lib/module/utils/fileTypeGuard.js.map +1 -0
  371. package/lib/module/utils/nativePermissionGranted.js +15 -0
  372. package/lib/module/utils/nativePermissionGranted.js.map +1 -0
  373. package/lib/module/version.js +3 -0
  374. package/lib/module/version.js.map +1 -0
  375. package/lib/typescript/__template__/component/__domain__Header.d.ts +4 -0
  376. package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +3 -0
  377. package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +3 -0
  378. package/lib/typescript/__template__/component/__domain__View.d.ts +4 -0
  379. package/lib/typescript/__template__/create__domain__Fragment.d.ts +2 -0
  380. package/lib/typescript/__template__/index.d.ts +6 -0
  381. package/lib/typescript/__template__/module/create__domain__Module.d.ts +3 -0
  382. package/lib/typescript/__template__/module/moduleContext.d.ts +4 -0
  383. package/lib/typescript/__template__/types.d.ts +31 -0
  384. package/lib/typescript/src/InternalErrorBoundary.d.ts +18 -0
  385. package/lib/typescript/src/InternalLocalCacheStorage.d.ts +12 -0
  386. package/lib/typescript/src/SendbirdUIKitContainer.d.ts +42 -0
  387. package/lib/typescript/src/components/ChannelCover.d.ts +10 -0
  388. package/lib/typescript/src/components/ChatFlatList.d.ts +14 -0
  389. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +6 -0
  390. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +6 -0
  391. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +4 -0
  392. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +6 -0
  393. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +3 -0
  394. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +8 -0
  395. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +8 -0
  396. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +8 -0
  397. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +8 -0
  398. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +10 -0
  399. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +5 -0
  400. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +4 -0
  401. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +8 -0
  402. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +6 -0
  403. package/lib/typescript/src/components/MessageRenderer/index.d.ts +23 -0
  404. package/lib/typescript/src/components/NewMessagesButton.d.ts +9 -0
  405. package/lib/typescript/src/components/ProviderLayout.d.ts +3 -0
  406. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +7 -0
  407. package/lib/typescript/src/components/StatusComposition.d.ts +10 -0
  408. package/lib/typescript/src/components/TypedPlaceholder.d.ts +7 -0
  409. package/lib/typescript/src/components/UserActionBar.d.ts +11 -0
  410. package/lib/typescript/src/components/UserSelectableBar.d.ts +9 -0
  411. package/lib/typescript/src/constants.d.ts +1 -0
  412. package/lib/typescript/src/contexts/Localization.d.ts +12 -0
  413. package/lib/typescript/src/contexts/PlatformService.d.ts +10 -0
  414. package/lib/typescript/src/contexts/SendbirdChat.d.ts +24 -0
  415. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +4 -0
  416. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +11 -0
  417. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +9 -0
  418. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +9 -0
  419. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +36 -0
  420. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +3 -0
  421. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +3 -0
  422. package/lib/typescript/src/domain/groupChannel/index.d.ts +7 -0
  423. package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +3 -0
  424. package/lib/typescript/src/domain/groupChannel/module/moduleContext.d.ts +3 -0
  425. package/lib/typescript/src/domain/groupChannel/types.d.ts +102 -0
  426. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +4 -0
  427. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +4 -0
  428. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +3 -0
  429. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +3 -0
  430. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +4 -0
  431. package/lib/typescript/src/domain/groupChannelList/index.d.ts +7 -0
  432. package/lib/typescript/src/domain/groupChannelList/module/createGroupChannelListModule.d.ts +3 -0
  433. package/lib/typescript/src/domain/groupChannelList/module/moduleContext.d.ts +4 -0
  434. package/lib/typescript/src/domain/groupChannelList/types.d.ts +81 -0
  435. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +4 -0
  436. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +4 -0
  437. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +4 -0
  438. package/lib/typescript/src/domain/groupChannelSettings/index.d.ts +5 -0
  439. package/lib/typescript/src/domain/groupChannelSettings/module/createGroupChannelSettingsModule.d.ts +3 -0
  440. package/lib/typescript/src/domain/groupChannelSettings/module/moduleContext.d.ts +4 -0
  441. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +45 -0
  442. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +42 -0
  443. package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +10 -0
  444. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +11 -0
  445. package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +3 -0
  446. package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +3 -0
  447. package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +3 -0
  448. package/lib/typescript/src/domain/userList/index.d.ts +7 -0
  449. package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +3 -0
  450. package/lib/typescript/src/domain/userList/module/moduleContext.d.ts +4 -0
  451. package/lib/typescript/src/domain/userList/types.d.ts +58 -0
  452. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +4 -0
  453. package/lib/typescript/src/fragments/createGroupChannelFragment.d.ts +3 -0
  454. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +4 -0
  455. package/lib/typescript/src/fragments/createGroupChannelListFragment.d.ts +3 -0
  456. package/lib/typescript/src/fragments/createGroupChannelMembersFragment.d.ts +5 -0
  457. package/lib/typescript/src/fragments/createGroupChannelSettingsFragment.d.ts +3 -0
  458. package/lib/typescript/src/hooks/useConnection.d.ts +11 -0
  459. package/lib/typescript/src/hooks/useContext.d.ts +22 -0
  460. package/lib/typescript/src/hooks/usePushTokenRegistration.d.ts +5 -0
  461. package/lib/typescript/src/index.d.ts +50 -0
  462. package/lib/typescript/src/localization/StringSet.en.d.ts +2 -0
  463. package/lib/typescript/src/localization/StringSet.type.d.ts +157 -0
  464. package/lib/typescript/src/platform/createClipboardService.expo.d.ts +4 -0
  465. package/lib/typescript/src/platform/createClipboardService.native.d.ts +4 -0
  466. package/lib/typescript/src/platform/createFileService.expo.d.ts +12 -0
  467. package/lib/typescript/src/platform/createFileService.native.d.ts +14 -0
  468. package/lib/typescript/src/platform/createNotificationService.expo.d.ts +4 -0
  469. package/lib/typescript/src/platform/createNotificationService.native.d.ts +8 -0
  470. package/lib/typescript/src/platform/dynamicModule.d.ts +23 -0
  471. package/lib/typescript/src/platform/types.d.ts +47 -0
  472. package/lib/typescript/src/types.d.ts +20 -0
  473. package/lib/typescript/src/utils/expoPermissionGranted.d.ts +13 -0
  474. package/lib/typescript/src/utils/fileTypeGuard.d.ts +4 -0
  475. package/lib/typescript/src/utils/nativePermissionGranted.d.ts +3 -0
  476. package/lib/typescript/src/version.d.ts +2 -0
  477. package/package.json +154 -0
  478. package/src/InternalErrorBoundary.tsx +52 -0
  479. package/src/InternalLocalCacheStorage.ts +45 -0
  480. package/src/SendbirdUIKitContainer.tsx +183 -0
  481. package/src/components/ChannelCover.tsx +44 -0
  482. package/src/components/ChatFlatList.tsx +96 -0
  483. package/src/components/MessageRenderer/AdminMessage/index.tsx +40 -0
  484. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +48 -0
  485. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +39 -0
  486. package/src/components/MessageRenderer/FileMessage/index.tsx +17 -0
  487. package/src/components/MessageRenderer/MessageContainer.tsx +17 -0
  488. package/src/components/MessageRenderer/MessageDateSeparator.tsx +43 -0
  489. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +24 -0
  490. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +33 -0
  491. package/src/components/MessageRenderer/MessageOutgoingStatus.tsx +88 -0
  492. package/src/components/MessageRenderer/MessageTime.tsx +24 -0
  493. package/src/components/MessageRenderer/UnknownMessage/index.tsx +34 -0
  494. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +34 -0
  495. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +110 -0
  496. package/src/components/MessageRenderer/UserMessage/index.tsx +17 -0
  497. package/src/components/MessageRenderer/index.tsx +163 -0
  498. package/src/components/NewMessagesButton.tsx +52 -0
  499. package/src/components/ProviderLayout.tsx +17 -0
  500. package/src/components/ScrollToBottomButton.tsx +48 -0
  501. package/src/components/StatusComposition.tsx +16 -0
  502. package/src/components/TypedPlaceholder.tsx +48 -0
  503. package/src/components/UserActionBar.tsx +73 -0
  504. package/src/components/UserSelectableBar.tsx +58 -0
  505. package/src/constants.ts +1 -0
  506. package/src/contexts/Localization.tsx +17 -0
  507. package/src/contexts/PlatformService.tsx +23 -0
  508. package/src/contexts/SendbirdChat.tsx +110 -0
  509. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +52 -0
  510. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +92 -0
  511. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +141 -0
  512. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +72 -0
  513. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +308 -0
  514. package/src/domain/groupChannel/component/GroupChannelStatusEmpty.tsx +18 -0
  515. package/src/domain/groupChannel/component/GroupChannelStatusLoading.tsx +18 -0
  516. package/src/domain/groupChannel/index.ts +7 -0
  517. package/src/domain/groupChannel/module/createGroupChannelModule.tsx +21 -0
  518. package/src/domain/groupChannel/module/moduleContext.tsx +76 -0
  519. package/src/domain/groupChannel/types.ts +125 -0
  520. package/src/domain/groupChannelList/component/GroupChannelListHeader.tsx +20 -0
  521. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +75 -0
  522. package/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.tsx +18 -0
  523. package/src/domain/groupChannelList/component/GroupChannelListStatusLoading.tsx +18 -0
  524. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +114 -0
  525. package/src/domain/groupChannelList/index.ts +7 -0
  526. package/src/domain/groupChannelList/module/createGroupChannelListModule.tsx +21 -0
  527. package/src/domain/groupChannelList/module/moduleContext.tsx +40 -0
  528. package/src/domain/groupChannelList/types.ts +92 -0
  529. package/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.tsx +29 -0
  530. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +47 -0
  531. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +77 -0
  532. package/src/domain/groupChannelSettings/index.ts +5 -0
  533. package/src/domain/groupChannelSettings/module/createGroupChannelSettingsModule.tsx +17 -0
  534. package/src/domain/groupChannelSettings/module/moduleContext.tsx +146 -0
  535. package/src/domain/groupChannelSettings/types.ts +50 -0
  536. package/src/domain/groupChannelUserList/types.ts +50 -0
  537. package/src/domain/userList/component/UserListHeader.tsx +39 -0
  538. package/src/domain/userList/component/UserListList.tsx +36 -0
  539. package/src/domain/userList/component/UserListStatusEmpty.tsx +18 -0
  540. package/src/domain/userList/component/UserListStatusError.tsx +19 -0
  541. package/src/domain/userList/component/UserListStatusLoading.tsx +18 -0
  542. package/src/domain/userList/index.ts +7 -0
  543. package/src/domain/userList/module/createUserListModule.tsx +21 -0
  544. package/src/domain/userList/module/moduleContext.tsx +36 -0
  545. package/src/domain/userList/types.ts +65 -0
  546. package/src/fragments/createGroupChannelCreateFragment.tsx +136 -0
  547. package/src/fragments/createGroupChannelFragment.tsx +153 -0
  548. package/src/fragments/createGroupChannelInviteFragment.tsx +127 -0
  549. package/src/fragments/createGroupChannelListFragment.tsx +113 -0
  550. package/src/fragments/createGroupChannelMembersFragment.tsx +112 -0
  551. package/src/fragments/createGroupChannelSettingsFragment.tsx +56 -0
  552. package/src/hooks/useConnection.ts +82 -0
  553. package/src/hooks/useContext.ts +25 -0
  554. package/src/hooks/usePushTokenRegistration.ts +64 -0
  555. package/src/index.ts +104 -0
  556. package/src/localization/StringSet.en.ts +7 -0
  557. package/src/localization/StringSet.type.ts +334 -0
  558. package/src/platform/createClipboardService.expo.ts +16 -0
  559. package/src/platform/createClipboardService.native.ts +16 -0
  560. package/src/platform/createFileService.expo.ts +142 -0
  561. package/src/platform/createFileService.native.ts +191 -0
  562. package/src/platform/createNotificationService.expo.ts +36 -0
  563. package/src/platform/createNotificationService.native.ts +60 -0
  564. package/src/platform/dynamicModule.ts +110 -0
  565. package/src/platform/types.ts +51 -0
  566. package/src/types.ts +18 -0
  567. package/src/utils/expoPermissionGranted.ts +39 -0
  568. package/src/utils/fileTypeGuard.ts +10 -0
  569. package/src/utils/nativePermissionGranted.ts +14 -0
  570. package/src/version.ts +2 -0
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.SendbirdUIKit = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
+
14
+ var _sendbird = _interopRequireDefault(require("sendbird"));
15
+
16
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
17
+
18
+ var _InternalErrorBoundary = _interopRequireDefault(require("./InternalErrorBoundary"));
19
+
20
+ var _InternalLocalCacheStorage = _interopRequireDefault(require("./InternalLocalCacheStorage"));
21
+
22
+ var _Localization = require("./contexts/Localization");
23
+
24
+ var _PlatformService = require("./contexts/PlatformService");
25
+
26
+ var _SendbirdChat = require("./contexts/SendbirdChat");
27
+
28
+ var _useContext = require("./hooks/useContext");
29
+
30
+ var _StringSet = _interopRequireDefault(require("./localization/StringSet.en"));
31
+
32
+ var _dynamicModule = _interopRequireDefault(require("./platform/dynamicModule"));
33
+
34
+ var _version = _interopRequireDefault(require("./version"));
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
42
+ const NetInfo = _dynamicModule.default.get('@react-native-community/netinfo', 'warn');
43
+
44
+ const SendbirdUIKit = Object.freeze({
45
+ VERSION: _version.default,
46
+ PLATFORM: _reactNative.Platform.OS.toLowerCase()
47
+ });
48
+ exports.SendbirdUIKit = SendbirdUIKit;
49
+
50
+ const SendbirdUIKitContainer = _ref => {
51
+ let {
52
+ children,
53
+ appId,
54
+ chatOptions,
55
+ platformServices,
56
+ localization,
57
+ styles,
58
+ toast,
59
+ errorBoundary
60
+ } = _ref;
61
+ const unsubscribes = (0, _react.useRef)([]).current;
62
+
63
+ const getSendbirdSDK = () => {
64
+ let sdk;
65
+
66
+ if (chatOptions !== null && chatOptions !== void 0 && chatOptions.localCacheStorage) {
67
+ sdk = new _sendbird.default({
68
+ appId,
69
+ localCacheEnabled: true
70
+ });
71
+ sdk.useAsyncStorageAsDatabase(new _InternalLocalCacheStorage.default(chatOptions.localCacheStorage));
72
+ } else {
73
+ sdk = new _sendbird.default({
74
+ appId
75
+ });
76
+ }
77
+
78
+ if (chatOptions !== null && chatOptions !== void 0 && chatOptions.onInitialized) {
79
+ sdk = chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.onInitialized(sdk);
80
+ }
81
+
82
+ if (SendbirdUIKit.VERSION) {
83
+ // @ts-ignore
84
+ sdk.addExtension('sb_uikit', SendbirdUIKit.VERSION);
85
+ }
86
+
87
+ if (SendbirdUIKit.PLATFORM) {
88
+ // @ts-ignore
89
+ sdk.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);
90
+ }
91
+
92
+ if (NetInfo) {
93
+ var _sdk$setOnlineListene, _sdk, _sdk$setOfflineListen, _sdk2;
94
+
95
+ const listener = (callback, callbackType) => {
96
+ const unsubscribe = NetInfo.addEventListener(state => {
97
+ const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);
98
+ if (online && callbackType === 'online') callback();
99
+ if (!online && callbackType === 'offline') callback();
100
+ });
101
+ unsubscribes.push(unsubscribe);
102
+ return unsubscribe;
103
+ };
104
+
105
+ (_sdk$setOnlineListene = (_sdk = sdk).setOnlineListener) === null || _sdk$setOnlineListene === void 0 ? void 0 : _sdk$setOnlineListene.call(_sdk, onOnline => listener(onOnline, 'online'));
106
+ (_sdk$setOfflineListen = (_sdk2 = sdk).setOfflineListener) === null || _sdk$setOfflineListen === void 0 ? void 0 : _sdk$setOfflineListen.call(_sdk2, onOffline => listener(onOffline, 'offline'));
107
+ }
108
+
109
+ return sdk;
110
+ };
111
+
112
+ const [sdkInstance, setSdkInstance] = (0, _react.useState)(getSendbirdSDK);
113
+ (0, _react.useEffect)(() => {
114
+ setSdkInstance(getSendbirdSDK);
115
+ return () => {
116
+ unsubscribes.forEach(u => {
117
+ try {
118
+ u();
119
+ } catch {}
120
+ });
121
+ };
122
+ }, [appId, chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.localCacheStorage]);
123
+ return /*#__PURE__*/_react.default.createElement(_reactNativeSafeAreaContext.SafeAreaProvider, null, /*#__PURE__*/_react.default.createElement(_SendbirdChat.SendbirdChatProvider, {
124
+ sdkInstance: sdkInstance,
125
+ enableAutoPushTokenRegistration: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableAutoPushTokenRegistration) ?? true
126
+ }, /*#__PURE__*/_react.default.createElement(_Localization.LocalizationProvider, {
127
+ stringSet: (localization === null || localization === void 0 ? void 0 : localization.stringSet) ?? _StringSet.default
128
+ }, /*#__PURE__*/_react.default.createElement(_PlatformService.PlatformServiceProvider, {
129
+ fileService: platformServices.file,
130
+ notificationService: platformServices.notification,
131
+ clipboardService: platformServices.clipboard
132
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.UIKitThemeProvider, {
133
+ theme: (styles === null || styles === void 0 ? void 0 : styles.theme) ?? _uikitReactNativeFoundation.LightUIKitTheme
134
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.HeaderStyleProvider, {
135
+ HeaderComponent: (styles === null || styles === void 0 ? void 0 : styles.HeaderComponent) ?? _uikitReactNativeFoundation.Header,
136
+ defaultTitleAlign: (styles === null || styles === void 0 ? void 0 : styles.defaultHeaderTitleAlign) ?? 'left',
137
+ statusBarTranslucent: (styles === null || styles === void 0 ? void 0 : styles.statusBarTranslucent) ?? true
138
+ }, /*#__PURE__*/_react.default.createElement(LocalizedDialogProvider, null, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ToastProvider, {
139
+ dismissTimeout: toast === null || toast === void 0 ? void 0 : toast.dismissTimeout
140
+ }, /*#__PURE__*/_react.default.createElement(_InternalErrorBoundary.default, errorBoundary, children)))))))));
141
+ };
142
+
143
+ const LocalizedDialogProvider = _ref2 => {
144
+ let {
145
+ children
146
+ } = _ref2;
147
+ const {
148
+ STRINGS
149
+ } = (0, _useContext.useLocalization)();
150
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.DialogProvider, {
151
+ defaultLabels: {
152
+ alert: {
153
+ ok: STRINGS.DIALOG.ALERT_DEFAULT_OK
154
+ },
155
+ prompt: {
156
+ ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,
157
+ cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,
158
+ placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER
159
+ }
160
+ }
161
+ }, children);
162
+ };
163
+
164
+ var _default = SendbirdUIKitContainer;
165
+ exports.default = _default;
166
+ //# sourceMappingURL=SendbirdUIKitContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NetInfo","SBUDynamicModule","get","SendbirdUIKit","Object","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","SendbirdUIKitContainer","children","appId","chatOptions","platformServices","localization","styles","toast","errorBoundary","unsubscribes","useRef","current","getSendbirdSDK","sdk","localCacheStorage","Sendbird","localCacheEnabled","useAsyncStorageAsDatabase","InternalLocalCacheStorage","onInitialized","addExtension","listener","callback","callbackType","unsubscribe","addEventListener","state","online","Boolean","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","sdkInstance","setSdkInstance","useState","useEffect","forEach","u","enableAutoPushTokenRegistration","stringSet","StringSetEn","file","notification","clipboard","theme","LightUIKitTheme","HeaderComponent","Header","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","LocalizedDialogProvider","STRINGS","useLocalization","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\nimport Sendbird from 'sendbird';\n\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nimport InternalErrorBoundary from './InternalErrorBoundary';\nimport InternalLocalCacheStorage from './InternalLocalCacheStorage';\nimport { LocalizationProvider } from './contexts/Localization';\nimport { PlatformServiceProvider } from './contexts/PlatformService';\nimport { SendbirdChatProvider } from './contexts/SendbirdChat';\nimport { useLocalization } from './hooks/useContext';\nimport StringSetEn from './localization/StringSet.en';\nimport type { StringSet } from './localization/StringSet.type';\nimport SBUDynamicModule from './platform/dynamicModule';\nimport type { ClipboardServiceInterface, FileServiceInterface, NotificationServiceInterface } from './platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from './types';\nimport VERSION from './version';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\n\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n});\n\nexport type SendbirdUIKitContainerProps = {\n children?: React.ReactNode;\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n };\n chatOptions?: {\n localCacheStorage?: LocalCacheStorage;\n enableAutoPushTokenRegistration?: boolean;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n };\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n toast?: {\n dismissTimeout?: number;\n };\n errorBoundary?: {\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n};\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n platformServices,\n localization,\n styles,\n toast,\n errorBoundary,\n}: SendbirdUIKitContainerProps) => {\n const unsubscribes = useRef<(() => void)[]>([]).current;\n const getSendbirdSDK = () => {\n let sdk: SendbirdChatSDK;\n\n if (chatOptions?.localCacheStorage) {\n sdk = new Sendbird({ appId, localCacheEnabled: true });\n sdk.useAsyncStorageAsDatabase(new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n } else {\n sdk = new Sendbird({ appId });\n }\n\n if (chatOptions?.onInitialized) {\n sdk = chatOptions?.onInitialized(sdk);\n }\n\n if (SendbirdUIKit.VERSION) {\n // @ts-ignore\n sdk.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n if (SendbirdUIKit.PLATFORM) {\n // @ts-ignore\n sdk.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo) {\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n sdk.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n sdk.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return sdk;\n };\n\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(getSendbirdSDK);\n\n useEffect(() => {\n setSdkInstance(getSendbirdSDK);\n return () => {\n unsubscribes.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, chatOptions?.localCacheStorage]);\n\n return (\n <SafeAreaProvider>\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n enableAutoPushTokenRegistration={chatOptions?.enableAutoPushTokenRegistration ?? true}\n >\n <LocalizationProvider stringSet={localization?.stringSet ?? StringSetEn}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <LocalizedDialogProvider>\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <InternalErrorBoundary {...errorBoundary}>{children}</InternalErrorBoundary>\n </ToastProvider>\n </LocalizedDialogProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </SafeAreaProvider>\n );\n};\n\nconst LocalizedDialogProvider: React.FC = ({ children }) => {\n const { STRINGS } = useLocalization();\n return (\n <DialogProvider\n defaultLabels={{\n alert: {\n ok: STRINGS.DIALOG.ALERT_DEFAULT_OK,\n },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {children}\n </DialogProvider>\n );\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
11
+
12
+ var _uikitUtils = require("@sendbird/uikit-utils");
13
+
14
+ var _useContext = require("../hooks/useContext");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+
20
+ const ChannelCover = _ref => {
21
+ let {
22
+ channel,
23
+ ...avatarProps
24
+ } = _ref;
25
+ const {
26
+ currentUser
27
+ } = (0, _useContext.useSendbirdChat)(); // channel cover
28
+
29
+ if (!(0, _uikitUtils.isDefaultCoverImage)(channel.coverUrl) || !currentUser) {
30
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Avatar, _extends({
31
+ uri: channel.coverUrl
32
+ }, avatarProps));
33
+ } // no members, use anonymous profile
34
+
35
+
36
+ if (channel.memberCount <= 1) {
37
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Avatar, avatarProps);
38
+ } // 1:1, use member profile
39
+
40
+
41
+ if (channel.memberCount === 2) {
42
+ var _channel$members$filt, _channel$members$filt2;
43
+
44
+ const otherUserProfile = (_channel$members$filt = channel.members.filter(m => m.userId !== currentUser.userId)) === null || _channel$members$filt === void 0 ? void 0 : (_channel$members$filt2 = _channel$members$filt[0]) === null || _channel$members$filt2 === void 0 ? void 0 : _channel$members$filt2.profileUrl;
45
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Avatar, _extends({
46
+ uri: otherUserProfile
47
+ }, avatarProps));
48
+ } // group, use members profile
49
+
50
+
51
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Avatar.Group, avatarProps, (0, _uikitUtils.getMembersExcludeMe)(channel, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId).map(m => /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Avatar, {
52
+ key: m.userId,
53
+ uri: m.profileUrl
54
+ })));
55
+ };
56
+
57
+ var _default = ChannelCover;
58
+ exports.default = _default;
59
+ //# sourceMappingURL=ChannelCover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ChannelCover","channel","avatarProps","currentUser","useSendbirdChat","isDefaultCoverImage","coverUrl","memberCount","otherUserProfile","members","filter","m","userId","profileUrl","getMembersExcludeMe","map"],"sources":["ChannelCover.tsx"],"sourcesContent":["import React from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport { Avatar } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdGroupChannel, getMembersExcludeMe, isDefaultCoverImage } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\n\ntype Props = {\n channel: SendbirdGroupChannel;\n size?: number;\n containerStyle?: StyleProp<ViewStyle>;\n};\n\nconst ChannelCover: React.FC<Props> = ({ channel, ...avatarProps }) => {\n const { currentUser } = useSendbirdChat();\n\n // channel cover\n if (!isDefaultCoverImage(channel.coverUrl) || !currentUser) {\n return <Avatar uri={channel.coverUrl} {...avatarProps} />;\n }\n\n // no members, use anonymous profile\n if (channel.memberCount <= 1) {\n return <Avatar {...avatarProps} />;\n }\n\n // 1:1, use member profile\n if (channel.memberCount === 2) {\n const otherUserProfile = channel.members.filter((m) => m.userId !== currentUser.userId)?.[0]?.profileUrl;\n return <Avatar uri={otherUserProfile} {...avatarProps} />;\n }\n\n // group, use members profile\n return (\n <Avatar.Group {...avatarProps}>\n {getMembersExcludeMe(channel, currentUser?.userId).map((m) => (\n <Avatar key={m.userId} uri={m.profileUrl} />\n ))}\n </Avatar.Group>\n );\n};\n\nexport default ChannelCover;\n"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;AAEA;;;;;;AAQA,MAAMA,YAA6B,GAAG,QAAiC;EAAA,IAAhC;IAAEC,OAAF;IAAW,GAAGC;EAAd,CAAgC;EACrE,MAAM;IAAEC;EAAF,IAAkB,IAAAC,2BAAA,GAAxB,CADqE,CAGrE;;EACA,IAAI,CAAC,IAAAC,+BAAA,EAAoBJ,OAAO,CAACK,QAA5B,CAAD,IAA0C,CAACH,WAA/C,EAA4D;IAC1D,oBAAO,6BAAC,kCAAD;MAAQ,GAAG,EAAEF,OAAO,CAACK;IAArB,GAAmCJ,WAAnC,EAAP;EACD,CANoE,CAQrE;;;EACA,IAAID,OAAO,CAACM,WAAR,IAAuB,CAA3B,EAA8B;IAC5B,oBAAO,6BAAC,kCAAD,EAAYL,WAAZ,CAAP;EACD,CAXoE,CAarE;;;EACA,IAAID,OAAO,CAACM,WAAR,KAAwB,CAA5B,EAA+B;IAAA;;IAC7B,MAAMC,gBAAgB,4BAAGP,OAAO,CAACQ,OAAR,CAAgBC,MAAhB,CAAwBC,CAAD,IAAOA,CAAC,CAACC,MAAF,KAAaT,WAAW,CAACS,MAAvD,CAAH,oFAAG,sBAAiE,CAAjE,CAAH,2DAAG,uBAAqEC,UAA9F;IACA,oBAAO,6BAAC,kCAAD;MAAQ,GAAG,EAAEL;IAAb,GAAmCN,WAAnC,EAAP;EACD,CAjBoE,CAmBrE;;;EACA,oBACE,6BAAC,kCAAD,CAAQ,KAAR,EAAkBA,WAAlB,EACG,IAAAY,+BAAA,EAAoBb,OAApB,EAA6BE,WAA7B,aAA6BA,WAA7B,uBAA6BA,WAAW,CAAES,MAA1C,EAAkDG,GAAlD,CAAuDJ,CAAD,iBACrD,6BAAC,kCAAD;IAAQ,GAAG,EAAEA,CAAC,CAACC,MAAf;IAAuB,GAAG,EAAED,CAAC,CAACE;EAA9B,EADD,CADH,CADF;AAOD,CA3BD;;eA6Beb,Y"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
13
+
14
+ var _uikitUtils = require("@sendbird/uikit-utils");
15
+
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+
22
+ let ANDROID_BUG_ALERT_SHOWED = _reactNative.Platform.OS !== 'android';
23
+ const BOTTOM_DETECT_THRESHOLD = 25; // const AUTO_SCROLL_TO_TOP_THRESHOLD = 15;
24
+
25
+ function hasReachedToBottom(yPos) {
26
+ let thresholdPx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
27
+ return thresholdPx >= yPos;
28
+ }
29
+
30
+ // FIXME: Inverted FlatList performance issue on Android {@link https://github.com/facebook/react-native/issues/30034}
31
+ const ChatFlatList = /*#__PURE__*/(0, _react.forwardRef)(function CustomFlatList(_ref, ref) {
32
+ var _props$data;
33
+
34
+ let {
35
+ onTopReached,
36
+ nextMessages,
37
+ onBottomReached,
38
+ onLeaveScrollBottom,
39
+ onScroll,
40
+ currentUserId,
41
+ ...props
42
+ } = _ref;
43
+ const {
44
+ select
45
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
46
+ const scrollRef = (0, _react.useRef)(null);
47
+ const yPos = (0, _react.useRef)(0);
48
+ (0, _react.useImperativeHandle)(ref, () => ({
49
+ scrollToBottom: function () {
50
+ var _scrollRef$current;
51
+
52
+ let animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
53
+ return (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollToOffset({
54
+ animated,
55
+ offset: 0
56
+ });
57
+ }
58
+ }), []);
59
+ (0, _react.useEffect)(() => {
60
+ const latestMessage = nextMessages[nextMessages.length - 1];
61
+ if (!latestMessage) return;
62
+
63
+ if (hasReachedToBottom(yPos.current)) {
64
+ onBottomReached();
65
+ } else if ((0, _uikitUtils.isMyMessage)(latestMessage, currentUserId)) {
66
+ var _scrollRef$current2;
67
+
68
+ (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.scrollToOffset({
69
+ animated: false,
70
+ offset: 0
71
+ });
72
+ }
73
+ }, [onBottomReached, nextMessages, currentUserId]);
74
+
75
+ const _onScroll = (0, _react.useCallback)(event => {
76
+ const {
77
+ contentOffset
78
+ } = event.nativeEvent;
79
+
80
+ if (BOTTOM_DETECT_THRESHOLD < yPos.current && contentOffset.y <= BOTTOM_DETECT_THRESHOLD) {
81
+ onLeaveScrollBottom(false);
82
+ } else if (BOTTOM_DETECT_THRESHOLD < contentOffset.y && yPos.current <= BOTTOM_DETECT_THRESHOLD) {
83
+ onLeaveScrollBottom(true);
84
+ }
85
+
86
+ yPos.current = contentOffset.y;
87
+ onScroll === null || onScroll === void 0 ? void 0 : onScroll(event);
88
+ if (hasReachedToBottom(yPos.current)) onBottomReached();
89
+ }, [onScroll, onBottomReached]);
90
+
91
+ if (__DEV__ && !ANDROID_BUG_ALERT_SHOWED) {
92
+ ANDROID_BUG_ALERT_SHOWED = true; // eslint-disable-next-line no-console
93
+
94
+ console.warn('UIKit Warning: Inverted FlatList has a performance issue on Android, Maybe this is a bug please refer link\nhttps://github.com/facebook/react-native/issues/30034');
95
+ }
96
+
97
+ return /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, _extends({}, props, {
98
+ // FIXME: inverted list of ListEmptyComponent is reversed {@link https://github.com/facebook/react-native/issues/21196#issuecomment-836937743}
99
+ inverted: Boolean((_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length) // FIXME: maintainVisibleContentPosition is not working on Android {@link https://github.com/facebook/react-native/issues/25239}
100
+ // maintainVisibleContentPosition={{ minIndexForVisible: 1, autoscrollToTopThreshold: AUTO_SCROLL_TO_TOP_THRESHOLD }}
101
+ ,
102
+ ref: scrollRef,
103
+ bounces: false,
104
+ keyboardShouldPersistTaps: 'handled',
105
+ indicatorStyle: select({
106
+ light: 'black',
107
+ dark: 'white'
108
+ }),
109
+ removeClippedSubviews: true,
110
+ onEndReachedThreshold: 0.5,
111
+ onEndReached: onTopReached,
112
+ scrollEventThrottle: 16,
113
+ onScroll: _onScroll
114
+ }));
115
+ });
116
+ var _default = ChatFlatList;
117
+ exports.default = _default;
118
+ //# sourceMappingURL=ChatFlatList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ANDROID_BUG_ALERT_SHOWED","Platform","OS","BOTTOM_DETECT_THRESHOLD","hasReachedToBottom","yPos","thresholdPx","ChatFlatList","forwardRef","CustomFlatList","ref","onTopReached","nextMessages","onBottomReached","onLeaveScrollBottom","onScroll","currentUserId","props","select","useUIKitTheme","scrollRef","useRef","useImperativeHandle","scrollToBottom","animated","current","scrollToOffset","offset","useEffect","latestMessage","length","isMyMessage","_onScroll","useCallback","event","contentOffset","nativeEvent","y","__DEV__","console","warn","Boolean","data","light","dark"],"sources":["ChatFlatList.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';\nimport { FlatList, FlatListProps, Platform } from 'react-native';\n\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdMessage, isMyMessage } from '@sendbird/uikit-utils';\n\nlet ANDROID_BUG_ALERT_SHOWED = Platform.OS !== 'android';\nconst BOTTOM_DETECT_THRESHOLD = 25;\n// const AUTO_SCROLL_TO_TOP_THRESHOLD = 15;\n\nfunction hasReachedToBottom(yPos: number, thresholdPx = 0) {\n return thresholdPx >= yPos;\n}\n\nexport type ChatFlatListRef = { scrollToBottom: (animated?: boolean) => void };\ntype Props = Omit<FlatListProps<SendbirdMessage>, 'onEndReached'> & {\n currentUserId?: string;\n onBottomReached: () => void;\n onTopReached: () => void;\n nextMessages: SendbirdMessage[];\n onLeaveScrollBottom: (value: boolean) => void;\n};\n// FIXME: Inverted FlatList performance issue on Android {@link https://github.com/facebook/react-native/issues/30034}\nconst ChatFlatList = forwardRef<ChatFlatListRef, Props>(function CustomFlatList(\n { onTopReached, nextMessages, onBottomReached, onLeaveScrollBottom, onScroll, currentUserId, ...props },\n ref,\n) {\n const { select } = useUIKitTheme();\n const scrollRef = useRef<FlatList<SendbirdMessage>>(null);\n const yPos = useRef(0);\n\n useImperativeHandle(\n ref,\n () => ({\n scrollToBottom: (animated = true) => scrollRef.current?.scrollToOffset({ animated, offset: 0 }),\n }),\n [],\n );\n\n useEffect(() => {\n const latestMessage = nextMessages[nextMessages.length - 1];\n if (!latestMessage) return;\n\n if (hasReachedToBottom(yPos.current)) {\n onBottomReached();\n } else if (isMyMessage(latestMessage, currentUserId)) {\n scrollRef.current?.scrollToOffset({ animated: false, offset: 0 });\n }\n }, [onBottomReached, nextMessages, currentUserId]);\n\n const _onScroll: Props['onScroll'] = useCallback(\n (event) => {\n const { contentOffset } = event.nativeEvent;\n if (BOTTOM_DETECT_THRESHOLD < yPos.current && contentOffset.y <= BOTTOM_DETECT_THRESHOLD) {\n onLeaveScrollBottom(false);\n } else if (BOTTOM_DETECT_THRESHOLD < contentOffset.y && yPos.current <= BOTTOM_DETECT_THRESHOLD) {\n onLeaveScrollBottom(true);\n }\n\n yPos.current = contentOffset.y;\n\n onScroll?.(event);\n if (hasReachedToBottom(yPos.current)) onBottomReached();\n },\n [onScroll, onBottomReached],\n );\n\n if (__DEV__ && !ANDROID_BUG_ALERT_SHOWED) {\n ANDROID_BUG_ALERT_SHOWED = true;\n // eslint-disable-next-line no-console\n console.warn(\n 'UIKit Warning: Inverted FlatList has a performance issue on Android, Maybe this is a bug please refer link\\nhttps://github.com/facebook/react-native/issues/30034',\n );\n }\n\n return (\n <FlatList\n {...props}\n // FIXME: inverted list of ListEmptyComponent is reversed {@link https://github.com/facebook/react-native/issues/21196#issuecomment-836937743}\n inverted={Boolean(props.data?.length)}\n // FIXME: maintainVisibleContentPosition is not working on Android {@link https://github.com/facebook/react-native/issues/25239}\n // maintainVisibleContentPosition={{ minIndexForVisible: 1, autoscrollToTopThreshold: AUTO_SCROLL_TO_TOP_THRESHOLD }}\n ref={scrollRef}\n bounces={false}\n keyboardShouldPersistTaps={'handled'}\n indicatorStyle={select({ light: 'black', dark: 'white' })}\n removeClippedSubviews\n onEndReachedThreshold={0.5}\n onEndReached={onTopReached}\n scrollEventThrottle={16}\n onScroll={_onScroll}\n />\n );\n});\n\nexport default ChatFlatList;\n"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ const AdminMessage = _ref => {
17
+ let {
18
+ message,
19
+ nextMessage
20
+ } = _ref;
21
+ const {
22
+ colors
23
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
24
+ const isNextAdmin = nextMessage === null || nextMessage === void 0 ? void 0 : nextMessage.isAdminMessage();
25
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
26
+ style: _reactNative.StyleSheet.flatten([styles.container, isNextAdmin ? styles.nextAdminType : styles.next])
27
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
28
+ caption2: true,
29
+ color: colors.onBackground02,
30
+ style: styles.text
31
+ }, message.message));
32
+ };
33
+
34
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
35
+ container: {
36
+ width: 300,
37
+ alignSelf: 'center',
38
+ alignItems: 'center'
39
+ },
40
+ nextAdminType: {
41
+ marginBottom: 8
42
+ },
43
+ next: {
44
+ marginBottom: 16
45
+ },
46
+ text: {
47
+ textAlign: 'center'
48
+ }
49
+ });
50
+ var _default = AdminMessage;
51
+ exports.default = _default;
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdminMessage","message","nextMessage","colors","useUIKitTheme","isNextAdmin","isAdminMessage","StyleSheet","flatten","styles","container","nextAdminType","next","onBackground02","text","createStyleSheet","width","alignSelf","alignItems","marginBottom","textAlign"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdAdminMessage } from '@sendbird/uikit-utils';\n\nimport type { MessageRendererInterface } from '../index';\n\nexport type AdminMessageProps = MessageRendererInterface<SendbirdAdminMessage>;\nconst AdminMessage: React.FC<AdminMessageProps> = ({ message, nextMessage }) => {\n const { colors } = useUIKitTheme();\n\n const isNextAdmin = nextMessage?.isAdminMessage();\n return (\n <View style={StyleSheet.flatten([styles.container, isNextAdmin ? styles.nextAdminType : styles.next])}>\n <Text caption2 color={colors.onBackground02} style={styles.text}>\n {message.message}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 300,\n alignSelf: 'center',\n alignItems: 'center',\n },\n nextAdminType: {\n marginBottom: 8,\n },\n next: {\n marginBottom: 16,\n },\n text: {\n textAlign: 'center',\n },\n});\n\nexport default AdminMessage;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAMA,MAAMA,YAAyC,GAAG,QAA8B;EAAA,IAA7B;IAAEC,OAAF;IAAWC;EAAX,CAA6B;EAC9E,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EAEA,MAAMC,WAAW,GAAGH,WAAH,aAAGA,WAAH,uBAAGA,WAAW,CAAEI,cAAb,EAApB;EACA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEC,uBAAA,CAAWC,OAAX,CAAmB,CAACC,MAAM,CAACC,SAAR,EAAmBL,WAAW,GAAGI,MAAM,CAACE,aAAV,GAA0BF,MAAM,CAACG,IAA/D,CAAnB;EAAb,gBACE,6BAAC,gCAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAET,MAAM,CAACU,cAA7B;IAA6C,KAAK,EAAEJ,MAAM,CAACK;EAA3D,GACGb,OAAO,CAACA,OADX,CADF,CADF;AAOD,CAXD;;AAaA,MAAMQ,MAAM,GAAG,IAAAM,4CAAA,EAAiB;EAC9BL,SAAS,EAAE;IACTM,KAAK,EAAE,GADE;IAETC,SAAS,EAAE,QAFF;IAGTC,UAAU,EAAE;EAHH,CADmB;EAM9BP,aAAa,EAAE;IACbQ,YAAY,EAAE;EADD,CANe;EAS9BP,IAAI,EAAE;IACJO,YAAY,EAAE;EADV,CATwB;EAY9BL,IAAI,EAAE;IACJM,SAAS,EAAE;EADP;AAZwB,CAAjB,CAAf;eAiBepB,Y"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
13
+
14
+ var _useContext = require("../../../hooks/useContext");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const iconMapper = {
19
+ audio: 'file-audio',
20
+ image: 'photo',
21
+ video: 'play',
22
+ file: 'file-document'
23
+ };
24
+
25
+ const BaseFileMessage = _ref => {
26
+ let {
27
+ message,
28
+ variant,
29
+ pressed,
30
+ type
31
+ } = _ref;
32
+ const {
33
+ STRINGS
34
+ } = (0, _useContext.useLocalization)();
35
+ const {
36
+ colors
37
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
38
+ const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];
39
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
40
+ style: [styles.container, {
41
+ backgroundColor: color.background
42
+ }]
43
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
44
+ icon: iconMapper[type],
45
+ size: 24,
46
+ containerStyle: {
47
+ backgroundColor: colors.background,
48
+ padding: 2,
49
+ borderRadius: 8,
50
+ marginRight: 8
51
+ }
52
+ }), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
53
+ body3: true,
54
+ ellipsizeMode: 'middle',
55
+ numberOfLines: 1,
56
+ color: color.textMsg,
57
+ style: styles.name
58
+ }, STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message)));
59
+ };
60
+
61
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
62
+ container: {
63
+ flexDirection: 'row',
64
+ alignItems: 'center',
65
+ justifyContent: 'center',
66
+ paddingHorizontal: 12,
67
+ paddingVertical: 6,
68
+ borderRadius: 16
69
+ },
70
+ name: {
71
+ flexShrink: 1
72
+ }
73
+ });
74
+ var _default = BaseFileMessage;
75
+ exports.default = _default;
76
+ //# sourceMappingURL=BaseFileMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["iconMapper","audio","image","video","file","BaseFileMessage","message","variant","pressed","type","STRINGS","useLocalization","colors","useUIKitTheme","color","ui","styles","container","backgroundColor","background","padding","borderRadius","marginRight","textMsg","name","GROUP_CHANNEL","MESSAGE_BUBBLE_FILE_TITLE","createStyleSheet","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingVertical","flexShrink"],"sources":["BaseFileMessage.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { FileMessageProps } from './index';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\nconst BaseFileMessage: React.FC<FileMessageProps & { type: 'image' | 'audio' | 'video' | 'file' }> = ({\n message,\n variant,\n pressed,\n type,\n}) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <Icon\n icon={iconMapper[type]}\n size={24}\n containerStyle={{ backgroundColor: colors.background, padding: 2, borderRadius: 8, marginRight: 8 }}\n />\n <Text body3 ellipsizeMode={'middle'} numberOfLines={1} color={color.textMsg} style={styles.name}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message)}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n },\n name: {\n flexShrink: 1,\n },\n});\n\nexport default BaseFileMessage;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAGA,MAAMA,UAAU,GAAG;EAAEC,KAAK,EAAE,YAAT;EAAuBC,KAAK,EAAE,OAA9B;EAAuCC,KAAK,EAAE,MAA9C;EAAsDC,IAAI,EAAE;AAA5D,CAAnB;;AAEA,MAAMC,eAA4F,GAAG,QAK/F;EAAA,IALgG;IACpGC,OADoG;IAEpGC,OAFoG;IAGpGC,OAHoG;IAIpGC;EAJoG,CAKhG;EACJ,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUT,OAAV,CAAkBC,OAAlB,EAA2BC,OAAO,GAAG,SAAH,GAAe,SAAjD,CAAd;EACA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACQ,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEJ,KAAK,CAACK;IAAzB,CAAnB;EAAb,gBACE,6BAAC,gCAAD;IACE,IAAI,EAAEnB,UAAU,CAACS,IAAD,CADlB;IAEE,IAAI,EAAE,EAFR;IAGE,cAAc,EAAE;MAAES,eAAe,EAAEN,MAAM,CAACO,UAA1B;MAAsCC,OAAO,EAAE,CAA/C;MAAkDC,YAAY,EAAE,CAAhE;MAAmEC,WAAW,EAAE;IAAhF;EAHlB,EADF,eAME,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,aAAa,EAAE,QAA3B;IAAqC,aAAa,EAAE,CAApD;IAAuD,KAAK,EAAER,KAAK,CAACS,OAApE;IAA6E,KAAK,EAAEP,MAAM,CAACQ;EAA3F,GACGd,OAAO,CAACe,aAAR,CAAsBC,yBAAtB,CAAgDpB,OAAhD,CADH,CANF,CADF;AAYD,CArBD;;AAuBA,MAAMU,MAAM,GAAG,IAAAW,4CAAA,EAAiB;EAC9BV,SAAS,EAAE;IACTW,aAAa,EAAE,KADN;IAETC,UAAU,EAAE,QAFH;IAGTC,cAAc,EAAE,QAHP;IAITC,iBAAiB,EAAE,EAJV;IAKTC,eAAe,EAAE,CALR;IAMTX,YAAY,EAAE;EANL,CADmB;EAS9BG,IAAI,EAAE;IACJS,UAAU,EAAE;EADR;AATwB,CAAjB,CAAf;eAce5B,e"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
11
+
12
+ var _uikitUtils = require("@sendbird/uikit-utils");
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ const ImageFileMessage = _ref => {
19
+ let {
20
+ message
21
+ } = _ref;
22
+ const {
23
+ colors
24
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
25
+ const [imageNotFound, setImageNotFound] = (0, _react.useState)(false);
26
+ const fileUrl = (0, _uikitUtils.getAvailableUriFromFileMessage)(message);
27
+ const style = [styles.image, {
28
+ backgroundColor: colors.onBackground04
29
+ }];
30
+
31
+ if (imageNotFound) {
32
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
33
+ containerStyle: style,
34
+ icon: 'thumbnail-none',
35
+ size: 48,
36
+ color: colors.onBackground02
37
+ });
38
+ }
39
+
40
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Image, {
41
+ source: {
42
+ uri: fileUrl
43
+ },
44
+ style: style,
45
+ resizeMode: 'cover',
46
+ resizeMethod: 'resize',
47
+ onError: () => setImageNotFound(true)
48
+ });
49
+ };
50
+
51
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
52
+ image: {
53
+ width: 240,
54
+ maxWidth: 240,
55
+ height: 160,
56
+ borderRadius: 16
57
+ }
58
+ });
59
+ var _default = ImageFileMessage;
60
+ exports.default = _default;
61
+ //# sourceMappingURL=ImageFileMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ImageFileMessage","message","colors","useUIKitTheme","imageNotFound","setImageNotFound","useState","fileUrl","getAvailableUriFromFileMessage","style","styles","image","backgroundColor","onBackground04","onBackground02","uri","createStyleSheet","width","maxWidth","height","borderRadius"],"sources":["ImageFileMessage.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport type { FileMessageProps } from './index';\n\nconst ImageFileMessage: React.FC<FileMessageProps> = ({ message }) => {\n const { colors } = useUIKitTheme();\n const [imageNotFound, setImageNotFound] = useState(false);\n\n const fileUrl = getAvailableUriFromFileMessage(message);\n const style = [styles.image, { backgroundColor: colors.onBackground04 }];\n\n if (imageNotFound) {\n return <Icon containerStyle={style} icon={'thumbnail-none'} size={48} color={colors.onBackground02} />;\n }\n\n return (\n <Image\n source={{ uri: fileUrl }}\n style={style}\n resizeMode={'cover'}\n resizeMethod={'resize'}\n onError={() => setImageNotFound(true)}\n />\n );\n};\n\nconst styles = createStyleSheet({\n image: {\n width: 240,\n maxWidth: 240,\n height: 160,\n borderRadius: 16,\n },\n});\n\nexport default ImageFileMessage;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;;;;;AAIA,MAAMA,gBAA4C,GAAG,QAAiB;EAAA,IAAhB;IAAEC;EAAF,CAAgB;EACpE,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,IAAAC,eAAA,EAAS,KAAT,CAA1C;EAEA,MAAMC,OAAO,GAAG,IAAAC,0CAAA,EAA+BP,OAA/B,CAAhB;EACA,MAAMQ,KAAK,GAAG,CAACC,MAAM,CAACC,KAAR,EAAe;IAAEC,eAAe,EAAEV,MAAM,CAACW;EAA1B,CAAf,CAAd;;EAEA,IAAIT,aAAJ,EAAmB;IACjB,oBAAO,6BAAC,gCAAD;MAAM,cAAc,EAAEK,KAAtB;MAA6B,IAAI,EAAE,gBAAnC;MAAqD,IAAI,EAAE,EAA3D;MAA+D,KAAK,EAAEP,MAAM,CAACY;IAA7E,EAAP;EACD;;EAED,oBACE,6BAAC,iCAAD;IACE,MAAM,EAAE;MAAEC,GAAG,EAAER;IAAP,CADV;IAEE,KAAK,EAAEE,KAFT;IAGE,UAAU,EAAE,OAHd;IAIE,YAAY,EAAE,QAJhB;IAKE,OAAO,EAAE,MAAMJ,gBAAgB,CAAC,IAAD;EALjC,EADF;AASD,CApBD;;AAsBA,MAAMK,MAAM,GAAG,IAAAM,4CAAA,EAAiB;EAC9BL,KAAK,EAAE;IACLM,KAAK,EAAE,GADF;IAELC,QAAQ,EAAE,GAFL;IAGLC,MAAM,EAAE,GAHH;IAILC,YAAY,EAAE;EAJT;AADuB,CAAjB,CAAf;eASepB,gB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _uikitUtils = require("@sendbird/uikit-utils");
11
+
12
+ var _BaseFileMessage = _interopRequireDefault(require("./BaseFileMessage"));
13
+
14
+ var _ImageFileMessage = _interopRequireDefault(require("./ImageFileMessage"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+
20
+ const FileMessage = props => {
21
+ const fileType = (0, _uikitUtils.getFileType)(props.message.type || (0, _uikitUtils.getFileExtension)(props.message.name));
22
+ if (fileType === 'image') return /*#__PURE__*/_react.default.createElement(_ImageFileMessage.default, props);
23
+ return /*#__PURE__*/_react.default.createElement(_BaseFileMessage.default, _extends({}, props, {
24
+ type: fileType
25
+ }));
26
+ };
27
+
28
+ var _default = /*#__PURE__*/_react.default.memo(FileMessage);
29
+
30
+ exports.default = _default;
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FileMessage","props","fileType","getFileType","message","type","getFileExtension","name","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SendbirdFileMessage, getFileExtension, getFileType } from '@sendbird/uikit-utils';\n\nimport type { MessageRendererInterface } from '../index';\nimport BaseFileMessage from './BaseFileMessage';\nimport ImageFileMessage from './ImageFileMessage';\n\nexport type FileMessageProps = MessageRendererInterface<SendbirdFileMessage>;\nconst FileMessage: React.FC<FileMessageProps> = (props) => {\n const fileType = getFileType(props.message.type || getFileExtension(props.message.name));\n\n if (fileType === 'image') return <ImageFileMessage {...props} />;\n return <BaseFileMessage {...props} type={fileType} />;\n};\n\nexport default React.memo(FileMessage);\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAGA;;AACA;;;;;;AAGA,MAAMA,WAAuC,GAAIC,KAAD,IAAW;EACzD,MAAMC,QAAQ,GAAG,IAAAC,uBAAA,EAAYF,KAAK,CAACG,OAAN,CAAcC,IAAd,IAAsB,IAAAC,4BAAA,EAAiBL,KAAK,CAACG,OAAN,CAAcG,IAA/B,CAAlC,CAAjB;EAEA,IAAIL,QAAQ,KAAK,OAAjB,EAA0B,oBAAO,6BAAC,yBAAD,EAAsBD,KAAtB,CAAP;EAC1B,oBAAO,6BAAC,wBAAD,eAAqBA,KAArB;IAA4B,IAAI,EAAEC;EAAlC,GAAP;AACD,CALD;;4BAOeM,cAAA,CAAMC,IAAN,CAAWT,WAAX,C"}