@sendbird/uikit-react-native 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/components/ChannelCover.js +22 -1
  3. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  4. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +9 -2
  5. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  6. package/lib/commonjs/components/MessageRenderer/index.js +1 -1
  7. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
  8. package/lib/commonjs/components/TypedPlaceholder.js +2 -2
  9. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  10. package/lib/commonjs/components/UserActionBar.js +7 -4
  11. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  12. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +5 -0
  13. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  14. package/lib/commonjs/containers/SendbirdUIKitContainer.js +15 -8
  15. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  16. package/lib/commonjs/contexts/{Localization.js → LocalizationCtx.js} +1 -1
  17. package/lib/commonjs/contexts/LocalizationCtx.js.map +1 -0
  18. package/lib/commonjs/contexts/{PlatformService.js → PlatformServiceCtx.js} +1 -1
  19. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -0
  20. package/lib/commonjs/contexts/{SendbirdChat.js → SendbirdChatCtx.js} +5 -3
  21. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -0
  22. package/lib/commonjs/contexts/UserProfileCtx.js +116 -0
  23. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -0
  24. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +3 -1
  25. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  26. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +4 -2
  27. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  28. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +15 -10
  29. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  30. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  31. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +39 -0
  32. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
  33. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +53 -0
  34. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
  35. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +34 -0
  36. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
  37. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +38 -0
  38. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
  39. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +34 -0
  40. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
  41. package/lib/commonjs/domain/groupChannelBannedUsers/index.js +62 -0
  42. package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -0
  43. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +45 -0
  44. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
  45. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +45 -0
  46. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
  47. package/lib/commonjs/domain/groupChannelBannedUsers/types.js +6 -0
  48. package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -0
  49. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +32 -30
  50. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  51. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  52. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +39 -0
  53. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
  54. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +103 -0
  55. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
  56. package/lib/commonjs/domain/groupChannelModeration/index.js +46 -0
  57. package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -0
  58. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +33 -0
  59. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
  60. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +46 -0
  61. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
  62. package/lib/commonjs/domain/groupChannelModeration/types.js +6 -0
  63. package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -0
  64. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +39 -0
  65. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
  66. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +51 -0
  67. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
  68. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +34 -0
  69. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
  70. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +38 -0
  71. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
  72. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +34 -0
  73. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
  74. package/lib/commonjs/domain/groupChannelMutedMembers/index.js +70 -0
  75. package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -0
  76. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +45 -0
  77. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
  78. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +45 -0
  79. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
  80. package/lib/commonjs/domain/groupChannelMutedMembers/types.js +6 -0
  81. package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -0
  82. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +44 -0
  83. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
  84. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +51 -0
  85. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
  86. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +34 -0
  87. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
  88. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +38 -0
  89. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
  90. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +34 -0
  91. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
  92. package/lib/commonjs/domain/groupChannelOperators/index.js +70 -0
  93. package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -0
  94. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +45 -0
  95. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
  96. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +45 -0
  97. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
  98. package/lib/commonjs/domain/groupChannelOperators/types.js +6 -0
  99. package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -0
  100. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -8
  101. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  102. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -0
  103. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  104. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  105. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  106. package/lib/commonjs/domain/userList/component/UserListStatusError.js +2 -2
  107. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
  108. package/lib/commonjs/domain/userList/types.js.map +1 -1
  109. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +101 -0
  110. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
  111. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +9 -25
  112. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  113. package/lib/commonjs/fragments/createGroupChannelFragment.js +11 -4
  114. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  115. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +21 -37
  116. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  117. package/lib/commonjs/fragments/createGroupChannelListFragment.js +3 -11
  118. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  119. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +95 -51
  120. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  121. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +68 -0
  122. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -0
  123. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +116 -0
  124. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
  125. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +129 -0
  126. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
  127. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +114 -0
  128. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
  129. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -0
  130. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  131. package/lib/commonjs/hooks/useConnection.js +4 -0
  132. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  133. package/lib/commonjs/hooks/useContext.js +17 -7
  134. package/lib/commonjs/hooks/useContext.js.map +1 -1
  135. package/lib/commonjs/index.js +77 -9
  136. package/lib/commonjs/index.js.map +1 -1
  137. package/lib/commonjs/localization/StringSet.type.js +60 -11
  138. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  139. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  140. package/lib/commonjs/version.js +1 -1
  141. package/lib/commonjs/version.js.map +1 -1
  142. package/lib/module/components/ChannelCover.js +22 -2
  143. package/lib/module/components/ChannelCover.js.map +1 -1
  144. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +9 -3
  145. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  146. package/lib/module/components/MessageRenderer/index.js +1 -1
  147. package/lib/module/components/MessageRenderer/index.js.map +1 -1
  148. package/lib/module/components/TypedPlaceholder.js +2 -2
  149. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  150. package/lib/module/components/UserActionBar.js +8 -5
  151. package/lib/module/components/UserActionBar.js.map +1 -1
  152. package/lib/module/containers/GroupChannelPreviewContainer.js +5 -0
  153. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  154. package/lib/module/containers/SendbirdUIKitContainer.js +11 -5
  155. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  156. package/lib/module/contexts/{Localization.js → LocalizationCtx.js} +1 -1
  157. package/lib/module/contexts/LocalizationCtx.js.map +1 -0
  158. package/lib/module/contexts/{PlatformService.js → PlatformServiceCtx.js} +1 -1
  159. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -0
  160. package/lib/module/contexts/{SendbirdChat.js → SendbirdChatCtx.js} +5 -3
  161. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -0
  162. package/lib/module/contexts/UserProfileCtx.js +94 -0
  163. package/lib/module/contexts/UserProfileCtx.js.map +1 -0
  164. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +3 -1
  165. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  166. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +4 -2
  167. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  168. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +16 -11
  169. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  170. package/lib/module/domain/groupChannel/types.js.map +1 -1
  171. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +25 -0
  172. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
  173. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +40 -0
  174. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
  175. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +21 -0
  176. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
  177. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +25 -0
  178. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
  179. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +21 -0
  180. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
  181. package/lib/module/domain/groupChannelBannedUsers/index.js +7 -0
  182. package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -0
  183. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +30 -0
  184. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
  185. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +25 -0
  186. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
  187. package/lib/module/domain/groupChannelBannedUsers/types.js +2 -0
  188. package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -0
  189. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +34 -33
  190. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  191. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  192. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +25 -0
  193. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
  194. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +87 -0
  195. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
  196. package/lib/module/domain/groupChannelModeration/index.js +5 -0
  197. package/lib/module/domain/groupChannelModeration/index.js.map +1 -0
  198. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +21 -0
  199. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
  200. package/lib/module/domain/groupChannelModeration/module/moduleContext.js +26 -0
  201. package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
  202. package/lib/module/domain/groupChannelModeration/types.js +2 -0
  203. package/lib/module/domain/groupChannelModeration/types.js.map +1 -0
  204. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +25 -0
  205. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
  206. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +38 -0
  207. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
  208. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +21 -0
  209. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
  210. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +25 -0
  211. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
  212. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +21 -0
  213. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
  214. package/lib/module/domain/groupChannelMutedMembers/index.js +8 -0
  215. package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -0
  216. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +30 -0
  217. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
  218. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +25 -0
  219. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
  220. package/lib/module/domain/groupChannelMutedMembers/types.js +2 -0
  221. package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -0
  222. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +30 -0
  223. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
  224. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +38 -0
  225. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
  226. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +21 -0
  227. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
  228. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +25 -0
  229. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
  230. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +21 -0
  231. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
  232. package/lib/module/domain/groupChannelOperators/index.js +8 -0
  233. package/lib/module/domain/groupChannelOperators/index.js.map +1 -0
  234. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +30 -0
  235. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
  236. package/lib/module/domain/groupChannelOperators/module/moduleContext.js +25 -0
  237. package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
  238. package/lib/module/domain/groupChannelOperators/types.js +2 -0
  239. package/lib/module/domain/groupChannelOperators/types.js.map +1 -0
  240. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +2 -8
  241. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  242. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -0
  243. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  244. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  245. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  246. package/lib/module/domain/userList/component/UserListStatusError.js +2 -2
  247. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
  248. package/lib/module/domain/userList/types.js.map +1 -1
  249. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +84 -0
  250. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
  251. package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -26
  252. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  253. package/lib/module/fragments/createGroupChannelFragment.js +11 -4
  254. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  255. package/lib/module/fragments/createGroupChannelInviteFragment.js +22 -37
  256. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  257. package/lib/module/fragments/createGroupChannelListFragment.js +4 -11
  258. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  259. package/lib/module/fragments/createGroupChannelMembersFragment.js +99 -56
  260. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  261. package/lib/module/fragments/createGroupChannelModerationFragment.js +53 -0
  262. package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -0
  263. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +98 -0
  264. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
  265. package/lib/module/fragments/createGroupChannelOperatorsFragment.js +111 -0
  266. package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
  267. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +94 -0
  268. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
  269. package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -0
  270. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  271. package/lib/module/hooks/useConnection.js +4 -0
  272. package/lib/module/hooks/useConnection.js.map +1 -1
  273. package/lib/module/hooks/useContext.js +9 -3
  274. package/lib/module/hooks/useContext.js.map +1 -1
  275. package/lib/module/index.js +10 -4
  276. package/lib/module/index.js.map +1 -1
  277. package/lib/module/localization/StringSet.type.js +60 -11
  278. package/lib/module/localization/StringSet.type.js.map +1 -1
  279. package/lib/module/platform/createFileService.native.js.map +1 -1
  280. package/lib/module/version.js +1 -1
  281. package/lib/module/version.js.map +1 -1
  282. package/lib/typescript/src/components/ChannelCover.d.ts +1 -1
  283. package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
  284. package/lib/typescript/src/components/UserActionBar.d.ts +4 -2
  285. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +9 -7
  286. package/lib/typescript/src/contexts/{Localization.d.ts → LocalizationCtx.d.ts} +0 -0
  287. package/lib/typescript/src/contexts/{PlatformService.d.ts → PlatformServiceCtx.d.ts} +0 -0
  288. package/lib/typescript/src/contexts/{SendbirdChat.d.ts → SendbirdChatCtx.d.ts} +8 -4
  289. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +15 -0
  290. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +2 -1
  291. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +3 -1
  292. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +1 -1
  293. package/lib/typescript/src/domain/groupChannel/types.d.ts +1 -1
  294. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +3 -0
  295. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +3 -0
  296. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -0
  297. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.d.ts +3 -0
  298. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -0
  299. package/lib/typescript/src/domain/groupChannelBannedUsers/index.d.ts +6 -0
  300. package/lib/typescript/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.d.ts +3 -0
  301. package/lib/typescript/src/domain/groupChannelBannedUsers/module/moduleContext.d.ts +3 -0
  302. package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +47 -0
  303. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -1
  304. package/lib/typescript/src/domain/groupChannelList/types.d.ts +3 -9
  305. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +3 -0
  306. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +3 -0
  307. package/lib/typescript/src/domain/groupChannelModeration/index.d.ts +4 -0
  308. package/lib/typescript/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.d.ts +3 -0
  309. package/lib/typescript/src/domain/groupChannelModeration/module/moduleContext.d.ts +3 -0
  310. package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +43 -0
  311. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +3 -0
  312. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +3 -0
  313. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -0
  314. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.d.ts +3 -0
  315. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -0
  316. package/lib/typescript/src/domain/groupChannelMutedMembers/index.d.ts +7 -0
  317. package/lib/typescript/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.d.ts +3 -0
  318. package/lib/typescript/src/domain/groupChannelMutedMembers/module/moduleContext.d.ts +3 -0
  319. package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +47 -0
  320. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +3 -0
  321. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +3 -0
  322. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -0
  323. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.d.ts +3 -0
  324. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -0
  325. package/lib/typescript/src/domain/groupChannelOperators/index.d.ts +7 -0
  326. package/lib/typescript/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.d.ts +3 -0
  327. package/lib/typescript/src/domain/groupChannelOperators/module/moduleContext.d.ts +3 -0
  328. package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +49 -0
  329. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -1
  330. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  331. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -0
  332. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +18 -12
  333. package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +2 -2
  334. package/lib/typescript/src/domain/userList/types.d.ts +4 -3
  335. package/lib/typescript/src/fragments/createGroupChannelBannedUsersFragment.d.ts +3 -0
  336. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +2 -1
  337. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +2 -1
  338. package/lib/typescript/src/fragments/createGroupChannelModerationFragment.d.ts +3 -0
  339. package/lib/typescript/src/fragments/createGroupChannelMutedMembersFragment.d.ts +3 -0
  340. package/lib/typescript/src/fragments/createGroupChannelOperatorsFragment.d.ts +3 -0
  341. package/lib/typescript/src/fragments/createGroupChannelRegisterOperatorFragment.d.ts +5 -0
  342. package/lib/typescript/src/hooks/useContext.d.ts +3 -1
  343. package/lib/typescript/src/index.d.ts +10 -4
  344. package/lib/typescript/src/localization/StringSet.type.d.ts +47 -7
  345. package/lib/typescript/src/platform/createFileService.native.d.ts +1 -1
  346. package/lib/typescript/src/version.d.ts +1 -1
  347. package/package.json +10 -10
  348. package/src/components/ChannelCover.tsx +23 -3
  349. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +9 -2
  350. package/src/components/MessageRenderer/index.tsx +1 -1
  351. package/src/components/TypedPlaceholder.tsx +4 -4
  352. package/src/components/UserActionBar.tsx +10 -4
  353. package/src/containers/GroupChannelPreviewContainer.tsx +5 -0
  354. package/src/containers/SendbirdUIKitContainer.tsx +29 -10
  355. package/src/contexts/{Localization.tsx → LocalizationCtx.tsx} +0 -0
  356. package/src/contexts/{PlatformService.tsx → PlatformServiceCtx.tsx} +0 -0
  357. package/src/contexts/{SendbirdChat.tsx → SendbirdChatCtx.tsx} +10 -4
  358. package/src/contexts/UserProfileCtx.tsx +126 -0
  359. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +3 -1
  360. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +17 -3
  361. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +11 -8
  362. package/src/domain/groupChannel/types.ts +1 -1
  363. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.tsx +14 -0
  364. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +32 -0
  365. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.tsx +18 -0
  366. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.tsx +19 -0
  367. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.tsx +18 -0
  368. package/src/domain/groupChannelBannedUsers/index.ts +6 -0
  369. package/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.tsx +21 -0
  370. package/src/domain/groupChannelBannedUsers/module/moduleContext.tsx +30 -0
  371. package/src/domain/groupChannelBannedUsers/types.ts +50 -0
  372. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +37 -43
  373. package/src/domain/groupChannelList/types.ts +3 -9
  374. package/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.tsx +14 -0
  375. package/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.tsx +84 -0
  376. package/src/domain/groupChannelModeration/index.ts +4 -0
  377. package/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.tsx +15 -0
  378. package/src/domain/groupChannelModeration/module/moduleContext.tsx +33 -0
  379. package/src/domain/groupChannelModeration/types.ts +48 -0
  380. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.tsx +14 -0
  381. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +30 -0
  382. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.tsx +18 -0
  383. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.tsx +19 -0
  384. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.tsx +18 -0
  385. package/src/domain/groupChannelMutedMembers/index.ts +7 -0
  386. package/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.tsx +21 -0
  387. package/src/domain/groupChannelMutedMembers/module/moduleContext.tsx +30 -0
  388. package/src/domain/groupChannelMutedMembers/types.ts +50 -0
  389. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.tsx +25 -0
  390. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +29 -0
  391. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.tsx +18 -0
  392. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.tsx +19 -0
  393. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.tsx +18 -0
  394. package/src/domain/groupChannelOperators/index.ts +7 -0
  395. package/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.tsx +21 -0
  396. package/src/domain/groupChannelOperators/module/moduleContext.tsx +30 -0
  397. package/src/domain/groupChannelOperators/types.ts +52 -0
  398. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +2 -7
  399. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +9 -0
  400. package/src/domain/groupChannelSettings/types.ts +2 -0
  401. package/src/domain/groupChannelUserList/types.ts +27 -12
  402. package/src/domain/userList/component/UserListStatusError.tsx +2 -2
  403. package/src/domain/userList/types.ts +4 -1
  404. package/src/fragments/createGroupChannelBannedUsersFragment.tsx +80 -0
  405. package/src/fragments/createGroupChannelCreateFragment.tsx +13 -33
  406. package/src/fragments/createGroupChannelFragment.tsx +12 -5
  407. package/src/fragments/createGroupChannelInviteFragment.tsx +28 -50
  408. package/src/fragments/createGroupChannelListFragment.tsx +4 -10
  409. package/src/fragments/createGroupChannelMembersFragment.tsx +110 -67
  410. package/src/fragments/createGroupChannelModerationFragment.tsx +57 -0
  411. package/src/fragments/createGroupChannelMutedMembersFragment.tsx +93 -0
  412. package/src/fragments/createGroupChannelOperatorsFragment.tsx +101 -0
  413. package/src/fragments/createGroupChannelRegisterOperatorFragment.tsx +94 -0
  414. package/src/fragments/createGroupChannelSettingsFragment.tsx +9 -1
  415. package/src/hooks/useConnection.ts +2 -0
  416. package/src/hooks/useContext.ts +10 -3
  417. package/src/index.ts +10 -4
  418. package/src/localization/StringSet.type.ts +99 -14
  419. package/src/platform/createFileService.native.ts +1 -1
  420. package/src/version.ts +1 -1
  421. package/lib/commonjs/contexts/Localization.js.map +0 -1
  422. package/lib/commonjs/contexts/PlatformService.js.map +0 -1
  423. package/lib/commonjs/contexts/SendbirdChat.js.map +0 -1
  424. package/lib/module/contexts/Localization.js.map +0 -1
  425. package/lib/module/contexts/PlatformService.js.map +0 -1
  426. package/lib/module/contexts/SendbirdChat.js.map +0 -1
