@sendbird/uikit-react-native 1.0.1 → 1.0.2

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 (476) hide show
  1. package/lib/commonjs/InternalErrorBoundary.js +84 -0
  2. package/lib/commonjs/InternalErrorBoundary.js.map +1 -0
  3. package/lib/commonjs/InternalLocalCacheStorage.js +59 -0
  4. package/lib/commonjs/InternalLocalCacheStorage.js.map +1 -0
  5. package/lib/commonjs/SendbirdUIKitContainer.js +166 -0
  6. package/lib/commonjs/SendbirdUIKitContainer.js.map +1 -0
  7. package/lib/commonjs/components/ChannelCover.js +59 -0
  8. package/lib/commonjs/components/ChannelCover.js.map +1 -0
  9. package/lib/commonjs/components/ChatFlatList.js +118 -0
  10. package/lib/commonjs/components/ChatFlatList.js.map +1 -0
  11. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +52 -0
  12. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +1 -0
  13. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +76 -0
  14. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -0
  15. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +61 -0
  16. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -0
  17. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +31 -0
  18. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -0
  19. package/lib/commonjs/components/MessageRenderer/MessageContainer.js +33 -0
  20. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +1 -0
  21. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js +58 -0
  22. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +1 -0
  23. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +42 -0
  24. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -0
  25. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +48 -0
  26. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -0
  27. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +134 -0
  28. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -0
  29. package/lib/commonjs/components/MessageRenderer/MessageTime.js +41 -0
  30. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +1 -0
  31. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +53 -0
  32. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +1 -0
  33. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +54 -0
  34. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -0
  35. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +131 -0
  36. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -0
  37. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +31 -0
  38. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -0
  39. package/lib/commonjs/components/MessageRenderer/index.js +189 -0
  40. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -0
  41. package/lib/commonjs/components/NewMessagesButton.js +73 -0
  42. package/lib/commonjs/components/NewMessagesButton.js.map +1 -0
  43. package/lib/commonjs/components/ProviderLayout.js +37 -0
  44. package/lib/commonjs/components/ProviderLayout.js.map +1 -0
  45. package/lib/commonjs/components/ScrollToBottomButton.js +66 -0
  46. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -0
  47. package/lib/commonjs/components/StatusComposition.js +27 -0
  48. package/lib/commonjs/components/StatusComposition.js.map +1 -0
  49. package/lib/commonjs/components/TypedPlaceholder.js +80 -0
  50. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -0
  51. package/lib/commonjs/components/UserActionBar.js +96 -0
  52. package/lib/commonjs/components/UserActionBar.js.map +1 -0
  53. package/lib/commonjs/components/UserSelectableBar.js +78 -0
  54. package/lib/commonjs/components/UserSelectableBar.js.map +1 -0
  55. package/lib/commonjs/constants.js +9 -0
  56. package/lib/commonjs/constants.js.map +1 -0
  57. package/lib/commonjs/contexts/Localization.js +29 -0
  58. package/lib/commonjs/contexts/Localization.js.map +1 -0
  59. package/lib/commonjs/contexts/PlatformService.js +33 -0
  60. package/lib/commonjs/contexts/PlatformService.js.map +1 -0
  61. package/lib/commonjs/contexts/SendbirdChat.js +87 -0
  62. package/lib/commonjs/contexts/SendbirdChat.js.map +1 -0
  63. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +88 -0
  64. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -0
  65. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +118 -0
  66. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -0
  67. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +148 -0
  68. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -0
  69. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +115 -0
  70. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -0
  71. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +343 -0
  72. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -0
  73. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +34 -0
  74. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -0
  75. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +34 -0
  76. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -0
  77. package/lib/commonjs/domain/groupChannel/index.js +70 -0
  78. package/lib/commonjs/domain/groupChannel/index.js.map +1 -0
  79. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +45 -0
  80. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -0
  81. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +79 -0
  82. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -0
  83. package/lib/commonjs/domain/groupChannel/types.js +6 -0
  84. package/lib/commonjs/domain/groupChannel/types.js.map +1 -0
  85. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +35 -0
  86. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -0
  87. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +96 -0
  88. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -0
  89. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +34 -0
  90. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -0
  91. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +34 -0
  92. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -0
  93. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +141 -0
  94. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -0
  95. package/lib/commonjs/domain/groupChannelList/index.js +70 -0
  96. package/lib/commonjs/domain/groupChannelList/index.js.map +1 -0
  97. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +45 -0
  98. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -0
  99. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +61 -0
  100. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -0
  101. package/lib/commonjs/domain/groupChannelList/types.js +6 -0
  102. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -0
  103. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +49 -0
  104. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -0
  105. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +77 -0
  106. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -0
  107. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +94 -0
  108. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -0
  109. package/lib/commonjs/domain/groupChannelSettings/index.js +54 -0
  110. package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -0
  111. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +37 -0
  112. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -0
  113. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +150 -0
  114. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -0
  115. package/lib/commonjs/domain/groupChannelSettings/types.js +6 -0
  116. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -0
  117. package/lib/commonjs/domain/groupChannelUserList/types.js +6 -0
  118. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -0
  119. package/lib/commonjs/domain/userList/component/UserListHeader.js +56 -0
  120. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -0
  121. package/lib/commonjs/domain/userList/component/UserListList.js +57 -0
  122. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -0
  123. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +34 -0
  124. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -0
  125. package/lib/commonjs/domain/userList/component/UserListStatusError.js +38 -0
  126. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -0
  127. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +34 -0
  128. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -0
  129. package/lib/commonjs/domain/userList/index.js +70 -0
  130. package/lib/commonjs/domain/userList/index.js.map +1 -0
  131. package/lib/commonjs/domain/userList/module/createUserListModule.js +45 -0
  132. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -0
  133. package/lib/commonjs/domain/userList/module/moduleContext.js +54 -0
  134. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -0
  135. package/lib/commonjs/domain/userList/types.js +6 -0
  136. package/lib/commonjs/domain/userList/types.js.map +1 -0
  137. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +145 -0
  138. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -0
  139. package/lib/commonjs/fragments/createGroupChannelFragment.js +154 -0
  140. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -0
  141. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +139 -0
  142. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -0
  143. package/lib/commonjs/fragments/createGroupChannelListFragment.js +141 -0
  144. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -0
  145. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +134 -0
  146. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -0
  147. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +66 -0
  148. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -0
  149. package/lib/commonjs/hooks/useConnection.js +102 -0
  150. package/lib/commonjs/hooks/useConnection.js.map +1 -0
  151. package/lib/commonjs/hooks/useContext.js +39 -0
  152. package/lib/commonjs/hooks/useContext.js.map +1 -0
  153. package/lib/commonjs/hooks/usePushTokenRegistration.js +83 -0
  154. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -0
  155. package/lib/commonjs/index.js +449 -0
  156. package/lib/commonjs/index.js.map +1 -0
  157. package/lib/commonjs/localization/StringSet.en.js +19 -0
  158. package/lib/commonjs/localization/StringSet.en.js.map +1 -0
  159. package/lib/commonjs/localization/StringSet.type.js +178 -0
  160. package/lib/commonjs/localization/StringSet.type.js.map +1 -0
  161. package/lib/commonjs/platform/createClipboardService.expo.js +23 -0
  162. package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -0
  163. package/lib/commonjs/platform/createClipboardService.native.js +23 -0
  164. package/lib/commonjs/platform/createClipboardService.native.js.map +1 -0
  165. package/lib/commonjs/platform/createFileService.expo.js +175 -0
  166. package/lib/commonjs/platform/createFileService.expo.js.map +1 -0
  167. package/lib/commonjs/platform/createFileService.native.js +253 -0
  168. package/lib/commonjs/platform/createFileService.native.js.map +1 -0
  169. package/lib/commonjs/platform/createNotificationService.expo.js +50 -0
  170. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -0
  171. package/lib/commonjs/platform/createNotificationService.native.js +65 -0
  172. package/lib/commonjs/platform/createNotificationService.native.js.map +1 -0
  173. package/lib/commonjs/platform/dynamicModule.js +114 -0
  174. package/lib/commonjs/platform/dynamicModule.js.map +1 -0
  175. package/lib/commonjs/platform/types.js +2 -0
  176. package/lib/commonjs/platform/types.js.map +1 -0
  177. package/lib/commonjs/types.js +6 -0
  178. package/lib/commonjs/types.js.map +1 -0
  179. package/lib/commonjs/utils/expoPermissionGranted.js +32 -0
  180. package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -0
  181. package/lib/commonjs/utils/fileTypeGuard.js +26 -0
  182. package/lib/commonjs/utils/fileTypeGuard.js.map +1 -0
  183. package/lib/commonjs/utils/nativePermissionGranted.js +23 -0
  184. package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -0
  185. package/lib/commonjs/version.js +10 -0
  186. package/lib/commonjs/version.js.map +1 -0
  187. package/lib/module/InternalErrorBoundary.js +72 -0
  188. package/lib/module/InternalErrorBoundary.js.map +1 -0
  189. package/lib/module/InternalLocalCacheStorage.js +50 -0
  190. package/lib/module/InternalLocalCacheStorage.js.map +1 -0
  191. package/lib/module/SendbirdUIKitContainer.js +136 -0
  192. package/lib/module/SendbirdUIKitContainer.js.map +1 -0
  193. package/lib/module/components/ChannelCover.js +46 -0
  194. package/lib/module/components/ChannelCover.js.map +1 -0
  195. package/lib/module/components/ChatFlatList.js +102 -0
  196. package/lib/module/components/ChatFlatList.js.map +1 -0
  197. package/lib/module/components/MessageRenderer/AdminMessage/index.js +40 -0
  198. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +1 -0
  199. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +62 -0
  200. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -0
  201. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +47 -0
  202. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -0
  203. package/lib/module/components/MessageRenderer/FileMessage/index.js +17 -0
  204. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -0
  205. package/lib/module/components/MessageRenderer/MessageContainer.js +21 -0
  206. package/lib/module/components/MessageRenderer/MessageContainer.js.map +1 -0
  207. package/lib/module/components/MessageRenderer/MessageDateSeparator.js +44 -0
  208. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +1 -0
  209. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +30 -0
  210. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -0
  211. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +35 -0
  212. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -0
  213. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +116 -0
  214. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -0
  215. package/lib/module/components/MessageRenderer/MessageTime.js +28 -0
  216. package/lib/module/components/MessageRenderer/MessageTime.js.map +1 -0
  217. package/lib/module/components/MessageRenderer/UnknownMessage/index.js +40 -0
  218. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +1 -0
  219. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +41 -0
  220. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -0
  221. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +115 -0
  222. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -0
  223. package/lib/module/components/MessageRenderer/UserMessage/index.js +18 -0
  224. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -0
  225. package/lib/module/components/MessageRenderer/index.js +163 -0
  226. package/lib/module/components/MessageRenderer/index.js.map +1 -0
  227. package/lib/module/components/NewMessagesButton.js +58 -0
  228. package/lib/module/components/NewMessagesButton.js.map +1 -0
  229. package/lib/module/components/ProviderLayout.js +25 -0
  230. package/lib/module/components/ProviderLayout.js.map +1 -0
  231. package/lib/module/components/ScrollToBottomButton.js +52 -0
  232. package/lib/module/components/ScrollToBottomButton.js.map +1 -0
  233. package/lib/module/components/StatusComposition.js +17 -0
  234. package/lib/module/components/StatusComposition.js.map +1 -0
  235. package/lib/module/components/TypedPlaceholder.js +68 -0
  236. package/lib/module/components/TypedPlaceholder.js.map +1 -0
  237. package/lib/module/components/UserActionBar.js +81 -0
  238. package/lib/module/components/UserActionBar.js.map +1 -0
  239. package/lib/module/components/UserSelectableBar.js +63 -0
  240. package/lib/module/components/UserSelectableBar.js.map +1 -0
  241. package/lib/module/constants.js +2 -0
  242. package/lib/module/constants.js.map +1 -0
  243. package/lib/module/contexts/Localization.js +14 -0
  244. package/lib/module/contexts/Localization.js.map +1 -0
  245. package/lib/module/contexts/PlatformService.js +18 -0
  246. package/lib/module/contexts/PlatformService.js.map +1 -0
  247. package/lib/module/contexts/SendbirdChat.js +66 -0
  248. package/lib/module/contexts/SendbirdChat.js.map +1 -0
  249. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +69 -0
  250. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -0
  251. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +102 -0
  252. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -0
  253. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +134 -0
  254. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -0
  255. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +92 -0
  256. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -0
  257. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +317 -0
  258. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -0
  259. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js +21 -0
  260. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -0
  261. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js +21 -0
  262. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -0
  263. package/lib/module/domain/groupChannel/index.js +8 -0
  264. package/lib/module/domain/groupChannel/index.js.map +1 -0
  265. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +30 -0
  266. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -0
  267. package/lib/module/domain/groupChannel/module/moduleContext.js +57 -0
  268. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -0
  269. package/lib/module/domain/groupChannel/types.js +2 -0
  270. package/lib/module/domain/groupChannel/types.js.map +1 -0
  271. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js +21 -0
  272. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -0
  273. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +79 -0
  274. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -0
  275. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +21 -0
  276. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -0
  277. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js +21 -0
  278. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -0
  279. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +124 -0
  280. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -0
  281. package/lib/module/domain/groupChannelList/index.js +8 -0
  282. package/lib/module/domain/groupChannelList/index.js.map +1 -0
  283. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +30 -0
  284. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -0
  285. package/lib/module/domain/groupChannelList/module/moduleContext.js +40 -0
  286. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -0
  287. package/lib/module/domain/groupChannelList/types.js +2 -0
  288. package/lib/module/domain/groupChannelList/types.js.map +1 -0
  289. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +35 -0
  290. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -0
  291. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +56 -0
  292. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -0
  293. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +78 -0
  294. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -0
  295. package/lib/module/domain/groupChannelSettings/index.js +6 -0
  296. package/lib/module/domain/groupChannelSettings/index.js.map +1 -0
  297. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +24 -0
  298. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -0
  299. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +127 -0
  300. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -0
  301. package/lib/module/domain/groupChannelSettings/types.js +2 -0
  302. package/lib/module/domain/groupChannelSettings/types.js.map +1 -0
  303. package/lib/module/domain/groupChannelUserList/types.js +2 -0
  304. package/lib/module/domain/groupChannelUserList/types.js.map +1 -0
  305. package/lib/module/domain/userList/component/UserListHeader.js +42 -0
  306. package/lib/module/domain/userList/component/UserListHeader.js.map +1 -0
  307. package/lib/module/domain/userList/component/UserListList.js +42 -0
  308. package/lib/module/domain/userList/component/UserListList.js.map +1 -0
  309. package/lib/module/domain/userList/component/UserListStatusEmpty.js +21 -0
  310. package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -0
  311. package/lib/module/domain/userList/component/UserListStatusError.js +25 -0
  312. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -0
  313. package/lib/module/domain/userList/component/UserListStatusLoading.js +21 -0
  314. package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -0
  315. package/lib/module/domain/userList/index.js +8 -0
  316. package/lib/module/domain/userList/index.js.map +1 -0
  317. package/lib/module/domain/userList/module/createUserListModule.js +30 -0
  318. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -0
  319. package/lib/module/domain/userList/module/moduleContext.js +34 -0
  320. package/lib/module/domain/userList/module/moduleContext.js.map +1 -0
  321. package/lib/module/domain/userList/types.js +2 -0
  322. package/lib/module/domain/userList/types.js.map +1 -0
  323. package/lib/module/fragments/createGroupChannelCreateFragment.js +124 -0
  324. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -0
  325. package/lib/module/fragments/createGroupChannelFragment.js +132 -0
  326. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -0
  327. package/lib/module/fragments/createGroupChannelInviteFragment.js +118 -0
  328. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -0
  329. package/lib/module/fragments/createGroupChannelListFragment.js +115 -0
  330. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -0
  331. package/lib/module/fragments/createGroupChannelMembersFragment.js +114 -0
  332. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -0
  333. package/lib/module/fragments/createGroupChannelSettingsFragment.js +51 -0
  334. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -0
  335. package/lib/module/hooks/useConnection.js +79 -0
  336. package/lib/module/hooks/useConnection.js.map +1 -0
  337. package/lib/module/hooks/useContext.js +20 -0
  338. package/lib/module/hooks/useContext.js.map +1 -0
  339. package/lib/module/hooks/usePushTokenRegistration.js +69 -0
  340. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -0
  341. package/lib/module/index.js +57 -0
  342. package/lib/module/index.js.map +1 -0
  343. package/lib/module/localization/StringSet.en.js +7 -0
  344. package/lib/module/localization/StringSet.en.js.map +1 -0
  345. package/lib/module/localization/StringSet.type.js +173 -0
  346. package/lib/module/localization/StringSet.type.js.map +1 -0
  347. package/lib/module/platform/createClipboardService.expo.js +15 -0
  348. package/lib/module/platform/createClipboardService.expo.js.map +1 -0
  349. package/lib/module/platform/createClipboardService.native.js +15 -0
  350. package/lib/module/platform/createClipboardService.native.js.map +1 -0
  351. package/lib/module/platform/createFileService.expo.js +163 -0
  352. package/lib/module/platform/createFileService.expo.js.map +1 -0
  353. package/lib/module/platform/createFileService.native.js +237 -0
  354. package/lib/module/platform/createFileService.native.js.map +1 -0
  355. package/lib/module/platform/createNotificationService.expo.js +42 -0
  356. package/lib/module/platform/createNotificationService.expo.js.map +1 -0
  357. package/lib/module/platform/createNotificationService.native.js +57 -0
  358. package/lib/module/platform/createNotificationService.native.js.map +1 -0
  359. package/lib/module/platform/dynamicModule.js +103 -0
  360. package/lib/module/platform/dynamicModule.js.map +1 -0
  361. package/lib/module/platform/types.js +2 -0
  362. package/lib/module/platform/types.js.map +1 -0
  363. package/lib/module/types.js +2 -0
  364. package/lib/module/types.js.map +1 -0
  365. package/lib/module/utils/expoPermissionGranted.js +24 -0
  366. package/lib/module/utils/expoPermissionGranted.js.map +1 -0
  367. package/lib/module/utils/fileTypeGuard.js +18 -0
  368. package/lib/module/utils/fileTypeGuard.js.map +1 -0
  369. package/lib/module/utils/nativePermissionGranted.js +15 -0
  370. package/lib/module/utils/nativePermissionGranted.js.map +1 -0
  371. package/lib/module/version.js +3 -0
  372. package/lib/module/version.js.map +1 -0
  373. package/lib/typescript/__template__/component/__domain__Header.d.ts +3 -0
  374. package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +2 -0
  375. package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +2 -0
  376. package/lib/typescript/__template__/component/__domain__View.d.ts +3 -0
  377. package/lib/typescript/__template__/create__domain__Fragment.d.ts +2 -0
  378. package/lib/typescript/__template__/index.d.ts +6 -0
  379. package/lib/typescript/__template__/module/create__domain__Module.d.ts +3 -0
  380. package/lib/typescript/__template__/module/moduleContext.d.ts +3 -0
  381. package/lib/typescript/__template__/types.d.ts +31 -0
  382. package/lib/typescript/src/InternalErrorBoundary.d.ts +19 -0
  383. package/lib/typescript/src/InternalLocalCacheStorage.d.ts +12 -0
  384. package/lib/typescript/src/SendbirdUIKitContainer.d.ts +41 -0
  385. package/lib/typescript/src/components/ChannelCover.d.ts +9 -0
  386. package/lib/typescript/src/components/ChatFlatList.d.ts +14 -0
  387. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +5 -0
  388. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +6 -0
  389. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +3 -0
  390. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +6 -0
  391. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +3 -0
  392. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +7 -0
  393. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +7 -0
  394. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +7 -0
  395. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +8 -0
  396. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +9 -0
  397. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +4 -0
  398. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +3 -0
  399. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +7 -0
  400. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +6 -0
  401. package/lib/typescript/src/components/MessageRenderer/index.d.ts +23 -0
  402. package/lib/typescript/src/components/NewMessagesButton.d.ts +9 -0
  403. package/lib/typescript/src/components/ProviderLayout.d.ts +3 -0
  404. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +7 -0
  405. package/lib/typescript/src/components/StatusComposition.d.ts +10 -0
  406. package/lib/typescript/src/components/TypedPlaceholder.d.ts +6 -0
  407. package/lib/typescript/src/components/UserActionBar.d.ts +11 -0
  408. package/lib/typescript/src/components/UserSelectableBar.d.ts +9 -0
  409. package/lib/typescript/src/constants.d.ts +1 -0
  410. package/lib/typescript/src/contexts/Localization.d.ts +11 -0
  411. package/lib/typescript/src/contexts/PlatformService.d.ts +10 -0
  412. package/lib/typescript/src/contexts/SendbirdChat.d.ts +24 -0
  413. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +3 -0
  414. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +10 -0
  415. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +8 -0
  416. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +9 -0
  417. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +36 -0
  418. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +2 -0
  419. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +2 -0
  420. package/lib/typescript/src/domain/groupChannel/index.d.ts +7 -0
  421. package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +3 -0
  422. package/lib/typescript/src/domain/groupChannel/module/moduleContext.d.ts +3 -0
  423. package/lib/typescript/src/domain/groupChannel/types.d.ts +102 -0
  424. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +3 -0
  425. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +3 -0
  426. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +2 -0
  427. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +2 -0
  428. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +3 -0
  429. package/lib/typescript/src/domain/groupChannelList/index.d.ts +7 -0
  430. package/lib/typescript/src/domain/groupChannelList/module/createGroupChannelListModule.d.ts +3 -0
  431. package/lib/typescript/src/domain/groupChannelList/module/moduleContext.d.ts +3 -0
  432. package/lib/typescript/src/domain/groupChannelList/types.d.ts +81 -0
  433. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +3 -0
  434. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +3 -0
  435. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +3 -0
  436. package/lib/typescript/src/domain/groupChannelSettings/index.d.ts +5 -0
  437. package/lib/typescript/src/domain/groupChannelSettings/module/createGroupChannelSettingsModule.d.ts +3 -0
  438. package/lib/typescript/src/domain/groupChannelSettings/module/moduleContext.d.ts +3 -0
  439. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +45 -0
  440. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +42 -0
  441. package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +10 -0
  442. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +11 -0
  443. package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +2 -0
  444. package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +3 -0
  445. package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +2 -0
  446. package/lib/typescript/src/domain/userList/index.d.ts +7 -0
  447. package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +3 -0
  448. package/lib/typescript/src/domain/userList/module/moduleContext.d.ts +3 -0
  449. package/lib/typescript/src/domain/userList/types.d.ts +58 -0
  450. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +4 -0
  451. package/lib/typescript/src/fragments/createGroupChannelFragment.d.ts +3 -0
  452. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +4 -0
  453. package/lib/typescript/src/fragments/createGroupChannelListFragment.d.ts +3 -0
  454. package/lib/typescript/src/fragments/createGroupChannelMembersFragment.d.ts +5 -0
  455. package/lib/typescript/src/fragments/createGroupChannelSettingsFragment.d.ts +3 -0
  456. package/lib/typescript/src/hooks/useConnection.d.ts +11 -0
  457. package/lib/typescript/src/hooks/useContext.d.ts +24 -0
  458. package/lib/typescript/src/hooks/usePushTokenRegistration.d.ts +5 -0
  459. package/lib/typescript/src/index.d.ts +50 -0
  460. package/lib/typescript/src/localization/StringSet.en.d.ts +2 -0
  461. package/lib/typescript/src/localization/StringSet.type.d.ts +157 -0
  462. package/lib/typescript/src/platform/createClipboardService.expo.d.ts +4 -0
  463. package/lib/typescript/src/platform/createClipboardService.native.d.ts +4 -0
  464. package/lib/typescript/src/platform/createFileService.expo.d.ts +12 -0
  465. package/lib/typescript/src/platform/createFileService.native.d.ts +14 -0
  466. package/lib/typescript/src/platform/createNotificationService.expo.d.ts +4 -0
  467. package/lib/typescript/src/platform/createNotificationService.native.d.ts +8 -0
  468. package/lib/typescript/src/platform/dynamicModule.d.ts +23 -0
  469. package/lib/typescript/src/platform/types.d.ts +47 -0
  470. package/lib/typescript/src/types.d.ts +20 -0
  471. package/lib/typescript/src/utils/expoPermissionGranted.d.ts +13 -0
  472. package/lib/typescript/src/utils/fileTypeGuard.d.ts +4 -0
  473. package/lib/typescript/src/utils/nativePermissionGranted.d.ts +3 -0
  474. package/lib/typescript/src/version.d.ts +2 -0
  475. package/package.json +5 -5
  476. package/src/version.ts +1 -1
