@sendbird/uikit-react-native 1.0.0 → 1.0.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 (524) hide show
  1. package/package.json +7 -7
  2. package/src/InternalErrorBoundary.tsx +1 -0
  3. package/src/SendbirdUIKitContainer.tsx +3 -4
  4. package/src/components/ChannelCover.tsx +1 -1
  5. package/src/components/ChatFlatList.tsx +1 -1
  6. package/src/components/MessageRenderer/AdminMessage/index.tsx +1 -1
  7. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +4 -6
  8. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +1 -1
  9. package/src/components/MessageRenderer/FileMessage/index.tsx +1 -1
  10. package/src/components/MessageRenderer/MessageContainer.tsx +1 -1
  11. package/src/components/MessageRenderer/MessageDateSeparator.tsx +1 -1
  12. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +5 -2
  13. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +5 -2
  14. package/src/components/MessageRenderer/MessageOutgoingStatus.tsx +1 -1
  15. package/src/components/MessageRenderer/MessageTime.tsx +6 -2
  16. package/src/components/MessageRenderer/UnknownMessage/index.tsx +1 -1
  17. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +1 -1
  18. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +4 -2
  19. package/src/components/MessageRenderer/UserMessage/index.tsx +1 -1
  20. package/src/components/NewMessagesButton.tsx +1 -1
  21. package/src/components/ProviderLayout.tsx +1 -1
  22. package/src/components/ScrollToBottomButton.tsx +1 -1
  23. package/src/components/TypedPlaceholder.tsx +1 -1
  24. package/src/components/UserActionBar.tsx +1 -1
  25. package/src/components/UserSelectableBar.tsx +1 -1
  26. package/src/contexts/Localization.tsx +2 -3
  27. package/src/contexts/PlatformService.tsx +3 -8
  28. package/src/contexts/SendbirdChat.tsx +3 -3
  29. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +1 -1
  30. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +1 -1
  31. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +1 -1
  32. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +2 -2
  33. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +2 -2
  34. package/src/domain/groupChannel/types.ts +2 -2
  35. package/src/domain/groupChannelList/component/GroupChannelListHeader.tsx +2 -4
  36. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -2
  37. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +4 -4
  38. package/src/domain/groupChannelList/module/moduleContext.tsx +2 -2
  39. package/src/domain/groupChannelList/types.ts +2 -2
  40. package/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.tsx +1 -1
  41. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +1 -1
  42. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +2 -2
  43. package/src/domain/groupChannelSettings/module/moduleContext.tsx +2 -5
  44. package/src/domain/groupChannelSettings/types.ts +2 -2
  45. package/src/domain/groupChannelUserList/types.ts +4 -5
  46. package/src/domain/userList/module/moduleContext.tsx +3 -7
  47. package/src/domain/userList/types.ts +1 -1
  48. package/src/fragments/createGroupChannelSettingsFragment.tsx +1 -9
  49. package/src/platform/createFileService.expo.ts +13 -15
  50. package/src/version.ts +1 -1
  51. package/lib/commonjs/InternalErrorBoundary.js +0 -84
  52. package/lib/commonjs/InternalErrorBoundary.js.map +0 -1
  53. package/lib/commonjs/InternalLocalCacheStorage.js +0 -59
  54. package/lib/commonjs/InternalLocalCacheStorage.js.map +0 -1
  55. package/lib/commonjs/SendbirdUIKitContainer.js +0 -166
  56. package/lib/commonjs/SendbirdUIKitContainer.js.map +0 -1
  57. package/lib/commonjs/components/ChannelCover.js +0 -59
  58. package/lib/commonjs/components/ChannelCover.js.map +0 -1
  59. package/lib/commonjs/components/ChatFlatList.js +0 -118
  60. package/lib/commonjs/components/ChatFlatList.js.map +0 -1
  61. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +0 -52
  62. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +0 -1
  63. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -76
  64. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
  65. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -61
  66. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
  67. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +0 -31
  68. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +0 -1
  69. package/lib/commonjs/components/MessageRenderer/MessageContainer.js +0 -33
  70. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +0 -1
  71. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js +0 -58
  72. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
  73. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +0 -42
  74. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
  75. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +0 -48
  76. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
  77. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +0 -134
  78. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
  79. package/lib/commonjs/components/MessageRenderer/MessageTime.js +0 -41
  80. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +0 -1
  81. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +0 -53
  82. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
  83. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -54
  84. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
  85. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -131
  86. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
  87. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +0 -31
  88. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +0 -1
  89. package/lib/commonjs/components/MessageRenderer/index.js +0 -189
  90. package/lib/commonjs/components/MessageRenderer/index.js.map +0 -1
  91. package/lib/commonjs/components/NewMessagesButton.js +0 -73
  92. package/lib/commonjs/components/NewMessagesButton.js.map +0 -1
  93. package/lib/commonjs/components/ProviderLayout.js +0 -37
  94. package/lib/commonjs/components/ProviderLayout.js.map +0 -1
  95. package/lib/commonjs/components/ScrollToBottomButton.js +0 -66
  96. package/lib/commonjs/components/ScrollToBottomButton.js.map +0 -1
  97. package/lib/commonjs/components/StatusComposition.js +0 -27
  98. package/lib/commonjs/components/StatusComposition.js.map +0 -1
  99. package/lib/commonjs/components/TypedPlaceholder.js +0 -80
  100. package/lib/commonjs/components/TypedPlaceholder.js.map +0 -1
  101. package/lib/commonjs/components/UserActionBar.js +0 -96
  102. package/lib/commonjs/components/UserActionBar.js.map +0 -1
  103. package/lib/commonjs/components/UserSelectableBar.js +0 -78
  104. package/lib/commonjs/components/UserSelectableBar.js.map +0 -1
  105. package/lib/commonjs/constants.js +0 -9
  106. package/lib/commonjs/constants.js.map +0 -1
  107. package/lib/commonjs/contexts/Localization.js +0 -29
  108. package/lib/commonjs/contexts/Localization.js.map +0 -1
  109. package/lib/commonjs/contexts/PlatformService.js +0 -33
  110. package/lib/commonjs/contexts/PlatformService.js.map +0 -1
  111. package/lib/commonjs/contexts/SendbirdChat.js +0 -87
  112. package/lib/commonjs/contexts/SendbirdChat.js.map +0 -1
  113. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +0 -88
  114. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +0 -1
  115. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +0 -118
  116. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +0 -1
  117. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +0 -148
  118. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +0 -1
  119. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +0 -115
  120. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +0 -1
  121. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +0 -343
  122. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +0 -1
  123. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +0 -34
  124. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +0 -1
  125. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +0 -34
  126. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +0 -1
  127. package/lib/commonjs/domain/groupChannel/index.js +0 -70
  128. package/lib/commonjs/domain/groupChannel/index.js.map +0 -1
  129. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +0 -45
  130. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +0 -1
  131. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +0 -79
  132. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +0 -1
  133. package/lib/commonjs/domain/groupChannel/types.js +0 -6
  134. package/lib/commonjs/domain/groupChannel/types.js.map +0 -1
  135. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +0 -38
  136. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +0 -1
  137. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +0 -96
  138. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +0 -1
  139. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +0 -34
  140. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +0 -1
  141. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +0 -34
  142. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +0 -1
  143. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +0 -141
  144. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +0 -1
  145. package/lib/commonjs/domain/groupChannelList/index.js +0 -70
  146. package/lib/commonjs/domain/groupChannelList/index.js.map +0 -1
  147. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +0 -45
  148. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +0 -1
  149. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +0 -61
  150. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +0 -1
  151. package/lib/commonjs/domain/groupChannelList/types.js +0 -6
  152. package/lib/commonjs/domain/groupChannelList/types.js.map +0 -1
  153. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +0 -49
  154. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +0 -1
  155. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +0 -77
  156. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +0 -1
  157. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +0 -94
  158. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +0 -1
  159. package/lib/commonjs/domain/groupChannelSettings/index.js +0 -54
  160. package/lib/commonjs/domain/groupChannelSettings/index.js.map +0 -1
  161. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +0 -37
  162. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +0 -1
  163. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +0 -150
  164. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +0 -1
  165. package/lib/commonjs/domain/groupChannelSettings/types.js +0 -6
  166. package/lib/commonjs/domain/groupChannelSettings/types.js.map +0 -1
  167. package/lib/commonjs/domain/groupChannelUserList/types.js +0 -6
  168. package/lib/commonjs/domain/groupChannelUserList/types.js.map +0 -1
  169. package/lib/commonjs/domain/userList/component/UserListHeader.js +0 -56
  170. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +0 -1
  171. package/lib/commonjs/domain/userList/component/UserListList.js +0 -57
  172. package/lib/commonjs/domain/userList/component/UserListList.js.map +0 -1
  173. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +0 -34
  174. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +0 -1
  175. package/lib/commonjs/domain/userList/component/UserListStatusError.js +0 -38
  176. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +0 -1
  177. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +0 -34
  178. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +0 -1
  179. package/lib/commonjs/domain/userList/index.js +0 -70
  180. package/lib/commonjs/domain/userList/index.js.map +0 -1
  181. package/lib/commonjs/domain/userList/module/createUserListModule.js +0 -45
  182. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +0 -1
  183. package/lib/commonjs/domain/userList/module/moduleContext.js +0 -54
  184. package/lib/commonjs/domain/userList/module/moduleContext.js.map +0 -1
  185. package/lib/commonjs/domain/userList/types.js +0 -6
  186. package/lib/commonjs/domain/userList/types.js.map +0 -1
  187. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +0 -145
  188. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +0 -1
  189. package/lib/commonjs/fragments/createGroupChannelFragment.js +0 -154
  190. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +0 -1
  191. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +0 -139
  192. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +0 -1
  193. package/lib/commonjs/fragments/createGroupChannelListFragment.js +0 -141
  194. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +0 -1
  195. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +0 -134
  196. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +0 -1
  197. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +0 -67
  198. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +0 -1
  199. package/lib/commonjs/hooks/useConnection.js +0 -102
  200. package/lib/commonjs/hooks/useConnection.js.map +0 -1
  201. package/lib/commonjs/hooks/useContext.js +0 -39
  202. package/lib/commonjs/hooks/useContext.js.map +0 -1
  203. package/lib/commonjs/hooks/usePushTokenRegistration.js +0 -83
  204. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +0 -1
  205. package/lib/commonjs/index.js +0 -449
  206. package/lib/commonjs/index.js.map +0 -1
  207. package/lib/commonjs/localization/StringSet.en.js +0 -19
  208. package/lib/commonjs/localization/StringSet.en.js.map +0 -1
  209. package/lib/commonjs/localization/StringSet.type.js +0 -178
  210. package/lib/commonjs/localization/StringSet.type.js.map +0 -1
  211. package/lib/commonjs/platform/createClipboardService.expo.js +0 -23
  212. package/lib/commonjs/platform/createClipboardService.expo.js.map +0 -1
  213. package/lib/commonjs/platform/createClipboardService.native.js +0 -23
  214. package/lib/commonjs/platform/createClipboardService.native.js.map +0 -1
  215. package/lib/commonjs/platform/createFileService.expo.js +0 -176
  216. package/lib/commonjs/platform/createFileService.expo.js.map +0 -1
  217. package/lib/commonjs/platform/createFileService.native.js +0 -253
  218. package/lib/commonjs/platform/createFileService.native.js.map +0 -1
  219. package/lib/commonjs/platform/createNotificationService.expo.js +0 -50
  220. package/lib/commonjs/platform/createNotificationService.expo.js.map +0 -1
  221. package/lib/commonjs/platform/createNotificationService.native.js +0 -65
  222. package/lib/commonjs/platform/createNotificationService.native.js.map +0 -1
  223. package/lib/commonjs/platform/dynamicModule.js +0 -114
  224. package/lib/commonjs/platform/dynamicModule.js.map +0 -1
  225. package/lib/commonjs/platform/types.js +0 -2
  226. package/lib/commonjs/platform/types.js.map +0 -1
  227. package/lib/commonjs/types.js +0 -6
  228. package/lib/commonjs/types.js.map +0 -1
  229. package/lib/commonjs/utils/expoPermissionGranted.js +0 -32
  230. package/lib/commonjs/utils/expoPermissionGranted.js.map +0 -1
  231. package/lib/commonjs/utils/fileTypeGuard.js +0 -26
  232. package/lib/commonjs/utils/fileTypeGuard.js.map +0 -1
  233. package/lib/commonjs/utils/nativePermissionGranted.js +0 -23
  234. package/lib/commonjs/utils/nativePermissionGranted.js.map +0 -1
  235. package/lib/commonjs/version.js +0 -10
  236. package/lib/commonjs/version.js.map +0 -1
  237. package/lib/module/InternalErrorBoundary.js +0 -72
  238. package/lib/module/InternalErrorBoundary.js.map +0 -1
  239. package/lib/module/InternalLocalCacheStorage.js +0 -50
  240. package/lib/module/InternalLocalCacheStorage.js.map +0 -1
  241. package/lib/module/SendbirdUIKitContainer.js +0 -136
  242. package/lib/module/SendbirdUIKitContainer.js.map +0 -1
  243. package/lib/module/components/ChannelCover.js +0 -46
  244. package/lib/module/components/ChannelCover.js.map +0 -1
  245. package/lib/module/components/ChatFlatList.js +0 -102
  246. package/lib/module/components/ChatFlatList.js.map +0 -1
  247. package/lib/module/components/MessageRenderer/AdminMessage/index.js +0 -40
  248. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +0 -1
  249. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -62
  250. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
  251. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -47
  252. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
  253. package/lib/module/components/MessageRenderer/FileMessage/index.js +0 -17
  254. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +0 -1
  255. package/lib/module/components/MessageRenderer/MessageContainer.js +0 -21
  256. package/lib/module/components/MessageRenderer/MessageContainer.js.map +0 -1
  257. package/lib/module/components/MessageRenderer/MessageDateSeparator.js +0 -44
  258. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
  259. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +0 -30
  260. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
  261. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +0 -35
  262. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
  263. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +0 -116
  264. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
  265. package/lib/module/components/MessageRenderer/MessageTime.js +0 -28
  266. package/lib/module/components/MessageRenderer/MessageTime.js.map +0 -1
  267. package/lib/module/components/MessageRenderer/UnknownMessage/index.js +0 -40
  268. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
  269. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -41
  270. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
  271. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -115
  272. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
  273. package/lib/module/components/MessageRenderer/UserMessage/index.js +0 -18
  274. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +0 -1
  275. package/lib/module/components/MessageRenderer/index.js +0 -163
  276. package/lib/module/components/MessageRenderer/index.js.map +0 -1
  277. package/lib/module/components/NewMessagesButton.js +0 -58
  278. package/lib/module/components/NewMessagesButton.js.map +0 -1
  279. package/lib/module/components/ProviderLayout.js +0 -25
  280. package/lib/module/components/ProviderLayout.js.map +0 -1
  281. package/lib/module/components/ScrollToBottomButton.js +0 -52
  282. package/lib/module/components/ScrollToBottomButton.js.map +0 -1
  283. package/lib/module/components/StatusComposition.js +0 -17
  284. package/lib/module/components/StatusComposition.js.map +0 -1
  285. package/lib/module/components/TypedPlaceholder.js +0 -68
  286. package/lib/module/components/TypedPlaceholder.js.map +0 -1
  287. package/lib/module/components/UserActionBar.js +0 -81
  288. package/lib/module/components/UserActionBar.js.map +0 -1
  289. package/lib/module/components/UserSelectableBar.js +0 -63
  290. package/lib/module/components/UserSelectableBar.js.map +0 -1
  291. package/lib/module/constants.js +0 -2
  292. package/lib/module/constants.js.map +0 -1
  293. package/lib/module/contexts/Localization.js +0 -14
  294. package/lib/module/contexts/Localization.js.map +0 -1
  295. package/lib/module/contexts/PlatformService.js +0 -18
  296. package/lib/module/contexts/PlatformService.js.map +0 -1
  297. package/lib/module/contexts/SendbirdChat.js +0 -66
  298. package/lib/module/contexts/SendbirdChat.js.map +0 -1
  299. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +0 -69
  300. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +0 -1
  301. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +0 -102
  302. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +0 -1
  303. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +0 -134
  304. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +0 -1
  305. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +0 -92
  306. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +0 -1
  307. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +0 -317
  308. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +0 -1
  309. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js +0 -21
  310. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +0 -1
  311. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js +0 -21
  312. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +0 -1
  313. package/lib/module/domain/groupChannel/index.js +0 -8
  314. package/lib/module/domain/groupChannel/index.js.map +0 -1
  315. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +0 -30
  316. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +0 -1
  317. package/lib/module/domain/groupChannel/module/moduleContext.js +0 -57
  318. package/lib/module/domain/groupChannel/module/moduleContext.js.map +0 -1
  319. package/lib/module/domain/groupChannel/types.js +0 -2
  320. package/lib/module/domain/groupChannel/types.js.map +0 -1
  321. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js +0 -24
  322. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +0 -1
  323. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +0 -79
  324. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +0 -1
  325. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +0 -21
  326. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +0 -1
  327. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js +0 -21
  328. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +0 -1
  329. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +0 -124
  330. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +0 -1
  331. package/lib/module/domain/groupChannelList/index.js +0 -8
  332. package/lib/module/domain/groupChannelList/index.js.map +0 -1
  333. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +0 -30
  334. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +0 -1
  335. package/lib/module/domain/groupChannelList/module/moduleContext.js +0 -40
  336. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +0 -1
  337. package/lib/module/domain/groupChannelList/types.js +0 -2
  338. package/lib/module/domain/groupChannelList/types.js.map +0 -1
  339. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +0 -35
  340. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +0 -1
  341. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +0 -56
  342. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +0 -1
  343. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +0 -78
  344. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +0 -1
  345. package/lib/module/domain/groupChannelSettings/index.js +0 -6
  346. package/lib/module/domain/groupChannelSettings/index.js.map +0 -1
  347. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +0 -24
  348. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +0 -1
  349. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +0 -127
  350. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +0 -1
  351. package/lib/module/domain/groupChannelSettings/types.js +0 -2
  352. package/lib/module/domain/groupChannelSettings/types.js.map +0 -1
  353. package/lib/module/domain/groupChannelUserList/types.js +0 -2
  354. package/lib/module/domain/groupChannelUserList/types.js.map +0 -1
  355. package/lib/module/domain/userList/component/UserListHeader.js +0 -42
  356. package/lib/module/domain/userList/component/UserListHeader.js.map +0 -1
  357. package/lib/module/domain/userList/component/UserListList.js +0 -42
  358. package/lib/module/domain/userList/component/UserListList.js.map +0 -1
  359. package/lib/module/domain/userList/component/UserListStatusEmpty.js +0 -21
  360. package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +0 -1
  361. package/lib/module/domain/userList/component/UserListStatusError.js +0 -25
  362. package/lib/module/domain/userList/component/UserListStatusError.js.map +0 -1
  363. package/lib/module/domain/userList/component/UserListStatusLoading.js +0 -21
  364. package/lib/module/domain/userList/component/UserListStatusLoading.js.map +0 -1
  365. package/lib/module/domain/userList/index.js +0 -8
  366. package/lib/module/domain/userList/index.js.map +0 -1
  367. package/lib/module/domain/userList/module/createUserListModule.js +0 -30
  368. package/lib/module/domain/userList/module/createUserListModule.js.map +0 -1
  369. package/lib/module/domain/userList/module/moduleContext.js +0 -34
  370. package/lib/module/domain/userList/module/moduleContext.js.map +0 -1
  371. package/lib/module/domain/userList/types.js +0 -2
  372. package/lib/module/domain/userList/types.js.map +0 -1
  373. package/lib/module/fragments/createGroupChannelCreateFragment.js +0 -124
  374. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +0 -1
  375. package/lib/module/fragments/createGroupChannelFragment.js +0 -132
  376. package/lib/module/fragments/createGroupChannelFragment.js.map +0 -1
  377. package/lib/module/fragments/createGroupChannelInviteFragment.js +0 -118
  378. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +0 -1
  379. package/lib/module/fragments/createGroupChannelListFragment.js +0 -115
  380. package/lib/module/fragments/createGroupChannelListFragment.js.map +0 -1
  381. package/lib/module/fragments/createGroupChannelMembersFragment.js +0 -114
  382. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +0 -1
  383. package/lib/module/fragments/createGroupChannelSettingsFragment.js +0 -52
  384. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +0 -1
  385. package/lib/module/hooks/useConnection.js +0 -79
  386. package/lib/module/hooks/useConnection.js.map +0 -1
  387. package/lib/module/hooks/useContext.js +0 -20
  388. package/lib/module/hooks/useContext.js.map +0 -1
  389. package/lib/module/hooks/usePushTokenRegistration.js +0 -69
  390. package/lib/module/hooks/usePushTokenRegistration.js.map +0 -1
  391. package/lib/module/index.js +0 -57
  392. package/lib/module/index.js.map +0 -1
  393. package/lib/module/localization/StringSet.en.js +0 -7
  394. package/lib/module/localization/StringSet.en.js.map +0 -1
  395. package/lib/module/localization/StringSet.type.js +0 -173
  396. package/lib/module/localization/StringSet.type.js.map +0 -1
  397. package/lib/module/platform/createClipboardService.expo.js +0 -15
  398. package/lib/module/platform/createClipboardService.expo.js.map +0 -1
  399. package/lib/module/platform/createClipboardService.native.js +0 -15
  400. package/lib/module/platform/createClipboardService.native.js.map +0 -1
  401. package/lib/module/platform/createFileService.expo.js +0 -164
  402. package/lib/module/platform/createFileService.expo.js.map +0 -1
  403. package/lib/module/platform/createFileService.native.js +0 -237
  404. package/lib/module/platform/createFileService.native.js.map +0 -1
  405. package/lib/module/platform/createNotificationService.expo.js +0 -42
  406. package/lib/module/platform/createNotificationService.expo.js.map +0 -1
  407. package/lib/module/platform/createNotificationService.native.js +0 -57
  408. package/lib/module/platform/createNotificationService.native.js.map +0 -1
  409. package/lib/module/platform/dynamicModule.js +0 -103
  410. package/lib/module/platform/dynamicModule.js.map +0 -1
  411. package/lib/module/platform/types.js +0 -2
  412. package/lib/module/platform/types.js.map +0 -1
  413. package/lib/module/types.js +0 -2
  414. package/lib/module/types.js.map +0 -1
  415. package/lib/module/utils/expoPermissionGranted.js +0 -24
  416. package/lib/module/utils/expoPermissionGranted.js.map +0 -1
  417. package/lib/module/utils/fileTypeGuard.js +0 -18
  418. package/lib/module/utils/fileTypeGuard.js.map +0 -1
  419. package/lib/module/utils/nativePermissionGranted.js +0 -15
  420. package/lib/module/utils/nativePermissionGranted.js.map +0 -1
  421. package/lib/module/version.js +0 -3
  422. package/lib/module/version.js.map +0 -1
  423. package/lib/typescript/__template__/component/__domain__Header.d.ts +0 -4
  424. package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +0 -3
  425. package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +0 -3
  426. package/lib/typescript/__template__/component/__domain__View.d.ts +0 -4
  427. package/lib/typescript/__template__/create__domain__Fragment.d.ts +0 -2
  428. package/lib/typescript/__template__/index.d.ts +0 -6
  429. package/lib/typescript/__template__/module/create__domain__Module.d.ts +0 -3
  430. package/lib/typescript/__template__/module/moduleContext.d.ts +0 -4
  431. package/lib/typescript/__template__/types.d.ts +0 -31
  432. package/lib/typescript/src/InternalErrorBoundary.d.ts +0 -18
  433. package/lib/typescript/src/InternalLocalCacheStorage.d.ts +0 -12
  434. package/lib/typescript/src/SendbirdUIKitContainer.d.ts +0 -42
  435. package/lib/typescript/src/components/ChannelCover.d.ts +0 -10
  436. package/lib/typescript/src/components/ChatFlatList.d.ts +0 -14
  437. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +0 -6
  438. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +0 -6
  439. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +0 -4
  440. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +0 -6
  441. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +0 -3
  442. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +0 -8
  443. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +0 -8
  444. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +0 -8
  445. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +0 -8
  446. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +0 -10
  447. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +0 -5
  448. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +0 -4
  449. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +0 -8
  450. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +0 -6
  451. package/lib/typescript/src/components/MessageRenderer/index.d.ts +0 -23
  452. package/lib/typescript/src/components/NewMessagesButton.d.ts +0 -9
  453. package/lib/typescript/src/components/ProviderLayout.d.ts +0 -3
  454. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +0 -7
  455. package/lib/typescript/src/components/StatusComposition.d.ts +0 -10
  456. package/lib/typescript/src/components/TypedPlaceholder.d.ts +0 -7
  457. package/lib/typescript/src/components/UserActionBar.d.ts +0 -11
  458. package/lib/typescript/src/components/UserSelectableBar.d.ts +0 -9
  459. package/lib/typescript/src/constants.d.ts +0 -1
  460. package/lib/typescript/src/contexts/Localization.d.ts +0 -12
  461. package/lib/typescript/src/contexts/PlatformService.d.ts +0 -10
  462. package/lib/typescript/src/contexts/SendbirdChat.d.ts +0 -24
  463. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +0 -4
  464. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +0 -11
  465. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +0 -9
  466. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +0 -9
  467. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +0 -36
  468. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +0 -3
  469. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +0 -3
  470. package/lib/typescript/src/domain/groupChannel/index.d.ts +0 -7
  471. package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +0 -3
  472. package/lib/typescript/src/domain/groupChannel/module/moduleContext.d.ts +0 -3
  473. package/lib/typescript/src/domain/groupChannel/types.d.ts +0 -102
  474. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +0 -4
  475. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +0 -4
  476. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +0 -3
  477. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +0 -3
  478. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +0 -4
  479. package/lib/typescript/src/domain/groupChannelList/index.d.ts +0 -7
  480. package/lib/typescript/src/domain/groupChannelList/module/createGroupChannelListModule.d.ts +0 -3
  481. package/lib/typescript/src/domain/groupChannelList/module/moduleContext.d.ts +0 -4
  482. package/lib/typescript/src/domain/groupChannelList/types.d.ts +0 -81
  483. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +0 -4
  484. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +0 -4
  485. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +0 -4
  486. package/lib/typescript/src/domain/groupChannelSettings/index.d.ts +0 -5
  487. package/lib/typescript/src/domain/groupChannelSettings/module/createGroupChannelSettingsModule.d.ts +0 -3
  488. package/lib/typescript/src/domain/groupChannelSettings/module/moduleContext.d.ts +0 -4
  489. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +0 -45
  490. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +0 -42
  491. package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +0 -10
  492. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +0 -11
  493. package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +0 -3
  494. package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +0 -3
  495. package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +0 -3
  496. package/lib/typescript/src/domain/userList/index.d.ts +0 -7
  497. package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +0 -3
  498. package/lib/typescript/src/domain/userList/module/moduleContext.d.ts +0 -4
  499. package/lib/typescript/src/domain/userList/types.d.ts +0 -58
  500. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +0 -4
  501. package/lib/typescript/src/fragments/createGroupChannelFragment.d.ts +0 -3
  502. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +0 -4
  503. package/lib/typescript/src/fragments/createGroupChannelListFragment.d.ts +0 -3
  504. package/lib/typescript/src/fragments/createGroupChannelMembersFragment.d.ts +0 -5
  505. package/lib/typescript/src/fragments/createGroupChannelSettingsFragment.d.ts +0 -3
  506. package/lib/typescript/src/hooks/useConnection.d.ts +0 -11
  507. package/lib/typescript/src/hooks/useContext.d.ts +0 -22
  508. package/lib/typescript/src/hooks/usePushTokenRegistration.d.ts +0 -5
  509. package/lib/typescript/src/index.d.ts +0 -50
  510. package/lib/typescript/src/localization/StringSet.en.d.ts +0 -2
  511. package/lib/typescript/src/localization/StringSet.type.d.ts +0 -157
  512. package/lib/typescript/src/platform/createClipboardService.expo.d.ts +0 -4
  513. package/lib/typescript/src/platform/createClipboardService.native.d.ts +0 -4
  514. package/lib/typescript/src/platform/createFileService.expo.d.ts +0 -12
  515. package/lib/typescript/src/platform/createFileService.native.d.ts +0 -14
  516. package/lib/typescript/src/platform/createNotificationService.expo.d.ts +0 -4
  517. package/lib/typescript/src/platform/createNotificationService.native.d.ts +0 -8
  518. package/lib/typescript/src/platform/dynamicModule.d.ts +0 -23
  519. package/lib/typescript/src/platform/types.d.ts +0 -47
  520. package/lib/typescript/src/types.d.ts +0 -20
  521. package/lib/typescript/src/utils/expoPermissionGranted.d.ts +0 -13
  522. package/lib/typescript/src/utils/fileTypeGuard.d.ts +0 -4
  523. package/lib/typescript/src/utils/nativePermissionGranted.d.ts +0 -3
  524. package/lib/typescript/src/version.d.ts +0 -2
