@sendbird/uikit-react-native 2.0.2 → 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 (399) hide show
  1. package/lib/commonjs/components/ChannelCover.js +22 -1
  2. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  3. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +1 -1
  4. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  5. package/lib/commonjs/components/MessageRenderer/index.js +1 -1
  6. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
  7. package/lib/commonjs/components/TypedPlaceholder.js +2 -2
  8. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  9. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +4 -18
  10. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  11. package/lib/commonjs/containers/SendbirdUIKitContainer.js +8 -7
  12. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  13. package/lib/commonjs/contexts/SendbirdChatCtx.js +4 -2
  14. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  15. package/lib/commonjs/contexts/{ProfileCardCtx.js → UserProfileCtx.js} +16 -19
  16. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -0
  17. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +3 -1
  18. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  19. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +4 -2
  20. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  21. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +15 -10
  22. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  23. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  24. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +39 -0
  25. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
  26. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +53 -0
  27. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
  28. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +34 -0
  29. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
  30. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +38 -0
  31. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
  32. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +34 -0
  33. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
  34. package/lib/commonjs/domain/groupChannelBannedUsers/index.js +62 -0
  35. package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -0
  36. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +45 -0
  37. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
  38. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +45 -0
  39. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
  40. package/lib/commonjs/domain/groupChannelBannedUsers/types.js +6 -0
  41. package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -0
  42. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +32 -30
  43. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  44. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  45. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +39 -0
  46. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
  47. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +103 -0
  48. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
  49. package/lib/commonjs/domain/groupChannelModeration/index.js +46 -0
  50. package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -0
  51. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +33 -0
  52. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
  53. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +46 -0
  54. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
  55. package/lib/commonjs/domain/groupChannelModeration/types.js +6 -0
  56. package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -0
  57. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +39 -0
  58. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
  59. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +51 -0
  60. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
  61. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +34 -0
  62. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
  63. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +38 -0
  64. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
  65. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +34 -0
  66. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
  67. package/lib/commonjs/domain/groupChannelMutedMembers/index.js +70 -0
  68. package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -0
  69. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +45 -0
  70. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
  71. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +45 -0
  72. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
  73. package/lib/commonjs/domain/groupChannelMutedMembers/types.js +6 -0
  74. package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -0
  75. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +44 -0
  76. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
  77. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +51 -0
  78. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
  79. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +34 -0
  80. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
  81. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +38 -0
  82. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
  83. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +34 -0
  84. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
  85. package/lib/commonjs/domain/groupChannelOperators/index.js +70 -0
  86. package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -0
  87. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +45 -0
  88. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
  89. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +45 -0
  90. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
  91. package/lib/commonjs/domain/groupChannelOperators/types.js +6 -0
  92. package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -0
  93. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -8
  94. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  95. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -0
  96. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  97. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  98. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  99. package/lib/commonjs/domain/userList/component/UserListStatusError.js +2 -2
  100. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
  101. package/lib/commonjs/domain/userList/types.js.map +1 -1
  102. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +101 -0
  103. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
  104. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +9 -25
  105. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  106. package/lib/commonjs/fragments/createGroupChannelFragment.js +4 -5
  107. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  108. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +21 -37
  109. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  110. package/lib/commonjs/fragments/createGroupChannelListFragment.js +2 -9
  111. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  112. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +93 -49
  113. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  114. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +68 -0
  115. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -0
  116. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +116 -0
  117. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
  118. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +129 -0
  119. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
  120. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +114 -0
  121. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
  122. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -0
  123. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  124. package/lib/commonjs/hooks/useConnection.js +4 -0
  125. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  126. package/lib/commonjs/hooks/useContext.js +7 -7
  127. package/lib/commonjs/hooks/useContext.js.map +1 -1
  128. package/lib/commonjs/index.js +67 -22
  129. package/lib/commonjs/index.js.map +1 -1
  130. package/lib/commonjs/localization/StringSet.type.js +54 -11
  131. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  132. package/lib/commonjs/version.js +1 -1
  133. package/lib/commonjs/version.js.map +1 -1
  134. package/lib/module/components/ChannelCover.js +22 -2
  135. package/lib/module/components/ChannelCover.js.map +1 -1
  136. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +2 -2
  137. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  138. package/lib/module/components/MessageRenderer/index.js +1 -1
  139. package/lib/module/components/MessageRenderer/index.js.map +1 -1
  140. package/lib/module/components/TypedPlaceholder.js +2 -2
  141. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  142. package/lib/module/containers/GroupChannelPreviewContainer.js +4 -18
  143. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  144. package/lib/module/containers/SendbirdUIKitContainer.js +7 -6
  145. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  146. package/lib/module/contexts/SendbirdChatCtx.js +4 -2
  147. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  148. package/lib/module/contexts/{ProfileCardCtx.js → UserProfileCtx.js} +14 -17
  149. package/lib/module/contexts/UserProfileCtx.js.map +1 -0
  150. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +3 -1
  151. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  152. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +4 -2
  153. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  154. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +16 -11
  155. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  156. package/lib/module/domain/groupChannel/types.js.map +1 -1
  157. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +25 -0
  158. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
  159. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +40 -0
  160. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
  161. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +21 -0
  162. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
  163. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +25 -0
  164. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
  165. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +21 -0
  166. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
  167. package/lib/module/domain/groupChannelBannedUsers/index.js +7 -0
  168. package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -0
  169. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +30 -0
  170. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
  171. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +25 -0
  172. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
  173. package/lib/module/domain/groupChannelBannedUsers/types.js +2 -0
  174. package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -0
  175. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +34 -33
  176. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  177. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  178. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +25 -0
  179. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
  180. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +87 -0
  181. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
  182. package/lib/module/domain/groupChannelModeration/index.js +5 -0
  183. package/lib/module/domain/groupChannelModeration/index.js.map +1 -0
  184. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +21 -0
  185. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
  186. package/lib/module/domain/groupChannelModeration/module/moduleContext.js +26 -0
  187. package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
  188. package/lib/module/domain/groupChannelModeration/types.js +2 -0
  189. package/lib/module/domain/groupChannelModeration/types.js.map +1 -0
  190. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +25 -0
  191. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
  192. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +38 -0
  193. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
  194. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +21 -0
  195. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
  196. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +25 -0
  197. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
  198. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +21 -0
  199. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
  200. package/lib/module/domain/groupChannelMutedMembers/index.js +8 -0
  201. package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -0
  202. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +30 -0
  203. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
  204. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +25 -0
  205. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
  206. package/lib/module/domain/groupChannelMutedMembers/types.js +2 -0
  207. package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -0
  208. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +30 -0
  209. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
  210. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +38 -0
  211. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
  212. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +21 -0
  213. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
  214. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +25 -0
  215. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
  216. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +21 -0
  217. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
  218. package/lib/module/domain/groupChannelOperators/index.js +8 -0
  219. package/lib/module/domain/groupChannelOperators/index.js.map +1 -0
  220. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +30 -0
  221. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
  222. package/lib/module/domain/groupChannelOperators/module/moduleContext.js +25 -0
  223. package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
  224. package/lib/module/domain/groupChannelOperators/types.js +2 -0
  225. package/lib/module/domain/groupChannelOperators/types.js.map +1 -0
  226. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +2 -8
  227. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  228. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -0
  229. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  230. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  231. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  232. package/lib/module/domain/userList/component/UserListStatusError.js +2 -2
  233. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
  234. package/lib/module/domain/userList/types.js.map +1 -1
  235. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +84 -0
  236. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
  237. package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -26
  238. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  239. package/lib/module/fragments/createGroupChannelFragment.js +4 -5
  240. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  241. package/lib/module/fragments/createGroupChannelInviteFragment.js +22 -37
  242. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  243. package/lib/module/fragments/createGroupChannelListFragment.js +3 -9
  244. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  245. package/lib/module/fragments/createGroupChannelMembersFragment.js +92 -53
  246. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  247. package/lib/module/fragments/createGroupChannelModerationFragment.js +53 -0
  248. package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -0
  249. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +98 -0
  250. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
  251. package/lib/module/fragments/createGroupChannelOperatorsFragment.js +111 -0
  252. package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
  253. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +94 -0
  254. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
  255. package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -0
  256. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  257. package/lib/module/hooks/useConnection.js +4 -0
  258. package/lib/module/hooks/useConnection.js.map +1 -1
  259. package/lib/module/hooks/useContext.js +4 -4
  260. package/lib/module/hooks/useContext.js.map +1 -1
  261. package/lib/module/index.js +7 -2
  262. package/lib/module/index.js.map +1 -1
  263. package/lib/module/localization/StringSet.type.js +54 -11
  264. package/lib/module/localization/StringSet.type.js.map +1 -1
  265. package/lib/module/version.js +1 -1
  266. package/lib/module/version.js.map +1 -1
  267. package/lib/typescript/src/components/ChannelCover.d.ts +1 -1
  268. package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
  269. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +7 -9
  270. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +8 -4
  271. package/lib/typescript/src/contexts/{ProfileCardCtx.d.ts → UserProfileCtx.d.ts} +3 -3
  272. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +2 -1
  273. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +3 -1
  274. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +1 -1
  275. package/lib/typescript/src/domain/groupChannel/types.d.ts +1 -1
  276. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +3 -0
  277. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +3 -0
  278. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -0
  279. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.d.ts +3 -0
  280. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -0
  281. package/lib/typescript/src/domain/groupChannelBannedUsers/index.d.ts +6 -0
  282. package/lib/typescript/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.d.ts +3 -0
  283. package/lib/typescript/src/domain/groupChannelBannedUsers/module/moduleContext.d.ts +3 -0
  284. package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +47 -0
  285. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -1
  286. package/lib/typescript/src/domain/groupChannelList/types.d.ts +1 -9
  287. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +3 -0
  288. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +3 -0
  289. package/lib/typescript/src/domain/groupChannelModeration/index.d.ts +4 -0
  290. package/lib/typescript/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.d.ts +3 -0
  291. package/lib/typescript/src/domain/groupChannelModeration/module/moduleContext.d.ts +3 -0
  292. package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +43 -0
  293. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +3 -0
  294. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +3 -0
  295. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -0
  296. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.d.ts +3 -0
  297. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -0
  298. package/lib/typescript/src/domain/groupChannelMutedMembers/index.d.ts +7 -0
  299. package/lib/typescript/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.d.ts +3 -0
  300. package/lib/typescript/src/domain/groupChannelMutedMembers/module/moduleContext.d.ts +3 -0
  301. package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +47 -0
  302. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +3 -0
  303. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +3 -0
  304. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -0
  305. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.d.ts +3 -0
  306. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -0
  307. package/lib/typescript/src/domain/groupChannelOperators/index.d.ts +7 -0
  308. package/lib/typescript/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.d.ts +3 -0
  309. package/lib/typescript/src/domain/groupChannelOperators/module/moduleContext.d.ts +3 -0
  310. package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +49 -0
  311. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -1
  312. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  313. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -0
  314. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +18 -12
  315. package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +2 -2
  316. package/lib/typescript/src/domain/userList/types.d.ts +4 -3
  317. package/lib/typescript/src/fragments/createGroupChannelBannedUsersFragment.d.ts +3 -0
  318. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +2 -1
  319. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +2 -1
  320. package/lib/typescript/src/fragments/createGroupChannelModerationFragment.d.ts +3 -0
  321. package/lib/typescript/src/fragments/createGroupChannelMutedMembersFragment.d.ts +3 -0
  322. package/lib/typescript/src/fragments/createGroupChannelOperatorsFragment.d.ts +3 -0
  323. package/lib/typescript/src/fragments/createGroupChannelRegisterOperatorFragment.d.ts +5 -0
  324. package/lib/typescript/src/hooks/useContext.d.ts +2 -1
  325. package/lib/typescript/src/index.d.ts +7 -2
  326. package/lib/typescript/src/localization/StringSet.type.d.ts +41 -6
  327. package/lib/typescript/src/version.d.ts +1 -1
  328. package/package.json +6 -6
  329. package/src/components/ChannelCover.tsx +23 -3
  330. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +2 -2
  331. package/src/components/MessageRenderer/index.tsx +1 -1
  332. package/src/components/TypedPlaceholder.tsx +4 -4
  333. package/src/containers/GroupChannelPreviewContainer.tsx +1 -15
  334. package/src/containers/SendbirdUIKitContainer.tsx +12 -13
  335. package/src/contexts/SendbirdChatCtx.tsx +10 -4
  336. package/src/contexts/{ProfileCardCtx.tsx → UserProfileCtx.tsx} +17 -16
  337. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +3 -1
  338. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +17 -3
  339. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +11 -8
  340. package/src/domain/groupChannel/types.ts +1 -1
  341. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.tsx +14 -0
  342. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +32 -0
  343. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.tsx +18 -0
  344. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.tsx +19 -0
  345. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.tsx +18 -0
  346. package/src/domain/groupChannelBannedUsers/index.ts +6 -0
  347. package/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.tsx +21 -0
  348. package/src/domain/groupChannelBannedUsers/module/moduleContext.tsx +30 -0
  349. package/src/domain/groupChannelBannedUsers/types.ts +50 -0
  350. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +37 -43
  351. package/src/domain/groupChannelList/types.ts +1 -7
  352. package/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.tsx +14 -0
  353. package/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.tsx +84 -0
  354. package/src/domain/groupChannelModeration/index.ts +4 -0
  355. package/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.tsx +15 -0
  356. package/src/domain/groupChannelModeration/module/moduleContext.tsx +33 -0
  357. package/src/domain/groupChannelModeration/types.ts +48 -0
  358. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.tsx +14 -0
  359. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +30 -0
  360. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.tsx +18 -0
  361. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.tsx +19 -0
  362. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.tsx +18 -0
  363. package/src/domain/groupChannelMutedMembers/index.ts +7 -0
  364. package/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.tsx +21 -0
  365. package/src/domain/groupChannelMutedMembers/module/moduleContext.tsx +30 -0
  366. package/src/domain/groupChannelMutedMembers/types.ts +50 -0
  367. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.tsx +25 -0
  368. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +29 -0
  369. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.tsx +18 -0
  370. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.tsx +19 -0
  371. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.tsx +18 -0
  372. package/src/domain/groupChannelOperators/index.ts +7 -0
  373. package/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.tsx +21 -0
  374. package/src/domain/groupChannelOperators/module/moduleContext.tsx +30 -0
  375. package/src/domain/groupChannelOperators/types.ts +52 -0
  376. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +2 -7
  377. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +9 -0
  378. package/src/domain/groupChannelSettings/types.ts +2 -0
  379. package/src/domain/groupChannelUserList/types.ts +27 -12
  380. package/src/domain/userList/component/UserListStatusError.tsx +2 -2
  381. package/src/domain/userList/types.ts +4 -1
  382. package/src/fragments/createGroupChannelBannedUsersFragment.tsx +80 -0
  383. package/src/fragments/createGroupChannelCreateFragment.tsx +13 -33
  384. package/src/fragments/createGroupChannelFragment.tsx +9 -12
  385. package/src/fragments/createGroupChannelInviteFragment.tsx +28 -50
  386. package/src/fragments/createGroupChannelListFragment.tsx +3 -8
  387. package/src/fragments/createGroupChannelMembersFragment.tsx +94 -51
  388. package/src/fragments/createGroupChannelModerationFragment.tsx +57 -0
  389. package/src/fragments/createGroupChannelMutedMembersFragment.tsx +93 -0
  390. package/src/fragments/createGroupChannelOperatorsFragment.tsx +101 -0
  391. package/src/fragments/createGroupChannelRegisterOperatorFragment.tsx +94 -0
  392. package/src/fragments/createGroupChannelSettingsFragment.tsx +9 -1
  393. package/src/hooks/useConnection.ts +2 -0
  394. package/src/hooks/useContext.ts +4 -4
  395. package/src/index.ts +7 -2
  396. package/src/localization/StringSet.type.ts +87 -14
  397. package/src/version.ts +1 -1
  398. package/lib/commonjs/contexts/ProfileCardCtx.js.map +0 -1
  399. package/lib/module/contexts/ProfileCardCtx.js.map +0 -1