@@ -0,0 +1,24 @@
1
+ import GroupChannelSettingsHeader from '../component/GroupChannelSettingsHeader';
2
+ import GroupChannelSettingsInfo from '../component/GroupChannelSettingsInfo';
3
+ import GroupChannelSettingsMenu from '../component/GroupChannelSettingsMenu';
4
+ import { GroupChannelSettingsContextsProvider } from './moduleContext';
5
+
6
+ const createGroupChannelSettingsModule = function () {
7
+ let {
8
+ Header = GroupChannelSettingsHeader,
9
+ Info = GroupChannelSettingsInfo,
10
+ Menu = GroupChannelSettingsMenu,
11
+ Provider = GroupChannelSettingsContextsProvider,
12
+ ...module
13
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14
+ return {
15
+ Header,
16
+ Info,
17
+ Menu,
18
+ Provider,
19
+ ...module
20
+ };
21
+ };
22
+
23
+ export default createGroupChannelSettingsModule;
24
+ //# sourceMappingURL=createGroupChannelSettingsModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GroupChannelSettingsHeader","GroupChannelSettingsInfo","GroupChannelSettingsMenu","GroupChannelSettingsContextsProvider","createGroupChannelSettingsModule","Header","Info","Menu","Provider","module"],"sources":["createGroupChannelSettingsModule.tsx"],"sourcesContent":["import GroupChannelSettingsHeader from '../component/GroupChannelSettingsHeader';\nimport GroupChannelSettingsInfo from '../component/GroupChannelSettingsInfo';\nimport GroupChannelSettingsMenu from '../component/GroupChannelSettingsMenu';\nimport type { GroupChannelSettingsModule } from '../types';\nimport { GroupChannelSettingsContextsProvider } from './moduleContext';\n\nconst createGroupChannelSettingsModule = ({\n Header = GroupChannelSettingsHeader,\n Info = GroupChannelSettingsInfo,\n Menu = GroupChannelSettingsMenu,\n Provider = GroupChannelSettingsContextsProvider,\n ...module\n}: Partial<GroupChannelSettingsModule> = {}): GroupChannelSettingsModule => {\n return { Header, Info, Menu, Provider, ...module };\n};\n\nexport default createGroupChannelSettingsModule;\n"],"mappings":"AAAA,OAAOA,0BAAP,MAAuC,yCAAvC;AACA,OAAOC,wBAAP,MAAqC,uCAArC;AACA,OAAOC,wBAAP,MAAqC,uCAArC;AAEA,SAASC,oCAAT,QAAqD,iBAArD;;AAEA,MAAMC,gCAAgC,GAAG,YAMmC;EAAA,IANlC;IACxCC,MAAM,GAAGL,0BAD+B;IAExCM,IAAI,GAAGL,wBAFiC;IAGxCM,IAAI,GAAGL,wBAHiC;IAIxCM,QAAQ,GAAGL,oCAJ6B;IAKxC,GAAGM;EALqC,CAMkC,uEAAnC,EAAmC;EAC1E,OAAO;IAAEJ,MAAF;IAAUC,IAAV;IAAgBC,IAAhB;IAAsBC,QAAtB;IAAgC,GAAGC;EAAnC,CAAP;AACD,CARD;;AAUA,eAAeL,gCAAf"}
@@ -0,0 +1,127 @@
1
+ import React, { createContext, useCallback } from 'react';
2
+ import { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';
3
+ import { useActionMenu, useBottomSheet, usePrompt, useToast } from '@sendbird/uikit-react-native-foundation';
4
+ import { NOOP, isDifferentChannel, useForceUpdate, useUniqId } from '@sendbird/uikit-utils';
5
+ import ProviderLayout from '../../../components/ProviderLayout';
6
+ import { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';
7
+ export const GroupChannelSettingsContexts = {
8
+ Fragment: /*#__PURE__*/createContext({
9
+ channel: {},
10
+ headerTitle: '',
11
+ headerRight: '',
12
+ onPressHeaderRight: NOOP
13
+ })
14
+ };
15
+ const HOOK_NAME = 'GroupChannelSettingsContextsProvider';
16
+ export const GroupChannelSettingsContextsProvider = _ref => {
17
+ let {
18
+ children,
19
+ channel
20
+ } = _ref;
21
+ const uniqId = useUniqId(HOOK_NAME);
22
+ const forceUpdate = useForceUpdate();
23
+ const {
24
+ STRINGS
25
+ } = useLocalization();
26
+ const {
27
+ sdk
28
+ } = useSendbirdChat();
29
+ const {
30
+ fileService
31
+ } = usePlatformService();
32
+ const {
33
+ activeChannel,
34
+ setActiveChannel
35
+ } = useActiveGroupChannel(sdk, channel);
36
+
37
+ const onChannelChanged = channel => {
38
+ if (isDifferentChannel(channel, activeChannel) || !channel.isGroupChannel()) return;
39
+ setActiveChannel(channel);
40
+ forceUpdate();
41
+ };
42
+
43
+ useChannelHandler(sdk, `${HOOK_NAME}_${uniqId}`, {
44
+ onChannelChanged: onChannelChanged,
45
+ onChannelFrozen: onChannelChanged,
46
+ onChannelUnfrozen: onChannelChanged
47
+ }, [activeChannel]);
48
+ const toast = useToast();
49
+ const {
50
+ openSheet
51
+ } = useBottomSheet();
52
+ const {
53
+ openPrompt
54
+ } = usePrompt();
55
+ const {
56
+ openMenu
57
+ } = useActionMenu();
58
+ const updateChannel = useCallback(async params => {
59
+ const updatedChannel = await activeChannel.updateChannel(params);
60
+ setActiveChannel(updatedChannel);
61
+ forceUpdate();
62
+ }, [activeChannel]);
63
+ const changeChannelName = useCallback(() => {
64
+ openPrompt({
65
+ title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_TITLE,
66
+ submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,
67
+ placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,
68
+ defaultValue: activeChannel.name,
69
+ onSubmit: async channelName => {
70
+ const params = new sdk.GroupChannelParams();
71
+ params.name = channelName;
72
+ await updateChannel(params);
73
+ }
74
+ });
75
+ }, [STRINGS, updateChannel, activeChannel.name]);
76
+ const changeChannelImage = useCallback(() => {
77
+ openMenu({
78
+ title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_TITLE,
79
+ menuItems: [{
80
+ title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_CAMERA,
81
+ onPress: async () => {
82
+ const file = await fileService.openCamera({
83
+ mediaType: 'photo',
84
+ onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error')
85
+ });
86
+ if (!file) return;
87
+ const params = new sdk.GroupChannelParams();
88
+ params.coverImage = file;
89
+ await updateChannel(params);
90
+ }
91
+ }, {
92
+ title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,
93
+ onPress: async () => {
94
+ const files = await fileService.openMediaLibrary({
95
+ selectionLimit: 1,
96
+ mediaType: 'photo',
97
+ onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error')
98
+ });
99
+ if (!files || !files[0]) return;
100
+ const params = new sdk.GroupChannelParams();
101
+ params.coverImage = files[0];
102
+ await updateChannel(params);
103
+ }
104
+ }]
105
+ });
106
+ }, [STRINGS, updateChannel]);
107
+ const onPressHeaderRight = useCallback(() => {
108
+ openSheet({
109
+ sheetItems: [{
110
+ title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME,
111
+ onPress: changeChannelName
112
+ }, {
113
+ title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE,
114
+ onPress: changeChannelImage
115
+ }]
116
+ });
117
+ }, [STRINGS, changeChannelImage, changeChannelName]);
118
+ return /*#__PURE__*/React.createElement(ProviderLayout, null, /*#__PURE__*/React.createElement(GroupChannelSettingsContexts.Fragment.Provider, {
119
+ value: {
120
+ channel: activeChannel,
121
+ headerTitle: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_TITLE,
122
+ headerRight: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_RIGHT,
123
+ onPressHeaderRight
124
+ }
125
+ }, children));
126
+ };
127
+ //# sourceMappingURL=moduleContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useCallback","useActiveGroupChannel","useChannelHandler","useActionMenu","useBottomSheet","usePrompt","useToast","NOOP","isDifferentChannel","useForceUpdate","useUniqId","ProviderLayout","useLocalization","usePlatformService","useSendbirdChat","GroupChannelSettingsContexts","Fragment","channel","headerTitle","headerRight","onPressHeaderRight","HOOK_NAME","GroupChannelSettingsContextsProvider","children","uniqId","forceUpdate","STRINGS","sdk","fileService","activeChannel","setActiveChannel","onChannelChanged","isGroupChannel","onChannelFrozen","onChannelUnfrozen","toast","openSheet","openPrompt","openMenu","updateChannel","params","updatedChannel","changeChannelName","title","GROUP_CHANNEL_SETTINGS","DIALOG_CHANGE_NAME_PROMPT_TITLE","submitLabel","DIALOG_CHANGE_NAME_PROMPT_OK","placeholder","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","defaultValue","name","onSubmit","channelName","GroupChannelParams","changeChannelImage","DIALOG_CHANGE_IMAGE_MENU_TITLE","menuItems","DIALOG_CHANGE_IMAGE_MENU_CAMERA","onPress","file","openCamera","mediaType","onOpenFailureWithToastMessage","show","TOAST","OPEN_CAMERA_ERROR","coverImage","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","files","openMediaLibrary","selectionLimit","OPEN_PHOTO_LIBRARY_ERROR","sheetItems","DIALOG_CHANGE_NAME","DIALOG_CHANGE_IMAGE","HEADER_TITLE","HEADER_RIGHT"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext, useCallback } from 'react';\n\nimport { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { useActionMenu, useBottomSheet, usePrompt, useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n SendbirdGroupChannel,\n SendbirdGroupChannelParams,\n SendbirdOpenChannel,\n isDifferentChannel,\n useForceUpdate,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelSettingsContextsType, GroupChannelSettingsModule } from '../types';\n\nexport const GroupChannelSettingsContexts: GroupChannelSettingsContextsType = {\n Fragment: createContext({\n channel: {} as SendbirdGroupChannel,\n headerTitle: '',\n headerRight: '',\n onPressHeaderRight: NOOP,\n }),\n};\n\nconst HOOK_NAME = 'GroupChannelSettingsContextsProvider';\nexport const GroupChannelSettingsContextsProvider: GroupChannelSettingsModule['Provider'] = ({ children, channel }) => {\n const uniqId = useUniqId(HOOK_NAME);\n const forceUpdate = useForceUpdate();\n const { STRINGS } = useLocalization();\n const { sdk } = useSendbirdChat();\n const { fileService } = usePlatformService();\n\n const { activeChannel, setActiveChannel } = useActiveGroupChannel(sdk, channel);\n\n const onChannelChanged = (channel: SendbirdGroupChannel | SendbirdOpenChannel) => {\n if (isDifferentChannel(channel, activeChannel) || !channel.isGroupChannel()) return;\n setActiveChannel(channel);\n forceUpdate();\n };\n\n useChannelHandler(\n sdk,\n `${HOOK_NAME}_${uniqId}`,\n {\n onChannelChanged: onChannelChanged,\n onChannelFrozen: onChannelChanged,\n onChannelUnfrozen: onChannelChanged,\n },\n [activeChannel],\n );\n\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { openPrompt } = usePrompt();\n const { openMenu } = useActionMenu();\n\n const updateChannel = useCallback(\n async (params: SendbirdGroupChannelParams) => {\n const updatedChannel = await activeChannel.updateChannel(params);\n setActiveChannel(updatedChannel);\n forceUpdate();\n },\n [activeChannel],\n );\n\n const changeChannelName = useCallback(() => {\n openPrompt({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_TITLE,\n submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,\n placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,\n defaultValue: activeChannel.name,\n onSubmit: async (channelName) => {\n const params = new sdk.GroupChannelParams();\n params.name = channelName;\n await updateChannel(params);\n },\n });\n }, [STRINGS, updateChannel, activeChannel.name]);\n\n const changeChannelImage = useCallback(() => {\n openMenu({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_TITLE,\n menuItems: [\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_CAMERA,\n onPress: async () => {\n const file = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error'),\n });\n if (!file) return;\n\n const params = new sdk.GroupChannelParams();\n params.coverImage = file;\n await updateChannel(params);\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,\n onPress: async () => {\n const files = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error'),\n });\n if (!files || !files[0]) return;\n\n const params = new sdk.GroupChannelParams();\n params.coverImage = files[0];\n await updateChannel(params);\n },\n },\n ],\n });\n }, [STRINGS, updateChannel]);\n\n const onPressHeaderRight = useCallback(() => {\n openSheet({\n sheetItems: [\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME, onPress: changeChannelName },\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE, onPress: changeChannelImage },\n ],\n });\n }, [STRINGS, changeChannelImage, changeChannelName]);\n\n return (\n <ProviderLayout>\n <GroupChannelSettingsContexts.Fragment.Provider\n value={{\n channel: activeChannel,\n headerTitle: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_TITLE,\n headerRight: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_RIGHT,\n onPressHeaderRight,\n }}\n >\n {children}\n </GroupChannelSettingsContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelSettingsProps {\n Fragment: {\n channel: GroupChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];\n onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];\n menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuMembers: () => void;\n onPressMenuLeaveChannel: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n}\n\n/**\n * Internal context for GroupChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelSettingsContextsType {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n}\nexport interface GroupChannelSettingsModule {\n Provider: CommonComponent<GroupChannelSettingsProps['Provider']>;\n Header: CommonComponent<GroupChannelSettingsProps['Header']>;\n Info: CommonComponent<GroupChannelSettingsProps['Info']>;\n Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;\n}\n\nexport type GroupChannelSettingsFragment = CommonComponent<GroupChannelSettingsProps['Fragment']>;\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdGroupChannelParams } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\ntype UserIds = string[];\n\nexport interface GroupChannelCreateProps<User> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n userIdsGenerator?: (users: User[]) => UserIds;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelParams,\n users: User[],\n ) => SendbirdGroupChannelParams | Promise<SendbirdGroupChannelParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;\n\nexport interface GroupChannelInviteProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n userIdsGenerator?: (users: User[]) => UserIds;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;\n\nexport interface GroupChannelMembersProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelMembersFragment<User> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;\n"],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import React, { useContext } from 'react';
2
+ import { Icon, Text, useHeaderStyle, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
3
+ import { UserListContexts } from '../module/moduleContext';
4
+
5
+ const UserListHeader = _ref => {
6
+ let {
7
+ onPressHeaderLeft,
8
+ onPressHeaderRight,
9
+ right,
10
+ left,
11
+ shouldActivateHeaderRight = selectedUsers => selectedUsers.length > 0
12
+ } = _ref;
13
+ const {
14
+ headerTitle,
15
+ headerRight
16
+ } = useContext(UserListContexts.Fragment);
17
+ const {
18
+ selectedUsers
19
+ } = useContext(UserListContexts.List);
20
+ const {
21
+ HeaderComponent
22
+ } = useHeaderStyle();
23
+ const {
24
+ colors
25
+ } = useUIKitTheme();
26
+ const isActive = shouldActivateHeaderRight(selectedUsers);
27
+ return /*#__PURE__*/React.createElement(HeaderComponent, {
28
+ title: headerTitle,
29
+ right: right ?? /*#__PURE__*/React.createElement(Text, {
30
+ button: true,
31
+ color: isActive ? colors.primary : colors.onBackground04
32
+ }, headerRight),
33
+ onPressRight: isActive ? () => onPressHeaderRight(selectedUsers) : undefined,
34
+ left: left ?? /*#__PURE__*/React.createElement(Icon, {
35
+ icon: 'arrow-left'
36
+ }),
37
+ onPressLeft: onPressHeaderLeft
38
+ });
39
+ };
40
+
41
+ export default UserListHeader;
42
+ //# sourceMappingURL=UserListHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","Icon","Text","useHeaderStyle","useUIKitTheme","UserListContexts","UserListHeader","onPressHeaderLeft","onPressHeaderRight","right","left","shouldActivateHeaderRight","selectedUsers","length","headerTitle","headerRight","Fragment","List","HeaderComponent","colors","isActive","primary","onBackground04","undefined"],"sources":["UserListHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport { Icon, Text, useHeaderStyle, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { UserListContexts } from '../module/moduleContext';\nimport type { UserListContextsType, UserListProps } from '../types';\n\nconst UserListHeader = <T,>({\n onPressHeaderLeft,\n onPressHeaderRight,\n right,\n left,\n shouldActivateHeaderRight = (selectedUsers) => selectedUsers.length > 0,\n}: UserListProps<T>['Header']) => {\n const { headerTitle, headerRight } = useContext(UserListContexts.Fragment);\n const { selectedUsers } = useContext(UserListContexts.List as UserListContextsType<T>['List']);\n const { HeaderComponent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n\n const isActive = shouldActivateHeaderRight(selectedUsers);\n\n return (\n <HeaderComponent\n title={headerTitle}\n right={\n right ?? (\n <Text button color={isActive ? colors.primary : colors.onBackground04}>\n {headerRight}\n </Text>\n )\n }\n onPressRight={isActive ? () => onPressHeaderRight(selectedUsers) : undefined}\n left={left ?? <Icon icon={'arrow-left'} />}\n onPressLeft={onPressHeaderLeft}\n />\n );\n};\n\nexport default UserListHeader;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AAEA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,cAArB,EAAqCC,aAArC,QAA0D,yCAA1D;AAEA,SAASC,gBAAT,QAAiC,yBAAjC;;AAGA,MAAMC,cAAc,GAAG,QAMW;EAAA,IANN;IAC1BC,iBAD0B;IAE1BC,kBAF0B;IAG1BC,KAH0B;IAI1BC,IAJ0B;IAK1BC,yBAAyB,GAAIC,aAAD,IAAmBA,aAAa,CAACC,MAAd,GAAuB;EAL5C,CAMM;EAChC,MAAM;IAAEC,WAAF;IAAeC;EAAf,IAA+Bf,UAAU,CAACK,gBAAgB,CAACW,QAAlB,CAA/C;EACA,MAAM;IAAEJ;EAAF,IAAoBZ,UAAU,CAACK,gBAAgB,CAACY,IAAlB,CAApC;EACA,MAAM;IAAEC;EAAF,IAAsBf,cAAc,EAA1C;EACA,MAAM;IAAEgB;EAAF,IAAaf,aAAa,EAAhC;EAEA,MAAMgB,QAAQ,GAAGT,yBAAyB,CAACC,aAAD,CAA1C;EAEA,oBACE,oBAAC,eAAD;IACE,KAAK,EAAEE,WADT;IAEE,KAAK,EACHL,KAAK,iBACH,oBAAC,IAAD;MAAM,MAAM,MAAZ;MAAa,KAAK,EAAEW,QAAQ,GAAGD,MAAM,CAACE,OAAV,GAAoBF,MAAM,CAACG;IAAvD,GACGP,WADH,CAJN;IASE,YAAY,EAAEK,QAAQ,GAAG,MAAMZ,kBAAkB,CAACI,aAAD,CAA3B,GAA6CW,SATrE;IAUE,IAAI,EAAEb,IAAI,iBAAI,oBAAC,IAAD;MAAM,IAAI,EAAE;IAAZ,EAVhB;IAWE,WAAW,EAAEH;EAXf,EADF;AAeD,CA7BD;;AA+BA,eAAeD,cAAf"}
@@ -0,0 +1,42 @@
1
+ import React, { useCallback, useContext } from 'react';
2
+ import { FlatList } from 'react-native';
3
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
+ import { UserListContexts } from '../module/moduleContext';
5
+
6
+ const UserListList = _ref => {
7
+ let {
8
+ users,
9
+ onRefresh,
10
+ refreshing,
11
+ renderUser,
12
+ onLoadNext,
13
+ ListEmptyComponent
14
+ } = _ref;
15
+ const context = useContext(UserListContexts.List);
16
+ const renderItem = useCallback(_ref2 => {
17
+ let {
18
+ item
19
+ } = _ref2;
20
+ return renderUser === null || renderUser === void 0 ? void 0 : renderUser(item, context.selectedUsers, context.setSelectedUsers);
21
+ }, [renderUser, context.selectedUsers, context.setSelectedUsers]);
22
+ const {
23
+ left,
24
+ right
25
+ } = useSafeAreaInsets();
26
+ return /*#__PURE__*/React.createElement(FlatList, {
27
+ data: users,
28
+ refreshing: refreshing,
29
+ onRefresh: onRefresh,
30
+ renderItem: renderItem,
31
+ onEndReached: onLoadNext,
32
+ contentContainerStyle: {
33
+ paddingLeft: left,
34
+ paddingRight: right,
35
+ flexGrow: 1
36
+ },
37
+ ListEmptyComponent: ListEmptyComponent
38
+ });
39
+ };
40
+
41
+ export default UserListList;
42
+ //# sourceMappingURL=UserListList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useContext","FlatList","useSafeAreaInsets","UserListContexts","UserListList","users","onRefresh","refreshing","renderUser","onLoadNext","ListEmptyComponent","context","List","renderItem","item","selectedUsers","setSelectedUsers","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["UserListList.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { UserListContexts } from '../module/moduleContext';\nimport type { UserListContextsType, UserListProps } from '../types';\n\nconst UserListList = <T,>({\n users,\n onRefresh,\n refreshing,\n renderUser,\n onLoadNext,\n ListEmptyComponent,\n}: UserListProps<T>['List']) => {\n const context = useContext(UserListContexts.List as UserListContextsType<T>['List']);\n const renderItem: ListRenderItem<T> = useCallback(\n ({ item }) => renderUser?.(item, context.selectedUsers, context.setSelectedUsers),\n [renderUser, context.selectedUsers, context.setSelectedUsers],\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={users}\n refreshing={refreshing}\n onRefresh={onRefresh}\n renderItem={renderItem}\n onEndReached={onLoadNext}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n />\n );\n};\n\nexport default UserListList;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,UAA7B,QAA+C,OAA/C;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAASC,gBAAT,QAAiC,yBAAjC;;AAGA,MAAMC,YAAY,GAAG,QAOW;EAAA,IAPN;IACxBC,KADwB;IAExBC,SAFwB;IAGxBC,UAHwB;IAIxBC,UAJwB;IAKxBC,UALwB;IAMxBC;EANwB,CAOM;EAC9B,MAAMC,OAAO,GAAGX,UAAU,CAACG,gBAAgB,CAACS,IAAlB,CAA1B;EACA,MAAMC,UAA6B,GAAGd,WAAW,CAC/C;IAAA,IAAC;MAAEe;IAAF,CAAD;IAAA,OAAcN,UAAd,aAAcA,UAAd,uBAAcA,UAAU,CAAGM,IAAH,EAASH,OAAO,CAACI,aAAjB,EAAgCJ,OAAO,CAACK,gBAAxC,CAAxB;EAAA,CAD+C,EAE/C,CAACR,UAAD,EAAaG,OAAO,CAACI,aAArB,EAAoCJ,OAAO,CAACK,gBAA5C,CAF+C,CAAjD;EAIA,MAAM;IAAEC,IAAF;IAAQC;EAAR,IAAkBhB,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEG,KADR;IAEE,UAAU,EAAEE,UAFd;IAGE,SAAS,EAAED,SAHb;IAIE,UAAU,EAAEO,UAJd;IAKE,YAAY,EAAEJ,UALhB;IAME,qBAAqB,EAAE;MAAEU,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CANzB;IAOE,kBAAkB,EAAEX;EAPtB,EADF;AAWD,CA1BD;;AA4BA,eAAeN,YAAf"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
+
5
+ const UserListStatusEmpty = () => {
6
+ return /*#__PURE__*/React.createElement(View, {
7
+ style: styles.container
8
+ }, /*#__PURE__*/React.createElement(TypedPlaceholder, {
9
+ type: 'no-users'
10
+ }));
11
+ };
12
+
13
+ const styles = StyleSheet.create({
14
+ container: {
15
+ flex: 1,
16
+ justifyContent: 'center',
17
+ alignItems: 'center'
18
+ }
19
+ });
20
+ export default UserListStatusEmpty;
21
+ //# sourceMappingURL=UserListStatusEmpty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusEmpty","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusEmpty.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\n\nconst UserListStatusEmpty = () => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'no-users'} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusEmpty;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAEA,MAAMC,mBAAmB,GAAG,MAAM;EAChC,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE;EAAxB,EADF,CADF;AAKD,CAND;;AAQA,MAAMD,MAAM,GAAGJ,UAAU,CAACM,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeN,mBAAf"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
+
5
+ const UserListStatusLoading = _ref => {
6
+ let {
7
+ onPressRetry
8
+ } = _ref;
9
+ return /*#__PURE__*/React.createElement(View, {
10
+ style: styles.container
11
+ }, /*#__PURE__*/React.createElement(TypedPlaceholder, {
12
+ type: 'error-wrong',
13
+ onPressRetry: onPressRetry
14
+ }));
15
+ };
16
+
17
+ const styles = StyleSheet.create({
18
+ container: {
19
+ flex: 1,
20
+ justifyContent: 'center',
21
+ alignItems: 'center'
22
+ }
23
+ });
24
+ export default UserListStatusLoading;
25
+ //# sourceMappingURL=UserListStatusError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusLoading","onPressRetry","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusError.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\nimport type { UserListModule } from '../types';\n\nconst UserListStatusLoading: UserListModule<unknown>['StatusError'] = ({ onPressRetry }) => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'error-wrong'} onPressRetry={onPressRetry} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusLoading;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAGA,MAAMC,qBAA6D,GAAG,QAAsB;EAAA,IAArB;IAAEC;EAAF,CAAqB;EAC1F,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE,aAAxB;IAAuC,YAAY,EAAEF;EAArD,EADF,CADF;AAKD,CAND;;AAQA,MAAMC,MAAM,GAAGL,UAAU,CAACO,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeP,qBAAf"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
+
5
+ const UserListStatusLoading = () => {
6
+ return /*#__PURE__*/React.createElement(View, {
7
+ style: styles.container
8
+ }, /*#__PURE__*/React.createElement(TypedPlaceholder, {
9
+ type: 'loading'
10
+ }));
11
+ };
12
+
13
+ const styles = StyleSheet.create({
14
+ container: {
15
+ flex: 1,
16
+ justifyContent: 'center',
17
+ alignItems: 'center'
18
+ }
19
+ });
20
+ export default UserListStatusLoading;
21
+ //# sourceMappingURL=UserListStatusLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusLoading","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusLoading.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\n\nconst UserListStatusLoading = () => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'loading'} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusLoading;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAEA,MAAMC,qBAAqB,GAAG,MAAM;EAClC,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE;EAAxB,EADF,CADF;AAKD,CAND;;AAQA,MAAMD,MAAM,GAAGJ,UAAU,CAACM,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeN,qBAAf"}
@@ -0,0 +1,8 @@
1
+ export { default as UserListList } from './component/UserListList';
2
+ export { default as UserListHeader } from './component/UserListHeader';
3
+ export { default as UserListStatusEmpty } from './component/UserListStatusEmpty';
4
+ export { default as UserListStatusError } from './component/UserListStatusError';
5
+ export { default as UserListStatusLoading } from './component/UserListStatusLoading';
6
+ export { default as createUserListModule } from './module/createUserListModule';
7
+ export { UserListContextsProvider, UserListContexts } from './module/moduleContext';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","UserListList","UserListHeader","UserListStatusEmpty","UserListStatusError","UserListStatusLoading","createUserListModule","UserListContextsProvider","UserListContexts"],"sources":["index.ts"],"sourcesContent":["export { default as UserListList } from './component/UserListList';\nexport { default as UserListHeader } from './component/UserListHeader';\nexport { default as UserListStatusEmpty } from './component/UserListStatusEmpty';\nexport { default as UserListStatusError } from './component/UserListStatusError';\nexport { default as UserListStatusLoading } from './component/UserListStatusLoading';\nexport { default as createUserListModule } from './module/createUserListModule';\nexport { UserListContextsProvider, UserListContexts } from './module/moduleContext';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,YAApB,QAAwC,0BAAxC;AACA,SAASD,OAAO,IAAIE,cAApB,QAA0C,4BAA1C;AACA,SAASF,OAAO,IAAIG,mBAApB,QAA+C,iCAA/C;AACA,SAASH,OAAO,IAAII,mBAApB,QAA+C,iCAA/C;AACA,SAASJ,OAAO,IAAIK,qBAApB,QAAiD,mCAAjD;AACA,SAASL,OAAO,IAAIM,oBAApB,QAAgD,+BAAhD;AACA,SAASC,wBAAT,EAAmCC,gBAAnC,QAA2D,wBAA3D"}
@@ -0,0 +1,30 @@
1
+ import UserListHeader from '../component/UserListHeader';
2
+ import UserListList from '../component/UserListList';
3
+ import UserListStatusEmpty from '../component/UserListStatusEmpty';
4
+ import UserListStatusError from '../component/UserListStatusError';
5
+ import UserListStatusLoading from '../component/UserListStatusLoading';
6
+ import { UserListContextsProvider } from './moduleContext';
7
+
8
+ const createUserListModule = function () {
9
+ let {
10
+ Header = UserListHeader,
11
+ List = UserListList,
12
+ StatusLoading = UserListStatusLoading,
13
+ StatusEmpty = UserListStatusEmpty,
14
+ StatusError = UserListStatusError,
15
+ Provider = UserListContextsProvider,
16
+ ...module
17
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
+ return {
19
+ Header,
20
+ List,
21
+ StatusLoading,
22
+ StatusEmpty,
23
+ StatusError,
24
+ Provider,
25
+ ...module
26
+ };
27
+ };
28
+
29
+ export default createUserListModule;
30
+ //# sourceMappingURL=createUserListModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UserListHeader","UserListList","UserListStatusEmpty","UserListStatusError","UserListStatusLoading","UserListContextsProvider","createUserListModule","Header","List","StatusLoading","StatusEmpty","StatusError","Provider","module"],"sources":["createUserListModule.tsx"],"sourcesContent":["import UserListHeader from '../component/UserListHeader';\nimport UserListList from '../component/UserListList';\nimport UserListStatusEmpty from '../component/UserListStatusEmpty';\nimport UserListStatusError from '../component/UserListStatusError';\nimport UserListStatusLoading from '../component/UserListStatusLoading';\nimport type { UserListModule } from '../types';\nimport { UserListContextsProvider } from './moduleContext';\n\nconst createUserListModule = <T,>({\n Header = UserListHeader,\n List = UserListList,\n StatusLoading = UserListStatusLoading,\n StatusEmpty = UserListStatusEmpty,\n StatusError = UserListStatusError,\n Provider = UserListContextsProvider,\n ...module\n}: Partial<UserListModule<T>> = {}): UserListModule<T> => {\n return { Header, List, StatusLoading, StatusEmpty, StatusError, Provider, ...module };\n};\n\nexport default createUserListModule;\n"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,6BAA3B;AACA,OAAOC,YAAP,MAAyB,2BAAzB;AACA,OAAOC,mBAAP,MAAgC,kCAAhC;AACA,OAAOC,mBAAP,MAAgC,kCAAhC;AACA,OAAOC,qBAAP,MAAkC,oCAAlC;AAEA,SAASC,wBAAT,QAAyC,iBAAzC;;AAEA,MAAMC,oBAAoB,GAAG,YAQ6B;EAAA,IARxB;IAChCC,MAAM,GAAGP,cADuB;IAEhCQ,IAAI,GAAGP,YAFyB;IAGhCQ,aAAa,GAAGL,qBAHgB;IAIhCM,WAAW,GAAGR,mBAJkB;IAKhCS,WAAW,GAAGR,mBALkB;IAMhCS,QAAQ,GAAGP,wBANqB;IAOhC,GAAGQ;EAP6B,CAQwB,uEAA1B,EAA0B;EACxD,OAAO;IAAEN,MAAF;IAAUC,IAAV;IAAgBC,aAAhB;IAA+BC,WAA/B;IAA4CC,WAA5C;IAAyDC,QAAzD;IAAmE,GAAGC;EAAtE,CAAP;AACD,CAVD;;AAYA,eAAeP,oBAAf"}
@@ -0,0 +1,34 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import React, { createContext, useState } from 'react';
3
+ import { NOOP } from '@sendbird/uikit-utils';
4
+ import ProviderLayout from '../../../components/ProviderLayout';
5
+ export const UserListContexts = {
6
+ Fragment: /*#__PURE__*/createContext({
7
+ headerTitle: '',
8
+ headerRight: ''
9
+ }),
10
+ List: /*#__PURE__*/createContext({
11
+ selectedUsers: [],
12
+ setSelectedUsers: NOOP
13
+ })
14
+ };
15
+ export const UserListContextsProvider = _ref => {
16
+ let {
17
+ children,
18
+ headerTitle,
19
+ headerRight
20
+ } = _ref;
21
+ const [selectedUsers, setSelectedUsers] = useState([]);
22
+ return /*#__PURE__*/React.createElement(ProviderLayout, null, /*#__PURE__*/React.createElement(UserListContexts.Fragment.Provider, {
23
+ value: {
24
+ headerTitle,
25
+ headerRight: headerRight(selectedUsers)
26
+ }
27
+ }, /*#__PURE__*/React.createElement(UserListContexts.List.Provider, {
28
+ value: {
29
+ selectedUsers,
30
+ setSelectedUsers
31
+ }
32
+ }, children)));
33
+ };
34
+ //# sourceMappingURL=moduleContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useState","NOOP","ProviderLayout","UserListContexts","Fragment","headerTitle","headerRight","List","selectedUsers","setSelectedUsers","UserListContextsProvider","children"],"sources":["moduleContext.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { createContext, useState } from 'react';\n\nimport type { ContextValue } from '@sendbird/uikit-utils';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport type { UserListContextsType, UserListModule } from '../types';\n\nexport const UserListContexts: UserListContextsType<unknown> = {\n Fragment: createContext({\n headerTitle: '',\n headerRight: '',\n }),\n List: createContext<ContextValue<UserListContextsType<unknown>['List']>>({\n selectedUsers: [],\n setSelectedUsers: NOOP,\n }),\n};\nexport const UserListContextsProvider: UserListModule<any>['Provider'] = ({ children, headerTitle, headerRight }) => {\n const [selectedUsers, setSelectedUsers] = useState<unknown[]>([]);\n\n return (\n <ProviderLayout>\n <UserListContexts.Fragment.Provider value={{ headerTitle, headerRight: headerRight(selectedUsers) }}>\n <UserListContexts.List.Provider value={{ selectedUsers, setSelectedUsers }}>\n {children}\n </UserListContexts.List.Provider>\n </UserListContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"AAAA;AACA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,QAA/B,QAA+C,OAA/C;AAGA,SAASC,IAAT,QAAqB,uBAArB;AAEA,OAAOC,cAAP,MAA2B,oCAA3B;AAGA,OAAO,MAAMC,gBAA+C,GAAG;EAC7DC,QAAQ,eAAEL,aAAa,CAAC;IACtBM,WAAW,EAAE,EADS;IAEtBC,WAAW,EAAE;EAFS,CAAD,CADsC;EAK7DC,IAAI,eAAER,aAAa,CAAsD;IACvES,aAAa,EAAE,EADwD;IAEvEC,gBAAgB,EAAER;EAFqD,CAAtD;AAL0C,CAAxD;AAUP,OAAO,MAAMS,wBAAyD,GAAG,QAA4C;EAAA,IAA3C;IAAEC,QAAF;IAAYN,WAAZ;IAAyBC;EAAzB,CAA2C;EACnH,MAAM,CAACE,aAAD,EAAgBC,gBAAhB,IAAoCT,QAAQ,CAAY,EAAZ,CAAlD;EAEA,oBACE,oBAAC,cAAD,qBACE,oBAAC,gBAAD,CAAkB,QAAlB,CAA2B,QAA3B;IAAoC,KAAK,EAAE;MAAEK,WAAF;MAAeC,WAAW,EAAEA,WAAW,CAACE,aAAD;IAAvC;EAA3C,gBACE,oBAAC,gBAAD,CAAkB,IAAlB,CAAuB,QAAvB;IAAgC,KAAK,EAAE;MAAEA,aAAF;MAAiBC;IAAjB;EAAvC,GACGE,QADH,CADF,CADF,CADF;AASD,CAZM"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { ContextValue } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface UserListProps<User> {\n /** Props for `UserListModule.Header` **/\n Header: {\n right?: React.ReactElement;\n left?: React.ReactElement;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (selectedUsers: User[]) => Promise<void>;\n shouldActivateHeaderRight?: (selectedUsers: User[]) => boolean;\n };\n /** Props for `UserListModule.List` **/\n List: {\n /** User list from SendbirdChat SDK or Custom query {@link Fragment.queryCreator} **/\n users: User[];\n /** Render user component **/\n renderUser: (\n user: User,\n selectedUsers: ContextValue<UserListContextsType<User>['List']>['selectedUsers'],\n setSelectedUsers: ContextValue<UserListContextsType<User>['List']>['setSelectedUsers'],\n ) => React.ReactElement | null;\n /** Load next user list **/\n onLoadNext: () => Promise<void>;\n /** Refresh user list **/\n onRefresh?: () => Promise<void>;\n /** Refreshing state **/\n refreshing?: boolean;\n /** List empty component **/\n ListEmptyComponent?: React.ReactElement;\n };\n /** Props for `UserListModule.Provider` **/\n Provider: {\n headerTitle: string;\n headerRight: (selectedUsers: Array<User>) => string;\n };\n}\n\n/**\n * Internal context for UserList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface UserListContextsType<User> {\n Fragment: React.Context<{\n headerTitle: string;\n headerRight: string;\n }>;\n List: React.Context<{\n selectedUsers: User[];\n setSelectedUsers: React.Dispatch<React.SetStateAction<User[]>>;\n }>;\n}\n\nexport interface UserListModule<User> {\n Provider: CommonComponent<UserListProps<User>['Provider']>;\n Header: CommonComponent<UserListProps<User>['Header']>;\n List: CommonComponent<UserListProps<User>['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<{ onPressRetry: () => void }>;\n}\n"],"mappings":""}
@@ -0,0 +1,124 @@
1
+ import React, { useCallback } from 'react';
2
+ import { TouchableOpacity } from 'react-native';
3
+ import { useUserList } from '@sendbird/uikit-chat-hooks';
4
+ import { Logger, PASS } from '@sendbird/uikit-utils';
5
+ import StatusComposition from '../components/StatusComposition';
6
+ import UserSelectableBar from '../components/UserSelectableBar';
7
+ import createUserListModule from '../domain/userList/module/createUserListModule';
8
+ import { useLocalization, useSendbirdChat } from '../hooks/useContext';
9
+
10
+ const defaultUserIdsGenerator = users => {
11
+ const userIds = users.map(user => {
12
+ // @ts-ignore
13
+ return user.userId;
14
+ }).filter(u => Boolean(u));
15
+
16
+ if (userIds.length === 0) {
17
+ Logger.warn('GroupChannelCreateFragment: Couldn\'t find user ids! if you provide "queryCreator", please provide "userIdsGenerator" as well');
18
+ }
19
+
20
+ return userIds;
21
+ };
22
+
23
+ const createGroupChannelCreateFragment = initModule => {
24
+ const UserListModule = createUserListModule(initModule);
25
+ return _ref => {
26
+ let {
27
+ userIdsGenerator = defaultUserIdsGenerator,
28
+ onPressHeaderLeft,
29
+ onBeforeCreateChannel = PASS,
30
+ onCreateChannel,
31
+ sortComparator,
32
+ queryCreator,
33
+ channelType = 'GROUP',
34
+ renderUser
35
+ } = _ref;
36
+ const {
37
+ sdk,
38
+ currentUser
39
+ } = useSendbirdChat();
40
+ const {
41
+ STRINGS
42
+ } = useLocalization();
43
+ const {
44
+ users,
45
+ refreshing,
46
+ loading,
47
+ error,
48
+ refresh,
49
+ next
50
+ } = useUserList(sdk, {
51
+ queryCreator,
52
+ sortComparator
53
+ });
54
+
55
+ const _renderUser = useCallback((user, selectedUsers, setSelectedUsers) => {
56
+ if (queryCreator && !renderUser) {
57
+ throw new Error('You should provide "renderUser" when providing "queryCreator"');
58
+ }
59
+
60
+ if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
61
+ const sbUser = user;
62
+ const sbSelectedUsers = selectedUsers;
63
+ const sbSetSelectedUsers = setSelectedUsers;
64
+ const isMe = sbUser.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
65
+ if (isMe) return null;
66
+ const userIdx = sbSelectedUsers.findIndex(u => u.userId === sbUser.userId);
67
+ const isSelected = userIdx > -1;
68
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
69
+ activeOpacity: 0.7,
70
+ onPress: () => {
71
+ sbSetSelectedUsers(_ref2 => {
72
+ let [...draft] = _ref2;
73
+ if (isSelected) draft.splice(userIdx, 1);else draft.push(sbUser);
74
+ return draft;
75
+ });
76
+ }
77
+ }, /*#__PURE__*/React.createElement(UserSelectableBar, {
78
+ uri: sbUser.profileUrl,
79
+ name: sbUser.nickname || STRINGS.LABELS.USER_NO_NAME,
80
+ selected: isSelected,
81
+ disabled: false
82
+ }));
83
+ }, [renderUser, queryCreator]);
84
+
85
+ return /*#__PURE__*/React.createElement(UserListModule.Provider, {
86
+ headerRight: selectedUsers => STRINGS.GROUP_CHANNEL_CREATE.HEADER_RIGHT({
87
+ selectedUsers
88
+ }),
89
+ headerTitle: STRINGS.GROUP_CHANNEL_CREATE.HEADER_TITLE
90
+ }, /*#__PURE__*/React.createElement(UserListModule.Header, {
91
+ onPressHeaderLeft: onPressHeaderLeft,
92
+ onPressHeaderRight: async users => {
93
+ const params = new sdk.GroupChannelParams();
94
+ if (channelType === 'BROADCAST') params.isBroadcast = true;
95
+ if (channelType === 'SUPER_GROUP') params.isSuper = true;
96
+ if (currentUser) params.operatorUserIds = [currentUser.userId];
97
+ params.addUserIds(userIdsGenerator(users));
98
+ params.name = '';
99
+ params.coverUrl = '';
100
+ params.isDistinct = false;
101
+ const processedParams = await onBeforeCreateChannel(params, users);
102
+ const channel = await sdk.GroupChannel.createChannel(processedParams);
103
+ onCreateChannel(channel);
104
+ }
105
+ }), /*#__PURE__*/React.createElement(StatusComposition, {
106
+ loading: loading,
107
+ error: Boolean(error),
108
+ LoadingComponent: /*#__PURE__*/React.createElement(UserListModule.StatusLoading, null),
109
+ ErrorComponent: /*#__PURE__*/React.createElement(UserListModule.StatusError, {
110
+ onPressRetry: () => refresh()
111
+ })
112
+ }, /*#__PURE__*/React.createElement(UserListModule.List, {
113
+ onLoadNext: next,
114
+ users: users,
115
+ renderUser: _renderUser,
116
+ onRefresh: refresh,
117
+ refreshing: refreshing,
118
+ ListEmptyComponent: /*#__PURE__*/React.createElement(UserListModule.StatusEmpty, null)
119
+ })));
120
+ };
121
+ };
122
+
123
+ export default createGroupChannelCreateFragment;
124
+ //# sourceMappingURL=createGroupChannelCreateFragment.js.map