@@ -1,164 +0,0 @@
1
- import { getFileExtension, getFileType } from '@sendbird/uikit-utils';
2
- import expoPermissionGranted from '../utils/expoPermissionGranted';
3
- import fileTypeGuard from '../utils/fileTypeGuard';
4
-
5
- const createExpoFileService = _ref => {
6
- let {
7
- imagePickerModule,
8
- documentPickerModule,
9
- mediaLibraryModule,
10
- fsModule
11
- } = _ref;
12
-
13
- class ExpoFileServiceInterface {
14
- async hasCameraPermission() {
15
- const res = await imagePickerModule.getCameraPermissionsAsync();
16
- return expoPermissionGranted([res]);
17
- }
18
-
19
- async requestCameraPermission() {
20
- const res = await imagePickerModule.requestCameraPermissionsAsync();
21
- return expoPermissionGranted([res]);
22
- }
23
-
24
- async hasMediaLibraryPermission(type) {
25
- const perms = await mediaLibraryModule.getPermissionsAsync(type === 'write');
26
- return expoPermissionGranted([perms]);
27
- }
28
-
29
- async requestMediaLibraryPermission(type) {
30
- const perms = await mediaLibraryModule.requestPermissionsAsync(type === 'write');
31
- return expoPermissionGranted([perms]);
32
- }
33
-
34
- async openCamera(options) {
35
- const hasPermission = await this.hasCameraPermission();
36
-
37
- if (!hasPermission) {
38
- const granted = await this.requestCameraPermission();
39
-
40
- if (!granted) {
41
- var _options$onOpenFailur;
42
-
43
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur === void 0 ? void 0 : _options$onOpenFailur.call(options);
44
- return null;
45
- }
46
- }
47
-
48
- const response = await imagePickerModule.launchCameraAsync({
49
- mediaTypes: (() => {
50
- switch (options === null || options === void 0 ? void 0 : options.mediaType) {
51
- case 'photo':
52
- return imagePickerModule.MediaTypeOptions.Images;
53
-
54
- case 'video':
55
- return imagePickerModule.MediaTypeOptions.Videos;
56
-
57
- default:
58
- return imagePickerModule.MediaTypeOptions.All;
59
- }
60
- })()
61
- });
62
- if (response.cancelled) return null;
63
- const {
64
- uri
65
- } = response;
66
- const {
67
- size
68
- } = await fsModule.getInfoAsync(response.uri);
69
- const ext = getFileExtension(uri);
70
- const type = getFileType(ext);
71
- return fileTypeGuard({
72
- uri,
73
- size,
74
- type: `${type}/${ext.slice(1)}`,
75
- name: Date.now() + ext
76
- });
77
- }
78
-
79
- async openMediaLibrary(options) {
80
- const selectionLimit = (options === null || options === void 0 ? void 0 : options.selectionLimit) || 1;
81
- const hasPermission = await this.hasMediaLibraryPermission('read');
82
-
83
- if (!hasPermission) {
84
- const granted = await this.requestMediaLibraryPermission('read');
85
-
86
- if (!granted) {
87
- var _options$onOpenFailur2;
88
-
89
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur2 = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur2 === void 0 ? void 0 : _options$onOpenFailur2.call(options);
90
- return null;
91
- }
92
- }
93
-
94
- const response = await imagePickerModule.launchImageLibraryAsync({
95
- allowsMultipleSelection: true
96
- });
97
- if (response.cancelled) return null;
98
- return Promise.all(response.selected.slice(0, selectionLimit).map(async _ref2 => {
99
- let {
100
- uri
101
- } = _ref2;
102
- const {
103
- size
104
- } = await fsModule.getInfoAsync(uri);
105
- const ext = getFileExtension(uri);
106
- const type = getFileType(ext);
107
- return fileTypeGuard({
108
- uri,
109
- size,
110
- type: `${type}/${ext.slice(1)}`,
111
- name: Date.now() + ext
112
- });
113
- }));
114
- }
115
-
116
- async openDocument(options) {
117
- try {
118
- const response = await documentPickerModule.getDocumentAsync({
119
- type: '*/*'
120
- });
121
- if (response.type === 'cancel') return null;
122
- const {
123
- mimeType,
124
- uri,
125
- size,
126
- name
127
- } = response;
128
- return fileTypeGuard({
129
- uri,
130
- size,
131
- name,
132
- type: mimeType
133
- });
134
- } catch {
135
- var _options$onOpenFailur3;
136
-
137
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur3 = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur3 === void 0 ? void 0 : _options$onOpenFailur3.call(options);
138
- return null;
139
- }
140
- }
141
-
142
- async save(options) {
143
- const hasPermission = await this.hasMediaLibraryPermission('write');
144
-
145
- if (!hasPermission) {
146
- const granted = await this.requestMediaLibraryPermission('write');
147
- if (!granted) throw new Error('Permission not granted');
148
- }
149
-
150
- const basePath = fsModule.documentDirectory || fsModule.cacheDirectory;
151
- if (!basePath) throw new Error('Cannot determine directory');
152
- const downloadPath = `${basePath}/${options.fileName}`;
153
- const response = await fsModule.downloadAsync(options.fileUrl, downloadPath);
154
- await mediaLibraryModule.saveToLibraryAsync(response.uri);
155
- return response.uri;
156
- }
157
-
158
- }
159
-
160
- return new ExpoFileServiceInterface();
161
- };
162
-
163
- export default createExpoFileService;
164
- //# sourceMappingURL=createFileService.expo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getFileExtension","getFileType","expoPermissionGranted","fileTypeGuard","createExpoFileService","imagePickerModule","documentPickerModule","mediaLibraryModule","fsModule","ExpoFileServiceInterface","hasCameraPermission","res","getCameraPermissionsAsync","requestCameraPermission","requestCameraPermissionsAsync","hasMediaLibraryPermission","type","perms","getPermissionsAsync","requestMediaLibraryPermission","requestPermissionsAsync","openCamera","options","hasPermission","granted","onOpenFailureWithToastMessage","response","launchCameraAsync","mediaTypes","mediaType","MediaTypeOptions","Images","Videos","All","cancelled","uri","size","getInfoAsync","ext","slice","name","Date","now","openMediaLibrary","selectionLimit","launchImageLibraryAsync","allowsMultipleSelection","Promise","all","selected","map","openDocument","getDocumentAsync","mimeType","save","Error","basePath","documentDirectory","cacheDirectory","downloadPath","fileName","downloadAsync","fileUrl","saveToLibraryAsync"],"sources":["createFileService.expo.ts"],"sourcesContent":["import type ExpoDocumentPicker from 'expo-document-picker';\nimport type ExpoFs from 'expo-file-system';\nimport type ExpoImagePicker from 'expo-image-picker';\nimport type ExpoMediaLibrary from 'expo-media-library';\n\nimport { getFileExtension, getFileType } from '@sendbird/uikit-utils';\n\nimport type { ExpoMediaLibraryPermissionResponse, ExpoPermissionResponse } from '../utils/expoPermissionGranted';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport fileTypeGuard from '../utils/fileTypeGuard';\nimport type {\n FilePickerResponse,\n FileServiceInterface,\n OpenCameraOptions,\n OpenDocumentOptions,\n OpenMediaLibraryOptions,\n SaveOptions,\n} from './types';\n\nconst createExpoFileService = ({\n imagePickerModule,\n documentPickerModule,\n mediaLibraryModule,\n fsModule,\n}: {\n imagePickerModule: typeof ExpoImagePicker;\n documentPickerModule: typeof ExpoDocumentPicker;\n mediaLibraryModule: typeof ExpoMediaLibrary;\n fsModule: typeof ExpoFs;\n}): FileServiceInterface => {\n class ExpoFileServiceInterface implements FileServiceInterface {\n async hasCameraPermission(): Promise<boolean> {\n const res = (await imagePickerModule.getCameraPermissionsAsync()) as ExpoPermissionResponse;\n return expoPermissionGranted([res]);\n }\n async requestCameraPermission(): Promise<boolean> {\n const res = (await imagePickerModule.requestCameraPermissionsAsync()) as ExpoPermissionResponse;\n return expoPermissionGranted([res]);\n }\n async hasMediaLibraryPermission(type: 'write' | 'read'): Promise<boolean> {\n const perms = (await mediaLibraryModule.getPermissionsAsync(\n type === 'write',\n )) as ExpoMediaLibraryPermissionResponse;\n return expoPermissionGranted([perms]);\n }\n async requestMediaLibraryPermission(type: 'write' | 'read'): Promise<boolean> {\n const perms = (await mediaLibraryModule.requestPermissionsAsync(\n type === 'write',\n )) as ExpoMediaLibraryPermissionResponse;\n return expoPermissionGranted([perms]);\n }\n\n async openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse> {\n const hasPermission = await this.hasCameraPermission();\n if (!hasPermission) {\n const granted = await this.requestCameraPermission();\n if (!granted) {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n }\n\n const response = await imagePickerModule.launchCameraAsync({\n mediaTypes: (() => {\n switch (options?.mediaType) {\n case 'photo':\n return imagePickerModule.MediaTypeOptions.Images;\n case 'video':\n return imagePickerModule.MediaTypeOptions.Videos;\n default:\n return imagePickerModule.MediaTypeOptions.All;\n }\n })(),\n });\n\n if (response.cancelled) return null;\n\n const { uri } = response;\n const { size } = await fsModule.getInfoAsync(response.uri);\n const ext = getFileExtension(uri);\n const type = getFileType(ext);\n\n return fileTypeGuard({ uri, size, type: `${type}/${ext.slice(1)}`, name: Date.now() + ext });\n }\n async openMediaLibrary(options: OpenMediaLibraryOptions) {\n const selectionLimit = options?.selectionLimit || 1;\n const hasPermission = await this.hasMediaLibraryPermission('read');\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission('read');\n if (!granted) {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n }\n\n const response = await imagePickerModule.launchImageLibraryAsync({ allowsMultipleSelection: true });\n if (response.cancelled) return null;\n\n return Promise.all(\n response.selected.slice(0, selectionLimit).map(async ({ uri }) => {\n const { size } = await fsModule.getInfoAsync(uri);\n const ext = getFileExtension(uri);\n const type = getFileType(ext);\n return fileTypeGuard({ uri, size, type: `${type}/${ext.slice(1)}`, name: Date.now() + ext });\n }),\n );\n }\n\n async openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse> {\n try {\n const response = await documentPickerModule.getDocumentAsync({ type: '*/*' });\n if (response.type === 'cancel') return null;\n const { mimeType, uri, size, name } = response;\n return fileTypeGuard({ uri, size, name, type: mimeType });\n } catch {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n }\n\n async save(options: SaveOptions): Promise<string> {\n const hasPermission = await this.hasMediaLibraryPermission('write');\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission('write');\n if (!granted) throw new Error('Permission not granted');\n }\n\n const basePath = fsModule.documentDirectory || fsModule.cacheDirectory;\n if (!basePath) throw new Error('Cannot determine directory');\n\n const downloadPath = `${basePath}/${options.fileName}`;\n\n const response = await fsModule.downloadAsync(options.fileUrl, downloadPath);\n await mediaLibraryModule.saveToLibraryAsync(response.uri);\n return response.uri;\n }\n }\n\n return new ExpoFileServiceInterface();\n};\n\nexport default createExpoFileService;\n"],"mappings":"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"}
@@ -1,237 +0,0 @@
1
- import { Platform } from 'react-native';
2
- import { getFileExtension, getFileType } from '@sendbird/uikit-utils';
3
- import fileTypeGuard from '../utils/fileTypeGuard';
4
- import nativePermissionGranted from '../utils/nativePermissionGranted';
5
-
6
- function getAndroidStoragePermissionsByAPILevel(permissionModule) {
7
- if (Platform.OS !== 'android') return [];
8
-
9
- if (Platform.Version > 32) {
10
- return [permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_AUDIO, permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_IMAGES, permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_VIDEO];
11
- }
12
-
13
- if (Platform.Version > 28) {
14
- return [permissionModule.PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE];
15
- }
16
-
17
- return [permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE, permissionModule.PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE];
18
- }
19
-
20
- const createNativeFileService = _ref => {
21
- let {
22
- imagePickerModule,
23
- documentPickerModule,
24
- permissionModule,
25
- mediaLibraryModule,
26
- fsModule
27
- } = _ref;
28
- const cameraPermissions = Platform.select({
29
- ios: [permissionModule.PERMISSIONS.IOS.CAMERA],
30
- android: [permissionModule.PERMISSIONS.ANDROID.CAMERA],
31
- default: []
32
- });
33
- const mediaLibraryPermissions = Platform.select({
34
- ios: [permissionModule.PERMISSIONS.IOS.MEDIA_LIBRARY, permissionModule.PERMISSIONS.IOS.PHOTO_LIBRARY],
35
- android: getAndroidStoragePermissionsByAPILevel(permissionModule),
36
- default: []
37
- });
38
-
39
- class NativeFileService {
40
- async hasCameraPermission() {
41
- const status = await permissionModule.checkMultiple(cameraPermissions);
42
- return nativePermissionGranted(status);
43
- }
44
-
45
- async requestCameraPermission() {
46
- const status = await permissionModule.requestMultiple(cameraPermissions);
47
- return nativePermissionGranted(status);
48
- }
49
-
50
- async hasMediaLibraryPermission() {
51
- const status = await permissionModule.checkMultiple(mediaLibraryPermissions);
52
- return nativePermissionGranted(status);
53
- }
54
-
55
- async requestMediaLibraryPermission() {
56
- const status = await permissionModule.requestMultiple(mediaLibraryPermissions);
57
- return nativePermissionGranted(status);
58
- }
59
-
60
- async openCamera(options) {
61
- var _response$assets;
62
-
63
- const hasPermission = await this.hasCameraPermission();
64
-
65
- if (!hasPermission) {
66
- const granted = await this.requestCameraPermission();
67
-
68
- if (!granted) {
69
- var _options$onOpenFailur;
70
-
71
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur === void 0 ? void 0 : _options$onOpenFailur.call(options);
72
- return null;
73
- }
74
- }
75
-
76
- const response = await imagePickerModule.launchCamera({
77
- cameraType: (options === null || options === void 0 ? void 0 : options.cameraType) ?? 'back',
78
- mediaType: (options === null || options === void 0 ? void 0 : options.mediaType) ?? 'photo'
79
- });
80
- if (response.didCancel) return null;
81
-
82
- if (response.errorCode === 'camera_unavailable') {
83
- var _options$onOpenFailur2;
84
-
85
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur2 = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur2 === void 0 ? void 0 : _options$onOpenFailur2.call(options);
86
- return null;
87
- }
88
-
89
- const {
90
- fileName: name,
91
- fileSize: size,
92
- type,
93
- uri
94
- } = ((_response$assets = response.assets) === null || _response$assets === void 0 ? void 0 : _response$assets[0]) ?? {};
95
- return fileTypeGuard({
96
- uri,
97
- size,
98
- name,
99
- type
100
- });
101
- }
102
-
103
- async openMediaLibrary(options) {
104
- /**
105
- * NOTE: options.selectionLimit {@link https://github.com/react-native-image-picker/react-native-image-picker#options}
106
- * We do not support 0 (any number of files)
107
- **/
108
- const selectionLimit = (options === null || options === void 0 ? void 0 : options.selectionLimit) || 1;
109
- const hasPermission = await this.hasMediaLibraryPermission();
110
-
111
- if (!hasPermission) {
112
- const granted = await this.requestMediaLibraryPermission();
113
-
114
- if (!granted) {
115
- var _options$onOpenFailur3;
116
-
117
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur3 = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur3 === void 0 ? void 0 : _options$onOpenFailur3.call(options);
118
- return null;
119
- }
120
- }
121
-
122
- const response = await imagePickerModule.launchImageLibrary({
123
- selectionLimit,
124
- mediaType: (() => {
125
- switch (options === null || options === void 0 ? void 0 : options.mediaType) {
126
- case 'photo':
127
- return 'photo';
128
-
129
- case 'video':
130
- return 'video';
131
-
132
- default:
133
- return 'mixed';
134
- }
135
- })()
136
- });
137
- if (response.didCancel) return null;
138
-
139
- if (response.errorCode === 'camera_unavailable') {
140
- var _options$onOpenFailur4;
141
-
142
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur4 = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur4 === void 0 ? void 0 : _options$onOpenFailur4.call(options);
143
- return null;
144
- }
145
-
146
- return (response.assets || []).slice(0, selectionLimit).map(_ref2 => {
147
- let {
148
- fileName: name,
149
- fileSize: size,
150
- type,
151
- uri
152
- } = _ref2;
153
- return fileTypeGuard({
154
- uri,
155
- size,
156
- name,
157
- type
158
- });
159
- });
160
- }
161
-
162
- async openDocument(options) {
163
- try {
164
- const {
165
- uri,
166
- size,
167
- name,
168
- type
169
- } = await documentPickerModule.pickSingle();
170
- return fileTypeGuard({
171
- uri,
172
- size,
173
- name,
174
- type
175
- });
176
- } catch (e) {
177
- if (!documentPickerModule.isCancel(e) && documentPickerModule.isInProgress(e)) {
178
- var _options$onOpenFailur5;
179
-
180
- options === null || options === void 0 ? void 0 : (_options$onOpenFailur5 = options.onOpenFailureWithToastMessage) === null || _options$onOpenFailur5 === void 0 ? void 0 : _options$onOpenFailur5.call(options);
181
- }
182
-
183
- return null;
184
- }
185
- }
186
-
187
- async save(options) {
188
- const hasPermission = await this.hasMediaLibraryPermission();
189
-
190
- if (!hasPermission) {
191
- const granted = await this.requestMediaLibraryPermission();
192
- if (!granted) throw new Error('Permission not granted');
193
- }
194
-
195
- const basePath = Platform.select({
196
- android: fsModule.Dirs.CacheDir,
197
- default: fsModule.Dirs.DocumentDir
198
- });
199
- let downloadPath = `${basePath}/${options.fileName}`;
200
-
201
- if (!getFileExtension(options.fileName)) {
202
- const extensionFromUrl = getFileExtension(options.fileUrl);
203
-
204
- if (getFileType(extensionFromUrl).match(/image|video/)) {
205
- downloadPath += extensionFromUrl;
206
- }
207
- }
208
-
209
- await fsModule.FileSystem.fetch(options.fileUrl, {
210
- path: downloadPath
211
- });
212
- const fileType = getFileType(getFileExtension(options.fileUrl));
213
-
214
- if (Platform.OS === 'ios' && fileType.match(/image|video/)) {
215
- await mediaLibraryModule.save(downloadPath);
216
- }
217
-
218
- if (Platform.OS === 'android') {
219
- const dirType = {
220
- 'file': 'downloads',
221
- 'audio': 'audio',
222
- 'image': 'images',
223
- 'video': 'video'
224
- };
225
- await fsModule.FileSystem.cpExternal(downloadPath, options.fileName, dirType[fileType]);
226
- }
227
-
228
- return downloadPath;
229
- }
230
-
231
- }
232
-
233
- return new NativeFileService();
234
- };
235
-
236
- export default createNativeFileService;
237
- //# sourceMappingURL=createFileService.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","getFileExtension","getFileType","fileTypeGuard","nativePermissionGranted","getAndroidStoragePermissionsByAPILevel","permissionModule","OS","Version","PERMISSIONS","ANDROID","READ_MEDIA_AUDIO","READ_MEDIA_IMAGES","READ_MEDIA_VIDEO","READ_EXTERNAL_STORAGE","WRITE_EXTERNAL_STORAGE","createNativeFileService","imagePickerModule","documentPickerModule","mediaLibraryModule","fsModule","cameraPermissions","select","ios","IOS","CAMERA","android","default","mediaLibraryPermissions","MEDIA_LIBRARY","PHOTO_LIBRARY","NativeFileService","hasCameraPermission","status","checkMultiple","requestCameraPermission","requestMultiple","hasMediaLibraryPermission","requestMediaLibraryPermission","openCamera","options","hasPermission","granted","onOpenFailureWithToastMessage","response","launchCamera","cameraType","mediaType","didCancel","errorCode","fileName","name","fileSize","size","type","uri","assets","openMediaLibrary","selectionLimit","launchImageLibrary","slice","map","openDocument","pickSingle","e","isCancel","isInProgress","save","Error","basePath","Dirs","CacheDir","DocumentDir","downloadPath","extensionFromUrl","fileUrl","match","FileSystem","fetch","path","fileType","dirType","cpExternal"],"sources":["createFileService.native.ts"],"sourcesContent":["import type CameraRoll from '@react-native-community/cameraroll';\nimport { Platform } from 'react-native';\nimport type * as DocumentPicker from 'react-native-document-picker';\nimport type * as FileAccess from 'react-native-file-access';\nimport type * as ImagePicker from 'react-native-image-picker';\nimport type * as Permissions from 'react-native-permissions';\nimport type { Permission } from 'react-native-permissions';\n\nimport { getFileExtension, getFileType } from '@sendbird/uikit-utils';\n\nimport fileTypeGuard from '../utils/fileTypeGuard';\nimport nativePermissionGranted from '../utils/nativePermissionGranted';\nimport type {\n FilePickerResponse,\n FileServiceInterface,\n OpenCameraOptions,\n OpenDocumentOptions,\n OpenMediaLibraryOptions,\n SaveOptions,\n} from './types';\n\nfunction getAndroidStoragePermissionsByAPILevel(permissionModule: typeof Permissions): Permission[] {\n if (Platform.OS !== 'android') return [];\n\n if (Platform.Version > 32) {\n return [\n permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_AUDIO,\n permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_IMAGES,\n permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_VIDEO,\n ];\n }\n\n if (Platform.Version > 28) {\n return [permissionModule.PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE];\n }\n\n return [\n permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE,\n permissionModule.PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE,\n ];\n}\n\nconst createNativeFileService = ({\n imagePickerModule,\n documentPickerModule,\n permissionModule,\n mediaLibraryModule,\n fsModule,\n}: {\n imagePickerModule: typeof ImagePicker;\n documentPickerModule: typeof DocumentPicker;\n permissionModule: typeof Permissions;\n mediaLibraryModule: typeof CameraRoll;\n fsModule: typeof FileAccess;\n}): FileServiceInterface => {\n const cameraPermissions: Permission[] = Platform.select({\n ios: [permissionModule.PERMISSIONS.IOS.CAMERA],\n android: [permissionModule.PERMISSIONS.ANDROID.CAMERA],\n default: [],\n });\n const mediaLibraryPermissions: Permission[] = Platform.select({\n ios: [permissionModule.PERMISSIONS.IOS.MEDIA_LIBRARY, permissionModule.PERMISSIONS.IOS.PHOTO_LIBRARY],\n android: getAndroidStoragePermissionsByAPILevel(permissionModule),\n default: [],\n });\n\n class NativeFileService implements FileServiceInterface {\n async hasCameraPermission(): Promise<boolean> {\n const status = await permissionModule.checkMultiple(cameraPermissions);\n return nativePermissionGranted(status);\n }\n async requestCameraPermission(): Promise<boolean> {\n const status = await permissionModule.requestMultiple(cameraPermissions);\n return nativePermissionGranted(status);\n }\n async hasMediaLibraryPermission(): Promise<boolean> {\n const status = await permissionModule.checkMultiple(mediaLibraryPermissions);\n return nativePermissionGranted(status);\n }\n async requestMediaLibraryPermission(): Promise<boolean> {\n const status = await permissionModule.requestMultiple(mediaLibraryPermissions);\n return nativePermissionGranted(status);\n }\n\n async openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse> {\n const hasPermission = await this.hasCameraPermission();\n if (!hasPermission) {\n const granted = await this.requestCameraPermission();\n if (!granted) {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n }\n\n const response = await imagePickerModule.launchCamera({\n cameraType: options?.cameraType ?? 'back',\n mediaType: options?.mediaType ?? 'photo',\n });\n if (response.didCancel) return null;\n if (response.errorCode === 'camera_unavailable') {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n\n const { fileName: name, fileSize: size, type, uri } = response.assets?.[0] ?? {};\n return fileTypeGuard({ uri, size, name, type });\n }\n async openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<FilePickerResponse[] | null> {\n /**\n * NOTE: options.selectionLimit {@link https://github.com/react-native-image-picker/react-native-image-picker#options}\n * We do not support 0 (any number of files)\n **/\n const selectionLimit = options?.selectionLimit || 1;\n const hasPermission = await this.hasMediaLibraryPermission();\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission();\n if (!granted) {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n }\n\n const response = await imagePickerModule.launchImageLibrary({\n selectionLimit,\n mediaType: (() => {\n switch (options?.mediaType) {\n case 'photo':\n return 'photo';\n case 'video':\n return 'video';\n default:\n return 'mixed';\n }\n })(),\n });\n if (response.didCancel) return null;\n if (response.errorCode === 'camera_unavailable') {\n options?.onOpenFailureWithToastMessage?.();\n return null;\n }\n\n return (response.assets || [])\n .slice(0, selectionLimit)\n .map(({ fileName: name, fileSize: size, type, uri }) => fileTypeGuard({ uri, size, name, type }));\n }\n async openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse> {\n try {\n const { uri, size, name, type } = await documentPickerModule.pickSingle();\n return fileTypeGuard({ uri, size, name, type });\n } catch (e) {\n if (!documentPickerModule.isCancel(e) && documentPickerModule.isInProgress(e)) {\n options?.onOpenFailureWithToastMessage?.();\n }\n return null;\n }\n }\n async save(options: SaveOptions): Promise<string> {\n const hasPermission = await this.hasMediaLibraryPermission();\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission();\n if (!granted) throw new Error('Permission not granted');\n }\n\n const basePath = Platform.select({ android: fsModule.Dirs.CacheDir, default: fsModule.Dirs.DocumentDir });\n let downloadPath = `${basePath}/${options.fileName}`;\n if (!getFileExtension(options.fileName)) {\n const extensionFromUrl = getFileExtension(options.fileUrl);\n if (getFileType(extensionFromUrl).match(/image|video/)) {\n downloadPath += extensionFromUrl;\n }\n }\n\n await fsModule.FileSystem.fetch(options.fileUrl, { path: downloadPath });\n const fileType = getFileType(getFileExtension(options.fileUrl));\n\n if (Platform.OS === 'ios' && fileType.match(/image|video/)) {\n await mediaLibraryModule.save(downloadPath);\n }\n\n if (Platform.OS === 'android') {\n const dirType = { 'file': 'downloads', 'audio': 'audio', 'image': 'images', 'video': 'video' } as const;\n await fsModule.FileSystem.cpExternal(downloadPath, options.fileName, dirType[fileType]);\n }\n return downloadPath;\n }\n }\n\n return new NativeFileService();\n};\n\nexport default createNativeFileService;\n"],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- const createExpoNotificationService = messagingModule => {
2
- const authorizedStatus = [messagingModule.IosAuthorizationStatus.AUTHORIZED, messagingModule.IosAuthorizationStatus.PROVISIONAL];
3
- return {
4
- async getAPNSToken() {
5
- const response = await messagingModule.getDevicePushTokenAsync();
6
- return response.data;
7
- },
8
-
9
- async getFCMToken() {
10
- const response = await messagingModule.getDevicePushTokenAsync();
11
- return response.data;
12
- },
13
-
14
- async hasPushPermission() {
15
- var _status$ios;
16
-
17
- const status = await messagingModule.getPermissionsAsync();
18
- return Boolean(status.granted || ((_status$ios = status.ios) === null || _status$ios === void 0 ? void 0 : _status$ios.status) && authorizedStatus.includes(status.ios.status));
19
- },
20
-
21
- async requestPushPermission() {
22
- var _status$ios2;
23
-
24
- const status = await messagingModule.requestPermissionsAsync();
25
- return Boolean(status.granted || ((_status$ios2 = status.ios) === null || _status$ios2 === void 0 ? void 0 : _status$ios2.status) && authorizedStatus.includes(status.ios.status));
26
- },
27
-
28
- onTokenRefresh(handler) {
29
- const subscription = messagingModule.addPushTokenListener(_ref => {
30
- let {
31
- data
32
- } = _ref;
33
- return handler(data);
34
- });
35
- return () => messagingModule.removePushTokenSubscription(subscription);
36
- }
37
-
38
- };
39
- };
40
-
41
- export default createExpoNotificationService;
42
- //# sourceMappingURL=createNotificationService.expo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createExpoNotificationService","messagingModule","authorizedStatus","IosAuthorizationStatus","AUTHORIZED","PROVISIONAL","getAPNSToken","response","getDevicePushTokenAsync","data","getFCMToken","hasPushPermission","status","getPermissionsAsync","Boolean","granted","ios","includes","requestPushPermission","requestPermissionsAsync","onTokenRefresh","handler","subscription","addPushTokenListener","removePushTokenSubscription"],"sources":["createNotificationService.expo.ts"],"sourcesContent":["import type ExpoNotification from 'expo-notifications';\n\nimport type { ExpoPushPermissionResponse } from '../utils/expoPermissionGranted';\nimport type { NotificationServiceInterface } from './types';\n\nconst createExpoNotificationService = (messagingModule: typeof ExpoNotification): NotificationServiceInterface => {\n const authorizedStatus = [\n messagingModule.IosAuthorizationStatus.AUTHORIZED,\n messagingModule.IosAuthorizationStatus.PROVISIONAL,\n ];\n\n return {\n async getAPNSToken(): Promise<string | null> {\n const response = await messagingModule.getDevicePushTokenAsync();\n return response.data;\n },\n async getFCMToken(): Promise<string | null> {\n const response = await messagingModule.getDevicePushTokenAsync();\n return response.data;\n },\n async hasPushPermission(): Promise<boolean> {\n const status = (await messagingModule.getPermissionsAsync()) as ExpoPushPermissionResponse;\n return Boolean(status.granted || (status.ios?.status && authorizedStatus.includes(status.ios.status)));\n },\n async requestPushPermission(): Promise<boolean> {\n const status = (await messagingModule.requestPermissionsAsync()) as ExpoPushPermissionResponse;\n return Boolean(status.granted || (status.ios?.status && authorizedStatus.includes(status.ios.status)));\n },\n onTokenRefresh(handler: (token: string) => void): () => void | undefined {\n const subscription = messagingModule.addPushTokenListener(({ data }) => handler(data));\n return () => messagingModule.removePushTokenSubscription(subscription);\n },\n };\n};\n\nexport default createExpoNotificationService;\n"],"mappings":"AAKA,MAAMA,6BAA6B,GAAIC,eAAD,IAA4E;EAChH,MAAMC,gBAAgB,GAAG,CACvBD,eAAe,CAACE,sBAAhB,CAAuCC,UADhB,EAEvBH,eAAe,CAACE,sBAAhB,CAAuCE,WAFhB,CAAzB;EAKA,OAAO;IACL,MAAMC,YAAN,GAA6C;MAC3C,MAAMC,QAAQ,GAAG,MAAMN,eAAe,CAACO,uBAAhB,EAAvB;MACA,OAAOD,QAAQ,CAACE,IAAhB;IACD,CAJI;;IAKL,MAAMC,WAAN,GAA4C;MAC1C,MAAMH,QAAQ,GAAG,MAAMN,eAAe,CAACO,uBAAhB,EAAvB;MACA,OAAOD,QAAQ,CAACE,IAAhB;IACD,CARI;;IASL,MAAME,iBAAN,GAA4C;MAAA;;MAC1C,MAAMC,MAAM,GAAI,MAAMX,eAAe,CAACY,mBAAhB,EAAtB;MACA,OAAOC,OAAO,CAACF,MAAM,CAACG,OAAP,IAAmB,gBAAAH,MAAM,CAACI,GAAP,4DAAYJ,MAAZ,KAAsBV,gBAAgB,CAACe,QAAjB,CAA0BL,MAAM,CAACI,GAAP,CAAWJ,MAArC,CAA1C,CAAd;IACD,CAZI;;IAaL,MAAMM,qBAAN,GAAgD;MAAA;;MAC9C,MAAMN,MAAM,GAAI,MAAMX,eAAe,CAACkB,uBAAhB,EAAtB;MACA,OAAOL,OAAO,CAACF,MAAM,CAACG,OAAP,IAAmB,iBAAAH,MAAM,CAACI,GAAP,8DAAYJ,MAAZ,KAAsBV,gBAAgB,CAACe,QAAjB,CAA0BL,MAAM,CAACI,GAAP,CAAWJ,MAArC,CAA1C,CAAd;IACD,CAhBI;;IAiBLQ,cAAc,CAACC,OAAD,EAA2D;MACvE,MAAMC,YAAY,GAAGrB,eAAe,CAACsB,oBAAhB,CAAqC;QAAA,IAAC;UAAEd;QAAF,CAAD;QAAA,OAAcY,OAAO,CAACZ,IAAD,CAArB;MAAA,CAArC,CAArB;MACA,OAAO,MAAMR,eAAe,CAACuB,2BAAhB,CAA4CF,YAA5C,CAAb;IACD;;EApBI,CAAP;AAsBD,CA5BD;;AA8BA,eAAetB,6BAAf"}
@@ -1,57 +0,0 @@
1
- import { Platform } from 'react-native';
2
-
3
- const createNativeNotificationService = _ref => {
4
- let {
5
- messagingModule,
6
- permissionModule
7
- } = _ref;
8
- const module = messagingModule();
9
- const authorizedStatus = [messagingModule.AuthorizationStatus.AUTHORIZED, messagingModule.AuthorizationStatus.PROVISIONAL];
10
- return {
11
- getAPNSToken() {
12
- return module.getAPNSToken();
13
- },
14
-
15
- getFCMToken() {
16
- return module.getToken();
17
- },
18
-
19
- async hasPushPermission() {
20
- if (Platform.OS === 'android') {
21
- const result = await permissionModule.checkNotifications();
22
- return result.status === 'granted';
23
- }
24
-
25
- if (Platform.OS === 'ios') {
26
- const status = await module.hasPermission();
27
- return authorizedStatus.includes(status);
28
- }
29
-
30
- return false;
31
- },
32
-
33
- async requestPushPermission() {
34
- if (Platform.OS === 'android') {
35
- const result = await permissionModule.requestNotifications([]);
36
- return result.status === 'granted';
37
- }
38
-
39
- if (Platform.OS === 'ios') {
40
- const status = await module.requestPermission();
41
- return authorizedStatus.includes(status);
42
- }
43
-
44
- return false;
45
- },
46
-
47
- onTokenRefresh(handler) {
48
- return module.onTokenRefresh(token => {
49
- if (Platform.OS === 'android') handler(token);
50
- });
51
- }
52
-
53
- };
54
- };
55
-
56
- export default createNativeNotificationService;
57
- //# sourceMappingURL=createNotificationService.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","createNativeNotificationService","messagingModule","permissionModule","module","authorizedStatus","AuthorizationStatus","AUTHORIZED","PROVISIONAL","getAPNSToken","getFCMToken","getToken","hasPushPermission","OS","result","checkNotifications","status","hasPermission","includes","requestPushPermission","requestNotifications","requestPermission","onTokenRefresh","handler","token"],"sources":["createNotificationService.native.ts"],"sourcesContent":["import type RNFBMessaging from '@react-native-firebase/messaging';\nimport { Platform } from 'react-native';\nimport type * as Permissions from 'react-native-permissions';\n\nimport type { NotificationServiceInterface } from './types';\n\nconst createNativeNotificationService = ({\n messagingModule,\n permissionModule,\n}: {\n messagingModule: typeof RNFBMessaging;\n permissionModule: typeof Permissions;\n}): NotificationServiceInterface => {\n const module = messagingModule();\n const authorizedStatus = [\n messagingModule.AuthorizationStatus.AUTHORIZED,\n messagingModule.AuthorizationStatus.PROVISIONAL,\n ];\n return {\n getAPNSToken(): Promise<string | null> {\n return module.getAPNSToken();\n },\n getFCMToken(): Promise<string | null> {\n return module.getToken();\n },\n async hasPushPermission(): Promise<boolean> {\n if (Platform.OS === 'android') {\n const result = await permissionModule.checkNotifications();\n return result.status === 'granted';\n }\n\n if (Platform.OS === 'ios') {\n const status = await module.hasPermission();\n return authorizedStatus.includes(status);\n }\n\n return false;\n },\n async requestPushPermission(): Promise<boolean> {\n if (Platform.OS === 'android') {\n const result = await permissionModule.requestNotifications([]);\n return result.status === 'granted';\n }\n\n if (Platform.OS === 'ios') {\n const status = await module.requestPermission();\n return authorizedStatus.includes(status);\n }\n\n return false;\n },\n onTokenRefresh(handler: (token: string) => void): () => void | undefined {\n return module.onTokenRefresh((token) => {\n if (Platform.OS === 'android') handler(token);\n });\n },\n };\n};\n\nexport default createNativeNotificationService;\n"],"mappings":"AACA,SAASA,QAAT,QAAyB,cAAzB;;AAKA,MAAMC,+BAA+B,GAAG,QAMJ;EAAA,IANK;IACvCC,eADuC;IAEvCC;EAFuC,CAML;EAClC,MAAMC,MAAM,GAAGF,eAAe,EAA9B;EACA,MAAMG,gBAAgB,GAAG,CACvBH,eAAe,CAACI,mBAAhB,CAAoCC,UADb,EAEvBL,eAAe,CAACI,mBAAhB,CAAoCE,WAFb,CAAzB;EAIA,OAAO;IACLC,YAAY,GAA2B;MACrC,OAAOL,MAAM,CAACK,YAAP,EAAP;IACD,CAHI;;IAILC,WAAW,GAA2B;MACpC,OAAON,MAAM,CAACO,QAAP,EAAP;IACD,CANI;;IAOL,MAAMC,iBAAN,GAA4C;MAC1C,IAAIZ,QAAQ,CAACa,EAAT,KAAgB,SAApB,EAA+B;QAC7B,MAAMC,MAAM,GAAG,MAAMX,gBAAgB,CAACY,kBAAjB,EAArB;QACA,OAAOD,MAAM,CAACE,MAAP,KAAkB,SAAzB;MACD;;MAED,IAAIhB,QAAQ,CAACa,EAAT,KAAgB,KAApB,EAA2B;QACzB,MAAMG,MAAM,GAAG,MAAMZ,MAAM,CAACa,aAAP,EAArB;QACA,OAAOZ,gBAAgB,CAACa,QAAjB,CAA0BF,MAA1B,CAAP;MACD;;MAED,OAAO,KAAP;IACD,CAnBI;;IAoBL,MAAMG,qBAAN,GAAgD;MAC9C,IAAInB,QAAQ,CAACa,EAAT,KAAgB,SAApB,EAA+B;QAC7B,MAAMC,MAAM,GAAG,MAAMX,gBAAgB,CAACiB,oBAAjB,CAAsC,EAAtC,CAArB;QACA,OAAON,MAAM,CAACE,MAAP,KAAkB,SAAzB;MACD;;MAED,IAAIhB,QAAQ,CAACa,EAAT,KAAgB,KAApB,EAA2B;QACzB,MAAMG,MAAM,GAAG,MAAMZ,MAAM,CAACiB,iBAAP,EAArB;QACA,OAAOhB,gBAAgB,CAACa,QAAjB,CAA0BF,MAA1B,CAAP;MACD;;MAED,OAAO,KAAP;IACD,CAhCI;;IAiCLM,cAAc,CAACC,OAAD,EAA2D;MACvE,OAAOnB,MAAM,CAACkB,cAAP,CAAuBE,KAAD,IAAW;QACtC,IAAIxB,QAAQ,CAACa,EAAT,KAAgB,SAApB,EAA+BU,OAAO,CAACC,KAAD,CAAP;MAChC,CAFM,CAAP;IAGD;;EArCI,CAAP;AAuCD,CAnDD;;AAqDA,eAAevB,+BAAf"}