@@ -4,7 +4,7 @@ import React, { useContext, useEffect, useRef, useState } from 'react';
4
4
  import { KeyboardAvoidingView, Platform, View } from 'react-native';
5
5
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
6
6
  import { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
7
- import { isGroupChannelChatUnavailable, useIIFE } from '@sendbird/uikit-utils';
7
+ import { getGroupChannelChatAvailableState, useIIFE } from '@sendbird/uikit-utils';
8
8
  import { GroupChannelContexts } from '../../module/moduleContext';
9
9
  import EditInput from './EditInput';
10
10
  import SendInput from './SendInput';
@@ -14,9 +14,6 @@ const KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({
14
14
  });
15
15
 
16
16
  const GroupChannelInput = props => {
17
- const {
18
- channel
19
- } = props;
20
17
  const {
21
18
  left,
22
19
  right,
@@ -26,29 +23,37 @@ const GroupChannelInput = props => {
26
23
  colors
27
24
  } = useUIKitTheme();
28
25
  const {
26
+ channel,
29
27
  editMessage,
30
28
  setEditMessage,
31
29
  keyboardAvoidOffset = 0
32
30
  } = useContext(GroupChannelContexts.Fragment);
33
31
  const [text, setText] = useState('');
34
32
  const textTmpRef = useRef('');
35
- const isChatUnavailable = isGroupChannelChatUnavailable(channel);
33
+ const chatAvailableState = getGroupChannelChatAvailableState(channel);
36
34
  useEffect(() => {
37
35
  if (text.length === 0) channel.endTyping();else channel.startTyping();
38
36
  }, [text]);
39
37
  useEffect(() => {
40
- if (isChatUnavailable) {
38
+ if (chatAvailableState.disabled) {
41
39
  textTmpRef.current = text;
42
40
  setText('');
43
41
  } else {
44
42
  setText(textTmpRef.current);
45
43
  }
46
- }, [isChatUnavailable]);
44
+ }, [chatAvailableState.disabled]);
47
45
  const inputMode = useIIFE(() => {
48
46
  if (!editMessage) return 'send';
49
47
  if (editMessage.isFileMessage()) return 'send';
50
48
  return 'edit';
51
49
  });
50
+
51
+ if (!props.shouldRenderInput) {
52
+ return /*#__PURE__*/React.createElement(SafeAreaBottom, {
53
+ height: bottom
54
+ });
55
+ }
56
+
52
57
  return /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
53
58
  keyboardVerticalOffset: -bottom + keyboardAvoidOffset,
54
59
  behavior: KEYBOARD_AVOID_VIEW_BEHAVIOR
@@ -65,13 +70,13 @@ const GroupChannelInput = props => {
65
70
  }
66
71
  }, inputMode === 'send' && /*#__PURE__*/React.createElement(SendInput, _extends({}, props, {
67
72
  text: text,
68
- setText: setText,
69
- disabled: isChatUnavailable
70
- })), inputMode === 'edit' && editMessage && /*#__PURE__*/React.createElement(EditInput, _extends({}, props, {
73
+ setText: setText
74
+ }, chatAvailableState)), inputMode === 'edit' && editMessage && /*#__PURE__*/React.createElement(EditInput, _extends({}, props, {
71
75
  text: text,
72
76
  setText: setText,
73
77
  editMessage: editMessage,
74
- setEditMessage: setEditMessage
78
+ setEditMessage: setEditMessage,
79
+ disabled: chatAvailableState.disabled
75
80
  }))), /*#__PURE__*/React.createElement(SafeAreaBottom, {
76
81
  height: bottom
77
82
  })));
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useEffect","useRef","useState","KeyboardAvoidingView","Platform","View","useSafeAreaInsets","useUIKitTheme","isGroupChannelChatUnavailable","useIIFE","GroupChannelContexts","EditInput","SendInput","KEYBOARD_AVOID_VIEW_BEHAVIOR","select","ios","default","undefined","GroupChannelInput","props","channel","left","right","bottom","colors","editMessage","setEditMessage","keyboardAvoidOffset","Fragment","text","setText","textTmpRef","isChatUnavailable","length","endTyping","startTyping","current","inputMode","isFileMessage","paddingLeft","paddingRight","backgroundColor","background","justifyContent","width","SafeAreaBottom","height","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { isGroupChannelChatUnavailable, useIIFE } from '@sendbird/uikit-utils';\n\nimport { GroupChannelContexts } from '../../module/moduleContext';\nimport type { GroupChannelProps } from '../../types';\nimport EditInput from './EditInput';\nimport SendInput from './SendInput';\n\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\nconst GroupChannelInput = (props: GroupChannelProps['Input']) => {\n const { channel } = props;\n\n const { left, right, bottom } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n const { editMessage, setEditMessage, keyboardAvoidOffset = 0 } = useContext(GroupChannelContexts.Fragment);\n\n const [text, setText] = useState('');\n const textTmpRef = useRef('');\n const isChatUnavailable = isGroupChannelChatUnavailable(channel);\n\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [text]);\n\n useEffect(() => {\n if (isChatUnavailable) {\n textTmpRef.current = text;\n setText('');\n } else {\n setText(textTmpRef.current);\n }\n }, [isChatUnavailable]);\n\n const inputMode = useIIFE(() => {\n if (!editMessage) return 'send';\n if (editMessage.isFileMessage()) return 'send';\n return 'edit';\n });\n\n return (\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\n <View style={{ justifyContent: 'center', width: '100%' }}>\n {inputMode === 'send' && <SendInput {...props} text={text} setText={setText} disabled={isChatUnavailable} />}\n {inputMode === 'edit' && editMessage && (\n <EditInput\n {...props}\n text={text}\n setText={setText}\n editMessage={editMessage}\n setEditMessage={setEditMessage}\n />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n );\n};\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nexport default React.memo(GroupChannelInput);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useContext","useEffect","useRef","useState","KeyboardAvoidingView","Platform","View","useSafeAreaInsets","useUIKitTheme","getGroupChannelChatAvailableState","useIIFE","GroupChannelContexts","EditInput","SendInput","KEYBOARD_AVOID_VIEW_BEHAVIOR","select","ios","default","undefined","GroupChannelInput","props","left","right","bottom","colors","channel","editMessage","setEditMessage","keyboardAvoidOffset","Fragment","text","setText","textTmpRef","chatAvailableState","length","endTyping","startTyping","disabled","current","inputMode","isFileMessage","shouldRenderInput","paddingLeft","paddingRight","backgroundColor","background","justifyContent","width","SafeAreaBottom","height","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { getGroupChannelChatAvailableState, useIIFE } from '@sendbird/uikit-utils';\n\nimport { GroupChannelContexts } from '../../module/moduleContext';\nimport type { GroupChannelProps } from '../../types';\nimport EditInput from './EditInput';\nimport SendInput from './SendInput';\n\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\nconst GroupChannelInput = (props: GroupChannelProps['Input']) => {\n const { left, right, bottom } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n const { channel, editMessage, setEditMessage, keyboardAvoidOffset = 0 } = useContext(GroupChannelContexts.Fragment);\n\n const [text, setText] = useState('');\n const textTmpRef = useRef('');\n const chatAvailableState = getGroupChannelChatAvailableState(channel);\n\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [text]);\n\n useEffect(() => {\n if (chatAvailableState.disabled) {\n textTmpRef.current = text;\n setText('');\n } else {\n setText(textTmpRef.current);\n }\n }, [chatAvailableState.disabled]);\n\n const inputMode = useIIFE(() => {\n if (!editMessage) return 'send';\n if (editMessage.isFileMessage()) return 'send';\n return 'edit';\n });\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={bottom} />;\n }\n\n return (\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\n <View style={{ justifyContent: 'center', width: '100%' }}>\n {inputMode === 'send' && <SendInput {...props} text={text} setText={setText} {...chatAvailableState} />}\n {inputMode === 'edit' && editMessage && (\n <EditInput\n {...props}\n text={text}\n setText={setText}\n editMessage={editMessage}\n setEditMessage={setEditMessage}\n disabled={chatAvailableState.disabled}\n />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n );\n};\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nexport default React.memo(GroupChannelInput);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUser,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../../platform/types';\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];\n\n onBeforeSendFileMessage?: (\n params: SendbirdFileMessageCreateParams,\n ) => SendbirdFileMessageCreateParams | Promise<SendbirdFileMessageCreateParams>;\n onBeforeSendUserMessage?: (\n params: SendbirdUserMessageCreateParams,\n ) => SendbirdUserMessageCreateParams | Promise<SendbirdUserMessageCreateParams>;\n onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];\n\n renderMessage?: GroupChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: GroupChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: GroupChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableTypingIndicator?: GroupChannelProps['Provider']['enableTypingIndicator'];\n enableMessageGrouping?: GroupChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: GroupChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: GroupChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];\n collectionCreator?: UseGroupChannelMessagesOptions['collectionCreator'];\n queryCreator?: UseGroupChannelMessagesOptions['queryCreator'];\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: GroupChannelProps['MessageList']['onPressImageMessage'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n MessageList: {\n enableMessageGrouping: boolean;\n currentUserId?: string;\n channel: SendbirdGroupChannel;\n messages: SendbirdMessage[];\n nextMessages: SendbirdMessage[];\n newMessagesFromMembers: SendbirdMessage[];\n onTopReached: () => void;\n onBottomReached: () => void;\n\n onResendFailedMessage: (failedMessage: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onDeleteMessage: (message: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;\n\n renderMessage: (props: {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n channel: GroupChannelProps['MessageList']['channel'];\n currentUserId?: GroupChannelProps['MessageList']['currentUserId'];\n enableMessageGrouping: GroupChannelProps['MessageList']['enableMessageGrouping'];\n }) => React.ReactElement | null;\n renderNewMessagesButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n newMessages: SendbirdMessage[];\n }>;\n renderScrollToBottomButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n }>;\n flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: (message: SendbirdFileMessage, uri: string) => void;\n };\n Input: {\n channel: SendbirdGroupChannel;\n onSendFileMessage: (file: FileType) => Promise<void>;\n onSendUserMessage: (text: string) => Promise<void>;\n onUpdateFileMessage: (editedFile: FileType, message: SendbirdFileMessage) => Promise<void>;\n onUpdateUserMessage: (editedText: string, message: SendbirdUserMessage) => Promise<void>;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n enableTypingIndicator: boolean;\n keyboardAvoidOffset?: number;\n };\n}\n\n/**\n * Internal context for GroupChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n editMessage?: SendbirdUserMessage | SendbirdFileMessage;\n setEditMessage: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n keyboardAvoidOffset?: number;\n }>;\n TypingIndicator: React.Context<{\n typingUsers: SendbirdUser[];\n }>;\n}\nexport interface GroupChannelModule {\n Provider: CommonComponent<GroupChannelProps['Provider']>;\n Header: CommonComponent<GroupChannelProps['Header']>;\n MessageList: CommonComponent<GroupChannelProps['MessageList']>;\n Input: CommonComponent<GroupChannelProps['Input']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelFragment = CommonComponent<GroupChannelProps['Fragment']>;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUser,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../../platform/types';\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];\n\n onBeforeSendFileMessage?: (\n params: SendbirdFileMessageCreateParams,\n ) => SendbirdFileMessageCreateParams | Promise<SendbirdFileMessageCreateParams>;\n onBeforeSendUserMessage?: (\n params: SendbirdUserMessageCreateParams,\n ) => SendbirdUserMessageCreateParams | Promise<SendbirdUserMessageCreateParams>;\n onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];\n\n renderMessage?: GroupChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: GroupChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: GroupChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableTypingIndicator?: GroupChannelProps['Provider']['enableTypingIndicator'];\n enableMessageGrouping?: GroupChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: GroupChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: GroupChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];\n collectionCreator?: UseGroupChannelMessagesOptions['collectionCreator'];\n queryCreator?: UseGroupChannelMessagesOptions['queryCreator'];\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: GroupChannelProps['MessageList']['onPressImageMessage'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n MessageList: {\n enableMessageGrouping: boolean;\n currentUserId?: string;\n channel: SendbirdGroupChannel;\n messages: SendbirdMessage[];\n nextMessages: SendbirdMessage[];\n newMessagesFromMembers: SendbirdMessage[];\n onTopReached: () => void;\n onBottomReached: () => void;\n\n onResendFailedMessage: (failedMessage: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onDeleteMessage: (message: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;\n onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;\n\n renderMessage: (props: {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n channel: GroupChannelProps['MessageList']['channel'];\n currentUserId?: GroupChannelProps['MessageList']['currentUserId'];\n enableMessageGrouping: GroupChannelProps['MessageList']['enableMessageGrouping'];\n }) => React.ReactElement | null;\n renderNewMessagesButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n newMessages: SendbirdMessage[];\n }>;\n renderScrollToBottomButton: null | CommonComponent<{\n visible: boolean;\n onPress: () => void;\n }>;\n flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;\n\n /** @deprecated `onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead **/\n onPressImageMessage?: (message: SendbirdFileMessage, uri: string) => void;\n };\n Input: {\n shouldRenderInput: boolean;\n onSendFileMessage: (file: FileType) => Promise<void>;\n onSendUserMessage: (text: string) => Promise<void>;\n onUpdateFileMessage: (editedFile: FileType, message: SendbirdFileMessage) => Promise<void>;\n onUpdateUserMessage: (editedText: string, message: SendbirdUserMessage) => Promise<void>;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n enableTypingIndicator: boolean;\n keyboardAvoidOffset?: number;\n };\n}\n\n/**\n * Internal context for GroupChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n editMessage?: SendbirdUserMessage | SendbirdFileMessage;\n setEditMessage: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n keyboardAvoidOffset?: number;\n }>;\n TypingIndicator: React.Context<{\n typingUsers: SendbirdUser[];\n }>;\n}\nexport interface GroupChannelModule {\n Provider: CommonComponent<GroupChannelProps['Provider']>;\n Header: CommonComponent<GroupChannelProps['Header']>;\n MessageList: CommonComponent<GroupChannelProps['MessageList']>;\n Input: CommonComponent<GroupChannelProps['Input']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelFragment = CommonComponent<GroupChannelProps['Fragment']>;\n"],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import React, { useContext } from 'react';
2
+ import { Icon, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';
3
+ import { GroupChannelBannedUsersContexts } from '../module/moduleContext';
4
+
5
+ const GroupChannelBannedUsersHeader = _ref => {
6
+ let {
7
+ onPressHeaderLeft
8
+ } = _ref;
9
+ const {
10
+ headerTitle
11
+ } = useContext(GroupChannelBannedUsersContexts.Fragment);
12
+ const {
13
+ HeaderComponent
14
+ } = useHeaderStyle();
15
+ return /*#__PURE__*/React.createElement(HeaderComponent, {
16
+ title: headerTitle,
17
+ left: /*#__PURE__*/React.createElement(Icon, {
18
+ icon: 'arrow-left'
19
+ }),
20
+ onPressLeft: onPressHeaderLeft
21
+ });
22
+ };
23
+
24
+ export default GroupChannelBannedUsersHeader;
25
+ //# sourceMappingURL=GroupChannelBannedUsersHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","Icon","useHeaderStyle","GroupChannelBannedUsersContexts","GroupChannelBannedUsersHeader","onPressHeaderLeft","headerTitle","Fragment","HeaderComponent"],"sources":["GroupChannelBannedUsersHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport { Icon, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport { GroupChannelBannedUsersContexts } from '../module/moduleContext';\nimport type { GroupChannelBannedUsersProps } from '../types';\n\nconst GroupChannelBannedUsersHeader = ({ onPressHeaderLeft }: GroupChannelBannedUsersProps['Header']) => {\n const { headerTitle } = useContext(GroupChannelBannedUsersContexts.Fragment);\n const { HeaderComponent } = useHeaderStyle();\n return <HeaderComponent title={headerTitle} left={<Icon icon={'arrow-left'} />} onPressLeft={onPressHeaderLeft} />;\n};\n\nexport default GroupChannelBannedUsersHeader;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AAEA,SAASC,IAAT,EAAeC,cAAf,QAAqC,yCAArC;AAEA,SAASC,+BAAT,QAAgD,yBAAhD;;AAGA,MAAMC,6BAA6B,GAAG,QAAmE;EAAA,IAAlE;IAAEC;EAAF,CAAkE;EACvG,MAAM;IAAEC;EAAF,IAAkBN,UAAU,CAACG,+BAA+B,CAACI,QAAjC,CAAlC;EACA,MAAM;IAAEC;EAAF,IAAsBN,cAAc,EAA1C;EACA,oBAAO,oBAAC,eAAD;IAAiB,KAAK,EAAEI,WAAxB;IAAqC,IAAI,eAAE,oBAAC,IAAD;MAAM,IAAI,EAAE;IAAZ,EAA3C;IAAyE,WAAW,EAAED;EAAtF,EAAP;AACD,CAJD;;AAMA,eAAeD,6BAAf"}
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { FlatList } from 'react-native';
3
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
+ import { useFreshCallback } from '@sendbird/uikit-utils';
5
+
6
+ const GroupChannelBannedUsersList = _ref => {
7
+ let {
8
+ renderUser,
9
+ bannedUsers,
10
+ onLoadNext,
11
+ ListEmptyComponent
12
+ } = _ref;
13
+ const renderItem = useFreshCallback(_ref2 => {
14
+ let {
15
+ item
16
+ } = _ref2;
17
+ return renderUser === null || renderUser === void 0 ? void 0 : renderUser({
18
+ user: item
19
+ });
20
+ });
21
+ const {
22
+ left,
23
+ right
24
+ } = useSafeAreaInsets();
25
+ return /*#__PURE__*/React.createElement(FlatList, {
26
+ data: bannedUsers,
27
+ renderItem: renderItem,
28
+ contentContainerStyle: {
29
+ paddingLeft: left,
30
+ paddingRight: right,
31
+ flexGrow: 1
32
+ },
33
+ ListEmptyComponent: ListEmptyComponent,
34
+ onEndReached: () => onLoadNext(),
35
+ bounces: false
36
+ });
37
+ };
38
+
39
+ export default GroupChannelBannedUsersList;
40
+ //# sourceMappingURL=GroupChannelBannedUsersList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","FlatList","useSafeAreaInsets","useFreshCallback","GroupChannelBannedUsersList","renderUser","bannedUsers","onLoadNext","ListEmptyComponent","renderItem","item","user","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["GroupChannelBannedUsersList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { SendbirdRestrictedUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { GroupChannelBannedUsersProps } from '../types';\n\nconst GroupChannelBannedUsersList = ({\n renderUser,\n bannedUsers,\n onLoadNext,\n ListEmptyComponent,\n}: GroupChannelBannedUsersProps['List']) => {\n const renderItem: ListRenderItem<SendbirdRestrictedUser> = useFreshCallback(({ item }) =>\n renderUser?.({ user: item }),\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={bannedUsers}\n renderItem={renderItem}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n onEndReached={() => onLoadNext()}\n bounces={false}\n />\n );\n};\n\nexport default GroupChannelBannedUsersList;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAAiCC,gBAAjC,QAAyD,uBAAzD;;AAIA,MAAMC,2BAA2B,GAAG,QAKQ;EAAA,IALP;IACnCC,UADmC;IAEnCC,WAFmC;IAGnCC,UAHmC;IAInCC;EAJmC,CAKO;EAC1C,MAAMC,UAAkD,GAAGN,gBAAgB,CAAC;IAAA,IAAC;MAAEO;IAAF,CAAD;IAAA,OAC1EL,UAD0E,aAC1EA,UAD0E,uBAC1EA,UAAU,CAAG;MAAEM,IAAI,EAAED;IAAR,CAAH,CADgE;EAAA,CAAD,CAA3E;EAGA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkBX,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEI,WADR;IAEE,UAAU,EAAEG,UAFd;IAGE,qBAAqB,EAAE;MAAEK,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CAHzB;IAIE,kBAAkB,EAAER,kBAJtB;IAKE,YAAY,EAAE,MAAMD,UAAU,EALhC;IAME,OAAO,EAAE;EANX,EADF;AAUD,CArBD;;AAuBA,eAAeH,2BAAf"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
+
5
+ const GroupChannelBannedUsersStatusEmpty = () => {
6
+ return /*#__PURE__*/React.createElement(View, {
7
+ style: styles.container
8
+ }, /*#__PURE__*/React.createElement(TypedPlaceholder, {
9
+ type: 'no-banned-users'
10
+ }));
11
+ };
12
+
13
+ const styles = StyleSheet.create({
14
+ container: {
15
+ flex: 1,
16
+ justifyContent: 'center',
17
+ alignItems: 'center'
18
+ }
19
+ });
20
+ export default GroupChannelBannedUsersStatusEmpty;
21
+ //# sourceMappingURL=GroupChannelBannedUsersStatusEmpty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","GroupChannelBannedUsersStatusEmpty","styles","container","create","flex","justifyContent","alignItems"],"sources":["GroupChannelBannedUsersStatusEmpty.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\n\nconst GroupChannelBannedUsersStatusEmpty = () => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'no-banned-users'} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default GroupChannelBannedUsersStatusEmpty;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAEA,MAAMC,kCAAkC,GAAG,MAAM;EAC/C,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE;EAAxB,EADF,CADF;AAKD,CAND;;AAQA,MAAMD,MAAM,GAAGJ,UAAU,CAACM,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeN,kCAAf"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
+
5
+ const GroupChannelBannedUsersStatusError = _ref => {
6
+ let {
7
+ onPressRetry
8
+ } = _ref;
9
+ return /*#__PURE__*/React.createElement(View, {
10
+ style: styles.container
11
+ }, /*#__PURE__*/React.createElement(TypedPlaceholder, {
12
+ type: 'error-wrong',
13
+ onPressRetry: onPressRetry
14
+ }));
15
+ };
16
+
17
+ const styles = StyleSheet.create({
18
+ container: {
19
+ flex: 1,
20
+ justifyContent: 'center',
21
+ alignItems: 'center'
22
+ }
23
+ });
24
+ export default GroupChannelBannedUsersStatusError;
25
+ //# sourceMappingURL=GroupChannelBannedUsersStatusError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","GroupChannelBannedUsersStatusError","onPressRetry","styles","container","create","flex","justifyContent","alignItems"],"sources":["GroupChannelBannedUsersStatusError.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\nimport type { GroupChannelBannedUsersModule } from '../types';\n\nconst GroupChannelBannedUsersStatusError: GroupChannelBannedUsersModule['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 GroupChannelBannedUsersStatusError;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAGA,MAAMC,kCAAgF,GAAG,QAAsB;EAAA,IAArB;IAAEC;EAAF,CAAqB;EAC7G,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,kCAAf"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import TypedPlaceholder from '../../../components/TypedPlaceholder';
4
+
5
+ const GroupChannelBannedUsersStatusLoading = () => {
6
+ return /*#__PURE__*/React.createElement(View, {
7
+ style: styles.container
8
+ }, /*#__PURE__*/React.createElement(TypedPlaceholder, {
9
+ type: 'loading'
10
+ }));
11
+ };
12
+
13
+ const styles = StyleSheet.create({
14
+ container: {
15
+ flex: 1,
16
+ justifyContent: 'center',
17
+ alignItems: 'center'
18
+ }
19
+ });
20
+ export default GroupChannelBannedUsersStatusLoading;
21
+ //# sourceMappingURL=GroupChannelBannedUsersStatusLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","GroupChannelBannedUsersStatusLoading","styles","container","create","flex","justifyContent","alignItems"],"sources":["GroupChannelBannedUsersStatusLoading.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\n\nconst GroupChannelBannedUsersStatusLoading = () => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'loading'} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default GroupChannelBannedUsersStatusLoading;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAEA,MAAMC,oCAAoC,GAAG,MAAM;EACjD,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE;EAAxB,EADF,CADF;AAKD,CAND;;AAQA,MAAMD,MAAM,GAAGJ,UAAU,CAACM,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeN,oCAAf"}
@@ -0,0 +1,7 @@
1
+ export { default as GroupChannelBannedUsersList } from './component/GroupChannelBannedUsersList';
2
+ export { default as GroupChannelBannedUsersHeader } from './component/GroupChannelBannedUsersHeader';
3
+ export { default as GroupChannelBannedUsersStatusLoading } from './component/GroupChannelBannedUsersStatusLoading';
4
+ export { default as GroupChannelBannedUsersStatusEmpty } from './component/GroupChannelBannedUsersStatusEmpty';
5
+ export { default as createGroupChannelBannedUsersModule } from './module/createGroupChannelBannedUsersModule';
6
+ export { GroupChannelBannedUsersContextsProvider, GroupChannelBannedUsersContexts } from './module/moduleContext';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","GroupChannelBannedUsersList","GroupChannelBannedUsersHeader","GroupChannelBannedUsersStatusLoading","GroupChannelBannedUsersStatusEmpty","createGroupChannelBannedUsersModule","GroupChannelBannedUsersContextsProvider","GroupChannelBannedUsersContexts"],"sources":["index.ts"],"sourcesContent":["export { default as GroupChannelBannedUsersList } from './component/GroupChannelBannedUsersList';\nexport { default as GroupChannelBannedUsersHeader } from './component/GroupChannelBannedUsersHeader';\nexport { default as GroupChannelBannedUsersStatusLoading } from './component/GroupChannelBannedUsersStatusLoading';\nexport { default as GroupChannelBannedUsersStatusEmpty } from './component/GroupChannelBannedUsersStatusEmpty';\nexport { default as createGroupChannelBannedUsersModule } from './module/createGroupChannelBannedUsersModule';\nexport { GroupChannelBannedUsersContextsProvider, GroupChannelBannedUsersContexts } from './module/moduleContext';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,2BAApB,QAAuD,yCAAvD;AACA,SAASD,OAAO,IAAIE,6BAApB,QAAyD,2CAAzD;AACA,SAASF,OAAO,IAAIG,oCAApB,QAAgE,kDAAhE;AACA,SAASH,OAAO,IAAII,kCAApB,QAA8D,gDAA9D;AACA,SAASJ,OAAO,IAAIK,mCAApB,QAA+D,8CAA/D;AACA,SAASC,uCAAT,EAAkDC,+BAAlD,QAAyF,wBAAzF"}
@@ -0,0 +1,30 @@
1
+ import GroupChannelBannedUsersHeader from '../component/GroupChannelBannedUsersHeader';
2
+ import GroupChannelBannedUsersList from '../component/GroupChannelBannedUsersList';
3
+ import GroupChannelBannedUsersStatusEmpty from '../component/GroupChannelBannedUsersStatusEmpty';
4
+ import GroupChannelBannedUsersStatusError from '../component/GroupChannelBannedUsersStatusError';
5
+ import GroupChannelBannedUsersStatusLoading from '../component/GroupChannelBannedUsersStatusLoading';
6
+ import { GroupChannelBannedUsersContextsProvider } from './moduleContext';
7
+
8
+ const createGroupChannelBannedUsersModule = function () {
9
+ let {
10
+ Header = GroupChannelBannedUsersHeader,
11
+ List = GroupChannelBannedUsersList,
12
+ StatusLoading = GroupChannelBannedUsersStatusLoading,
13
+ StatusEmpty = GroupChannelBannedUsersStatusEmpty,
14
+ StatusError = GroupChannelBannedUsersStatusError,
15
+ Provider = GroupChannelBannedUsersContextsProvider,
16
+ ...module
17
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
+ return {
19
+ Header,
20
+ List,
21
+ Provider,
22
+ StatusEmpty,
23
+ StatusLoading,
24
+ StatusError,
25
+ ...module
26
+ };
27
+ };
28
+
29
+ export default createGroupChannelBannedUsersModule;
30
+ //# sourceMappingURL=createGroupChannelBannedUsersModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GroupChannelBannedUsersHeader","GroupChannelBannedUsersList","GroupChannelBannedUsersStatusEmpty","GroupChannelBannedUsersStatusError","GroupChannelBannedUsersStatusLoading","GroupChannelBannedUsersContextsProvider","createGroupChannelBannedUsersModule","Header","List","StatusLoading","StatusEmpty","StatusError","Provider","module"],"sources":["createGroupChannelBannedUsersModule.tsx"],"sourcesContent":["import GroupChannelBannedUsersHeader from '../component/GroupChannelBannedUsersHeader';\nimport GroupChannelBannedUsersList from '../component/GroupChannelBannedUsersList';\nimport GroupChannelBannedUsersStatusEmpty from '../component/GroupChannelBannedUsersStatusEmpty';\nimport GroupChannelBannedUsersStatusError from '../component/GroupChannelBannedUsersStatusError';\nimport GroupChannelBannedUsersStatusLoading from '../component/GroupChannelBannedUsersStatusLoading';\nimport type { GroupChannelBannedUsersModule } from '../types';\nimport { GroupChannelBannedUsersContextsProvider } from './moduleContext';\n\nconst createGroupChannelBannedUsersModule = ({\n Header = GroupChannelBannedUsersHeader,\n List = GroupChannelBannedUsersList,\n StatusLoading = GroupChannelBannedUsersStatusLoading,\n StatusEmpty = GroupChannelBannedUsersStatusEmpty,\n StatusError = GroupChannelBannedUsersStatusError,\n Provider = GroupChannelBannedUsersContextsProvider,\n ...module\n}: Partial<GroupChannelBannedUsersModule> = {}): GroupChannelBannedUsersModule => {\n return { Header, List, Provider, StatusEmpty, StatusLoading, StatusError, ...module };\n};\n\nexport default createGroupChannelBannedUsersModule;\n"],"mappings":"AAAA,OAAOA,6BAAP,MAA0C,4CAA1C;AACA,OAAOC,2BAAP,MAAwC,0CAAxC;AACA,OAAOC,kCAAP,MAA+C,iDAA/C;AACA,OAAOC,kCAAP,MAA+C,iDAA/C;AACA,OAAOC,oCAAP,MAAiD,mDAAjD;AAEA,SAASC,uCAAT,QAAwD,iBAAxD;;AAEA,MAAMC,mCAAmC,GAAG,YAQsC;EAAA,IARrC;IAC3CC,MAAM,GAAGP,6BADkC;IAE3CQ,IAAI,GAAGP,2BAFoC;IAG3CQ,aAAa,GAAGL,oCAH2B;IAI3CM,WAAW,GAAGR,kCAJ6B;IAK3CS,WAAW,GAAGR,kCAL6B;IAM3CS,QAAQ,GAAGP,uCANgC;IAO3C,GAAGQ;EAPwC,CAQqC,uEAAtC,EAAsC;EAChF,OAAO;IAAEN,MAAF;IAAUC,IAAV;IAAgBI,QAAhB;IAA0BF,WAA1B;IAAuCD,aAAvC;IAAsDE,WAAtD;IAAmE,GAAGE;EAAtE,CAAP;AACD,CAVD;;AAYA,eAAeP,mCAAf"}
@@ -0,0 +1,25 @@
1
+ import React, { createContext } from 'react';
2
+ import ProviderLayout from '../../../components/ProviderLayout';
3
+ import { useLocalization } from '../../../hooks/useContext';
4
+ export const GroupChannelBannedUsersContexts = {
5
+ Fragment: /*#__PURE__*/createContext({
6
+ headerTitle: '',
7
+ channel: {}
8
+ })
9
+ };
10
+ export const GroupChannelBannedUsersContextsProvider = _ref => {
11
+ let {
12
+ channel,
13
+ children
14
+ } = _ref;
15
+ const {
16
+ STRINGS
17
+ } = useLocalization();
18
+ return /*#__PURE__*/React.createElement(ProviderLayout, null, /*#__PURE__*/React.createElement(GroupChannelBannedUsersContexts.Fragment.Provider, {
19
+ value: {
20
+ headerTitle: STRINGS.GROUP_CHANNEL_BANNED_USERS.HEADER_TITLE,
21
+ channel
22
+ }
23
+ }, children));
24
+ };
25
+ //# sourceMappingURL=moduleContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","ProviderLayout","useLocalization","GroupChannelBannedUsersContexts","Fragment","headerTitle","channel","GroupChannelBannedUsersContextsProvider","children","STRINGS","GROUP_CHANNEL_BANNED_USERS","HEADER_TITLE"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext } from 'react';\n\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { GroupChannelBannedUsersContextsType, GroupChannelBannedUsersModule } from '../types';\n\nexport const GroupChannelBannedUsersContexts: GroupChannelBannedUsersContextsType = {\n Fragment: createContext({\n headerTitle: '',\n channel: {} as SendbirdGroupChannel,\n }),\n};\n\nexport const GroupChannelBannedUsersContextsProvider: GroupChannelBannedUsersModule['Provider'] = ({\n channel,\n children,\n}) => {\n const { STRINGS } = useLocalization();\n return (\n <ProviderLayout>\n <GroupChannelBannedUsersContexts.Fragment.Provider\n value={{ headerTitle: STRINGS.GROUP_CHANNEL_BANNED_USERS.HEADER_TITLE, channel }}\n >\n {children}\n </GroupChannelBannedUsersContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AAIA,OAAOC,cAAP,MAA2B,oCAA3B;AACA,SAASC,eAAT,QAAgC,2BAAhC;AAGA,OAAO,MAAMC,+BAAoE,GAAG;EAClFC,QAAQ,eAAEJ,aAAa,CAAC;IACtBK,WAAW,EAAE,EADS;IAEtBC,OAAO,EAAE;EAFa,CAAD;AAD2D,CAA7E;AAOP,OAAO,MAAMC,uCAAkF,GAAG,QAG5F;EAAA,IAH6F;IACjGD,OADiG;IAEjGE;EAFiG,CAG7F;EACJ,MAAM;IAAEC;EAAF,IAAcP,eAAe,EAAnC;EACA,oBACE,oBAAC,cAAD,qBACE,oBAAC,+BAAD,CAAiC,QAAjC,CAA0C,QAA1C;IACE,KAAK,EAAE;MAAEG,WAAW,EAAEI,OAAO,CAACC,0BAAR,CAAmCC,YAAlD;MAAgEL;IAAhE;EADT,GAGGE,QAHH,CADF,CADF;AASD,CAdM"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelBannedUsersProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelBannedUsersProps['Header']['onPressHeaderLeft'];\n renderUser?: GroupChannelBannedUsersProps['List']['renderUser'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n bannedUsers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n onLoadNext: () => Promise<void>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelBannedUsers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelBannedUsersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelBannedUsersModule {\n Provider: CommonComponent<GroupChannelBannedUsersProps['Provider']>;\n Header: CommonComponent<GroupChannelBannedUsersProps['Header']>;\n List: CommonComponent<GroupChannelBannedUsersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelBannedUsersProps['StatusError']>;\n}\n\nexport type GroupChannelBannedUsersFragment = CommonComponent<GroupChannelBannedUsersProps['Fragment']>;\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import React, { useContext, useEffect } from 'react';
2
- import { TouchableOpacity, View } from 'react-native';
3
- import { Header as DefaultHeader, Icon, Modal, Text, createStyleSheet, useHeaderStyle, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
4
- import { useLocalization } from '../../../hooks/useContext';
2
+ import { Platform, TouchableOpacity, View } from 'react-native';
3
+ import { Icon, Modal, Text, createStyleSheet, useHeaderStyle, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
4
+ import { useLocalization, useSendbirdChat } from '../../../hooks/useContext';
5
5
  import { GroupChannelListContexts } from '../module/moduleContext';
6
6
  const TYPES = ['GROUP', 'SUPER_GROUP', 'BROADCAST'];
7
7
  const TYPE_ICONS = {
@@ -9,19 +9,26 @@ const TYPE_ICONS = {
9
9
  'SUPER_GROUP': 'supergroup',
10
10
  'BROADCAST': 'broadcast'
11
11
  };
12
+ const STATUS_BAR_TOP_INSET_AS = Platform.select({
13
+ android: 'margin',
14
+ default: 'padding'
15
+ });
12
16
 
13
17
  const GroupChannelListTypeSelector = _ref => {
14
18
  let {
15
- Header = DefaultHeader,
16
19
  skipTypeSelection,
17
20
  onSelectType
18
21
  } = _ref;
19
22
  const {
20
- statusBarTranslucent
23
+ statusBarTranslucent,
24
+ HeaderComponent
21
25
  } = useHeaderStyle();
22
26
  const {
23
27
  colors
24
28
  } = useUIKitTheme();
29
+ const {
30
+ features
31
+ } = useSendbirdChat();
25
32
  const typeSelector = useContext(GroupChannelListContexts.TypeSelector);
26
33
  const {
27
34
  visible,
@@ -37,10 +44,29 @@ const GroupChannelListTypeSelector = _ref => {
37
44
  if (skipTypeSelection && visible) createOnPressType('GROUP')();
38
45
  }, [skipTypeSelection, visible]);
39
46
  if (skipTypeSelection) return null;
40
-
41
- const renderButtons = () => /*#__PURE__*/React.createElement(View, {
47
+ return /*#__PURE__*/React.createElement(Modal, {
48
+ visible: visible,
49
+ onClose: hide,
50
+ statusBarTranslucent: statusBarTranslucent
51
+ }, /*#__PURE__*/React.createElement(HeaderComponent, {
52
+ title: typeSelector.headerTitle,
53
+ right: /*#__PURE__*/React.createElement(Icon, {
54
+ icon: 'close',
55
+ color: colors.onBackground01
56
+ }),
57
+ onPressRight: typeSelector.hide,
58
+ statusBarTopInsetAs: STATUS_BAR_TOP_INSET_AS
59
+ }, /*#__PURE__*/React.createElement(View, {
42
60
  style: styles.buttonArea
43
61
  }, TYPES.map(type => {
62
+ if (type === 'SUPER_GROUP' && !features.superGroupChannelEnabled) {
63
+ return null;
64
+ }
65
+
66
+ if (type === 'BROADCAST' && !features.broadcastChannelEnabled) {
67
+ return null;
68
+ }
69
+
44
70
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
45
71
  key: type,
46
72
  activeOpacity: 0.6,
@@ -51,32 +77,7 @@ const GroupChannelListTypeSelector = _ref => {
51
77
  }), /*#__PURE__*/React.createElement(DefaultTypeText, {
52
78
  type: type
53
79
  }));
54
- }));
55
-
56
- const renderHeader = () => {
57
- if (Header) {
58
- return /*#__PURE__*/React.createElement(Header, {
59
- title: typeSelector.headerTitle,
60
- right: /*#__PURE__*/React.createElement(Icon, {
61
- icon: 'close',
62
- color: colors.onBackground01
63
- }),
64
- onPressRight: typeSelector.hide
65
- }, renderButtons());
66
- }
67
-
68
- return /*#__PURE__*/React.createElement(DefaultHeader, {
69
- title: null,
70
- right: null,
71
- left: null
72
- }, renderButtons());
73
- };
74
-
75
- return /*#__PURE__*/React.createElement(Modal, {
76
- visible: visible,
77
- onClose: hide,
78
- statusBarTranslucent: statusBarTranslucent
79
- }, renderHeader());
80
+ }))));
80
81
  };
81
82
 
82
83
  const DefaultTypeIcon = _ref2 => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useEffect","TouchableOpacity","View","Header","DefaultHeader","Icon","Modal","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","useLocalization","GroupChannelListContexts","TYPES","TYPE_ICONS","GroupChannelListTypeSelector","skipTypeSelection","onSelectType","statusBarTranslucent","colors","typeSelector","TypeSelector","visible","hide","createOnPressType","type","renderButtons","styles","buttonArea","map","typeButton","renderHeader","headerTitle","onBackground01","DefaultTypeIcon","icon","DefaultTypeText","STRINGS","GROUP_CHANNEL_LIST","flexDirection","paddingVertical","flex","alignItems","justifyContent","marginBottom"],"sources":["GroupChannelListTypeSelector.tsx"],"sourcesContent":["import React, { useContext, useEffect } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport {\n Header as DefaultHeader,\n Icon,\n Modal,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport { GroupChannelListContexts } from '../module/moduleContext';\nimport type { GroupChannelListProps, GroupChannelType } from '../types';\n\nconst TYPES: GroupChannelType[] = ['GROUP', 'SUPER_GROUP', 'BROADCAST'];\nconst TYPE_ICONS: Record<GroupChannelType, keyof typeof Icon.Assets> = {\n 'GROUP': 'chat',\n 'SUPER_GROUP': 'supergroup',\n 'BROADCAST': 'broadcast',\n};\n\nconst GroupChannelListTypeSelector = ({\n Header = DefaultHeader,\n skipTypeSelection,\n onSelectType,\n}: GroupChannelListProps['TypeSelector']) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const typeSelector = useContext(GroupChannelListContexts.TypeSelector);\n const { visible, hide } = typeSelector;\n const createOnPressType = (type: GroupChannelType) => () => {\n hide();\n onSelectType(type);\n };\n\n useEffect(() => {\n if (skipTypeSelection && visible) createOnPressType('GROUP')();\n }, [skipTypeSelection, visible]);\n\n if (skipTypeSelection) return null;\n\n const renderButtons = () => (\n <View style={styles.buttonArea}>\n {TYPES.map((type) => {\n return (\n <TouchableOpacity key={type} activeOpacity={0.6} onPress={createOnPressType(type)} style={styles.typeButton}>\n <DefaultTypeIcon type={type} />\n <DefaultTypeText type={type} />\n </TouchableOpacity>\n );\n })}\n </View>\n );\n\n const renderHeader = () => {\n if (Header) {\n return (\n <Header\n title={typeSelector.headerTitle}\n right={<Icon icon={'close'} color={colors.onBackground01} />}\n onPressRight={typeSelector.hide}\n >\n {renderButtons()}\n </Header>\n );\n }\n\n return (\n <DefaultHeader title={null} right={null} left={null}>\n {renderButtons()}\n </DefaultHeader>\n );\n };\n\n return (\n <Modal visible={visible} onClose={hide} statusBarTranslucent={statusBarTranslucent}>\n {renderHeader()}\n </Modal>\n );\n};\n\nconst DefaultTypeIcon = ({ type }: { type: GroupChannelType }) => {\n return <Icon size={24} icon={TYPE_ICONS[type]} containerStyle={styles.icon} />;\n};\n\nconst DefaultTypeText = ({ type }: { type: GroupChannelType }) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n return (\n <Text caption2 color={colors.onBackground01}>\n {STRINGS.GROUP_CHANNEL_LIST[`TYPE_SELECTOR_${type}`]}\n </Text>\n );\n};\n\nconst styles = createStyleSheet({\n buttonArea: {\n flexDirection: 'row',\n },\n typeButton: {\n paddingVertical: 24,\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n marginBottom: 8,\n },\n});\n\nexport default GroupChannelListTypeSelector;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useContext","useEffect","Platform","TouchableOpacity","View","Icon","Modal","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","useLocalization","useSendbirdChat","GroupChannelListContexts","TYPES","TYPE_ICONS","STATUS_BAR_TOP_INSET_AS","select","android","default","GroupChannelListTypeSelector","skipTypeSelection","onSelectType","statusBarTranslucent","HeaderComponent","colors","features","typeSelector","TypeSelector","visible","hide","createOnPressType","type","headerTitle","onBackground01","styles","buttonArea","map","superGroupChannelEnabled","broadcastChannelEnabled","typeButton","DefaultTypeIcon","icon","DefaultTypeText","STRINGS","GROUP_CHANNEL_LIST","flexDirection","paddingVertical","flex","alignItems","justifyContent","marginBottom"],"sources":["GroupChannelListTypeSelector.tsx"],"sourcesContent":["import React, { useContext, useEffect } from 'react';\nimport { Platform, TouchableOpacity, View } from 'react-native';\n\nimport {\n Icon,\n Modal,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelListContexts } from '../module/moduleContext';\nimport type { GroupChannelListProps, GroupChannelType } from '../types';\n\nconst TYPES: GroupChannelType[] = ['GROUP', 'SUPER_GROUP', 'BROADCAST'];\nconst TYPE_ICONS: Record<GroupChannelType, keyof typeof Icon.Assets> = {\n 'GROUP': 'chat',\n 'SUPER_GROUP': 'supergroup',\n 'BROADCAST': 'broadcast',\n};\nconst STATUS_BAR_TOP_INSET_AS: 'margin' | 'padding' = Platform.select({ android: 'margin', default: 'padding' });\n\nconst GroupChannelListTypeSelector = ({ skipTypeSelection, onSelectType }: GroupChannelListProps['TypeSelector']) => {\n const { statusBarTranslucent, HeaderComponent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const { features } = useSendbirdChat();\n const typeSelector = useContext(GroupChannelListContexts.TypeSelector);\n const { visible, hide } = typeSelector;\n\n const createOnPressType = (type: GroupChannelType) => () => {\n hide();\n onSelectType(type);\n };\n\n useEffect(() => {\n if (skipTypeSelection && visible) createOnPressType('GROUP')();\n }, [skipTypeSelection, visible]);\n\n if (skipTypeSelection) return null;\n\n return (\n <Modal visible={visible} onClose={hide} statusBarTranslucent={statusBarTranslucent}>\n <HeaderComponent\n title={typeSelector.headerTitle}\n right={<Icon icon={'close'} color={colors.onBackground01} />}\n onPressRight={typeSelector.hide}\n statusBarTopInsetAs={STATUS_BAR_TOP_INSET_AS}\n >\n <View style={styles.buttonArea}>\n {TYPES.map((type) => {\n if (type === 'SUPER_GROUP' && !features.superGroupChannelEnabled) {\n return null;\n }\n\n if (type === 'BROADCAST' && !features.broadcastChannelEnabled) {\n return null;\n }\n\n return (\n <TouchableOpacity\n key={type}\n activeOpacity={0.6}\n onPress={createOnPressType(type)}\n style={styles.typeButton}\n >\n <DefaultTypeIcon type={type} />\n <DefaultTypeText type={type} />\n </TouchableOpacity>\n );\n })}\n </View>\n </HeaderComponent>\n </Modal>\n );\n};\n\nconst DefaultTypeIcon = ({ type }: { type: GroupChannelType }) => {\n return <Icon size={24} icon={TYPE_ICONS[type]} containerStyle={styles.icon} />;\n};\n\nconst DefaultTypeText = ({ type }: { type: GroupChannelType }) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n return (\n <Text caption2 color={colors.onBackground01}>\n {STRINGS.GROUP_CHANNEL_LIST[`TYPE_SELECTOR_${type}`]}\n </Text>\n );\n};\n\nconst styles = createStyleSheet({\n buttonArea: {\n flexDirection: 'row',\n },\n typeButton: {\n paddingVertical: 24,\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n marginBottom: 8,\n },\n});\n\nexport default GroupChannelListTypeSelector;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { ActionMenuItem, BaseHeaderProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelListProps {\n /** Props for `GroupChannelListFragment` **/\n Fragment: {\n /** Navigate to GroupChannelFragment **/\n onPressChannel: (channel: SendbirdGroupChannel) => void;\n /** Navigate to GroupChannelCreateFragment **/\n onPressCreateChannel: (channelType: GroupChannelType) => void;\n /** Custom Header for TypeSelector, Only replace header component not a module **/\n TypeSelectorHeader?: null | CommonComponent<\n BaseHeaderProps<{ title: string; right: React.ReactElement; onPressRight: () => void }>\n >;\n /** Method to render GroupChannel preview **/\n renderGroupChannelPreview?: (\n channel: SendbirdGroupChannel,\n onLongPressChannel: () => void,\n ) => React.ReactElement | null;\n /** Skip type selection, When this is set to true 'channelType' only receive 'GROUP' type **/\n skipTypeSelection?: boolean;\n /** Custom Query creator for channels query **/\n queryCreator?: UseGroupChannelListOptions['queryCreator'];\n /** Custom Collection creator for group channel collection **/\n collectionCreator?: UseGroupChannelListOptions['collectionCreator'];\n /** FlatList props for GroupChannelList.List **/\n flatListProps?: GroupChannelListProps['List']['flatListProps'];\n /** Action menu item creator for onLongPress **/\n menuItemCreator?: GroupChannelListProps['List']['menuItemCreator'];\n };\n /** Props for `GroupChannelListModule.Header` **/\n Header: {};\n /** Props for `GroupChannelListModule.List` **/\n List: {\n /** GroupChannels from SendbirdChat SDK **/\n groupChannels: SendbirdGroupChannel[];\n /** Method to render GroupChannel preview **/\n renderGroupChannelPreview: (\n // FIXME/BREAKING: Changed to props object\n channel: SendbirdGroupChannel,\n onLongPressChannel: () => void,\n ) => React.ReactElement | null;\n /** Method to load more data, called with onEndReached of FlatList **/\n onLoadNext: () => Promise<void>;\n /** Prop from Fragment **/\n flatListProps?: Omit<FlatListProps<SendbirdGroupChannel>, 'data' | 'renderItem'>;\n /** Prop from Fragment **/\n menuItemCreator?: (defaultMenuItem: ActionMenuItem) => ActionMenuItem;\n };\n /** Props for `GroupChannelListModule.TypeSelector` **/\n TypeSelector: {\n /** Prop from Fragment `Fragment.TypeSelectorHeader` **/\n Header: GroupChannelListProps['Fragment']['TypeSelectorHeader'];\n /** Prop from Fragment `Fragment.skipTypeSelection` **/\n skipTypeSelection: boolean;\n /** Method called when type is selected, call `Fragment.onPressCreateChannel` **/\n onSelectType: (type: GroupChannelType) => void;\n };\n}\n\n/**\n * Internal context for GroupChannelList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelListContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n }>;\n TypeSelector: React.Context<{\n visible: boolean;\n show: () => void;\n hide: () => void;\n headerTitle: string;\n }>;\n}\nexport interface GroupChannelListModule {\n Provider: CommonComponent;\n Header: CommonComponent<GroupChannelListProps['Header']>;\n List: CommonComponent<GroupChannelListProps['List']>;\n TypeSelector: CommonComponent<GroupChannelListProps['TypeSelector']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelListFragment = CommonComponent<GroupChannelListProps['Fragment']>;\nexport type GroupChannelType = 'GROUP' | 'SUPER_GROUP' | 'BROADCAST';\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { ActionMenuItem } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelListProps {\n /** Props for `GroupChannelListFragment` **/\n Fragment: {\n /** Navigate to GroupChannelFragment **/\n onPressChannel: (channel: SendbirdGroupChannel) => void;\n /** Navigate to GroupChannelCreateFragment **/\n onPressCreateChannel: (channelType: GroupChannelType) => void;\n /** Method to render GroupChannel preview **/\n renderGroupChannelPreview?: (\n channel: SendbirdGroupChannel,\n onLongPressChannel: () => void,\n ) => React.ReactElement | null;\n /** Skip type selection, When this is set to true 'channelType' only receive 'GROUP' type **/\n skipTypeSelection?: boolean;\n /** Custom Query creator for channels query **/\n queryCreator?: UseGroupChannelListOptions['queryCreator'];\n /** Custom Collection creator for group channel collection **/\n collectionCreator?: UseGroupChannelListOptions['collectionCreator'];\n /** FlatList props for GroupChannelList.List **/\n flatListProps?: GroupChannelListProps['List']['flatListProps'];\n /** Action menu item creator for onLongPress **/\n menuItemCreator?: GroupChannelListProps['List']['menuItemCreator'];\n };\n /** Props for `GroupChannelListModule.Header` **/\n Header: {};\n /** Props for `GroupChannelListModule.List` **/\n List: {\n /** GroupChannels from SendbirdChat SDK **/\n groupChannels: SendbirdGroupChannel[];\n /** Method to render GroupChannel preview **/\n renderGroupChannelPreview: (\n // FIXME/BREAKING: Changed to props object\n channel: SendbirdGroupChannel,\n onLongPressChannel: () => void,\n ) => React.ReactElement | null;\n /** Method to load more data, called with onEndReached of FlatList **/\n onLoadNext: () => Promise<void>;\n /** Prop from Fragment **/\n flatListProps?: Omit<FlatListProps<SendbirdGroupChannel>, 'data' | 'renderItem'>;\n /** Prop from Fragment **/\n menuItemCreator?: (defaultMenuItem: ActionMenuItem) => ActionMenuItem;\n };\n /** Props for `GroupChannelListModule.TypeSelector` **/\n TypeSelector: {\n /** Prop from Fragment `Fragment.skipTypeSelection` **/\n skipTypeSelection: boolean;\n /** Method called when type is selected, call `Fragment.onPressCreateChannel` **/\n onSelectType: (type: GroupChannelType) => void;\n };\n}\n\n/**\n * Internal context for GroupChannelList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelListContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n }>;\n TypeSelector: React.Context<{\n visible: boolean;\n show: () => void;\n hide: () => void;\n headerTitle: string;\n }>;\n}\nexport interface GroupChannelListModule {\n Provider: CommonComponent;\n Header: CommonComponent<GroupChannelListProps['Header']>;\n List: CommonComponent<GroupChannelListProps['List']>;\n TypeSelector: CommonComponent<GroupChannelListProps['TypeSelector']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelListFragment = CommonComponent<GroupChannelListProps['Fragment']>;\nexport type GroupChannelType = 'GROUP' | 'SUPER_GROUP' | 'BROADCAST';\n"],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import React, { useContext } from 'react';
2
+ import { Icon, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';
3
+ import { GroupChannelModerationContexts } from '../module/moduleContext';
4
+
5
+ const GroupChannelModerationHeader = _ref => {
6
+ let {
7
+ onPressHeaderLeft
8
+ } = _ref;
9
+ const {
10
+ headerTitle
11
+ } = useContext(GroupChannelModerationContexts.Fragment);
12
+ const {
13
+ HeaderComponent
14
+ } = useHeaderStyle();
15
+ return /*#__PURE__*/React.createElement(HeaderComponent, {
16
+ title: headerTitle,
17
+ left: /*#__PURE__*/React.createElement(Icon, {
18
+ icon: 'arrow-left'
19
+ }),
20
+ onPressLeft: onPressHeaderLeft
21
+ });
22
+ };
23
+
24
+ export default GroupChannelModerationHeader;
25
+ //# sourceMappingURL=GroupChannelModerationHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","Icon","useHeaderStyle","GroupChannelModerationContexts","GroupChannelModerationHeader","onPressHeaderLeft","headerTitle","Fragment","HeaderComponent"],"sources":["GroupChannelModerationHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport { Icon, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport { GroupChannelModerationContexts } from '../module/moduleContext';\nimport type { GroupChannelModerationProps } from '../types';\n\nconst GroupChannelModerationHeader = ({ onPressHeaderLeft }: GroupChannelModerationProps['Header']) => {\n const { headerTitle } = useContext(GroupChannelModerationContexts.Fragment);\n const { HeaderComponent } = useHeaderStyle();\n return <HeaderComponent title={headerTitle} left={<Icon icon={'arrow-left'} />} onPressLeft={onPressHeaderLeft} />;\n};\n\nexport default GroupChannelModerationHeader;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AAEA,SAASC,IAAT,EAAeC,cAAf,QAAqC,yCAArC;AAEA,SAASC,8BAAT,QAA+C,yBAA/C;;AAGA,MAAMC,4BAA4B,GAAG,QAAkE;EAAA,IAAjE;IAAEC;EAAF,CAAiE;EACrG,MAAM;IAAEC;EAAF,IAAkBN,UAAU,CAACG,8BAA8B,CAACI,QAAhC,CAAlC;EACA,MAAM;IAAEC;EAAF,IAAsBN,cAAc,EAA1C;EACA,oBAAO,oBAAC,eAAD;IAAiB,KAAK,EAAEI,WAAxB;IAAqC,IAAI,eAAE,oBAAC,IAAD;MAAM,IAAI,EAAE;IAAZ,EAA3C;IAAyE,WAAW,EAAED;EAAtF,EAAP;AACD,CAJD;;AAMA,eAAeD,4BAAf"}