@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
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","View","Divider","Text","createStyleSheet","Logger","getGroupChannelTitle","ChannelCover","useLocalization","useSendbirdChat","GroupChannelSettingsContexts","GroupChannelSettingsInfo","_","channel","Fragment","currentUser","STRINGS","warn","styles","userInfoContainer","avatarContainer","userId","LABELS","USER_NO_NAME","CHANNEL_NO_MEMBERS","container","flex","paddingVertical","alignItems","marginBottom","userIdContainer","userIdLabel"],"sources":["GroupChannelSettingsInfo.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { Divider, Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { Logger, getGroupChannelTitle } from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../../../components/ChannelCover';\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nconst GroupChannelSettingsInfo = (_: GroupChannelSettingsProps['Info']) => {\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n\n if (!currentUser) {\n Logger.warn('Cannot render GroupChannelSettingsInfo, please connect using `useConnection()` hook first');\n return null;\n }\n\n return (\n <View>\n <View style={styles.userInfoContainer}>\n <ChannelCover channel={channel} size={80} containerStyle={styles.avatarContainer} />\n <Text h1 numberOfLines={1}>\n {getGroupChannelTitle(\n currentUser.userId,\n channel,\n STRINGS.LABELS.USER_NO_NAME,\n STRINGS.LABELS.CHANNEL_NO_MEMBERS,\n )}\n </Text>\n </View>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: { flex: 1 },\n userInfoContainer: { paddingVertical: 24, alignItems: 'center' },\n avatarContainer: { marginBottom: 12 },\n userIdContainer: { paddingVertical: 16 },\n userIdLabel: { marginBottom: 4 },\n});\nexport default GroupChannelSettingsInfo;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,OAAT,EAAkBC,IAAlB,EAAwBC,gBAAxB,QAAgD,yCAAhD;AACA,SAASC,MAAT,EAAiBC,oBAAjB,QAA6C,uBAA7C;AAEA,OAAOC,YAAP,MAAyB,kCAAzB;AACA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,2BAAjD;AACA,SAASC,4BAAT,QAA6C,yBAA7C;;AAGA,MAAMC,wBAAwB,GAAIC,CAAD,IAA0C;EACzE,MAAM;IAAEC;EAAF,IAAcb,UAAU,CAACU,4BAA4B,CAACI,QAA9B,CAA9B;EACA,MAAM;IAAEC;EAAF,IAAkBN,eAAe,EAAvC;EACA,MAAM;IAAEO;EAAF,IAAcR,eAAe,EAAnC;;EAEA,IAAI,CAACO,WAAL,EAAkB;IAChBV,MAAM,CAACY,IAAP,CAAY,2FAAZ;IACA,OAAO,IAAP;EACD;;EAED,oBACE,oBAAC,IAAD,qBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,YAAD;IAAc,OAAO,EAAEN,OAAvB;IAAgC,IAAI,EAAE,EAAtC;IAA0C,cAAc,EAAEK,MAAM,CAACE;EAAjE,EADF,eAEE,oBAAC,IAAD;IAAM,EAAE,MAAR;IAAS,aAAa,EAAE;EAAxB,GACGd,oBAAoB,CACnBS,WAAW,CAACM,MADO,EAEnBR,OAFmB,EAGnBG,OAAO,CAACM,MAAR,CAAeC,YAHI,EAInBP,OAAO,CAACM,MAAR,CAAeE,kBAJI,CADvB,CAFF,CADF,eAYE,oBAAC,OAAD,OAZF,CADF;AAgBD,CA1BD;;AA4BA,MAAMN,MAAM,GAAGd,gBAAgB,CAAC;EAC9BqB,SAAS,EAAE;IAAEC,IAAI,EAAE;EAAR,CADmB;EAE9BP,iBAAiB,EAAE;IAAEQ,eAAe,EAAE,EAAnB;IAAuBC,UAAU,EAAE;EAAnC,CAFW;EAG9BR,eAAe,EAAE;IAAES,YAAY,EAAE;EAAhB,CAHa;EAI9BC,eAAe,EAAE;IAAEH,eAAe,EAAE;EAAnB,CAJa;EAK9BI,WAAW,EAAE;IAAEF,YAAY,EAAE;EAAhB;AALiB,CAAD,CAA/B;AAOA,eAAelB,wBAAf"}
1
+ {"version":3,"names":["React","useContext","View","Divider","Text","createStyleSheet","getGroupChannelTitle","ChannelCover","useLocalization","useSendbirdChat","GroupChannelSettingsContexts","GroupChannelSettingsInfo","_","channel","Fragment","currentUser","STRINGS","styles","userInfoContainer","avatarContainer","userId","LABELS","USER_NO_NAME","CHANNEL_NO_MEMBERS","container","flex","paddingVertical","alignItems","marginBottom","userIdContainer","userIdLabel"],"sources":["GroupChannelSettingsInfo.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { Divider, Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { getGroupChannelTitle } from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../../../components/ChannelCover';\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nconst GroupChannelSettingsInfo = (_: GroupChannelSettingsProps['Info']) => {\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n\n return (\n <View>\n <View style={styles.userInfoContainer}>\n <ChannelCover channel={channel} size={80} containerStyle={styles.avatarContainer} />\n <Text h1 numberOfLines={1}>\n {getGroupChannelTitle(\n currentUser?.userId || '',\n channel,\n STRINGS.LABELS.USER_NO_NAME,\n STRINGS.LABELS.CHANNEL_NO_MEMBERS,\n )}\n </Text>\n </View>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: { flex: 1 },\n userInfoContainer: { paddingVertical: 24, alignItems: 'center' },\n avatarContainer: { marginBottom: 12 },\n userIdContainer: { paddingVertical: 16 },\n userIdLabel: { marginBottom: 4 },\n});\nexport default GroupChannelSettingsInfo;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,OAAT,EAAkBC,IAAlB,EAAwBC,gBAAxB,QAAgD,yCAAhD;AACA,SAASC,oBAAT,QAAqC,uBAArC;AAEA,OAAOC,YAAP,MAAyB,kCAAzB;AACA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,2BAAjD;AACA,SAASC,4BAAT,QAA6C,yBAA7C;;AAGA,MAAMC,wBAAwB,GAAIC,CAAD,IAA0C;EACzE,MAAM;IAAEC;EAAF,IAAcZ,UAAU,CAACS,4BAA4B,CAACI,QAA9B,CAA9B;EACA,MAAM;IAAEC;EAAF,IAAkBN,eAAe,EAAvC;EACA,MAAM;IAAEO;EAAF,IAAcR,eAAe,EAAnC;EAEA,oBACE,oBAAC,IAAD,qBACE,oBAAC,IAAD;IAAM,KAAK,EAAES,MAAM,CAACC;EAApB,gBACE,oBAAC,YAAD;IAAc,OAAO,EAAEL,OAAvB;IAAgC,IAAI,EAAE,EAAtC;IAA0C,cAAc,EAAEI,MAAM,CAACE;EAAjE,EADF,eAEE,oBAAC,IAAD;IAAM,EAAE,MAAR;IAAS,aAAa,EAAE;EAAxB,GACGb,oBAAoB,CACnB,CAAAS,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEK,MAAb,KAAuB,EADJ,EAEnBP,OAFmB,EAGnBG,OAAO,CAACK,MAAR,CAAeC,YAHI,EAInBN,OAAO,CAACK,MAAR,CAAeE,kBAJI,CADvB,CAFF,CADF,eAYE,oBAAC,OAAD,OAZF,CADF;AAgBD,CArBD;;AAuBA,MAAMN,MAAM,GAAGZ,gBAAgB,CAAC;EAC9BmB,SAAS,EAAE;IAAEC,IAAI,EAAE;EAAR,CADmB;EAE9BP,iBAAiB,EAAE;IAAEQ,eAAe,EAAE,EAAnB;IAAuBC,UAAU,EAAE;EAAnC,CAFW;EAG9BR,eAAe,EAAE;IAAES,YAAY,EAAE;EAAhB,CAHa;EAI9BC,eAAe,EAAE;IAAEH,eAAe,EAAE;EAAnB,CAJa;EAK9BI,WAAW,EAAE;IAAEF,YAAY,EAAE;EAAhB;AALiB,CAAD,CAA/B;AAOA,eAAejB,wBAAf"}
@@ -7,6 +7,7 @@ import { GroupChannelSettingsContexts } from '../module/moduleContext';
7
7
 
8
8
  const GroupChannelSettingsMenu = _ref => {
9
9
  let {
10
+ onPressMenuModeration,
10
11
  onPressMenuMembers,
11
12
  onPressMenuLeaveChannel,
12
13
  menuItemsCreator = menu => menu
@@ -33,6 +34,15 @@ const GroupChannelSettingsMenu = _ref => {
33
34
  };
34
35
 
35
36
  const menuItems = menuItemsCreator([{
37
+ icon: 'moderation',
38
+ visible: channel.myRole === 'operator',
39
+ name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MODERATION,
40
+ onPress: () => onPressMenuModeration(),
41
+ actionItem: /*#__PURE__*/React.createElement(Icon, {
42
+ icon: 'chevron-right',
43
+ color: colors.onBackground01
44
+ })
45
+ }, {
36
46
  icon: 'notifications',
37
47
  name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,
38
48
  onPress: toggleNotification,
@@ -66,6 +76,7 @@ const GroupChannelSettingsMenu = _ref => {
66
76
  onPress: menu.onPress,
67
77
  name: menu.name,
68
78
  disabled: menu.disabled,
79
+ visible: menu.visible,
69
80
  icon: menu.icon,
70
81
  iconColor: menu.iconColor,
71
82
  iconBackgroundColor: menu.iconBackgroundColor,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","View","PushTriggerOption","Icon","MenuBar","Switch","useUIKitTheme","useLocalization","useSendbirdChat","GroupChannelSettingsContexts","GroupChannelSettingsMenu","onPressMenuMembers","onPressMenuLeaveChannel","menuItemsCreator","menu","sdk","channel","Fragment","STRINGS","colors","toggleNotification","myPushTriggerOption","setMyPushTriggerOption","DEFAULT","OFF","menuItems","icon","name","GROUP_CHANNEL_SETTINGS","MENU_NOTIFICATION","onPress","actionItem","MENU_MEMBERS","actionLabel","String","memberCount","onBackground01","iconColor","error","MENU_LEAVE_CHANNEL","leave","then","clearCachedMessages","url","catch","map","disabled","iconBackgroundColor"],"sources":["GroupChannelSettingsMenu.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { PushTriggerOption } from '@sendbird/chat';\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport { Icon, MenuBar, Switch, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nconst GroupChannelSettingsMenu = ({\n onPressMenuMembers,\n onPressMenuLeaveChannel,\n menuItemsCreator = (menu) => menu,\n}: GroupChannelSettingsProps['Menu']) => {\n const { sdk } = useSendbirdChat();\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const toggleNotification = async () => {\n if (channel.myPushTriggerOption === 'off') {\n await channel.setMyPushTriggerOption(PushTriggerOption.DEFAULT);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n };\n\n const menuItems: MenuBarProps[] = menuItemsCreator([\n {\n icon: 'notifications',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,\n onPress: toggleNotification,\n actionItem: <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,\n },\n {\n icon: 'members',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MEMBERS,\n onPress: () => onPressMenuMembers(),\n actionLabel: String(channel.memberCount),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'leave',\n iconColor: colors.error,\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_LEAVE_CHANNEL,\n onPress: () => {\n channel.leave().then(() => {\n onPressMenuLeaveChannel();\n sdk.clearCachedMessages([channel.url]).catch();\n });\n },\n },\n ]);\n\n return (\n <View>\n {menuItems.map((menu) => {\n return (\n <MenuBar\n key={menu.name}\n onPress={menu.onPress}\n name={menu.name}\n disabled={menu.disabled}\n icon={menu.icon}\n iconColor={menu.iconColor}\n iconBackgroundColor={menu.iconBackgroundColor}\n actionLabel={menu.actionLabel}\n actionItem={menu.actionItem}\n />\n );\n })}\n </View>\n );\n};\n\nexport default GroupChannelSettingsMenu;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useContext","View","PushTriggerOption","Icon","MenuBar","Switch","useUIKitTheme","useLocalization","useSendbirdChat","GroupChannelSettingsContexts","GroupChannelSettingsMenu","onPressMenuModeration","onPressMenuMembers","onPressMenuLeaveChannel","menuItemsCreator","menu","sdk","channel","Fragment","STRINGS","colors","toggleNotification","myPushTriggerOption","setMyPushTriggerOption","DEFAULT","OFF","menuItems","icon","visible","myRole","name","GROUP_CHANNEL_SETTINGS","MENU_MODERATION","onPress","actionItem","onBackground01","MENU_NOTIFICATION","MENU_MEMBERS","actionLabel","String","memberCount","iconColor","error","MENU_LEAVE_CHANNEL","leave","then","clearCachedMessages","url","catch","map","disabled","iconBackgroundColor"],"sources":["GroupChannelSettingsMenu.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { PushTriggerOption } from '@sendbird/chat';\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport { Icon, MenuBar, Switch, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nconst GroupChannelSettingsMenu = ({\n onPressMenuModeration,\n onPressMenuMembers,\n onPressMenuLeaveChannel,\n menuItemsCreator = (menu) => menu,\n}: GroupChannelSettingsProps['Menu']) => {\n const { sdk } = useSendbirdChat();\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const toggleNotification = async () => {\n if (channel.myPushTriggerOption === 'off') {\n await channel.setMyPushTriggerOption(PushTriggerOption.DEFAULT);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n };\n\n const menuItems: MenuBarProps[] = menuItemsCreator([\n {\n icon: 'moderation',\n visible: channel.myRole === 'operator',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MODERATION,\n onPress: () => onPressMenuModeration(),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'notifications',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,\n onPress: toggleNotification,\n actionItem: <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,\n },\n {\n icon: 'members',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MEMBERS,\n onPress: () => onPressMenuMembers(),\n actionLabel: String(channel.memberCount),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'leave',\n iconColor: colors.error,\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_LEAVE_CHANNEL,\n onPress: () => {\n channel.leave().then(() => {\n onPressMenuLeaveChannel();\n sdk.clearCachedMessages([channel.url]).catch();\n });\n },\n },\n ]);\n\n return (\n <View>\n {menuItems.map((menu) => {\n return (\n <MenuBar\n key={menu.name}\n onPress={menu.onPress}\n name={menu.name}\n disabled={menu.disabled}\n visible={menu.visible}\n icon={menu.icon}\n iconColor={menu.iconColor}\n iconBackgroundColor={menu.iconBackgroundColor}\n actionLabel={menu.actionLabel}\n actionItem={menu.actionItem}\n />\n );\n })}\n </View>\n );\n};\n\nexport default GroupChannelSettingsMenu;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelSettingsProps {\n Fragment: {\n channel: GroupChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];\n onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];\n menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuMembers: () => void;\n onPressMenuLeaveChannel: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n}\n\n/**\n * Internal context for GroupChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelSettingsContextsType {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n}\nexport interface GroupChannelSettingsModule {\n Provider: CommonComponent<GroupChannelSettingsProps['Provider']>;\n Header: CommonComponent<GroupChannelSettingsProps['Header']>;\n Info: CommonComponent<GroupChannelSettingsProps['Info']>;\n Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;\n}\n\nexport type GroupChannelSettingsFragment = CommonComponent<GroupChannelSettingsProps['Fragment']>;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelSettingsProps {\n Fragment: {\n channel: GroupChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuModeration: GroupChannelSettingsProps['Menu']['onPressMenuModeration'];\n onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];\n onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];\n menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuModeration: () => void;\n onPressMenuMembers: () => void;\n onPressMenuLeaveChannel: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n}\n\n/**\n * Internal context for GroupChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelSettingsContextsType {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n}\nexport interface GroupChannelSettingsModule {\n Provider: CommonComponent<GroupChannelSettingsProps['Provider']>;\n Header: CommonComponent<GroupChannelSettingsProps['Header']>;\n Info: CommonComponent<GroupChannelSettingsProps['Info']>;\n Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;\n}\n\nexport type GroupChannelSettingsFragment = CommonComponent<GroupChannelSettingsProps['Fragment']>;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\ntype UserIds = string[];\n\nexport interface GroupChannelCreateProps<User> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n userIdsGenerator?: (users: User[]) => UserIds;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelCreateParams,\n users: User[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;\n\nexport interface GroupChannelInviteProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n userIdsGenerator?: (users: User[]) => UserIds;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;\n\nexport interface GroupChannelMembersProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelMembersFragment<User> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions, UserStruct } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\nexport interface GroupChannelCreateProps<User extends UserStruct> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelCreateParams,\n users: User[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User extends UserStruct> = CommonComponent<\n GroupChannelCreateProps<User>['Fragment']\n>;\n\nexport interface GroupChannelInviteProps<User extends UserStruct> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User extends UserStruct> = CommonComponent<\n GroupChannelInviteProps<User>['Fragment']\n>;\n\nexport interface GroupChannelMembersProps<User extends UserStruct> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelMembersFragment<User extends UserStruct> = CommonComponent<\n GroupChannelMembersProps<User>['Fragment']\n>;\n\nexport interface GroupChannelRegisterOperatorProps<User extends UserStruct = SendbirdMember> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (channel: SendbirdGroupChannel) => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelRegisterOperatorFragment<User extends UserStruct> = CommonComponent<\n GroupChannelRegisterOperatorProps<User>['Fragment']\n>;\n"],"mappings":""}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
  import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
4
 
5
- const UserListStatusLoading = _ref => {
5
+ const UserListStatusError = _ref => {
6
6
  let {
7
7
  onPressRetry
8
8
  } = _ref;
@@ -21,5 +21,5 @@ const styles = StyleSheet.create({
21
21
  alignItems: 'center'
22
22
  }
23
23
  });
24
- export default UserListStatusLoading;
24
+ export default UserListStatusError;
25
25
  //# sourceMappingURL=UserListStatusError.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusLoading","onPressRetry","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusError.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\nimport type { UserListModule } from '../types';\n\nconst UserListStatusLoading: UserListModule<unknown>['StatusError'] = ({ onPressRetry }) => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'error-wrong'} onPressRetry={onPressRetry} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusLoading;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAGA,MAAMC,qBAA6D,GAAG,QAAsB;EAAA,IAArB;IAAEC;EAAF,CAAqB;EAC1F,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE,aAAxB;IAAuC,YAAY,EAAEF;EAArD,EADF,CADF;AAKD,CAND;;AAQA,MAAMC,MAAM,GAAGL,UAAU,CAACO,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeP,qBAAf"}
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusError","onPressRetry","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusError.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\nimport type { UserListModule } from '../types';\n\nconst UserListStatusError: UserListModule<unknown>['StatusError'] = ({ onPressRetry }) => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'error-wrong'} onPressRetry={onPressRetry} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusError;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAGA,MAAMC,mBAA2D,GAAG,QAAsB;EAAA,IAArB;IAAEC;EAAF,CAAqB;EACxF,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE,aAAxB;IAAuC,YAAY,EAAEF;EAArD,EADF,CADF;AAKD,CAND;;AAQA,MAAMC,MAAM,GAAGL,UAAU,CAACO,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeP,mBAAf"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { ContextValue } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface UserListProps<User> {\n /** Props for `UserListModule.Header` **/\n Header: {\n right?: React.ReactElement;\n left?: React.ReactElement;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (selectedUsers: User[]) => Promise<void>;\n shouldActivateHeaderRight?: (selectedUsers: User[]) => boolean;\n };\n /** Props for `UserListModule.List` **/\n List: {\n /** User list from SendbirdChat SDK or Custom query {@link Fragment.queryCreator} **/\n users: User[];\n /** Render user component **/\n renderUser: (\n user: User,\n selectedUsers: ContextValue<UserListContextsType<User>['List']>['selectedUsers'],\n setSelectedUsers: ContextValue<UserListContextsType<User>['List']>['setSelectedUsers'],\n ) => React.ReactElement | null;\n /** Load next user list **/\n onLoadNext: () => Promise<void>;\n /** Refresh user list **/\n onRefresh?: () => Promise<void>;\n /** Refreshing state **/\n refreshing?: boolean;\n /** List empty component **/\n ListEmptyComponent?: React.ReactElement;\n };\n /** Props for `UserListModule.Provider` **/\n Provider: {\n headerTitle: string;\n headerRight: (selectedUsers: Array<User>) => string;\n };\n}\n\n/**\n * Internal context for UserList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface UserListContextsType<User> {\n Fragment: React.Context<{\n headerTitle: string;\n headerRight: string;\n }>;\n List: React.Context<{\n selectedUsers: User[];\n setSelectedUsers: React.Dispatch<React.SetStateAction<User[]>>;\n }>;\n}\n\nexport interface UserListModule<User> {\n Provider: CommonComponent<UserListProps<User>['Provider']>;\n Header: CommonComponent<UserListProps<User>['Header']>;\n List: CommonComponent<UserListProps<User>['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<{ onPressRetry: () => void }>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { ContextValue } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface UserListProps<User> {\n /** Props for `UserListModule.Header` **/\n Header: {\n right?: React.ReactElement;\n left?: React.ReactElement;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (selectedUsers: User[]) => Promise<void>;\n shouldActivateHeaderRight?: (selectedUsers: User[]) => boolean;\n };\n /** Props for `UserListModule.List` **/\n List: {\n /** User list from SendbirdChat SDK or Custom query {@link Fragment.queryCreator} **/\n users: User[];\n /** Render user component **/\n renderUser: (\n user: User,\n selectedUsers: ContextValue<UserListContextsType<User>['List']>['selectedUsers'],\n setSelectedUsers: ContextValue<UserListContextsType<User>['List']>['setSelectedUsers'],\n ) => React.ReactElement | null;\n /** Load next user list **/\n onLoadNext: () => Promise<void>;\n /** Refresh user list **/\n onRefresh?: () => Promise<void>;\n /** Refreshing state **/\n refreshing?: boolean;\n /** List empty component **/\n ListEmptyComponent?: React.ReactElement;\n };\n /** Props for `UserListModule.Provider` **/\n Provider: {\n headerTitle: string;\n headerRight: (selectedUsers: Array<User>) => string;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n}\n\n/**\n * Internal context for UserList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface UserListContextsType<User> {\n Fragment: React.Context<{\n headerTitle: string;\n headerRight: string;\n }>;\n List: React.Context<{\n selectedUsers: User[];\n setSelectedUsers: React.Dispatch<React.SetStateAction<User[]>>;\n }>;\n}\n\nexport interface UserListModule<User> {\n Provider: CommonComponent<UserListProps<User>['Provider']>;\n Header: CommonComponent<UserListProps<User>['Header']>;\n List: CommonComponent<UserListProps<User>['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<UserListProps<User>['StatusError']>;\n}\n"],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import React from 'react';
2
+ import { useUserList } from '@sendbird/uikit-chat-hooks';
3
+ import { useActionMenu } from '@sendbird/uikit-react-native-foundation';
4
+ import { NOOP, useFreshCallback } from '@sendbird/uikit-utils';
5
+ import StatusComposition from '../components/StatusComposition';
6
+ import UserActionBar from '../components/UserActionBar';
7
+ import { createGroupChannelBannedUsersModule } from '../domain/groupChannelBannedUsers';
8
+ import { useLocalization, useSendbirdChat } from '../hooks/useContext';
9
+
10
+ const createGroupChannelBannedUsersFragment = initModule => {
11
+ const GroupChannelBannedUsersModule = createGroupChannelBannedUsersModule(initModule);
12
+ return _ref => {
13
+ let {
14
+ onPressHeaderLeft = NOOP,
15
+ channel,
16
+ renderUser
17
+ } = _ref;
18
+ const {
19
+ STRINGS
20
+ } = useLocalization();
21
+ const {
22
+ currentUser,
23
+ sdk
24
+ } = useSendbirdChat();
25
+ const {
26
+ openMenu
27
+ } = useActionMenu();
28
+ const {
29
+ users,
30
+ deleteUser,
31
+ loading,
32
+ next,
33
+ refresh,
34
+ error
35
+ } = useUserList(sdk, {
36
+ queryCreator: () => channel.createBannedUserListQuery({
37
+ limit: 20
38
+ })
39
+ });
40
+
41
+ const _renderUser = useFreshCallback(props => {
42
+ if (renderUser) return renderUser(props);
43
+ const {
44
+ user
45
+ } = props;
46
+ return /*#__PURE__*/React.createElement(UserActionBar, {
47
+ muted: false,
48
+ uri: user.profileUrl,
49
+ name: (user.nickname || STRINGS.LABELS.USER_NO_NAME) + (user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? STRINGS.LABELS.USER_BAR_ME_POSTFIX : ''),
50
+ disabled: user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId),
51
+ onPressActionMenu: () => {
52
+ openMenu({
53
+ title: user.nickname || STRINGS.LABELS.USER_NO_NAME,
54
+ menuItems: [{
55
+ title: STRINGS.LABELS.UNBAN,
56
+ onPress: () => channel.unbanUser(user).then(() => deleteUser(user.userId))
57
+ }]
58
+ });
59
+ }
60
+ });
61
+ });
62
+
63
+ return /*#__PURE__*/React.createElement(GroupChannelBannedUsersModule.Provider, {
64
+ channel: channel
65
+ }, /*#__PURE__*/React.createElement(GroupChannelBannedUsersModule.Header, {
66
+ onPressHeaderLeft: onPressHeaderLeft
67
+ }), /*#__PURE__*/React.createElement(StatusComposition, {
68
+ loading: loading,
69
+ LoadingComponent: /*#__PURE__*/React.createElement(GroupChannelBannedUsersModule.StatusLoading, null),
70
+ error: Boolean(error),
71
+ ErrorComponent: /*#__PURE__*/React.createElement(GroupChannelBannedUsersModule.StatusError, {
72
+ onPressRetry: refresh
73
+ })
74
+ }, /*#__PURE__*/React.createElement(GroupChannelBannedUsersModule.List, {
75
+ bannedUsers: users,
76
+ renderUser: _renderUser,
77
+ ListEmptyComponent: /*#__PURE__*/React.createElement(GroupChannelBannedUsersModule.StatusEmpty, null),
78
+ onLoadNext: next
79
+ })));
80
+ };
81
+ };
82
+
83
+ export default createGroupChannelBannedUsersFragment;
84
+ //# sourceMappingURL=createGroupChannelBannedUsersFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useUserList","useActionMenu","NOOP","useFreshCallback","StatusComposition","UserActionBar","createGroupChannelBannedUsersModule","useLocalization","useSendbirdChat","createGroupChannelBannedUsersFragment","initModule","GroupChannelBannedUsersModule","onPressHeaderLeft","channel","renderUser","STRINGS","currentUser","sdk","openMenu","users","deleteUser","loading","next","refresh","error","queryCreator","createBannedUserListQuery","limit","_renderUser","props","user","profileUrl","nickname","LABELS","USER_NO_NAME","userId","USER_BAR_ME_POSTFIX","title","menuItems","UNBAN","onPress","unbanUser","then","Boolean"],"sources":["createGroupChannelBannedUsersFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport { useActionMenu } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserActionBar from '../components/UserActionBar';\nimport { createGroupChannelBannedUsersModule } from '../domain/groupChannelBannedUsers';\nimport type {\n GroupChannelBannedUsersFragment,\n GroupChannelBannedUsersModule,\n} from '../domain/groupChannelBannedUsers/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelBannedUsersFragment = (\n initModule?: Partial<GroupChannelBannedUsersModule>,\n): GroupChannelBannedUsersFragment => {\n const GroupChannelBannedUsersModule = createGroupChannelBannedUsersModule(initModule);\n\n return ({ onPressHeaderLeft = NOOP, channel, renderUser }) => {\n const { STRINGS } = useLocalization();\n const { currentUser, sdk } = useSendbirdChat();\n const { openMenu } = useActionMenu();\n\n const { users, deleteUser, loading, next, refresh, error } = useUserList(sdk, {\n queryCreator: () => channel.createBannedUserListQuery({ limit: 20 }),\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((props) => {\n if (renderUser) return renderUser(props);\n\n const { user } = props;\n\n return (\n <UserActionBar\n muted={false}\n uri={user.profileUrl}\n name={\n (user.nickname || STRINGS.LABELS.USER_NO_NAME) +\n (user.userId === currentUser?.userId ? STRINGS.LABELS.USER_BAR_ME_POSTFIX : '')\n }\n disabled={user.userId === currentUser?.userId}\n onPressActionMenu={() => {\n openMenu({\n title: user.nickname || STRINGS.LABELS.USER_NO_NAME,\n menuItems: [\n {\n title: STRINGS.LABELS.UNBAN,\n onPress: () => channel.unbanUser(user).then(() => deleteUser(user.userId)),\n },\n ],\n });\n }}\n />\n );\n });\n\n return (\n <GroupChannelBannedUsersModule.Provider channel={channel}>\n <GroupChannelBannedUsersModule.Header onPressHeaderLeft={onPressHeaderLeft} />\n <StatusComposition\n loading={loading}\n LoadingComponent={<GroupChannelBannedUsersModule.StatusLoading />}\n error={Boolean(error)}\n ErrorComponent={<GroupChannelBannedUsersModule.StatusError onPressRetry={refresh} />}\n >\n <GroupChannelBannedUsersModule.List\n bannedUsers={users}\n renderUser={_renderUser}\n ListEmptyComponent={<GroupChannelBannedUsersModule.StatusEmpty />}\n onLoadNext={next}\n />\n </StatusComposition>\n </GroupChannelBannedUsersModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelBannedUsersFragment;\n"],"mappings":"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"}
@@ -1,30 +1,16 @@
1
1
  import React from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import { useUserList } from '@sendbird/uikit-chat-hooks';
4
- import { Logger, PASS, useFreshCallback } from '@sendbird/uikit-utils';
4
+ import { PASS, useFreshCallback } from '@sendbird/uikit-utils';
5
5
  import StatusComposition from '../components/StatusComposition';
6
6
  import UserSelectableBar from '../components/UserSelectableBar';
7
7
  import createUserListModule from '../domain/userList/module/createUserListModule';
8
8
  import { useLocalization, useSendbirdChat } from '../hooks/useContext';
9
9
 
10
- const defaultUserIdsGenerator = users => {
11
- const userIds = users.map(user => {
12
- // @ts-ignore
13
- return user.userId;
14
- }).filter(u => Boolean(u));
15
-
16
- if (userIds.length === 0) {
17
- Logger.warn('GroupChannelCreateFragment: Couldn\'t find user ids! if you provide "queryCreator", please provide "userIdsGenerator" as well');
18
- }
19
-
20
- return userIds;
21
- };
22
-
23
10
  const createGroupChannelCreateFragment = initModule => {
24
11
  const UserListModule = createUserListModule(initModule);
25
12
  return _ref => {
26
13
  let {
27
- userIdsGenerator = defaultUserIdsGenerator,
28
14
  onPressHeaderLeft,
29
15
  onBeforeCreateChannel = PASS,
30
16
  onCreateChannel,
@@ -54,29 +40,27 @@ const createGroupChannelCreateFragment = initModule => {
54
40
 
55
41
  const _renderUser = useFreshCallback((user, selectedUsers, setSelectedUsers) => {
56
42
  if (queryCreator && !renderUser) {
57
- throw new Error('You should provide "renderUser" when providing "queryCreator"');
43
+ const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
44
+ if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
58
45
  }
59
46
 
60
47
  if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
61
- const sbUser = user;
62
- const sbSelectedUsers = selectedUsers;
63
- const sbSetSelectedUsers = setSelectedUsers;
64
- const isMe = sbUser.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
48
+ const isMe = user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
65
49
  if (isMe) return null;
66
- const userIdx = sbSelectedUsers.findIndex(u => u.userId === sbUser.userId);
50
+ const userIdx = selectedUsers.findIndex(u => u.userId === user.userId);
67
51
  const isSelected = userIdx > -1;
68
52
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
69
53
  activeOpacity: 0.7,
70
54
  onPress: () => {
71
- sbSetSelectedUsers(_ref2 => {
55
+ setSelectedUsers(_ref2 => {
72
56
  let [...draft] = _ref2;
73
- if (isSelected) draft.splice(userIdx, 1);else draft.push(sbUser);
57
+ if (isSelected) draft.splice(userIdx, 1);else draft.push(user);
74
58
  return draft;
75
59
  });
76
60
  }
77
61
  }, /*#__PURE__*/React.createElement(UserSelectableBar, {
78
- uri: sbUser.profileUrl,
79
- name: sbUser.nickname || STRINGS.LABELS.USER_NO_NAME,
62
+ uri: user.profileUrl,
63
+ name: user.nickname || STRINGS.LABELS.USER_NO_NAME,
80
64
  selected: isSelected,
81
65
  disabled: false
82
66
  }));
@@ -91,7 +75,7 @@ const createGroupChannelCreateFragment = initModule => {
91
75
  onPressHeaderLeft: onPressHeaderLeft,
92
76
  onPressHeaderRight: async users => {
93
77
  const params = {
94
- invitedUserIds: userIdsGenerator(users),
78
+ invitedUserIds: users.map(it => it.userId),
95
79
  name: '',
96
80
  coverUrl: '',
97
81
  isDistinct: false
@@ -1 +1 @@
1
- {"version":3,"names":["React","TouchableOpacity","useUserList","Logger","PASS","useFreshCallback","StatusComposition","UserSelectableBar","createUserListModule","useLocalization","useSendbirdChat","defaultUserIdsGenerator","users","userIds","map","user","userId","filter","u","Boolean","length","warn","createGroupChannelCreateFragment","initModule","UserListModule","userIdsGenerator","onPressHeaderLeft","onBeforeCreateChannel","onCreateChannel","sortComparator","queryCreator","channelType","renderUser","sdk","currentUser","STRINGS","refreshing","loading","error","refresh","next","_renderUser","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":["React","TouchableOpacity","useUserList","PASS","useFreshCallback","StatusComposition","UserSelectableBar","createUserListModule","useLocalization","useSendbirdChat","createGroupChannelCreateFragment","initModule","UserListModule","onPressHeaderLeft","onBeforeCreateChannel","onCreateChannel","sortComparator","queryCreator","channelType","renderUser","sdk","currentUser","STRINGS","users","refreshing","loading","error","refresh","next","_renderUser","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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"}
@@ -36,7 +36,6 @@ const createGroupChannelFragment = initModule => {
36
36
  currentUser
37
37
  } = useSendbirdChat();
38
38
  const {
39
- activeChannel,
40
39
  messages,
41
40
  nextMessages,
42
41
  newMessagesFromMembers,
@@ -94,7 +93,7 @@ const createGroupChannelFragment = initModule => {
94
93
  await updateUserMessage(message.messageId, processedParams);
95
94
  });
96
95
  return /*#__PURE__*/React.createElement(GroupChannelModule.Provider, {
97
- channel: activeChannel,
96
+ channel: channel,
98
97
  enableTypingIndicator: enableTypingIndicator,
99
98
  keyboardAvoidOffset: keyboardAvoidOffset
100
99
  }, /*#__PURE__*/React.createElement(GroupChannelModule.Header, {
@@ -104,9 +103,9 @@ const createGroupChannelFragment = initModule => {
104
103
  loading: loading,
105
104
  LoadingComponent: /*#__PURE__*/React.createElement(GroupChannelModule.StatusLoading, null)
106
105
  }, /*#__PURE__*/React.createElement(GroupChannelModule.MessageList, {
106
+ channel: channel,
107
107
  enableMessageGrouping: enableMessageGrouping,
108
108
  currentUserId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
109
- channel: activeChannel,
110
109
  renderMessage: _renderMessage,
111
110
  messages: messages,
112
111
  nextMessages: nextMessages,
@@ -121,7 +120,7 @@ const createGroupChannelFragment = initModule => {
121
120
  onPressMediaMessage: onPressMediaMessage,
122
121
  flatListProps: memoizedFlatListProps
123
122
  }), /*#__PURE__*/React.createElement(GroupChannelModule.Input, {
124
- channel: activeChannel,
123
+ shouldRenderInput: shouldRenderInput(channel),
125
124
  onSendFileMessage: onSendFileMessage,
126
125
  onSendUserMessage: onSendUserMessage,
127
126
  onUpdateFileMessage: onUpdateFileMessage,
@@ -130,5 +129,13 @@ const createGroupChannelFragment = initModule => {
130
129
  };
131
130
  };
132
131
 
132
+ function shouldRenderInput(channel) {
133
+ if (channel.isBroadcast) {
134
+ return channel.myRole === 'operator';
135
+ }
136
+
137
+ return true;
138
+ }
139
+
133
140
  export default createGroupChannelFragment;
134
141
  //# sourceMappingURL=createGroupChannelFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useGroupChannelMessages","NOOP","PASS","messageComparator","useFreshCallback","MessageRenderer","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useSendbirdChat","createGroupChannelFragment","initModule","GroupChannelModule","renderNewMessagesButton","props","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressImageMessage","onPressMediaMessage","onChannelDeleted","onBeforeSendFileMessage","onBeforeSendUserMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","flatListProps","sdk","currentUser","activeChannel","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","userId","enableCollectionWithoutLocalCache","_renderMessage","memoizedFlatListProps","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":["React","useMemo","useGroupChannelMessages","NOOP","PASS","messageComparator","useFreshCallback","MessageRenderer","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useSendbirdChat","createGroupChannelFragment","initModule","GroupChannelModule","renderNewMessagesButton","props","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressImageMessage","onPressMediaMessage","onChannelDeleted","onBeforeSendFileMessage","onBeforeSendUserMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","flatListProps","sdk","currentUser","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","userId","enableCollectionWithoutLocalCache","_renderMessage","memoizedFlatListProps","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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"}
@@ -1,25 +1,11 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
- import { useActiveGroupChannel, useUserList } from '@sendbird/uikit-chat-hooks';
4
- import { Logger } from '@sendbird/uikit-utils';
3
+ import { useUserList } from '@sendbird/uikit-chat-hooks';
5
4
  import StatusComposition from '../components/StatusComposition';
6
5
  import UserSelectableBar from '../components/UserSelectableBar';
7
6
  import createUserListModule from '../domain/userList/module/createUserListModule';
8
7
  import { useLocalization, useSendbirdChat } from '../hooks/useContext';
9
8
 
10
- const defaultUserIdsGenerator = users => {
11
- const userIds = users.map(user => {
12
- // @ts-ignore
13
- return user.userId;
14
- }).filter(u => Boolean(u));
15
-
16
- if (userIds.length === 0) {
17
- Logger.warn('GroupChannelInviteFragment: Couldn\'t find user id to invite! if you provided "queryCreator", please provide "userIdsGenerator" as well');
18
- }
19
-
20
- return userIds;
21
- };
22
-
23
9
  const createGroupChannelInviteFragment = initModule => {
24
10
  const UserListModule = createUserListModule(initModule);
25
11
  return _ref => {
@@ -27,7 +13,6 @@ const createGroupChannelInviteFragment = initModule => {
27
13
  channel,
28
14
  onPressHeaderLeft,
29
15
  onInviteMembers,
30
- userIdsGenerator = defaultUserIdsGenerator,
31
16
  sortComparator,
32
17
  queryCreator,
33
18
  renderUser
@@ -49,40 +34,36 @@ const createGroupChannelInviteFragment = initModule => {
49
34
  queryCreator,
50
35
  sortComparator
51
36
  });
52
- const {
53
- activeChannel
54
- } = useActiveGroupChannel(sdk, channel);
37
+ const memberIds = shouldFilterMember(channel) ? channel.members.map(it => it.userId) : [];
55
38
 
56
39
  const _renderUser = useCallback((user, selectedUsers, setSelectedUsers) => {
57
40
  if (queryCreator && !renderUser) {
58
- throw new Error('You should provide "renderUser" when providing "queryCreator"');
41
+ const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
42
+ if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
59
43
  }
60
44
 
61
45
  if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
62
- const sbUser = user;
63
- const sbSelectedUsers = selectedUsers;
64
- const sbSetSelectedUsers = setSelectedUsers;
65
- const joinedUserIds = activeChannel.members.map(u => u.userId);
66
- const userIdx = sbSelectedUsers.findIndex(u => u.userId === sbUser.userId);
67
- const isSelected = userIdx > -1;
68
- const isAlreadyJoined = joinedUserIds.includes(sbUser.userId);
46
+ const userIdxInMembers = memberIds.indexOf(user.userId);
47
+ const userIdxInSelectedUsers = selectedUsers.findIndex(it => it.userId === user.userId);
48
+ const isMember = userIdxInMembers > -1;
49
+ const isSelected = userIdxInSelectedUsers > -1;
69
50
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
70
51
  activeOpacity: 0.7,
71
- disabled: isAlreadyJoined,
52
+ disabled: isMember,
72
53
  onPress: () => {
73
- sbSetSelectedUsers(_ref2 => {
54
+ setSelectedUsers(_ref2 => {
74
55
  let [...draft] = _ref2;
75
- if (isSelected) draft.splice(userIdx, 1);else draft.push(sbUser);
56
+ if (isSelected) draft.splice(userIdxInSelectedUsers, 1);else draft.push(user);
76
57
  return draft;
77
58
  });
78
59
  }
79
60
  }, /*#__PURE__*/React.createElement(UserSelectableBar, {
80
- uri: sbUser.profileUrl,
81
- name: sbUser.nickname || STRINGS.LABELS.USER_NO_NAME,
82
- selected: isAlreadyJoined || isSelected,
83
- disabled: isAlreadyJoined
61
+ uri: user.profileUrl,
62
+ name: user.nickname || STRINGS.LABELS.USER_NO_NAME,
63
+ selected: isMember || isSelected,
64
+ disabled: isMember
84
65
  }));
85
- }, [activeChannel, renderUser, queryCreator]);
66
+ }, [channel, renderUser, queryCreator]);
86
67
 
87
68
  return /*#__PURE__*/React.createElement(UserListModule.Provider, {
88
69
  headerRight: selectedUsers => STRINGS.GROUP_CHANNEL_INVITE.HEADER_RIGHT({
@@ -92,8 +73,8 @@ const createGroupChannelInviteFragment = initModule => {
92
73
  }, /*#__PURE__*/React.createElement(UserListModule.Header, {
93
74
  onPressHeaderLeft: onPressHeaderLeft,
94
75
  onPressHeaderRight: async users => {
95
- const userIds = userIdsGenerator(users);
96
- const updatedChannel = await activeChannel.inviteWithUserIds(userIds);
76
+ const userIds = users.map(it => it.userId);
77
+ const updatedChannel = await channel.inviteWithUserIds(userIds);
97
78
  onInviteMembers(updatedChannel);
98
79
  }
99
80
  }), /*#__PURE__*/React.createElement(StatusComposition, {
@@ -114,5 +95,9 @@ const createGroupChannelInviteFragment = initModule => {
114
95
  };
115
96
  };
116
97
 
98
+ function shouldFilterMember(channel) {
99
+ return !channel.isSuper && !channel.isBroadcast;
100
+ }
101
+
117
102
  export default createGroupChannelInviteFragment;
118
103
  //# sourceMappingURL=createGroupChannelInviteFragment.js.map