@@ -23,24 +23,10 @@ var _useContext = require("../hooks/useContext");
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
26
- const defaultUserIdsGenerator = users => {
27
- const userIds = users.map(user => {
28
- // @ts-ignore
29
- return user.userId;
30
- }).filter(u => Boolean(u));
31
-
32
- if (userIds.length === 0) {
33
- _uikitUtils.Logger.warn('GroupChannelCreateFragment: Couldn\'t find user ids! if you provide "queryCreator", please provide "userIdsGenerator" as well');
34
- }
35
-
36
- return userIds;
37
- };
38
-
39
26
  const createGroupChannelCreateFragment = initModule => {
40
27
  const UserListModule = (0, _createUserListModule.default)(initModule);
41
28
  return _ref => {
42
29
  let {
43
- userIdsGenerator = defaultUserIdsGenerator,
44
30
  onPressHeaderLeft,
45
31
  onBeforeCreateChannel = _uikitUtils.PASS,
46
32
  onCreateChannel,
@@ -70,29 +56,27 @@ const createGroupChannelCreateFragment = initModule => {
70
56
 
71
57
  const _renderUser = (0, _uikitUtils.useFreshCallback)((user, selectedUsers, setSelectedUsers) => {
72
58
  if (queryCreator && !renderUser) {
73
- throw new Error('You should provide "renderUser" when providing "queryCreator"');
59
+ const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
60
+ if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
74
61
  }
75
62
 
76
63
  if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
77
- const sbUser = user;
78
- const sbSelectedUsers = selectedUsers;
79
- const sbSetSelectedUsers = setSelectedUsers;
80
- const isMe = sbUser.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
64
+ const isMe = user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
81
65
  if (isMe) return null;
82
- const userIdx = sbSelectedUsers.findIndex(u => u.userId === sbUser.userId);
66
+ const userIdx = selectedUsers.findIndex(u => u.userId === user.userId);
83
67
  const isSelected = userIdx > -1;
84
68
  return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
85
69
  activeOpacity: 0.7,
86
70
  onPress: () => {
87
- sbSetSelectedUsers(_ref2 => {
71
+ setSelectedUsers(_ref2 => {
88
72
  let [...draft] = _ref2;
89
- if (isSelected) draft.splice(userIdx, 1);else draft.push(sbUser);
73
+ if (isSelected) draft.splice(userIdx, 1);else draft.push(user);
90
74
  return draft;
91
75
  });
92
76
  }
93
77
  }, /*#__PURE__*/_react.default.createElement(_UserSelectableBar.default, {
94
- uri: sbUser.profileUrl,
95
- name: sbUser.nickname || STRINGS.LABELS.USER_NO_NAME,
78
+ uri: user.profileUrl,
79
+ name: user.nickname || STRINGS.LABELS.USER_NO_NAME,
96
80
  selected: isSelected,
97
81
  disabled: false
98
82
  }));
@@ -107,7 +91,7 @@ const createGroupChannelCreateFragment = initModule => {
107
91
  onPressHeaderLeft: onPressHeaderLeft,
108
92
  onPressHeaderRight: async users => {
109
93
  const params = {
110
- invitedUserIds: userIdsGenerator(users),
94
+ invitedUserIds: users.map(it => it.userId),
111
95
  name: '',
112
96
  coverUrl: '',
113
97
  isDistinct: false
@@ -1 +1 @@
1
- {"version":3,"names":["defaultUserIdsGenerator","users","userIds","map","user","userId","filter","u","Boolean","length","Logger","warn","createGroupChannelCreateFragment","initModule","UserListModule","createUserListModule","userIdsGenerator","onPressHeaderLeft","onBeforeCreateChannel","PASS","onCreateChannel","sortComparator","queryCreator","channelType","renderUser","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","refreshing","loading","error","refresh","next","useUserList","_renderUser","useFreshCallback","selectedUsers","setSelectedUsers","Error","sbUser","sbSelectedUsers","sbSetSelectedUsers","isMe","userIdx","findIndex","isSelected","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","GROUP_CHANNEL_CREATE","HEADER_RIGHT","HEADER_TITLE","params","invitedUserIds","name","coverUrl","isDistinct","isBroadcast","isSuper","operatorUserIds","processedParams","channel","groupChannel","createChannel"],"sources":["createGroupChannelCreateFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, PASS, SendbirdGroupChannelCreateParams, SendbirdUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelCreateFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst defaultUserIdsGenerator = <T,>(users: T[]) => {\n const userIds = users\n .map((user) => {\n // @ts-ignore\n return user.userId as string | undefined;\n })\n .filter((u): u is string => Boolean(u));\n\n if (userIds.length === 0) {\n Logger.warn(\n 'GroupChannelCreateFragment: Couldn\\'t find user ids! if you provide \"queryCreator\", please provide \"userIdsGenerator\" as well',\n );\n }\n\n return userIds;\n};\n\nconst createGroupChannelCreateFragment = <UserType,>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelCreateFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({\n userIdsGenerator = defaultUserIdsGenerator,\n onPressHeaderLeft,\n onBeforeCreateChannel = PASS,\n onCreateChannel,\n sortComparator,\n queryCreator,\n channelType = 'GROUP',\n renderUser,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, loading, error, refresh, next } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const sbUser = user as unknown as SendbirdUser;\n const sbSelectedUsers = selectedUsers as unknown as SendbirdUser[];\n const sbSetSelectedUsers = setSelectedUsers as unknown as React.Dispatch<React.SetStateAction<SendbirdUser[]>>;\n\n const isMe = sbUser.userId === currentUser?.userId;\n if (isMe) return null;\n\n const userIdx = sbSelectedUsers.findIndex((u) => u.userId === sbUser.userId);\n const isSelected = userIdx > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={() => {\n sbSetSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdx, 1);\n else draft.push(sbUser);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={sbUser.profileUrl}\n name={sbUser.nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isSelected}\n disabled={false}\n />\n </TouchableOpacity>\n );\n });\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_CREATE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_CREATE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const params: SendbirdGroupChannelCreateParams = {\n invitedUserIds: userIdsGenerator(users),\n name: '',\n coverUrl: '',\n isDistinct: false,\n };\n\n if (channelType === 'BROADCAST') params.isBroadcast = true;\n if (channelType === 'SUPER_GROUP') params.isSuper = true;\n if (currentUser) params.operatorUserIds = [currentUser.userId];\n\n const processedParams = await onBeforeCreateChannel(params, users);\n const channel = await sdk.groupChannel.createChannel(processedParams);\n onCreateChannel(channel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelCreateFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["createGroupChannelCreateFragment","initModule","UserListModule","createUserListModule","onPressHeaderLeft","onBeforeCreateChannel","PASS","onCreateChannel","sortComparator","queryCreator","channelType","renderUser","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","users","refreshing","loading","error","refresh","next","useUserList","_renderUser","useFreshCallback","user","selectedUsers","setSelectedUsers","hasRequiredKey","Object","hasOwn","Error","isMe","userId","userIdx","findIndex","u","isSelected","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","GROUP_CHANNEL_CREATE","HEADER_RIGHT","HEADER_TITLE","params","invitedUserIds","map","it","name","coverUrl","isDistinct","isBroadcast","isSuper","operatorUserIds","processedParams","channel","groupChannel","createChannel","Boolean"],"sources":["createGroupChannelCreateFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { UserStruct, useUserList } from '@sendbird/uikit-chat-hooks';\nimport { PASS, SendbirdGroupChannelCreateParams, SendbirdUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelCreateFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelCreateFragment = <UserType extends UserStruct>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelCreateFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({\n onPressHeaderLeft,\n onBeforeCreateChannel = PASS,\n onCreateChannel,\n sortComparator,\n queryCreator,\n channelType = 'GROUP',\n renderUser,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, loading, error, refresh, next } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');\n if (!hasRequiredKey) throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const isMe = user.userId === currentUser?.userId;\n if (isMe) return null;\n\n const userIdx = selectedUsers.findIndex((u) => u.userId === user.userId);\n const isSelected = userIdx > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={() => {\n setSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdx, 1);\n else draft.push(user);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={(user as unknown as SendbirdUser).profileUrl}\n name={(user as unknown as SendbirdUser).nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isSelected}\n disabled={false}\n />\n </TouchableOpacity>\n );\n });\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_CREATE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_CREATE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const params: SendbirdGroupChannelCreateParams = {\n invitedUserIds: users.map((it) => it.userId),\n name: '',\n coverUrl: '',\n isDistinct: false,\n };\n\n if (channelType === 'BROADCAST') params.isBroadcast = true;\n if (channelType === 'SUPER_GROUP') params.isSuper = true;\n if (currentUser) params.operatorUserIds = [currentUser.userId];\n\n const processedParams = await onBeforeCreateChannel(params, users);\n const channel = await sdk.groupChannel.createChannel(processedParams);\n onCreateChannel(channel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelCreateFragment;\n"],"mappings":"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"}
@@ -57,7 +57,6 @@ const createGroupChannelFragment = initModule => {
57
57
  currentUser
58
58
  } = (0, _useContext.useSendbirdChat)();
59
59
  const {
60
- activeChannel,
61
60
  messages,
62
61
  nextMessages,
63
62
  newMessagesFromMembers,
@@ -115,7 +114,7 @@ const createGroupChannelFragment = initModule => {
115
114
  await updateUserMessage(message.messageId, processedParams);
116
115
  });
117
116
  return /*#__PURE__*/_react.default.createElement(GroupChannelModule.Provider, {
118
- channel: activeChannel,
117
+ channel: channel,
119
118
  enableTypingIndicator: enableTypingIndicator,
120
119
  keyboardAvoidOffset: keyboardAvoidOffset
121
120
  }, /*#__PURE__*/_react.default.createElement(GroupChannelModule.Header, {
@@ -125,9 +124,9 @@ const createGroupChannelFragment = initModule => {
125
124
  loading: loading,
126
125
  LoadingComponent: /*#__PURE__*/_react.default.createElement(GroupChannelModule.StatusLoading, null)
127
126
  }, /*#__PURE__*/_react.default.createElement(GroupChannelModule.MessageList, {
127
+ channel: channel,
128
128
  enableMessageGrouping: enableMessageGrouping,
129
129
  currentUserId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
130
- channel: activeChannel,
131
130
  renderMessage: _renderMessage,
132
131
  messages: messages,
133
132
  nextMessages: nextMessages,
@@ -142,7 +141,7 @@ const createGroupChannelFragment = initModule => {
142
141
  onPressMediaMessage: onPressMediaMessage,
143
142
  flatListProps: memoizedFlatListProps
144
143
  }), /*#__PURE__*/_react.default.createElement(GroupChannelModule.Input, {
145
- channel: activeChannel,
144
+ shouldRenderInput: shouldRenderInput(channel),
146
145
  onSendFileMessage: onSendFileMessage,
147
146
  onSendUserMessage: onSendUserMessage,
148
147
  onUpdateFileMessage: onUpdateFileMessage,
@@ -151,6 +150,14 @@ const createGroupChannelFragment = initModule => {
151
150
  };
152
151
  };
153
152
 
153
+ function shouldRenderInput(channel) {
154
+ if (channel.isBroadcast) {
155
+ return channel.myRole === 'operator';
156
+ }
157
+
158
+ return true;
159
+ }
160
+
154
161
  var _default = createGroupChannelFragment;
155
162
  exports.default = _default;
156
163
  //# sourceMappingURL=createGroupChannelFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","renderNewMessagesButton","props","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressImageMessage","onPressMediaMessage","onChannelDeleted","onBeforeSendFileMessage","PASS","onBeforeSendUserMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","messageComparator","flatListProps","sdk","currentUser","useSendbirdChat","activeChannel","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","useGroupChannelMessages","userId","enableCollectionWithoutLocalCache","_renderMessage","useFreshCallback","memoizedFlatListProps","useMemo","ListEmptyComponent","contentContainerStyle","flexGrow","onSendFileMessage","file","processedParams","onSendUserMessage","text","message","onUpdateFileMessage","editedFile","messageId","onUpdateUserMessage","editedText"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { NOOP, PASS, messageComparator, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport MessageRenderer from '../components/MessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type { GroupChannelFragment, GroupChannelModule, GroupChannelProps } from '../domain/groupChannel/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressImageMessage,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendFileMessage = PASS,\n onBeforeSendUserMessage = PASS,\n channel,\n keyboardAvoidOffset,\n queryCreator,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const {\n activeChannel,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {\n collectionCreator,\n queryCreator,\n sortComparator,\n onChannelDeleted,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n const _renderMessage: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <MessageRenderer {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onSendFileMessage: GroupChannelProps['Input']['onSendFileMessage'] = useFreshCallback(async (file) => {\n const processedParams = await onBeforeSendFileMessage({ file });\n await sendFileMessage(processedParams);\n });\n const onSendUserMessage: GroupChannelProps['Input']['onSendUserMessage'] = useFreshCallback(async (text) => {\n const processedParams = await onBeforeSendUserMessage({ message: text });\n await sendUserMessage(processedParams);\n });\n const onUpdateFileMessage: GroupChannelProps['Input']['onUpdateFileMessage'] = useFreshCallback(\n async (editedFile, message) => {\n const processedParams = await onBeforeSendFileMessage({ file: editedFile });\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onUpdateUserMessage: GroupChannelProps['Input']['onUpdateUserMessage'] = useFreshCallback(\n async (editedText, message) => {\n const processedParams = await onBeforeSendUserMessage({ message: editedText });\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <GroupChannelModule.Provider\n channel={activeChannel}\n enableTypingIndicator={enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <GroupChannelModule.Header onPressHeaderLeft={onPressHeaderLeft} onPressHeaderRight={onPressHeaderRight} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n channel={activeChannel}\n renderMessage={_renderMessage}\n messages={messages}\n nextMessages={nextMessages}\n newMessagesFromMembers={newMessagesFromMembers}\n onTopReached={prev}\n onBottomReached={next}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressImageMessage={onPressImageMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n channel={activeChannel}\n onSendFileMessage={onSendFileMessage}\n onSendUserMessage={onSendUserMessage}\n onUpdateFileMessage={onUpdateFileMessage}\n onUpdateUserMessage={onUpdateUserMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","renderNewMessagesButton","props","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressImageMessage","onPressMediaMessage","onChannelDeleted","onBeforeSendFileMessage","PASS","onBeforeSendUserMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","messageComparator","flatListProps","sdk","currentUser","useSendbirdChat","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","useGroupChannelMessages","userId","enableCollectionWithoutLocalCache","_renderMessage","useFreshCallback","memoizedFlatListProps","useMemo","ListEmptyComponent","contentContainerStyle","flexGrow","onSendFileMessage","file","processedParams","onSendUserMessage","text","message","onUpdateFileMessage","editedFile","messageId","onUpdateUserMessage","editedText","shouldRenderInput","isBroadcast","myRole"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { NOOP, PASS, SendbirdGroupChannel, messageComparator, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport MessageRenderer from '../components/MessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type { GroupChannelFragment, GroupChannelModule, GroupChannelProps } from '../domain/groupChannel/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressImageMessage,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendFileMessage = PASS,\n onBeforeSendUserMessage = PASS,\n channel,\n keyboardAvoidOffset,\n queryCreator,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const {\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {\n collectionCreator,\n queryCreator,\n sortComparator,\n onChannelDeleted,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n const _renderMessage: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <MessageRenderer {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onSendFileMessage: GroupChannelProps['Input']['onSendFileMessage'] = useFreshCallback(async (file) => {\n const processedParams = await onBeforeSendFileMessage({ file });\n await sendFileMessage(processedParams);\n });\n const onSendUserMessage: GroupChannelProps['Input']['onSendUserMessage'] = useFreshCallback(async (text) => {\n const processedParams = await onBeforeSendUserMessage({ message: text });\n await sendUserMessage(processedParams);\n });\n const onUpdateFileMessage: GroupChannelProps['Input']['onUpdateFileMessage'] = useFreshCallback(\n async (editedFile, message) => {\n const processedParams = await onBeforeSendFileMessage({ file: editedFile });\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onUpdateUserMessage: GroupChannelProps['Input']['onUpdateUserMessage'] = useFreshCallback(\n async (editedText, message) => {\n const processedParams = await onBeforeSendUserMessage({ message: editedText });\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n enableTypingIndicator={enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <GroupChannelModule.Header onPressHeaderLeft={onPressHeaderLeft} onPressHeaderRight={onPressHeaderRight} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={_renderMessage}\n messages={messages}\n nextMessages={nextMessages}\n newMessagesFromMembers={newMessagesFromMembers}\n onTopReached={prev}\n onBottomReached={next}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressImageMessage={onPressImageMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n shouldRenderInput={shouldRenderInput(channel)}\n onSendFileMessage={onSendFileMessage}\n onSendUserMessage={onSendUserMessage}\n onUpdateFileMessage={onUpdateFileMessage}\n onUpdateUserMessage={onUpdateUserMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
@@ -11,8 +11,6 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _uikitChatHooks = require("@sendbird/uikit-chat-hooks");
13
13
 
14
- var _uikitUtils = require("@sendbird/uikit-utils");
15
-
16
14
  var _StatusComposition = _interopRequireDefault(require("../components/StatusComposition"));
17
15
 
18
16
  var _UserSelectableBar = _interopRequireDefault(require("../components/UserSelectableBar"));
@@ -27,19 +25,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
25
 
28
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
27
 
30
- const defaultUserIdsGenerator = users => {
31
- const userIds = users.map(user => {
32
- // @ts-ignore
33
- return user.userId;
34
- }).filter(u => Boolean(u));
35
-
36
- if (userIds.length === 0) {
37
- _uikitUtils.Logger.warn('GroupChannelInviteFragment: Couldn\'t find user id to invite! if you provided "queryCreator", please provide "userIdsGenerator" as well');
38
- }
39
-
40
- return userIds;
41
- };
42
-
43
28
  const createGroupChannelInviteFragment = initModule => {
44
29
  const UserListModule = (0, _createUserListModule.default)(initModule);
45
30
  return _ref => {
@@ -47,7 +32,6 @@ const createGroupChannelInviteFragment = initModule => {
47
32
  channel,
48
33
  onPressHeaderLeft,
49
34
  onInviteMembers,
50
- userIdsGenerator = defaultUserIdsGenerator,
51
35
  sortComparator,
52
36
  queryCreator,
53
37
  renderUser
@@ -69,40 +53,36 @@ const createGroupChannelInviteFragment = initModule => {
69
53
  queryCreator,
70
54
  sortComparator
71
55
  });
72
- const {
73
- activeChannel
74
- } = (0, _uikitChatHooks.useActiveGroupChannel)(sdk, channel);
56
+ const memberIds = shouldFilterMember(channel) ? channel.members.map(it => it.userId) : [];
75
57
 
76
58
  const _renderUser = (0, _react.useCallback)((user, selectedUsers, setSelectedUsers) => {
77
59
  if (queryCreator && !renderUser) {
78
- throw new Error('You should provide "renderUser" when providing "queryCreator"');
60
+ const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
61
+ if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
79
62
  }
80
63
 
81
64
  if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
82
- const sbUser = user;
83
- const sbSelectedUsers = selectedUsers;
84
- const sbSetSelectedUsers = setSelectedUsers;
85
- const joinedUserIds = activeChannel.members.map(u => u.userId);
86
- const userIdx = sbSelectedUsers.findIndex(u => u.userId === sbUser.userId);
87
- const isSelected = userIdx > -1;
88
- const isAlreadyJoined = joinedUserIds.includes(sbUser.userId);
65
+ const userIdxInMembers = memberIds.indexOf(user.userId);
66
+ const userIdxInSelectedUsers = selectedUsers.findIndex(it => it.userId === user.userId);
67
+ const isMember = userIdxInMembers > -1;
68
+ const isSelected = userIdxInSelectedUsers > -1;
89
69
  return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
90
70
  activeOpacity: 0.7,
91
- disabled: isAlreadyJoined,
71
+ disabled: isMember,
92
72
  onPress: () => {
93
- sbSetSelectedUsers(_ref2 => {
73
+ setSelectedUsers(_ref2 => {
94
74
  let [...draft] = _ref2;
95
- if (isSelected) draft.splice(userIdx, 1);else draft.push(sbUser);
75
+ if (isSelected) draft.splice(userIdxInSelectedUsers, 1);else draft.push(user);
96
76
  return draft;
97
77
  });
98
78
  }
99
79
  }, /*#__PURE__*/_react.default.createElement(_UserSelectableBar.default, {
100
- uri: sbUser.profileUrl,
101
- name: sbUser.nickname || STRINGS.LABELS.USER_NO_NAME,
102
- selected: isAlreadyJoined || isSelected,
103
- disabled: isAlreadyJoined
80
+ uri: user.profileUrl,
81
+ name: user.nickname || STRINGS.LABELS.USER_NO_NAME,
82
+ selected: isMember || isSelected,
83
+ disabled: isMember
104
84
  }));
105
- }, [activeChannel, renderUser, queryCreator]);
85
+ }, [channel, renderUser, queryCreator]);
106
86
 
107
87
  return /*#__PURE__*/_react.default.createElement(UserListModule.Provider, {
108
88
  headerRight: selectedUsers => STRINGS.GROUP_CHANNEL_INVITE.HEADER_RIGHT({
@@ -112,8 +92,8 @@ const createGroupChannelInviteFragment = initModule => {
112
92
  }, /*#__PURE__*/_react.default.createElement(UserListModule.Header, {
113
93
  onPressHeaderLeft: onPressHeaderLeft,
114
94
  onPressHeaderRight: async users => {
115
- const userIds = userIdsGenerator(users);
116
- const updatedChannel = await activeChannel.inviteWithUserIds(userIds);
95
+ const userIds = users.map(it => it.userId);
96
+ const updatedChannel = await channel.inviteWithUserIds(userIds);
117
97
  onInviteMembers(updatedChannel);
118
98
  }
119
99
  }), /*#__PURE__*/_react.default.createElement(_StatusComposition.default, {
@@ -134,6 +114,10 @@ const createGroupChannelInviteFragment = initModule => {
134
114
  };
135
115
  };
136
116
 
117
+ function shouldFilterMember(channel) {
118
+ return !channel.isSuper && !channel.isBroadcast;
119
+ }
120
+
137
121
  var _default = createGroupChannelInviteFragment;
138
122
  exports.default = _default;
139
123
  //# sourceMappingURL=createGroupChannelInviteFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defaultUserIdsGenerator","users","userIds","map","user","userId","filter","u","Boolean","length","Logger","warn","createGroupChannelInviteFragment","initModule","UserListModule","createUserListModule","channel","onPressHeaderLeft","onInviteMembers","userIdsGenerator","sortComparator","queryCreator","renderUser","sdk","useSendbirdChat","STRINGS","useLocalization","refreshing","refresh","next","error","loading","useUserList","activeChannel","useActiveGroupChannel","_renderUser","useCallback","selectedUsers","setSelectedUsers","Error","sbUser","sbSelectedUsers","sbSetSelectedUsers","joinedUserIds","members","userIdx","findIndex","isSelected","isAlreadyJoined","includes","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","GROUP_CHANNEL_INVITE","HEADER_RIGHT","HEADER_TITLE","updatedChannel","inviteWithUserIds"],"sources":["createGroupChannelInviteFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useActiveGroupChannel, useUserList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelInviteFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst defaultUserIdsGenerator = <T,>(users: T[]) => {\n const userIds = users\n .map((user) => {\n // @ts-ignore\n return user.userId as string | undefined;\n })\n .filter((u): u is string => Boolean(u));\n\n if (userIds.length === 0) {\n Logger.warn(\n 'GroupChannelInviteFragment: Couldn\\'t find user id to invite! if you provided \"queryCreator\", please provide \"userIdsGenerator\" as well',\n );\n }\n\n return userIds;\n};\n\nconst createGroupChannelInviteFragment = <UserType,>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelInviteFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({\n channel,\n onPressHeaderLeft,\n onInviteMembers,\n userIdsGenerator = defaultUserIdsGenerator,\n sortComparator,\n queryCreator,\n renderUser,\n }) => {\n const { sdk } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, refresh, next, error, loading } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const { activeChannel } = useActiveGroupChannel(sdk, channel);\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const sbUser = user as unknown as SendbirdUser;\n const sbSelectedUsers = selectedUsers as unknown as SendbirdUser[];\n const sbSetSelectedUsers = setSelectedUsers as unknown as React.Dispatch<React.SetStateAction<SendbirdUser[]>>;\n\n const joinedUserIds = activeChannel.members.map((u) => u.userId);\n const userIdx = sbSelectedUsers.findIndex((u) => u.userId === sbUser.userId);\n const isSelected = userIdx > -1;\n\n const isAlreadyJoined = joinedUserIds.includes(sbUser.userId);\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={isAlreadyJoined}\n onPress={() => {\n sbSetSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdx, 1);\n else draft.push(sbUser);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={sbUser.profileUrl}\n name={sbUser.nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isAlreadyJoined || isSelected}\n disabled={isAlreadyJoined}\n />\n </TouchableOpacity>\n );\n },\n [activeChannel, renderUser, queryCreator],\n );\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_INVITE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_INVITE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const userIds = userIdsGenerator(users);\n const updatedChannel = await activeChannel.inviteWithUserIds(userIds);\n onInviteMembers(updatedChannel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelInviteFragment;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AAEA;;AAEA;;;;;;;;AAEA,MAAMA,uBAAuB,GAAQC,KAAL,IAAoB;EAClD,MAAMC,OAAO,GAAGD,KAAK,CAClBE,GADa,CACRC,IAAD,IAAU;IACb;IACA,OAAOA,IAAI,CAACC,MAAZ;EACD,CAJa,EAKbC,MALa,CAKLC,CAAD,IAAoBC,OAAO,CAACD,CAAD,CALrB,CAAhB;;EAOA,IAAIL,OAAO,CAACO,MAAR,KAAmB,CAAvB,EAA0B;IACxBC,kBAAA,CAAOC,IAAP,CACE,yIADF;EAGD;;EAED,OAAOT,OAAP;AACD,CAfD;;AAiBA,MAAMU,gCAAgC,GACpCC,UADuC,IAEE;EACzC,MAAMC,cAAc,GAAG,IAAAC,6BAAA,EAA+BF,UAA/B,CAAvB;EAEA,OAAO,QAQD;IAAA,IARE;MACNG,OADM;MAENC,iBAFM;MAGNC,eAHM;MAINC,gBAAgB,GAAGnB,uBAJb;MAKNoB,cALM;MAMNC,YANM;MAONC;IAPM,CAQF;IACJ,MAAM;MAAEC;IAAF,IAAU,IAAAC,2BAAA,GAAhB;IACA,MAAM;MAAEC;IAAF,IAAc,IAAAC,2BAAA,GAApB;IACA,MAAM;MAAEzB,KAAF;MAAS0B,UAAT;MAAqBC,OAArB;MAA8BC,IAA9B;MAAoCC,KAApC;MAA2CC;IAA3C,IAAuD,IAAAC,2BAAA,EAAYT,GAAZ,EAAiB;MAC5EF,YAD4E;MAE5ED;IAF4E,CAAjB,CAA7D;IAKA,MAAM;MAAEa;IAAF,IAAoB,IAAAC,qCAAA,EAAsBX,GAAtB,EAA2BP,OAA3B,CAA1B;;IAEA,MAAMmB,WAA2C,GAAG,IAAAC,kBAAA,EAClD,CAAChC,IAAD,EAAOiC,aAAP,EAAsBC,gBAAtB,KAA2C;MACzC,IAAIjB,YAAY,IAAI,CAACC,UAArB,EAAiC;QAC/B,MAAM,IAAIiB,KAAJ,CAAU,+DAAV,CAAN;MACD;;MACD,IAAIjB,UAAJ,EAAgB,OAAOA,UAAU,CAAClB,IAAD,EAAOiC,aAAP,EAAsBC,gBAAtB,CAAjB;MAEhB,MAAME,MAAM,GAAGpC,IAAf;MACA,MAAMqC,eAAe,GAAGJ,aAAxB;MACA,MAAMK,kBAAkB,GAAGJ,gBAA3B;MAEA,MAAMK,aAAa,GAAGV,aAAa,CAACW,OAAd,CAAsBzC,GAAtB,CAA2BI,CAAD,IAAOA,CAAC,CAACF,MAAnC,CAAtB;MACA,MAAMwC,OAAO,GAAGJ,eAAe,CAACK,SAAhB,CAA2BvC,CAAD,IAAOA,CAAC,CAACF,MAAF,KAAamC,MAAM,CAACnC,MAArD,CAAhB;MACA,MAAM0C,UAAU,GAAGF,OAAO,GAAG,CAAC,CAA9B;MAEA,MAAMG,eAAe,GAAGL,aAAa,CAACM,QAAd,CAAuBT,MAAM,CAACnC,MAA9B,CAAxB;MAEA,oBACE,6BAAC,6BAAD;QACE,aAAa,EAAE,GADjB;QAEE,QAAQ,EAAE2C,eAFZ;QAGE,OAAO,EAAE,MAAM;UACbN,kBAAkB,CAAC,SAAgB;YAAA,IAAf,CAAC,GAAGQ,KAAJ,CAAe;YACjC,IAAIH,UAAJ,EAAgBG,KAAK,CAACC,MAAN,CAAaN,OAAb,EAAsB,CAAtB,EAAhB,KACKK,KAAK,CAACE,IAAN,CAAWZ,MAAX;YACL,OAAOU,KAAP;UACD,CAJiB,CAAlB;QAKD;MATH,gBAWE,6BAAC,0BAAD;QACE,GAAG,EAAEV,MAAM,CAACa,UADd;QAEE,IAAI,EAAEb,MAAM,CAACc,QAAP,IAAmB7B,OAAO,CAAC8B,MAAR,CAAeC,YAF1C;QAGE,QAAQ,EAAER,eAAe,IAAID,UAH/B;QAIE,QAAQ,EAAEC;MAJZ,EAXF,CADF;IAoBD,CArCiD,EAsClD,CAACf,aAAD,EAAgBX,UAAhB,EAA4BD,YAA5B,CAtCkD,CAApD;;IAwCA,oBACE,6BAAC,cAAD,CAAgB,QAAhB;MACE,WAAW,EAAGgB,aAAD,IAAmBZ,OAAO,CAACgC,oBAAR,CAA6BC,YAA7B,CAA0C;QAAErB;MAAF,CAA1C,CADlC;MAEE,WAAW,EAAEZ,OAAO,CAACgC,oBAAR,CAA6BE;IAF5C,gBAIE,6BAAC,cAAD,CAAgB,MAAhB;MACE,iBAAiB,EAAE1C,iBADrB;MAEE,kBAAkB,EAAE,MAAOhB,KAAP,IAAiB;QACnC,MAAMC,OAAO,GAAGiB,gBAAgB,CAAClB,KAAD,CAAhC;QACA,MAAM2D,cAAc,GAAG,MAAM3B,aAAa,CAAC4B,iBAAd,CAAgC3D,OAAhC,CAA7B;QACAgB,eAAe,CAAC0C,cAAD,CAAf;MACD;IANH,EAJF,eAYE,6BAAC,0BAAD;MACE,OAAO,EAAE7B,OADX;MAEE,KAAK,EAAEvB,OAAO,CAACsB,KAAD,CAFhB;MAGE,gBAAgB,eAAE,6BAAC,cAAD,CAAgB,aAAhB,OAHpB;MAIE,cAAc,eAAE,6BAAC,cAAD,CAAgB,WAAhB;QAA4B,YAAY,EAAE,MAAMF,OAAO;MAAvD;IAJlB,gBAME,6BAAC,cAAD,CAAgB,IAAhB;MACE,UAAU,EAAEC,IADd;MAEE,KAAK,EAAE5B,KAFT;MAGE,UAAU,EAAEkC,WAHd;MAIE,SAAS,EAAEP,OAJb;MAKE,UAAU,EAAED,UALd;MAME,kBAAkB,eAAE,6BAAC,cAAD,CAAgB,WAAhB;IANtB,EANF,CAZF,CADF;EA8BD,CAxFD;AAyFD,CA9FD;;eAgGef,gC"}
1
+ {"version":3,"names":["createGroupChannelInviteFragment","initModule","UserListModule","createUserListModule","channel","onPressHeaderLeft","onInviteMembers","sortComparator","queryCreator","renderUser","sdk","useSendbirdChat","STRINGS","useLocalization","users","refreshing","refresh","next","error","loading","useUserList","memberIds","shouldFilterMember","members","map","it","userId","_renderUser","useCallback","user","selectedUsers","setSelectedUsers","hasRequiredKey","Object","hasOwn","Error","userIdxInMembers","indexOf","userIdxInSelectedUsers","findIndex","isMember","isSelected","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","GROUP_CHANNEL_INVITE","HEADER_RIGHT","HEADER_TITLE","userIds","updatedChannel","inviteWithUserIds","Boolean","isSuper","isBroadcast"],"sources":["createGroupChannelInviteFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { UserStruct, useUserList } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelInviteFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelInviteFragment = <UserType extends UserStruct>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelInviteFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({ channel, onPressHeaderLeft, onInviteMembers, sortComparator, queryCreator, renderUser }) => {\n const { sdk } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, refresh, next, error, loading } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const memberIds = shouldFilterMember(channel) ? channel.members.map((it) => it.userId) : [];\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');\n if (!hasRequiredKey) throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const userIdxInMembers = memberIds.indexOf(user.userId);\n const userIdxInSelectedUsers = selectedUsers.findIndex((it) => it.userId === user.userId);\n\n const isMember = userIdxInMembers > -1;\n const isSelected = userIdxInSelectedUsers > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={isMember}\n onPress={() => {\n setSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdxInSelectedUsers, 1);\n else draft.push(user);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={(user as unknown as SendbirdUser).profileUrl}\n name={(user as unknown as SendbirdUser).nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isMember || isSelected}\n disabled={isMember}\n />\n </TouchableOpacity>\n );\n },\n [channel, renderUser, queryCreator],\n );\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_INVITE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_INVITE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const userIds = users.map((it) => it.userId);\n const updatedChannel = await channel.inviteWithUserIds(userIds);\n onInviteMembers(updatedChannel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nfunction shouldFilterMember(channel: SendbirdGroupChannel) {\n return !channel.isSuper && !channel.isBroadcast;\n}\n\nexport default createGroupChannelInviteFragment;\n"],"mappings":"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"}
@@ -31,13 +31,12 @@ const createGroupChannelListFragment = initModule => {
31
31
  const GroupChannelListModule = (0, _createGroupChannelListModule.default)(initModule);
32
32
  return _ref => {
33
33
  let {
34
- TypeSelectorHeader,
35
34
  onPressChannel,
36
35
  onPressCreateChannel,
37
36
  queryCreator,
38
37
  collectionCreator,
39
38
  renderGroupChannelPreview,
40
- // skipTypeSelection = true,
39
+ skipTypeSelection = false,
41
40
  flatListProps = {},
42
41
  menuItemCreator = _uikitUtils.PASS
43
42
  } = _ref;
@@ -76,12 +75,7 @@ const createGroupChannelListFragment = initModule => {
76
75
  });
77
76
  });
78
77
 
79
- if (!currentUser) {
80
- _uikitUtils.Logger.warn('Cannot render GroupChannelListFragment, please connect using `useConnection()` hook first');
81
-
82
- return null;
83
- }
84
-
78
+ const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;
85
79
  return /*#__PURE__*/_react.default.createElement(GroupChannelListModule.Provider, null, /*#__PURE__*/_react.default.createElement(GroupChannelListModule.Header, null), /*#__PURE__*/_react.default.createElement(_StatusComposition.default, {
86
80
  loading: loading,
87
81
  LoadingComponent: /*#__PURE__*/_react.default.createElement(GroupChannelListModule.StatusLoading, null)
@@ -98,9 +92,7 @@ const createGroupChannelListFragment = initModule => {
98
92
  ...flatListProps
99
93
  }
100
94
  })), /*#__PURE__*/_react.default.createElement(GroupChannelListModule.TypeSelector, {
101
- // NOTE: not included in first iteration
102
- skipTypeSelection: true,
103
- Header: TypeSelectorHeader,
95
+ skipTypeSelection: isChannelTypeAvailable ? skipTypeSelection : true,
104
96
  onSelectType: onPressCreateChannel
105
97
  }));
106
98
  };
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupChannelListFragment","initModule","GroupChannelListModule","createGroupChannelListModule","TypeSelectorHeader","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","flatListProps","menuItemCreator","PASS","sdk","currentUser","features","markAsDeliveredWithChannel","useSendbirdChat","groupChannels","next","loading","useGroupChannelList","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","useEffect","listener","AppState","addEventListener","status","forEach","remove","_renderGroupChannelPreview","useFreshCallback","channel","onLongPressChannel","Logger","warn","ListEmptyComponent","contentContainerStyle","flexGrow"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from 'react-native';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, PASS, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n TypeSelectorHeader,\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n // skipTypeSelection = true,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useEffect(() => {\n const listener = AppState.addEventListener('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n return () => listener.remove();\n }, []);\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n if (!currentUser) {\n Logger.warn('Cannot render GroupChannelListFragment, please connect using `useConnection()` hook first');\n return null;\n }\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n // NOTE: not included in first iteration\n skipTypeSelection\n Header={TypeSelectorHeader}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AAMA;;;;;;;;AAEA,MAAMA,8BAA8B,GAAIC,UAAD,IAA4E;EACjH,MAAMC,sBAAsB,GAAG,IAAAC,qCAAA,EAA6BF,UAA7B,CAA/B;EACA,OAAO,QAUD;IAAA,IAVE;MACNG,kBADM;MAENC,cAFM;MAGNC,oBAHM;MAINC,YAJM;MAKNC,iBALM;MAMNC,yBANM;MAON;MACAC,aAAa,GAAG,EARV;MASNC,eAAe,GAAGC;IATZ,CAUF;IACJ,MAAM;MAAEC,GAAF;MAAOC,WAAP;MAAoBC,QAApB;MAA8BC;IAA9B,IAA6D,IAAAC,2BAAA,GAAnE;IACA,MAAM;MAAEC,aAAF;MAAiBC,IAAjB;MAAuBC;IAAvB,IAAmC,IAAAC,mCAAA,EAAoBR,GAApB,EAAyBC,WAAzB,aAAyBA,WAAzB,uBAAyBA,WAAW,CAAEQ,MAAtC,EAA8C;MACrFf,YADqF;MAErFC,iBAFqF;MAGrFe,iCAAiC,EAAE,CAAChB;IAHiD,CAA9C,CAAzC;;IAMA,IAAIQ,QAAQ,CAACS,sBAAb,EAAqC;MACnC,IAAAC,gBAAA,EAAU,MAAM;QACd,MAAMC,QAAQ,GAAGC,qBAAA,CAASC,gBAAT,CAA0B,QAA1B,EAAqCC,MAAD,IAAY;UAC/D,IAAIA,MAAM,KAAK,QAAf,EAAyBX,aAAa,CAACY,OAAd,CAAsBd,0BAAtB;QAC1B,CAFgB,CAAjB;;QAGA,OAAO,MAAMU,QAAQ,CAACK,MAAT,EAAb;MACD,CALD,EAKG,EALH;IAMD;;IAED,MAAMC,0BAAsF,GAAG,IAAAC,4BAAA,EAC7F,CAACC,OAAD,EAAUC,kBAAV,KAAiC;MAC/B,IAAI1B,yBAAJ,EAA+B,OAAOA,yBAAyB,CAACyB,OAAD,EAAUC,kBAAV,CAAhC;MAC/B,oBACE,6BAAC,qCAAD;QACE,OAAO,EAAED,OADX;QAEE,OAAO,EAAE,MAAM7B,cAAc,CAAC6B,OAAD,CAF/B;QAGE,WAAW,EAAE,MAAMC,kBAAkB;MAHvC,EADF;IAOD,CAV4F,CAA/F;;IAaA,IAAI,CAACrB,WAAL,EAAkB;MAChBsB,kBAAA,CAAOC,IAAP,CAAY,2FAAZ;;MACA,OAAO,IAAP;IACD;;IAED,oBACE,6BAAC,sBAAD,CAAwB,QAAxB,qBACE,6BAAC,sBAAD,CAAwB,MAAxB,OADF,eAEE,6BAAC,0BAAD;MAAmB,OAAO,EAAEjB,OAA5B;MAAqC,gBAAgB,eAAE,6BAAC,sBAAD,CAAwB,aAAxB;IAAvD,gBACE,6BAAC,sBAAD,CAAwB,IAAxB;MACE,eAAe,EAAET,eADnB;MAEE,yBAAyB,EAAEqB,0BAF7B;MAGE,aAAa,EAAEd,aAHjB;MAIE,UAAU,EAAEC,IAJd;MAKE,aAAa,EAAE;QACbmB,kBAAkB,eAAE,6BAAC,sBAAD,CAAwB,WAAxB,OADP;QAEbC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAZ,CAFV;QAGb,GAAG9B;MAHU;IALjB,EADF,CAFF,eAeE,6BAAC,sBAAD,CAAwB,YAAxB;MACE;MACA,iBAAiB,MAFnB;MAGE,MAAM,EAAEN,kBAHV;MAIE,YAAY,EAAEE;IAJhB,EAfF,CADF;EAwBD,CArED;AAsED,CAxED;;eA0EeN,8B"}
1
+ {"version":3,"names":["createGroupChannelListFragment","initModule","GroupChannelListModule","createGroupChannelListModule","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","skipTypeSelection","flatListProps","menuItemCreator","PASS","sdk","currentUser","features","markAsDeliveredWithChannel","useSendbirdChat","groupChannels","next","loading","useGroupChannelList","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","useEffect","listener","AppState","addEventListener","status","forEach","remove","_renderGroupChannelPreview","useFreshCallback","channel","onLongPressChannel","isChannelTypeAvailable","broadcastChannelEnabled","superGroupChannelEnabled","ListEmptyComponent","contentContainerStyle","flexGrow"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from 'react-native';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { PASS, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n skipTypeSelection = false,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useEffect(() => {\n const listener = AppState.addEventListener('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n return () => listener.remove();\n }, []);\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n const isChannelTypeAvailable = features.broadcastChannelEnabled || features.superGroupChannelEnabled;\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n skipTypeSelection={isChannelTypeAvailable ? skipTypeSelection : true}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AAMA;;;;;;;;AAEA,MAAMA,8BAA8B,GAAIC,UAAD,IAA4E;EACjH,MAAMC,sBAAsB,GAAG,IAAAC,qCAAA,EAA6BF,UAA7B,CAA/B;EACA,OAAO,QASD;IAAA,IATE;MACNG,cADM;MAENC,oBAFM;MAGNC,YAHM;MAINC,iBAJM;MAKNC,yBALM;MAMNC,iBAAiB,GAAG,KANd;MAONC,aAAa,GAAG,EAPV;MAQNC,eAAe,GAAGC;IARZ,CASF;IACJ,MAAM;MAAEC,GAAF;MAAOC,WAAP;MAAoBC,QAApB;MAA8BC;IAA9B,IAA6D,IAAAC,2BAAA,GAAnE;IACA,MAAM;MAAEC,aAAF;MAAiBC,IAAjB;MAAuBC;IAAvB,IAAmC,IAAAC,mCAAA,EAAoBR,GAApB,EAAyBC,WAAzB,aAAyBA,WAAzB,uBAAyBA,WAAW,CAAEQ,MAAtC,EAA8C;MACrFhB,YADqF;MAErFC,iBAFqF;MAGrFgB,iCAAiC,EAAE,CAACjB;IAHiD,CAA9C,CAAzC;;IAMA,IAAIS,QAAQ,CAACS,sBAAb,EAAqC;MACnC,IAAAC,gBAAA,EAAU,MAAM;QACd,MAAMC,QAAQ,GAAGC,qBAAA,CAASC,gBAAT,CAA0B,QAA1B,EAAqCC,MAAD,IAAY;UAC/D,IAAIA,MAAM,KAAK,QAAf,EAAyBX,aAAa,CAACY,OAAd,CAAsBd,0BAAtB;QAC1B,CAFgB,CAAjB;;QAGA,OAAO,MAAMU,QAAQ,CAACK,MAAT,EAAb;MACD,CALD,EAKG,EALH;IAMD;;IAED,MAAMC,0BAAsF,GAAG,IAAAC,4BAAA,EAC7F,CAACC,OAAD,EAAUC,kBAAV,KAAiC;MAC/B,IAAI3B,yBAAJ,EAA+B,OAAOA,yBAAyB,CAAC0B,OAAD,EAAUC,kBAAV,CAAhC;MAC/B,oBACE,6BAAC,qCAAD;QACE,OAAO,EAAED,OADX;QAEE,OAAO,EAAE,MAAM9B,cAAc,CAAC8B,OAAD,CAF/B;QAGE,WAAW,EAAE,MAAMC,kBAAkB;MAHvC,EADF;IAOD,CAV4F,CAA/F;;IAaA,MAAMC,sBAAsB,GAAGrB,QAAQ,CAACsB,uBAAT,IAAoCtB,QAAQ,CAACuB,wBAA5E;IAEA,oBACE,6BAAC,sBAAD,CAAwB,QAAxB,qBACE,6BAAC,sBAAD,CAAwB,MAAxB,OADF,eAEE,6BAAC,0BAAD;MAAmB,OAAO,EAAElB,OAA5B;MAAqC,gBAAgB,eAAE,6BAAC,sBAAD,CAAwB,aAAxB;IAAvD,gBACE,6BAAC,sBAAD,CAAwB,IAAxB;MACE,eAAe,EAAET,eADnB;MAEE,yBAAyB,EAAEqB,0BAF7B;MAGE,aAAa,EAAEd,aAHjB;MAIE,UAAU,EAAEC,IAJd;MAKE,aAAa,EAAE;QACboB,kBAAkB,eAAE,6BAAC,sBAAD,CAAwB,WAAxB,OADP;QAEbC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAZ,CAFV;QAGb,GAAG/B;MAHU;IALjB,EADF,CAFF,eAeE,6BAAC,sBAAD,CAAwB,YAAxB;MACE,iBAAiB,EAAE0B,sBAAsB,GAAG3B,iBAAH,GAAuB,IADlE;MAEE,YAAY,EAAEJ;IAFhB,EAfF,CADF;EAsBD,CA/DD;AAgED,CAlED;;eAoEeL,8B"}