@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
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _reactNative = require("react-native");
11
+
10
12
  var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
11
13
 
12
14
  var _uikitUtils = require("@sendbird/uikit-utils");
@@ -24,12 +26,31 @@ const ChannelCover = _ref => {
24
26
  } = _ref;
25
27
  const {
26
28
  currentUser
27
- } = (0, _useContext.useSendbirdChat)(); // channel cover
29
+ } = (0, _useContext.useSendbirdChat)();
30
+ const {
31
+ colors
32
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)(); // custom channel cover
28
33
 
29
34
  if (!(0, _uikitUtils.isDefaultCoverImage)(channel.coverUrl) || !currentUser) {
30
35
  return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Avatar, _extends({
31
36
  uri: channel.coverUrl
32
37
  }, avatarProps));
38
+ } // broadcast channel cover
39
+
40
+
41
+ if (channel.isBroadcast) {
42
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
43
+ style: avatarProps.containerStyle
44
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
45
+ icon: 'broadcast',
46
+ size: avatarProps.size * (4 / 7),
47
+ color: colors.onBackgroundReverse01,
48
+ containerStyle: {
49
+ backgroundColor: colors.secondary,
50
+ borderRadius: avatarProps.size * 0.5,
51
+ padding: avatarProps.size * (3 / 7) * 0.5
52
+ }
53
+ }));
33
54
  } // no members, use anonymous profile
34
55
 
35
56
 
@@ -1 +1 @@
1
- {"version":3,"names":["ChannelCover","channel","avatarProps","currentUser","useSendbirdChat","isDefaultCoverImage","coverUrl","memberCount","otherUserProfile","members","filter","m","userId","profileUrl","getMembersExcludeMe","map"],"sources":["ChannelCover.tsx"],"sourcesContent":["import React from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport { Avatar } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdGroupChannel, getMembersExcludeMe, isDefaultCoverImage } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\n\ntype Props = {\n channel: SendbirdGroupChannel;\n size?: number;\n containerStyle?: StyleProp<ViewStyle>;\n};\n\nconst ChannelCover = ({ channel, ...avatarProps }: Props) => {\n const { currentUser } = useSendbirdChat();\n\n // channel cover\n if (!isDefaultCoverImage(channel.coverUrl) || !currentUser) {\n return <Avatar uri={channel.coverUrl} {...avatarProps} />;\n }\n\n // no members, use anonymous profile\n if (channel.memberCount <= 1) {\n return <Avatar {...avatarProps} />;\n }\n\n // 1:1, use member profile\n if (channel.memberCount === 2) {\n const otherUserProfile = channel.members.filter((m) => m.userId !== currentUser.userId)?.[0]?.profileUrl;\n return <Avatar uri={otherUserProfile} {...avatarProps} />;\n }\n\n // group, use members profile\n return (\n <Avatar.Group {...avatarProps}>\n {getMembersExcludeMe(channel, currentUser?.userId).map((m) => (\n <Avatar key={m.userId} uri={m.profileUrl} />\n ))}\n </Avatar.Group>\n );\n};\n\nexport default ChannelCover;\n"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;AAEA;;;;;;AAQA,MAAMA,YAAY,GAAG,QAAwC;EAAA,IAAvC;IAAEC,OAAF;IAAW,GAAGC;EAAd,CAAuC;EAC3D,MAAM;IAAEC;EAAF,IAAkB,IAAAC,2BAAA,GAAxB,CAD2D,CAG3D;;EACA,IAAI,CAAC,IAAAC,+BAAA,EAAoBJ,OAAO,CAACK,QAA5B,CAAD,IAA0C,CAACH,WAA/C,EAA4D;IAC1D,oBAAO,6BAAC,kCAAD;MAAQ,GAAG,EAAEF,OAAO,CAACK;IAArB,GAAmCJ,WAAnC,EAAP;EACD,CAN0D,CAQ3D;;;EACA,IAAID,OAAO,CAACM,WAAR,IAAuB,CAA3B,EAA8B;IAC5B,oBAAO,6BAAC,kCAAD,EAAYL,WAAZ,CAAP;EACD,CAX0D,CAa3D;;;EACA,IAAID,OAAO,CAACM,WAAR,KAAwB,CAA5B,EAA+B;IAAA;;IAC7B,MAAMC,gBAAgB,4BAAGP,OAAO,CAACQ,OAAR,CAAgBC,MAAhB,CAAwBC,CAAD,IAAOA,CAAC,CAACC,MAAF,KAAaT,WAAW,CAACS,MAAvD,CAAH,oFAAG,sBAAiE,CAAjE,CAAH,2DAAG,uBAAqEC,UAA9F;IACA,oBAAO,6BAAC,kCAAD;MAAQ,GAAG,EAAEL;IAAb,GAAmCN,WAAnC,EAAP;EACD,CAjB0D,CAmB3D;;;EACA,oBACE,6BAAC,kCAAD,CAAQ,KAAR,EAAkBA,WAAlB,EACG,IAAAY,+BAAA,EAAoBb,OAApB,EAA6BE,WAA7B,aAA6BA,WAA7B,uBAA6BA,WAAW,CAAES,MAA1C,EAAkDG,GAAlD,CAAuDJ,CAAD,iBACrD,6BAAC,kCAAD;IAAQ,GAAG,EAAEA,CAAC,CAACC,MAAf;IAAuB,GAAG,EAAED,CAAC,CAACE;EAA9B,EADD,CADH,CADF;AAOD,CA3BD;;eA6Beb,Y"}
1
+ {"version":3,"names":["ChannelCover","channel","avatarProps","currentUser","useSendbirdChat","colors","useUIKitTheme","isDefaultCoverImage","coverUrl","isBroadcast","containerStyle","size","onBackgroundReverse01","backgroundColor","secondary","borderRadius","padding","memberCount","otherUserProfile","members","filter","m","userId","profileUrl","getMembersExcludeMe","map"],"sources":["ChannelCover.tsx"],"sourcesContent":["import React from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\n\nimport { Avatar, Icon, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdGroupChannel, getMembersExcludeMe, isDefaultCoverImage } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\n\ntype Props = {\n channel: SendbirdGroupChannel;\n size: number;\n containerStyle?: StyleProp<ViewStyle>;\n};\n\nconst ChannelCover = ({ channel, ...avatarProps }: Props) => {\n const { currentUser } = useSendbirdChat();\n const { colors } = useUIKitTheme();\n\n // custom channel cover\n if (!isDefaultCoverImage(channel.coverUrl) || !currentUser) {\n return <Avatar uri={channel.coverUrl} {...avatarProps} />;\n }\n\n // broadcast channel cover\n if (channel.isBroadcast) {\n return (\n <View style={avatarProps.containerStyle}>\n <Icon\n icon={'broadcast'}\n size={avatarProps.size * (4 / 7)}\n color={colors.onBackgroundReverse01}\n containerStyle={{\n backgroundColor: colors.secondary,\n borderRadius: avatarProps.size * 0.5,\n padding: avatarProps.size * (3 / 7) * 0.5,\n }}\n />\n </View>\n );\n }\n\n // no members, use anonymous profile\n if (channel.memberCount <= 1) {\n return <Avatar {...avatarProps} />;\n }\n\n // 1:1, use member profile\n if (channel.memberCount === 2) {\n const otherUserProfile = channel.members.filter((m) => m.userId !== currentUser.userId)?.[0]?.profileUrl;\n return <Avatar uri={otherUserProfile} {...avatarProps} />;\n }\n\n // group, use members profile\n return (\n <Avatar.Group {...avatarProps}>\n {getMembersExcludeMe(channel, currentUser?.userId).map((m) => (\n <Avatar key={m.userId} uri={m.profileUrl} />\n ))}\n </Avatar.Group>\n );\n};\n\nexport default ChannelCover;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AAEA;;;;;;AAQA,MAAMA,YAAY,GAAG,QAAwC;EAAA,IAAvC;IAAEC,OAAF;IAAW,GAAGC;EAAd,CAAuC;EAC3D,MAAM;IAAEC;EAAF,IAAkB,IAAAC,2BAAA,GAAxB;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB,CAF2D,CAI3D;;EACA,IAAI,CAAC,IAAAC,+BAAA,EAAoBN,OAAO,CAACO,QAA5B,CAAD,IAA0C,CAACL,WAA/C,EAA4D;IAC1D,oBAAO,6BAAC,kCAAD;MAAQ,GAAG,EAAEF,OAAO,CAACO;IAArB,GAAmCN,WAAnC,EAAP;EACD,CAP0D,CAS3D;;;EACA,IAAID,OAAO,CAACQ,WAAZ,EAAyB;IACvB,oBACE,6BAAC,iBAAD;MAAM,KAAK,EAAEP,WAAW,CAACQ;IAAzB,gBACE,6BAAC,gCAAD;MACE,IAAI,EAAE,WADR;MAEE,IAAI,EAAER,WAAW,CAACS,IAAZ,IAAoB,IAAI,CAAxB,CAFR;MAGE,KAAK,EAAEN,MAAM,CAACO,qBAHhB;MAIE,cAAc,EAAE;QACdC,eAAe,EAAER,MAAM,CAACS,SADV;QAEdC,YAAY,EAAEb,WAAW,CAACS,IAAZ,GAAmB,GAFnB;QAGdK,OAAO,EAAEd,WAAW,CAACS,IAAZ,IAAoB,IAAI,CAAxB,IAA6B;MAHxB;IAJlB,EADF,CADF;EAcD,CAzB0D,CA2B3D;;;EACA,IAAIV,OAAO,CAACgB,WAAR,IAAuB,CAA3B,EAA8B;IAC5B,oBAAO,6BAAC,kCAAD,EAAYf,WAAZ,CAAP;EACD,CA9B0D,CAgC3D;;;EACA,IAAID,OAAO,CAACgB,WAAR,KAAwB,CAA5B,EAA+B;IAAA;;IAC7B,MAAMC,gBAAgB,4BAAGjB,OAAO,CAACkB,OAAR,CAAgBC,MAAhB,CAAwBC,CAAD,IAAOA,CAAC,CAACC,MAAF,KAAanB,WAAW,CAACmB,MAAvD,CAAH,oFAAG,sBAAiE,CAAjE,CAAH,2DAAG,uBAAqEC,UAA9F;IACA,oBAAO,6BAAC,kCAAD;MAAQ,GAAG,EAAEL;IAAb,GAAmChB,WAAnC,EAAP;EACD,CApC0D,CAsC3D;;;EACA,oBACE,6BAAC,kCAAD,CAAQ,KAAR,EAAkBA,WAAlB,EACG,IAAAsB,+BAAA,EAAoBvB,OAApB,EAA6BE,WAA7B,aAA6BA,WAA7B,uBAA6BA,WAAW,CAAEmB,MAA1C,EAAkDG,GAAlD,CAAuDJ,CAAD,iBACrD,6BAAC,kCAAD;IAAQ,GAAG,EAAEA,CAAC,CAACC,MAAf;IAAuB,GAAG,EAAED,CAAC,CAACE;EAA9B,EADD,CADH,CADF;AAOD,CA9CD;;eAgDevB,Y"}
@@ -24,7 +24,7 @@ const MessageIncomingAvatar = _ref => {
24
24
  } = _ref;
25
25
  const {
26
26
  show
27
- } = (0, _useContext.useProfileCard)();
27
+ } = (0, _useContext.useUserProfile)();
28
28
  if (grouping) return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
29
29
  style: styles.avatar
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"names":["MessageIncomingAvatar","message","grouping","show","useProfileCard","styles","avatar","isFileMessage","isUserMessage","sender","profileUrl","createStyleSheet","width","marginRight"],"sources":["MessageIncomingAvatar.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { Avatar, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useProfileCard } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n grouping: boolean;\n};\nconst MessageIncomingAvatar = ({ message, grouping }: Props) => {\n const { show } = useProfileCard();\n if (grouping) return <View style={styles.avatar} />;\n return (\n <View style={styles.avatar}>\n {(message.isFileMessage() || message.isUserMessage()) && (\n <Pressable onPress={() => show(message.sender)}>\n <Avatar size={26} uri={message.sender?.profileUrl} />\n </Pressable>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n avatar: {\n width: 26,\n marginRight: 12,\n },\n});\n\nexport default MessageIncomingAvatar;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAGA;;;;AAMA,MAAMA,qBAAqB,GAAG,QAAkC;EAAA;;EAAA,IAAjC;IAAEC,OAAF;IAAWC;EAAX,CAAiC;EAC9D,MAAM;IAAEC;EAAF,IAAW,IAAAC,0BAAA,GAAjB;EACA,IAAIF,QAAJ,EAAc,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAEG,MAAM,CAACC;EAApB,EAAP;EACd,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAED,MAAM,CAACC;EAApB,GACG,CAACL,OAAO,CAACM,aAAR,MAA2BN,OAAO,CAACO,aAAR,EAA5B,kBACC,6BAAC,sBAAD;IAAW,OAAO,EAAE,MAAML,IAAI,CAACF,OAAO,CAACQ,MAAT;EAA9B,gBACE,6BAAC,kCAAD;IAAQ,IAAI,EAAE,EAAd;IAAkB,GAAG,qBAAER,OAAO,CAACQ,MAAV,oDAAE,gBAAgBC;EAAvC,EADF,CAFJ,CADF;AASD,CAZD;;AAcA,MAAML,MAAM,GAAG,IAAAM,4CAAA,EAAiB;EAC9BL,MAAM,EAAE;IACNM,KAAK,EAAE,EADD;IAENC,WAAW,EAAE;EAFP;AADsB,CAAjB,CAAf;eAOeb,qB"}
1
+ {"version":3,"names":["MessageIncomingAvatar","message","grouping","show","useUserProfile","styles","avatar","isFileMessage","isUserMessage","sender","profileUrl","createStyleSheet","width","marginRight"],"sources":["MessageIncomingAvatar.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { Avatar, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useUserProfile } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n grouping: boolean;\n};\nconst MessageIncomingAvatar = ({ message, grouping }: Props) => {\n const { show } = useUserProfile();\n if (grouping) return <View style={styles.avatar} />;\n return (\n <View style={styles.avatar}>\n {(message.isFileMessage() || message.isUserMessage()) && (\n <Pressable onPress={() => show(message.sender)}>\n <Avatar size={26} uri={message.sender?.profileUrl} />\n </Pressable>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n avatar: {\n width: 26,\n marginRight: 12,\n },\n});\n\nexport default MessageIncomingAvatar;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAGA;;;;AAMA,MAAMA,qBAAqB,GAAG,QAAkC;EAAA;;EAAA,IAAjC;IAAEC,OAAF;IAAWC;EAAX,CAAiC;EAC9D,MAAM;IAAEC;EAAF,IAAW,IAAAC,0BAAA,GAAjB;EACA,IAAIF,QAAJ,EAAc,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAEG,MAAM,CAACC;EAApB,EAAP;EACd,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAED,MAAM,CAACC;EAApB,GACG,CAACL,OAAO,CAACM,aAAR,MAA2BN,OAAO,CAACO,aAAR,EAA5B,kBACC,6BAAC,sBAAD;IAAW,OAAO,EAAE,MAAML,IAAI,CAACF,OAAO,CAACQ,MAAT;EAA9B,gBACE,6BAAC,kCAAD;IAAQ,IAAI,EAAE,EAAd;IAAkB,GAAG,qBAAER,OAAO,CAACQ,MAAV,oDAAE,gBAAgBC;EAAvC,EADF,CAFJ,CADF;AASD,CAZD;;AAcA,MAAML,MAAM,GAAG,IAAAM,4CAAA,EAAiB;EAC9BL,MAAM,EAAE;IACNM,KAAK,EAAE,EADD;IAENC,WAAW,EAAE;EAFP;AADsB,CAAjB,CAAf;eAOeb,qB"}
@@ -183,7 +183,7 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
183
183
  },
184
184
  outgoingContainer: {
185
185
  flexDirection: 'row',
186
- alignItems: 'center',
186
+ alignItems: 'flex-end',
187
187
  justifyContent: 'center'
188
188
  }
189
189
  });
@@ -1 +1 @@
1
- {"version":3,"names":["MessageRenderer","currentUserId","channel","message","onPress","onLongPress","rest","variant","isMyMessage","isOutgoing","isIncoming","variantContainerStyle","incoming","styles","chatIncoming","outgoing","chatOutgoing","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","enableMessageGrouping","prevMessage","nextMessage","messageComponent","useIIFE","pressableProps","style","msgContainer","disabled","delayLongPress","DEFAULT_LONG_PRESS_DELAY","messageProps","isUserMessage","pressed","isFileMessage","isAdminMessage","conditionChaining","chatGroup","chatNonGroup","chatLastMessage","outgoingContainer","timeOutgoing","bubbleContainer","bubbleWrapper","timeIncoming","createStyleSheet","flexDirection","justifyContent","alignItems","marginLeft","marginRight","marginBottom","maxWidth","flexShrink","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport { calcMessageGrouping, conditionChaining, isMyMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport AdminMessage from './AdminMessage';\nimport FileMessage from './FileMessage';\nimport MessageContainer from './MessageContainer';\nimport MessageDateSeparator from './MessageDateSeparator';\nimport MessageIncomingAvatar from './MessageIncomingAvatar';\nimport MessageIncomingSenderName from './MessageIncomingSenderName';\nimport MessageOutgoingStatus from './MessageOutgoingStatus';\nimport MessageTime from './MessageTime';\nimport UnknownMessage from './UnknownMessage';\nimport UserMessage from './UserMessage';\n\ntype MessageStyleVariant = 'outgoing' | 'incoming';\nexport interface MessageRendererInterface<T = SendbirdMessage> {\n message: T;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n variant: MessageStyleVariant;\n groupWithPrev: boolean;\n groupWithNext: boolean;\n pressed: boolean;\n}\n\nconst MessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n currentUserId,\n channel,\n message,\n onPress,\n onLongPress,\n ...rest\n}) => {\n const variant: MessageStyleVariant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';\n const isOutgoing = variant === 'outgoing';\n const isIncoming = variant === 'incoming';\n const variantContainerStyle = { incoming: styles.chatIncoming, outgoing: styles.chatOutgoing }[variant];\n\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(rest.enableMessageGrouping),\n message,\n rest.prevMessage,\n rest.nextMessage,\n );\n\n const messageComponent = useIIFE(() => {\n const pressableProps = {\n style: styles.msgContainer,\n disabled: !onPress && !onLongPress,\n onPress,\n onLongPress,\n delayLongPress: DEFAULT_LONG_PRESS_DELAY,\n };\n const messageProps = { ...rest, variant, groupWithNext, groupWithPrev };\n\n if (message.isUserMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <UserMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n }\n\n if (message.isFileMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <FileMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n }\n\n if (message.isAdminMessage()) {\n return <AdminMessage message={message} pressed={false} {...messageProps} />;\n }\n\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <UnknownMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n });\n\n return (\n <MessageContainer>\n <MessageDateSeparator message={message} prevMessage={rest.prevMessage} />\n {message.isAdminMessage() && messageComponent}\n {!message.isAdminMessage() && (\n <View\n style={[\n variantContainerStyle,\n conditionChaining(\n [groupWithNext, Boolean(rest.nextMessage)],\n [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage],\n ),\n ]}\n >\n {isOutgoing && (\n <View style={styles.outgoingContainer}>\n <MessageOutgoingStatus channel={channel} message={message} />\n <MessageTime message={message} grouping={groupWithNext} style={styles.timeOutgoing} />\n </View>\n )}\n {isIncoming && <MessageIncomingAvatar message={message} grouping={groupWithNext} />}\n <View style={styles.bubbleContainer}>\n {isIncoming && <MessageIncomingSenderName message={message} grouping={groupWithPrev} />}\n <View style={styles.bubbleWrapper}>\n {messageComponent}\n {isIncoming && <MessageTime message={message} grouping={groupWithNext} style={styles.timeIncoming} />}\n </View>\n </View>\n </View>\n )}\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n chatIncoming: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'flex-end',\n },\n chatOutgoing: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n timeIncoming: {\n marginLeft: 4,\n },\n timeOutgoing: {\n marginRight: 4,\n },\n chatGroup: {\n marginBottom: 2,\n },\n chatNonGroup: {\n marginBottom: 16,\n },\n chatLastMessage: {\n marginBottom: 16,\n },\n msgContainer: {\n maxWidth: 240,\n },\n bubbleContainer: {\n flexShrink: 1,\n },\n bubbleWrapper: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n },\n outgoingContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default React.memo(MessageRenderer);\n"],"mappings":"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"}
1
+ {"version":3,"names":["MessageRenderer","currentUserId","channel","message","onPress","onLongPress","rest","variant","isMyMessage","isOutgoing","isIncoming","variantContainerStyle","incoming","styles","chatIncoming","outgoing","chatOutgoing","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","enableMessageGrouping","prevMessage","nextMessage","messageComponent","useIIFE","pressableProps","style","msgContainer","disabled","delayLongPress","DEFAULT_LONG_PRESS_DELAY","messageProps","isUserMessage","pressed","isFileMessage","isAdminMessage","conditionChaining","chatGroup","chatNonGroup","chatLastMessage","outgoingContainer","timeOutgoing","bubbleContainer","bubbleWrapper","timeIncoming","createStyleSheet","flexDirection","justifyContent","alignItems","marginLeft","marginRight","marginBottom","maxWidth","flexShrink","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport { calcMessageGrouping, conditionChaining, isMyMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport AdminMessage from './AdminMessage';\nimport FileMessage from './FileMessage';\nimport MessageContainer from './MessageContainer';\nimport MessageDateSeparator from './MessageDateSeparator';\nimport MessageIncomingAvatar from './MessageIncomingAvatar';\nimport MessageIncomingSenderName from './MessageIncomingSenderName';\nimport MessageOutgoingStatus from './MessageOutgoingStatus';\nimport MessageTime from './MessageTime';\nimport UnknownMessage from './UnknownMessage';\nimport UserMessage from './UserMessage';\n\ntype MessageStyleVariant = 'outgoing' | 'incoming';\nexport interface MessageRendererInterface<T = SendbirdMessage> {\n message: T;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n variant: MessageStyleVariant;\n groupWithPrev: boolean;\n groupWithNext: boolean;\n pressed: boolean;\n}\n\nconst MessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n currentUserId,\n channel,\n message,\n onPress,\n onLongPress,\n ...rest\n}) => {\n const variant: MessageStyleVariant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';\n const isOutgoing = variant === 'outgoing';\n const isIncoming = variant === 'incoming';\n const variantContainerStyle = { incoming: styles.chatIncoming, outgoing: styles.chatOutgoing }[variant];\n\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(rest.enableMessageGrouping),\n message,\n rest.prevMessage,\n rest.nextMessage,\n );\n\n const messageComponent = useIIFE(() => {\n const pressableProps = {\n style: styles.msgContainer,\n disabled: !onPress && !onLongPress,\n onPress,\n onLongPress,\n delayLongPress: DEFAULT_LONG_PRESS_DELAY,\n };\n const messageProps = { ...rest, variant, groupWithNext, groupWithPrev };\n\n if (message.isUserMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <UserMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n }\n\n if (message.isFileMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <FileMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n }\n\n if (message.isAdminMessage()) {\n return <AdminMessage message={message} pressed={false} {...messageProps} />;\n }\n\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <UnknownMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n });\n\n return (\n <MessageContainer>\n <MessageDateSeparator message={message} prevMessage={rest.prevMessage} />\n {message.isAdminMessage() && messageComponent}\n {!message.isAdminMessage() && (\n <View\n style={[\n variantContainerStyle,\n conditionChaining(\n [groupWithNext, Boolean(rest.nextMessage)],\n [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage],\n ),\n ]}\n >\n {isOutgoing && (\n <View style={styles.outgoingContainer}>\n <MessageOutgoingStatus channel={channel} message={message} />\n <MessageTime message={message} grouping={groupWithNext} style={styles.timeOutgoing} />\n </View>\n )}\n {isIncoming && <MessageIncomingAvatar message={message} grouping={groupWithNext} />}\n <View style={styles.bubbleContainer}>\n {isIncoming && <MessageIncomingSenderName message={message} grouping={groupWithPrev} />}\n <View style={styles.bubbleWrapper}>\n {messageComponent}\n {isIncoming && <MessageTime message={message} grouping={groupWithNext} style={styles.timeIncoming} />}\n </View>\n </View>\n </View>\n )}\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n chatIncoming: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'flex-end',\n },\n chatOutgoing: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n timeIncoming: {\n marginLeft: 4,\n },\n timeOutgoing: {\n marginRight: 4,\n },\n chatGroup: {\n marginBottom: 2,\n },\n chatNonGroup: {\n marginBottom: 16,\n },\n chatLastMessage: {\n marginBottom: 16,\n },\n msgContainer: {\n maxWidth: 240,\n },\n bubbleContainer: {\n flexShrink: 1,\n },\n bubbleWrapper: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n },\n outgoingContainer: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'center',\n },\n});\n\nexport default React.memo(MessageRenderer);\n"],"mappings":"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"}
@@ -23,10 +23,10 @@ const TypedPlaceholder = _ref => {
23
23
  } = (0, _useContext.useLocalization)();
24
24
 
25
25
  switch (type) {
26
- case 'no-banned-members':
26
+ case 'no-banned-users':
27
27
  return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Placeholder, {
28
28
  icon: 'ban',
29
- message: STRINGS.PLACEHOLDER.NO_BANNED_MEMBERS
29
+ message: STRINGS.PLACEHOLDER.NO_BANNED_USERS
30
30
  });
31
31
 
32
32
  case 'no-channels':
@@ -1 +1 @@
1
- {"version":3,"names":["TypedPlaceholder","type","onPressRetry","STRINGS","useLocalization","PLACEHOLDER","NO_BANNED_MEMBERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","NO_USERS","ERROR","MESSAGE","RETRY_LABEL"],"sources":["TypedPlaceholder.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Placeholder } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n type:\n | 'no-banned-members'\n | 'no-channels'\n | 'no-messages'\n | 'no-users'\n | 'no-muted-members'\n | 'no-results-found'\n | 'error-wrong'\n | 'loading';\n onPressRetry?: () => void;\n};\nconst TypedPlaceholder = ({ type, onPressRetry }: Props) => {\n const { STRINGS } = useLocalization();\n switch (type) {\n case 'no-banned-members':\n return <Placeholder icon={'ban'} message={STRINGS.PLACEHOLDER.NO_BANNED_MEMBERS} />;\n case 'no-channels':\n return <Placeholder icon={'chat'} message={STRINGS.PLACEHOLDER.NO_CHANNELS} />;\n case 'no-messages':\n return <Placeholder icon={'message'} message={STRINGS.PLACEHOLDER.NO_MESSAGES} />;\n case 'no-muted-members':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS} />;\n case 'no-results-found':\n return <Placeholder icon={'search'} message={STRINGS.PLACEHOLDER.NO_RESULTS_FOUND} />;\n case 'no-users':\n return <Placeholder icon={'members'} message={STRINGS.PLACEHOLDER.NO_USERS} />;\n case 'error-wrong':\n return (\n <Placeholder\n icon={'error'}\n message={STRINGS.PLACEHOLDER.ERROR.MESSAGE}\n errorRetryLabel={STRINGS.PLACEHOLDER.ERROR.RETRY_LABEL}\n onPressRetry={onPressRetry}\n />\n );\n case 'loading':\n return <Placeholder loading icon={'spinner'} />;\n }\n};\n\nexport default TypedPlaceholder;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;AAcA,MAAMA,gBAAgB,GAAG,QAAmC;EAAA,IAAlC;IAAEC,IAAF;IAAQC;EAAR,CAAkC;EAC1D,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;;EACA,QAAQH,IAAR;IACE,KAAK,mBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,KAAnB;QAA0B,OAAO,EAAEE,OAAO,CAACE,WAAR,CAAoBC;MAAvD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEH,OAAO,CAACE,WAAR,CAAoBE;MAAxD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEJ,OAAO,CAACE,WAAR,CAAoBG;MAA3D,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEL,OAAO,CAACE,WAAR,CAAoBI;MAAxD,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,QAAnB;QAA6B,OAAO,EAAEN,OAAO,CAACE,WAAR,CAAoBK;MAA1D,EAAP;;IACF,KAAK,UAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEP,OAAO,CAACE,WAAR,CAAoBM;MAA3D,EAAP;;IACF,KAAK,aAAL;MACE,oBACE,6BAAC,uCAAD;QACE,IAAI,EAAE,OADR;QAEE,OAAO,EAAER,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BC,OAFrC;QAGE,eAAe,EAAEV,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BE,WAH7C;QAIE,YAAY,EAAEZ;MAJhB,EADF;;IAQF,KAAK,SAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,OAAO,MAApB;QAAqB,IAAI,EAAE;MAA3B,EAAP;EAvBJ;AAyBD,CA3BD;;eA6BeF,gB"}
1
+ {"version":3,"names":["TypedPlaceholder","type","onPressRetry","STRINGS","useLocalization","PLACEHOLDER","NO_BANNED_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","NO_USERS","ERROR","MESSAGE","RETRY_LABEL"],"sources":["TypedPlaceholder.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Placeholder } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n type:\n | 'no-muted-members'\n | 'no-banned-users'\n | 'no-channels'\n | 'no-messages'\n | 'no-users'\n | 'no-results-found'\n | 'error-wrong'\n | 'loading';\n onPressRetry?: () => void;\n};\nconst TypedPlaceholder = ({ type, onPressRetry }: Props) => {\n const { STRINGS } = useLocalization();\n switch (type) {\n case 'no-banned-users':\n return <Placeholder icon={'ban'} message={STRINGS.PLACEHOLDER.NO_BANNED_USERS} />;\n case 'no-channels':\n return <Placeholder icon={'chat'} message={STRINGS.PLACEHOLDER.NO_CHANNELS} />;\n case 'no-messages':\n return <Placeholder icon={'message'} message={STRINGS.PLACEHOLDER.NO_MESSAGES} />;\n case 'no-muted-members':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS} />;\n case 'no-results-found':\n return <Placeholder icon={'search'} message={STRINGS.PLACEHOLDER.NO_RESULTS_FOUND} />;\n case 'no-users':\n return <Placeholder icon={'members'} message={STRINGS.PLACEHOLDER.NO_USERS} />;\n case 'error-wrong':\n return (\n <Placeholder\n icon={'error'}\n message={STRINGS.PLACEHOLDER.ERROR.MESSAGE}\n errorRetryLabel={STRINGS.PLACEHOLDER.ERROR.RETRY_LABEL}\n onPressRetry={onPressRetry}\n />\n );\n case 'loading':\n return <Placeholder loading icon={'spinner'} />;\n }\n};\n\nexport default TypedPlaceholder;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;AAcA,MAAMA,gBAAgB,GAAG,QAAmC;EAAA,IAAlC;IAAEC,IAAF;IAAQC;EAAR,CAAkC;EAC1D,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;;EACA,QAAQH,IAAR;IACE,KAAK,iBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,KAAnB;QAA0B,OAAO,EAAEE,OAAO,CAACE,WAAR,CAAoBC;MAAvD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEH,OAAO,CAACE,WAAR,CAAoBE;MAAxD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEJ,OAAO,CAACE,WAAR,CAAoBG;MAA3D,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEL,OAAO,CAACE,WAAR,CAAoBI;MAAxD,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,QAAnB;QAA6B,OAAO,EAAEN,OAAO,CAACE,WAAR,CAAoBK;MAA1D,EAAP;;IACF,KAAK,UAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEP,OAAO,CAACE,WAAR,CAAoBM;MAA3D,EAAP;;IACF,KAAK,aAAL;MACE,oBACE,6BAAC,uCAAD;QACE,IAAI,EAAE,OADR;QAEE,OAAO,EAAER,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BC,OAFrC;QAGE,eAAe,EAAEV,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BE,WAH7C;QAIE,YAAY,EAAEZ;MAJhB,EADF;;IAQF,KAAK,SAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,OAAO,MAApB;QAAqB,IAAI,EAAE;MAA3B,EAAP;EAvBJ;AAyBD,CA3BD;;eA6BeF,gB"}
@@ -125,29 +125,15 @@ const GroupChannelPreviewContainer = _ref => {
125
125
 
126
126
  return undefined;
127
127
  });
128
- const customCover = (0, _uikitUtils.useIIFE)(() => {
129
- if (channel.isBroadcast) {
130
- return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
131
- icon: 'broadcast',
132
- size: 32,
133
- color: colors.onBackgroundReverse01,
134
- containerStyle: [styles.broadcastCover, {
135
- backgroundColor: colors.secondary
136
- }]
137
- });
138
- }
139
-
140
- return /*#__PURE__*/_react.default.createElement(_ChannelCover.default, {
141
- channel: channel,
142
- size: 56
143
- });
144
- });
145
128
  return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
146
129
  delayLongPress: _constants.DEFAULT_LONG_PRESS_DELAY,
147
130
  onPress: onPress,
148
131
  onLongPress: onLongPress
149
132
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.GroupChannelPreview, {
150
- customCover: customCover,
133
+ customCover: /*#__PURE__*/_react.default.createElement(_ChannelCover.default, {
134
+ channel: channel,
135
+ size: 56
136
+ }),
151
137
  coverUrl: channel.coverUrl,
152
138
  title: STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE((currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ?? '', channel),
153
139
  titleCaptionLeft: titleCaptionIcon,
@@ -1 +1 @@
1
- {"version":3,"names":["iconMapper","audio","image","video","file","GroupChannelPreviewContainer","onPress","onLongPress","channel","currentUser","sdk","features","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","typingUsers","setTypingUsers","useState","channelListTypingIndicatorEnabled","typingId","useUniqId","useChannelHandler","onTypingStatusUpdated","eventChannel","isDifferentChannel","getTypingUsers","outgoingStatus","useMessageOutgoingStatus","lastMessage","bodyText","useIIFE","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","bodyIcon","isFileMessage","undefined","getFileType","type","getFileExtension","name","titleCaptionIcon","channelListMessageReceiptStatusEnabled","isMyMessage","userId","styles","error","onBackground03","secondary","customCover","isBroadcast","onBackgroundReverse01","broadcastCover","backgroundColor","DEFAULT_LONG_PRESS_DELAY","coverUrl","CHANNEL_PREVIEW_TITLE","CHANNEL_PREVIEW_TITLE_CAPTION","unreadMessageCount","memberCount","isFrozen","myPushTriggerOption","createStyleSheet","marginRight","padding","borderRadius"],"sources":["GroupChannelPreviewContainer.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Pressable } from 'react-native';\n\nimport { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport {\n GroupChannelPreview,\n Icon,\n LoadingSpinner,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdGroupChannel,\n SendbirdUser,\n getFileExtension,\n getFileType,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../components/ChannelCover';\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, features } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n if (features.channelListTypingIndicatorEnabled) {\n const typingId = useUniqId('GroupChannelPreviewContainer');\n useChannelHandler(sdk, `GroupChannelPreviewContainer_TypingIndicator_${typingId}`, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n }\n\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);\n\n const bodyText = useIIFE(() => {\n if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';\n else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);\n });\n\n const bodyIcon = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage) return undefined;\n if (!features.channelListMessageReceiptStatusEnabled) return undefined;\n if (!isMyMessage(channel.lastMessage, currentUser?.userId)) return undefined;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={16} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={16} color={colors.error} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={16} color={colors.onBackground03} containerStyle={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'DELIVERED' || outgoingStatus === 'UNREAD') {\n return <Icon icon={'done-all'} size={16} color={colors.onBackground03} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={16} color={colors.secondary} style={styles.titleCaptionIcon} />;\n }\n\n return undefined;\n });\n\n const customCover = useIIFE(() => {\n if (channel.isBroadcast) {\n return (\n <Icon\n icon={'broadcast'}\n size={32}\n color={colors.onBackgroundReverse01}\n containerStyle={[styles.broadcastCover, { backgroundColor: colors.secondary }]}\n />\n );\n }\n return <ChannelCover channel={channel} size={56} />;\n });\n\n return (\n <Pressable delayLongPress={DEFAULT_LONG_PRESS_DELAY} onPress={onPress} onLongPress={onLongPress}>\n <GroupChannelPreview\n customCover={customCover}\n coverUrl={channel.coverUrl}\n title={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(currentUser?.userId ?? '', channel)}\n titleCaptionLeft={titleCaptionIcon}\n titleCaption={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel)}\n body={bodyText}\n bodyIcon={bodyIcon}\n badgeCount={channel.unreadMessageCount}\n memberCount={channel.memberCount > 2 ? channel.memberCount : undefined}\n frozen={channel.isFrozen}\n broadcast={channel.isBroadcast}\n notificationOff={channel.myPushTriggerOption === 'off'}\n />\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n titleCaptionIcon: {\n marginRight: 4,\n },\n broadcastCover: {\n padding: 12,\n borderRadius: 28,\n },\n});\n\nexport default GroupChannelPreviewContainer;\n"],"mappings":"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"}
1
+ {"version":3,"names":["iconMapper","audio","image","video","file","GroupChannelPreviewContainer","onPress","onLongPress","channel","currentUser","sdk","features","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","typingUsers","setTypingUsers","useState","channelListTypingIndicatorEnabled","typingId","useUniqId","useChannelHandler","onTypingStatusUpdated","eventChannel","isDifferentChannel","getTypingUsers","outgoingStatus","useMessageOutgoingStatus","lastMessage","bodyText","useIIFE","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","bodyIcon","isFileMessage","undefined","getFileType","type","getFileExtension","name","titleCaptionIcon","channelListMessageReceiptStatusEnabled","isMyMessage","userId","styles","error","onBackground03","secondary","DEFAULT_LONG_PRESS_DELAY","coverUrl","CHANNEL_PREVIEW_TITLE","CHANNEL_PREVIEW_TITLE_CAPTION","unreadMessageCount","memberCount","isFrozen","isBroadcast","myPushTriggerOption","createStyleSheet","marginRight","broadcastCover","padding","borderRadius"],"sources":["GroupChannelPreviewContainer.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Pressable } from 'react-native';\n\nimport { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport {\n GroupChannelPreview,\n Icon,\n LoadingSpinner,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdGroupChannel,\n SendbirdUser,\n getFileExtension,\n getFileType,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../components/ChannelCover';\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, features } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n if (features.channelListTypingIndicatorEnabled) {\n const typingId = useUniqId('GroupChannelPreviewContainer');\n useChannelHandler(sdk, `GroupChannelPreviewContainer_TypingIndicator_${typingId}`, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n }\n\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);\n\n const bodyText = useIIFE(() => {\n if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';\n else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);\n });\n\n const bodyIcon = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage) return undefined;\n if (!features.channelListMessageReceiptStatusEnabled) return undefined;\n if (!isMyMessage(channel.lastMessage, currentUser?.userId)) return undefined;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={16} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={16} color={colors.error} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={16} color={colors.onBackground03} containerStyle={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'DELIVERED' || outgoingStatus === 'UNREAD') {\n return <Icon icon={'done-all'} size={16} color={colors.onBackground03} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={16} color={colors.secondary} style={styles.titleCaptionIcon} />;\n }\n\n return undefined;\n });\n\n return (\n <Pressable delayLongPress={DEFAULT_LONG_PRESS_DELAY} onPress={onPress} onLongPress={onLongPress}>\n <GroupChannelPreview\n customCover={<ChannelCover channel={channel} size={56} />}\n coverUrl={channel.coverUrl}\n title={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(currentUser?.userId ?? '', channel)}\n titleCaptionLeft={titleCaptionIcon}\n titleCaption={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel)}\n body={bodyText}\n bodyIcon={bodyIcon}\n badgeCount={channel.unreadMessageCount}\n memberCount={channel.memberCount > 2 ? channel.memberCount : undefined}\n frozen={channel.isFrozen}\n broadcast={channel.isBroadcast}\n notificationOff={channel.myPushTriggerOption === 'off'}\n />\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n titleCaptionIcon: {\n marginRight: 4,\n },\n broadcastCover: {\n padding: 12,\n borderRadius: 28,\n },\n});\n\nexport default GroupChannelPreviewContainer;\n"],"mappings":"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"}
@@ -23,10 +23,10 @@ var _LocalizationCtx = require("../contexts/LocalizationCtx");
23
23
 
24
24
  var _PlatformServiceCtx = require("../contexts/PlatformServiceCtx");
25
25
 
26
- var _ProfileCardCtx = require("../contexts/ProfileCardCtx");
27
-
28
26
  var _SendbirdChatCtx = require("../contexts/SendbirdChatCtx");
29
27
 
28
+ var _UserProfileCtx = require("../contexts/UserProfileCtx");
29
+
30
30
  var _useContext = require("../hooks/useContext");
31
31
 
32
32
  var _InternalLocalCacheStorage = _interopRequireDefault(require("../libs/InternalLocalCacheStorage"));
@@ -62,7 +62,7 @@ const SendbirdUIKitContainer = _ref => {
62
62
  localization,
63
63
  styles,
64
64
  toast,
65
- profileCard,
65
+ userProfile,
66
66
  errorBoundary
67
67
  } = _ref;
68
68
  const unsubscribes = (0, _react.useRef)([]).current;
@@ -124,7 +124,8 @@ const SendbirdUIKitContainer = _ref => {
124
124
  sdkInstance: sdkInstance,
125
125
  enableAutoPushTokenRegistration: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableAutoPushTokenRegistration) ?? true,
126
126
  enableChannelListTypingIndicator: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableChannelListTypingIndicator) ?? false,
127
- enableChannelListMessageReceiptStatus: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableChannelListMessageReceiptStatus) ?? false
127
+ enableChannelListMessageReceiptStatus: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableChannelListMessageReceiptStatus) ?? false,
128
+ enableUseUserIdForNickname: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableUseUserIdForNickname) ?? false
128
129
  }, /*#__PURE__*/_react.default.createElement(_LocalizationCtx.LocalizationProvider, {
129
130
  stringSet: (localization === null || localization === void 0 ? void 0 : localization.stringSet) ?? _StringSet.default
130
131
  }, /*#__PURE__*/_react.default.createElement(_PlatformServiceCtx.PlatformServiceProvider, {
@@ -140,9 +141,9 @@ const SendbirdUIKitContainer = _ref => {
140
141
  statusBarTranslucent: (styles === null || styles === void 0 ? void 0 : styles.statusBarTranslucent) ?? true
141
142
  }, /*#__PURE__*/_react.default.createElement(LocalizedDialogProvider, null, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ToastProvider, {
142
143
  dismissTimeout: toast === null || toast === void 0 ? void 0 : toast.dismissTimeout
143
- }, /*#__PURE__*/_react.default.createElement(_ProfileCardCtx.ProfileCardProvider, {
144
- onCreateChannel: profileCard === null || profileCard === void 0 ? void 0 : profileCard.onCreateChannel,
145
- onBeforeCreateChannel: profileCard === null || profileCard === void 0 ? void 0 : profileCard.onBeforeCreateChannel
144
+ }, /*#__PURE__*/_react.default.createElement(_UserProfileCtx.UserProfileProvider, {
145
+ onCreateChannel: userProfile === null || userProfile === void 0 ? void 0 : userProfile.onCreateChannel,
146
+ onBeforeCreateChannel: userProfile === null || userProfile === void 0 ? void 0 : userProfile.onBeforeCreateChannel
146
147
  }, /*#__PURE__*/_react.default.createElement(_InternalErrorBoundaryContainer.default, errorBoundary, children))))))))));
147
148
  };
148
149
 
@@ -1 +1 @@
1
- {"version":3,"names":["NetInfo","SBUDynamicModule","get","SendbirdUIKit","Object","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","SendbirdUIKitContainer","children","appId","chatOptions","platformServices","localization","styles","toast","profileCard","errorBoundary","unsubscribes","useRef","current","getSendbirdSDK","sdk","Sendbird","init","modules","GroupChannelModule","OpenChannelModule","localCacheEnabled","Boolean","localCacheStorage","useAsyncStorageStore","InternalLocalCacheStorage","undefined","onInitialized","addExtension","addEventListener","listener","callback","callbackType","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","sdkInstance","setSdkInstance","useState","useEffect","forEach","u","enableAutoPushTokenRegistration","enableChannelListTypingIndicator","enableChannelListMessageReceiptStatus","stringSet","StringSetEn","file","notification","clipboard","media","theme","LightUIKitTheme","HeaderComponent","Header","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","onCreateChannel","onBeforeCreateChannel","LocalizedDialogProvider","STRINGS","useLocalization","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\n\nimport { LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ProfileCardProvider } from '../contexts/ProfileCardCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { useLocalization } from '../hooks/useContext';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\n\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n});\n\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media?: MediaServiceInterface;\n };\n chatOptions?: {\n localCacheStorage?: LocalCacheStorage;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n enableAutoPushTokenRegistration?: boolean;\n enableChannelListTypingIndicator?: boolean;\n enableChannelListMessageReceiptStatus?: boolean;\n };\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n toast?: {\n dismissTimeout?: number;\n };\n profileCard?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n errorBoundary?: {\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n platformServices,\n localization,\n styles,\n toast,\n profileCard,\n errorBoundary,\n}: SendbirdUIKitContainerProps) => {\n const unsubscribes = useRef<(() => void)[]>([]).current;\n const getSendbirdSDK = () => {\n let sdk: SendbirdChatSDK;\n\n sdk = Sendbird.init({\n appId,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(chatOptions?.localCacheStorage),\n // @ts-ignore\n useAsyncStorageStore: chatOptions?.localCacheStorage\n ? new InternalLocalCacheStorage(chatOptions.localCacheStorage)\n : undefined,\n });\n\n if (chatOptions?.onInitialized) {\n sdk = chatOptions?.onInitialized(sdk);\n }\n\n if (SendbirdUIKit.VERSION) {\n sdk.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n sdk.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n sdk.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n sdk.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return sdk;\n };\n\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(getSendbirdSDK);\n\n useEffect(() => {\n setSdkInstance(getSendbirdSDK);\n return () => {\n unsubscribes.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, chatOptions?.localCacheStorage]);\n\n return (\n <SafeAreaProvider>\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n enableAutoPushTokenRegistration={chatOptions?.enableAutoPushTokenRegistration ?? true}\n enableChannelListTypingIndicator={chatOptions?.enableChannelListTypingIndicator ?? false}\n enableChannelListMessageReceiptStatus={chatOptions?.enableChannelListMessageReceiptStatus ?? false}\n >\n <LocalizationProvider stringSet={localization?.stringSet ?? StringSetEn}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <LocalizedDialogProvider>\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <ProfileCardProvider\n onCreateChannel={profileCard?.onCreateChannel}\n onBeforeCreateChannel={profileCard?.onBeforeCreateChannel}\n >\n <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>\n </ProfileCardProvider>\n </ToastProvider>\n </LocalizedDialogProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </SafeAreaProvider>\n );\n};\n\nconst LocalizedDialogProvider = ({ children }: React.PropsWithChildren) => {\n const { STRINGS } = useLocalization();\n return (\n <DialogProvider\n defaultLabels={{\n alert: {\n ok: STRINGS.DIALOG.ALERT_DEFAULT_OK,\n },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {children}\n </DialogProvider>\n );\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
1
+ {"version":3,"names":["NetInfo","SBUDynamicModule","get","SendbirdUIKit","Object","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","SendbirdUIKitContainer","children","appId","chatOptions","platformServices","localization","styles","toast","userProfile","errorBoundary","unsubscribes","useRef","current","getSendbirdSDK","sdk","Sendbird","init","modules","GroupChannelModule","OpenChannelModule","localCacheEnabled","Boolean","localCacheStorage","useAsyncStorageStore","InternalLocalCacheStorage","undefined","onInitialized","addExtension","addEventListener","listener","callback","callbackType","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","sdkInstance","setSdkInstance","useState","useEffect","forEach","u","enableAutoPushTokenRegistration","enableChannelListTypingIndicator","enableChannelListMessageReceiptStatus","enableUseUserIdForNickname","stringSet","StringSetEn","file","notification","clipboard","media","theme","LightUIKitTheme","HeaderComponent","Header","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","onCreateChannel","onBeforeCreateChannel","LocalizedDialogProvider","STRINGS","useLocalization","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport type {\n SendbirdBaseChannel,\n SendbirdChatSDK,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\n\nimport { LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport type { UIKitFeaturesInSendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport { useLocalization } from '../hooks/useContext';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\n\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n});\n\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media?: MediaServiceInterface;\n };\n chatOptions?: {\n localCacheStorage?: LocalCacheStorage;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<UIKitFeaturesInSendbirdChatContext>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdBaseChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n errorBoundary?: {\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n platformServices,\n localization,\n styles,\n toast,\n userProfile,\n errorBoundary,\n}: SendbirdUIKitContainerProps) => {\n const unsubscribes = useRef<(() => void)[]>([]).current;\n const getSendbirdSDK = () => {\n let sdk: SendbirdChatSDK;\n\n sdk = Sendbird.init({\n appId,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(chatOptions?.localCacheStorage),\n // @ts-ignore\n useAsyncStorageStore: chatOptions?.localCacheStorage\n ? new InternalLocalCacheStorage(chatOptions.localCacheStorage)\n : undefined,\n });\n\n if (chatOptions?.onInitialized) {\n sdk = chatOptions?.onInitialized(sdk);\n }\n\n if (SendbirdUIKit.VERSION) {\n sdk.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n sdk.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n sdk.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n sdk.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return sdk;\n };\n\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(getSendbirdSDK);\n\n useEffect(() => {\n setSdkInstance(getSendbirdSDK);\n return () => {\n unsubscribes.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, chatOptions?.localCacheStorage]);\n\n return (\n <SafeAreaProvider>\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n enableAutoPushTokenRegistration={chatOptions?.enableAutoPushTokenRegistration ?? true}\n enableChannelListTypingIndicator={chatOptions?.enableChannelListTypingIndicator ?? false}\n enableChannelListMessageReceiptStatus={chatOptions?.enableChannelListMessageReceiptStatus ?? false}\n enableUseUserIdForNickname={chatOptions?.enableUseUserIdForNickname ?? false}\n >\n <LocalizationProvider stringSet={localization?.stringSet ?? StringSetEn}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <LocalizedDialogProvider>\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider\n onCreateChannel={userProfile?.onCreateChannel}\n onBeforeCreateChannel={userProfile?.onBeforeCreateChannel}\n >\n <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>\n </UserProfileProvider>\n </ToastProvider>\n </LocalizedDialogProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </SafeAreaProvider>\n );\n};\n\nconst LocalizedDialogProvider = ({ children }: React.PropsWithChildren) => {\n const { STRINGS } = useLocalization();\n return (\n <DialogProvider\n defaultLabels={{\n alert: {\n ok: STRINGS.DIALOG.ALERT_DEFAULT_OK,\n },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {children}\n </DialogProvider>\n );\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
@@ -27,7 +27,8 @@ const SendbirdChatProvider = _ref => {
27
27
  sdkInstance,
28
28
  enableAutoPushTokenRegistration,
29
29
  enableChannelListMessageReceiptStatus,
30
- enableChannelListTypingIndicator
30
+ enableChannelListTypingIndicator,
31
+ enableUseUserIdForNickname
31
32
  } = _ref;
32
33
  const [currentUser, _setCurrentUser] = (0, _react.useState)();
33
34
  const forceUpdate = (0, _uikitUtils.useForceUpdate)();
@@ -79,7 +80,8 @@ const SendbirdChatProvider = _ref => {
79
80
  features: { ...appFeatures,
80
81
  autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,
81
82
  channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,
82
- channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus
83
+ channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,
84
+ useUserIdForNicknameEnabled: enableUseUserIdForNickname
83
85
  }
84
86
  };
85
87
  return /*#__PURE__*/_react.default.createElement(SendbirdChatContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["SendbirdChatContext","React","createContext","SendbirdChatProvider","children","sdkInstance","enableAutoPushTokenRegistration","enableChannelListMessageReceiptStatus","enableChannelListTypingIndicator","currentUser","_setCurrentUser","useState","forceUpdate","useForceUpdate","appFeatures","useAppFeatures","setCurrentUser","useCallback","user","updateCurrentUserInfo","nickname","profile","Error","params","profileUrl","profileImage","markAsDeliveredWithChannel","channel","deliveryReceiptEnabled","confirmAndMarkAsDelivered","useEffect","listener","status","connectionState","setForegroundState","setBackgroundState","subscriber","AppState","addEventListener","remove","value","sdk","features","autoPushTokenRegistrationEnabled","channelListTypingIndicatorEnabled","channelListMessageReceiptStatusEnabled"],"sources":["SendbirdChatCtx.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { AppState, AppStateStatus } from 'react-native';\n\nimport { useAppFeatures } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdUser,\n SendbirdUserUpdateParams,\n} from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../platform/types';\n\ntype Props = React.PropsWithChildren<{\n sdkInstance: SendbirdChatSDK;\n\n enableAutoPushTokenRegistration: boolean;\n enableChannelListTypingIndicator: boolean;\n enableChannelListMessageReceiptStatus: boolean;\n}>;\n\ntype Context = {\n sdk: SendbirdChatSDK;\n currentUser?: SendbirdUser;\n setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;\n\n // helper functions\n updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise<SendbirdUser>;\n markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;\n\n features: {\n // UIKit features\n autoPushTokenRegistrationEnabled: boolean;\n channelListTypingIndicatorEnabled: boolean;\n channelListMessageReceiptStatusEnabled: boolean;\n\n // Sendbird application features\n deliveryReceiptEnabled: boolean;\n broadcastChannelEnabled: boolean;\n superGroupChannelEnabled: boolean;\n reactionEnabled: boolean;\n };\n};\n\nexport const SendbirdChatContext = React.createContext<Context | null>(null);\nexport const SendbirdChatProvider = ({\n children,\n sdkInstance,\n enableAutoPushTokenRegistration,\n enableChannelListMessageReceiptStatus,\n enableChannelListTypingIndicator,\n}: Props) => {\n const [currentUser, _setCurrentUser] = useState<SendbirdUser>();\n const forceUpdate = useForceUpdate();\n const appFeatures = useAppFeatures(sdkInstance);\n\n const setCurrentUser: Context['setCurrentUser'] = useCallback((user) => {\n // NOTE: Sendbird SDK handle User object is always same object, so force update after setCurrentUser\n _setCurrentUser(user);\n forceUpdate();\n }, []);\n\n const updateCurrentUserInfo: Context['updateCurrentUserInfo'] = useCallback(\n async (nickname, profile) => {\n let user = currentUser;\n\n if (!user) throw new Error('Current user is not defined, please connect using `useConnection()` hook first');\n\n const params: SendbirdUserUpdateParams = { nickname };\n\n if (typeof profile === 'string') {\n params.profileUrl = profile;\n } else if (typeof profile === 'object') {\n params.profileImage = profile;\n } else {\n throw new Error(`Cannot update profile, not supported profile type(${typeof profile})`);\n }\n\n user = await sdkInstance.updateCurrentUserInfo(params);\n\n setCurrentUser(user);\n return user;\n },\n [sdkInstance, currentUser, setCurrentUser],\n );\n\n const markAsDeliveredWithChannel: Context['markAsDeliveredWithChannel'] = useCallback(\n (channel: SendbirdGroupChannel) => {\n if (appFeatures.deliveryReceiptEnabled) confirmAndMarkAsDelivered([channel]);\n },\n [sdkInstance, appFeatures.deliveryReceiptEnabled],\n );\n\n useEffect(() => {\n const listener = (status: AppStateStatus) => {\n // 'active' | 'background' | 'inactive' | 'unknown' | 'extension';\n if (status === 'active') sdkInstance.connectionState === 'CLOSED' && sdkInstance.setForegroundState();\n else if (status === 'background') sdkInstance.connectionState === 'OPEN' && sdkInstance.setBackgroundState();\n };\n\n const subscriber = AppState.addEventListener('change', listener);\n return () => subscriber.remove();\n }, [sdkInstance]);\n\n const value: Context = {\n sdk: sdkInstance,\n currentUser,\n setCurrentUser,\n\n updateCurrentUserInfo,\n markAsDeliveredWithChannel,\n\n features: {\n ...appFeatures,\n autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,\n channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,\n channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,\n },\n };\n\n return <SendbirdChatContext.Provider value={value}>{children}</SendbirdChatContext.Provider>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["SendbirdChatContext","React","createContext","SendbirdChatProvider","children","sdkInstance","enableAutoPushTokenRegistration","enableChannelListMessageReceiptStatus","enableChannelListTypingIndicator","enableUseUserIdForNickname","currentUser","_setCurrentUser","useState","forceUpdate","useForceUpdate","appFeatures","useAppFeatures","setCurrentUser","useCallback","user","updateCurrentUserInfo","nickname","profile","Error","params","profileUrl","profileImage","markAsDeliveredWithChannel","channel","deliveryReceiptEnabled","confirmAndMarkAsDelivered","useEffect","listener","status","connectionState","setForegroundState","setBackgroundState","subscriber","AppState","addEventListener","remove","value","sdk","features","autoPushTokenRegistrationEnabled","channelListTypingIndicatorEnabled","channelListMessageReceiptStatusEnabled","useUserIdForNicknameEnabled"],"sources":["SendbirdChatCtx.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { AppState, AppStateStatus } from 'react-native';\n\nimport { useAppFeatures } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdUser,\n SendbirdUserUpdateParams,\n} from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../platform/types';\n\nexport interface UIKitFeaturesInSendbirdChatContext {\n enableAutoPushTokenRegistration: boolean;\n enableChannelListTypingIndicator: boolean;\n enableChannelListMessageReceiptStatus: boolean;\n enableUseUserIdForNickname: boolean;\n}\n\ninterface Props extends UIKitFeaturesInSendbirdChatContext, React.PropsWithChildren {\n sdkInstance: SendbirdChatSDK;\n}\n\ntype Context = {\n sdk: SendbirdChatSDK;\n currentUser?: SendbirdUser;\n setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;\n\n // helper functions\n updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise<SendbirdUser>;\n markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;\n\n features: {\n // UIKit features\n autoPushTokenRegistrationEnabled: boolean;\n channelListTypingIndicatorEnabled: boolean;\n channelListMessageReceiptStatusEnabled: boolean;\n useUserIdForNicknameEnabled: boolean;\n\n // Sendbird application features\n deliveryReceiptEnabled: boolean;\n broadcastChannelEnabled: boolean;\n superGroupChannelEnabled: boolean;\n reactionEnabled: boolean;\n };\n};\n\nexport const SendbirdChatContext = React.createContext<Context | null>(null);\nexport const SendbirdChatProvider = ({\n children,\n sdkInstance,\n enableAutoPushTokenRegistration,\n enableChannelListMessageReceiptStatus,\n enableChannelListTypingIndicator,\n enableUseUserIdForNickname,\n}: Props) => {\n const [currentUser, _setCurrentUser] = useState<SendbirdUser>();\n const forceUpdate = useForceUpdate();\n const appFeatures = useAppFeatures(sdkInstance);\n\n const setCurrentUser: Context['setCurrentUser'] = useCallback((user) => {\n // NOTE: Sendbird SDK handle User object is always same object, so force update after setCurrentUser\n _setCurrentUser(user);\n forceUpdate();\n }, []);\n\n const updateCurrentUserInfo: Context['updateCurrentUserInfo'] = useCallback(\n async (nickname, profile) => {\n let user = currentUser;\n\n if (!user) throw new Error('Current user is not defined, please connect using `useConnection()` hook first');\n\n const params: SendbirdUserUpdateParams = { nickname };\n\n if (typeof profile === 'string') {\n params.profileUrl = profile;\n } else if (typeof profile === 'object') {\n params.profileImage = profile;\n } else {\n throw new Error(`Cannot update profile, not supported profile type(${typeof profile})`);\n }\n\n user = await sdkInstance.updateCurrentUserInfo(params);\n\n setCurrentUser(user);\n return user;\n },\n [sdkInstance, currentUser, setCurrentUser],\n );\n\n const markAsDeliveredWithChannel: Context['markAsDeliveredWithChannel'] = useCallback(\n (channel: SendbirdGroupChannel) => {\n if (appFeatures.deliveryReceiptEnabled) confirmAndMarkAsDelivered([channel]);\n },\n [sdkInstance, appFeatures.deliveryReceiptEnabled],\n );\n\n useEffect(() => {\n const listener = (status: AppStateStatus) => {\n // 'active' | 'background' | 'inactive' | 'unknown' | 'extension';\n if (status === 'active') sdkInstance.connectionState === 'CLOSED' && sdkInstance.setForegroundState();\n else if (status === 'background') sdkInstance.connectionState === 'OPEN' && sdkInstance.setBackgroundState();\n };\n\n const subscriber = AppState.addEventListener('change', listener);\n return () => subscriber.remove();\n }, [sdkInstance]);\n\n const value: Context = {\n sdk: sdkInstance,\n currentUser,\n setCurrentUser,\n\n updateCurrentUserInfo,\n markAsDeliveredWithChannel,\n\n features: {\n ...appFeatures,\n autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,\n channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,\n channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,\n useUserIdForNicknameEnabled: enableUseUserIdForNickname,\n },\n };\n\n return <SendbirdChatContext.Provider value={value}>{children}</SendbirdChatContext.Provider>;\n};\n"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ProfileCardProvider = exports.ProfileCardContext = void 0;
6
+ exports.UserProfileProvider = exports.UserProfileContext = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
@@ -21,11 +21,11 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
- const ProfileCardContext = /*#__PURE__*/_react.default.createContext(null);
24
+ const UserProfileContext = /*#__PURE__*/_react.default.createContext(null);
25
25
 
26
- exports.ProfileCardContext = ProfileCardContext;
26
+ exports.UserProfileContext = UserProfileContext;
27
27
 
28
- const ProfileCardProvider = _ref => {
28
+ const UserProfileProvider = _ref => {
29
29
  let {
30
30
  children,
31
31
  onCreateChannel,
@@ -33,6 +33,8 @@ const ProfileCardProvider = _ref => {
33
33
  } = _ref;
34
34
  const chatContext = (0, _react.useContext)(_SendbirdChatCtx.SendbirdChatContext);
35
35
  const localizationContext = (0, _react.useContext)(_LocalizationCtx.LocalizationContext);
36
+ if (!chatContext) throw new Error('SendbirdChatContext is not provided');
37
+ if (!localizationContext) throw new Error('LocalizationContext is not provided');
36
38
  const {
37
39
  bottom,
38
40
  left,
@@ -40,19 +42,14 @@ const ProfileCardProvider = _ref => {
40
42
  } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
41
43
  const [user, setUser] = (0, _react.useState)();
42
44
  const [visible, setVisible] = (0, _react.useState)(false);
43
-
44
- const show = user => {
45
+ const show = (0, _react.useCallback)(user => {
45
46
  setUser(user);
46
47
  setVisible(true);
47
- };
48
-
49
- const hide = () => {
48
+ }, []);
49
+ const hide = (0, _react.useCallback)(() => {
50
50
  setVisible(false);
51
- };
52
-
53
- if (!chatContext) throw new Error('SendbirdChatContext is not provided');
54
- if (!localizationContext) throw new Error('LocalizationContext is not provided');
55
- const profileCardButton = (0, _uikitUtils.useIIFE)(() => {
51
+ }, []);
52
+ const userProfileButton = (0, _uikitUtils.useIIFE)(() => {
56
53
  const isMe = chatContext.currentUser && (user === null || user === void 0 ? void 0 : user.userId) === chatContext.currentUser.userId;
57
54
  if (isMe) return undefined;
58
55
 
@@ -72,7 +69,7 @@ const ProfileCardProvider = _ref => {
72
69
  if (onCreateChannel) {
73
70
  onCreateChannel(channel);
74
71
  } else {
75
- _uikitUtils.Logger.warn('Please set `onCreateChannel` before message to user from profile card, see `profileCard` prop in the `SendbirdUIKitContainer` props');
72
+ _uikitUtils.Logger.warn('Please set `onCreateChannel` before message to user from profile card, see `userProfile` prop in the `SendbirdUIKitContainer` props');
76
73
  }
77
74
  }
78
75
  };
@@ -81,7 +78,7 @@ const ProfileCardProvider = _ref => {
81
78
  onPress: onPressMessageButton
82
79
  }, localizationContext.STRINGS.PROFILE_CARD.BUTTON_MESSAGE);
83
80
  });
84
- return /*#__PURE__*/_react.default.createElement(ProfileCardContext.Provider, {
81
+ return /*#__PURE__*/_react.default.createElement(UserProfileContext.Provider, {
85
82
  value: {
86
83
  show,
87
84
  hide
@@ -102,11 +99,11 @@ const ProfileCardProvider = _ref => {
102
99
  username: user.nickname || localizationContext.STRINGS.LABELS.USER_NO_NAME,
103
100
  bodyLabel: localizationContext.STRINGS.PROFILE_CARD.BODY_LABEL,
104
101
  body: localizationContext.STRINGS.PROFILE_CARD.BODY(user),
105
- button: profileCardButton
102
+ button: userProfileButton
106
103
  })));
107
104
  };
108
105
 
109
- exports.ProfileCardProvider = ProfileCardProvider;
106
+ exports.UserProfileProvider = UserProfileProvider;
110
107
  const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
111
108
  modal: {
112
109
  justifyContent: 'flex-end'
@@ -116,4 +113,4 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
116
113
  borderTopRightRadius: 8
117
114
  }
118
115
  });
119
- //# sourceMappingURL=ProfileCardCtx.js.map
116
+ //# sourceMappingURL=UserProfileCtx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UserProfileContext","React","createContext","UserProfileProvider","children","onCreateChannel","onBeforeCreateChannel","PASS","chatContext","useContext","SendbirdChatContext","localizationContext","LocalizationContext","Error","bottom","left","right","useSafeAreaInsets","user","setUser","useState","visible","setVisible","show","useCallback","hide","userProfileButton","useIIFE","isMe","currentUser","userId","undefined","onPressMessageButton","params","invitedUserIds","name","coverUrl","isDistinct","operatorUserIds","processedParams","channel","sdk","groupChannel","createChannel","Logger","warn","STRINGS","PROFILE_CARD","BUTTON_MESSAGE","Boolean","styles","modal","profileCardContainer","paddingLeft","paddingRight","paddingBottom","profileUrl","nickname","LABELS","USER_NO_NAME","BODY_LABEL","BODY","createStyleSheet","justifyContent","borderTopLeftRadius","borderTopRightRadius"],"sources":["UserProfileCtx.tsx"],"sourcesContent":["import React, { useCallback, useContext, useState } from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { Modal, OutlinedButton, ProfileCard, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type {\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { Logger, PASS, useIIFE } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\n\ntype OnCreateChannel = (channel: SendbirdGroupChannel) => void;\ntype OnBeforeCreateChannel = (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n\nexport type UserProfileContextType = {\n show(user: SendbirdUser | SendbirdMember): void;\n hide(): void;\n};\n\ntype Props = React.PropsWithChildren<{\n onCreateChannel?: OnCreateChannel;\n onBeforeCreateChannel?: OnBeforeCreateChannel;\n}>;\n\nexport const UserProfileContext = React.createContext<UserProfileContextType | null>(null);\nexport const UserProfileProvider = ({ children, onCreateChannel, onBeforeCreateChannel = PASS }: Props) => {\n const chatContext = useContext(SendbirdChatContext);\n const localizationContext = useContext(LocalizationContext);\n\n if (!chatContext) throw new Error('SendbirdChatContext is not provided');\n if (!localizationContext) throw new Error('LocalizationContext is not provided');\n\n const { bottom, left, right } = useSafeAreaInsets();\n\n const [user, setUser] = useState<SendbirdUser | SendbirdMember>();\n const [visible, setVisible] = useState(false);\n\n const show: UserProfileContextType['show'] = useCallback((user) => {\n setUser(user);\n setVisible(true);\n }, []);\n\n const hide: UserProfileContextType['hide'] = useCallback(() => {\n setVisible(false);\n }, []);\n\n const userProfileButton = useIIFE(() => {\n const isMe = chatContext.currentUser && user?.userId === chatContext.currentUser.userId;\n if (isMe) return undefined;\n\n const onPressMessageButton = async () => {\n if (user) {\n const params: SendbirdGroupChannelCreateParams = {\n invitedUserIds: [user.userId],\n name: '',\n coverUrl: '',\n isDistinct: false,\n };\n\n if (chatContext.currentUser) params.operatorUserIds = [chatContext.currentUser.userId];\n const processedParams = await onBeforeCreateChannel(params, [user]);\n\n hide();\n const channel = await chatContext.sdk.groupChannel.createChannel(processedParams);\n\n if (onCreateChannel) {\n onCreateChannel(channel);\n } else {\n Logger.warn(\n 'Please set `onCreateChannel` before message to user from profile card, see `userProfile` prop in the `SendbirdUIKitContainer` props',\n );\n }\n }\n };\n\n return (\n <OutlinedButton onPress={onPressMessageButton}>\n {localizationContext.STRINGS.PROFILE_CARD.BUTTON_MESSAGE}\n </OutlinedButton>\n );\n });\n\n return (\n <UserProfileContext.Provider value={{ show, hide }}>\n {children}\n <Modal\n type={'slide'}\n onClose={hide}\n onDismiss={() => setUser(undefined)}\n visible={visible && Boolean(user)}\n backgroundStyle={styles.modal}\n >\n {user && (\n <ProfileCard\n containerStyle={[\n styles.profileCardContainer,\n { paddingLeft: left, paddingRight: right, paddingBottom: bottom },\n ]}\n uri={user.profileUrl}\n username={user.nickname || localizationContext.STRINGS.LABELS.USER_NO_NAME}\n bodyLabel={localizationContext.STRINGS.PROFILE_CARD.BODY_LABEL}\n body={localizationContext.STRINGS.PROFILE_CARD.BODY(user)}\n button={userProfileButton}\n />\n )}\n </Modal>\n </UserProfileContext.Provider>\n );\n};\n\nconst styles = createStyleSheet({\n modal: {\n justifyContent: 'flex-end',\n },\n profileCardContainer: {\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n },\n});\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAOA;;AAEA;;AACA;;;;;;AAkBO,MAAMA,kBAAkB,gBAAGC,cAAA,CAAMC,aAAN,CAAmD,IAAnD,CAA3B;;;;AACA,MAAMC,mBAAmB,GAAG,QAAwE;EAAA,IAAvE;IAAEC,QAAF;IAAYC,eAAZ;IAA6BC,qBAAqB,GAAGC;EAArD,CAAuE;EACzG,MAAMC,WAAW,GAAG,IAAAC,iBAAA,EAAWC,oCAAX,CAApB;EACA,MAAMC,mBAAmB,GAAG,IAAAF,iBAAA,EAAWG,oCAAX,CAA5B;EAEA,IAAI,CAACJ,WAAL,EAAkB,MAAM,IAAIK,KAAJ,CAAU,qCAAV,CAAN;EAClB,IAAI,CAACF,mBAAL,EAA0B,MAAM,IAAIE,KAAJ,CAAU,qCAAV,CAAN;EAE1B,MAAM;IAAEC,MAAF;IAAUC,IAAV;IAAgBC;EAAhB,IAA0B,IAAAC,6CAAA,GAAhC;EAEA,MAAM,CAACC,IAAD,EAAOC,OAAP,IAAkB,IAAAC,eAAA,GAAxB;EACA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAF,eAAA,EAAS,KAAT,CAA9B;EAEA,MAAMG,IAAoC,GAAG,IAAAC,kBAAA,EAAaN,IAAD,IAAU;IACjEC,OAAO,CAACD,IAAD,CAAP;IACAI,UAAU,CAAC,IAAD,CAAV;EACD,CAH4C,EAG1C,EAH0C,CAA7C;EAKA,MAAMG,IAAoC,GAAG,IAAAD,kBAAA,EAAY,MAAM;IAC7DF,UAAU,CAAC,KAAD,CAAV;EACD,CAF4C,EAE1C,EAF0C,CAA7C;EAIA,MAAMI,iBAAiB,GAAG,IAAAC,mBAAA,EAAQ,MAAM;IACtC,MAAMC,IAAI,GAAGpB,WAAW,CAACqB,WAAZ,IAA2B,CAAAX,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEY,MAAN,MAAiBtB,WAAW,CAACqB,WAAZ,CAAwBC,MAAjF;IACA,IAAIF,IAAJ,EAAU,OAAOG,SAAP;;IAEV,MAAMC,oBAAoB,GAAG,YAAY;MACvC,IAAId,IAAJ,EAAU;QACR,MAAMe,MAAwC,GAAG;UAC/CC,cAAc,EAAE,CAAChB,IAAI,CAACY,MAAN,CAD+B;UAE/CK,IAAI,EAAE,EAFyC;UAG/CC,QAAQ,EAAE,EAHqC;UAI/CC,UAAU,EAAE;QAJmC,CAAjD;QAOA,IAAI7B,WAAW,CAACqB,WAAhB,EAA6BI,MAAM,CAACK,eAAP,GAAyB,CAAC9B,WAAW,CAACqB,WAAZ,CAAwBC,MAAzB,CAAzB;QAC7B,MAAMS,eAAe,GAAG,MAAMjC,qBAAqB,CAAC2B,MAAD,EAAS,CAACf,IAAD,CAAT,CAAnD;QAEAO,IAAI;QACJ,MAAMe,OAAO,GAAG,MAAMhC,WAAW,CAACiC,GAAZ,CAAgBC,YAAhB,CAA6BC,aAA7B,CAA2CJ,eAA3C,CAAtB;;QAEA,IAAIlC,eAAJ,EAAqB;UACnBA,eAAe,CAACmC,OAAD,CAAf;QACD,CAFD,MAEO;UACLI,kBAAA,CAAOC,IAAP,CACE,qIADF;QAGD;MACF;IACF,CAvBD;;IAyBA,oBACE,6BAAC,0CAAD;MAAgB,OAAO,EAAEb;IAAzB,GACGrB,mBAAmB,CAACmC,OAApB,CAA4BC,YAA5B,CAAyCC,cAD5C,CADF;EAKD,CAlCyB,CAA1B;EAoCA,oBACE,6BAAC,kBAAD,CAAoB,QAApB;IAA6B,KAAK,EAAE;MAAEzB,IAAF;MAAQE;IAAR;EAApC,GACGrB,QADH,eAEE,6BAAC,iCAAD;IACE,IAAI,EAAE,OADR;IAEE,OAAO,EAAEqB,IAFX;IAGE,SAAS,EAAE,MAAMN,OAAO,CAACY,SAAD,CAH1B;IAIE,OAAO,EAAEV,OAAO,IAAI4B,OAAO,CAAC/B,IAAD,CAJ7B;IAKE,eAAe,EAAEgC,MAAM,CAACC;EAL1B,GAOGjC,IAAI,iBACH,6BAAC,uCAAD;IACE,cAAc,EAAE,CACdgC,MAAM,CAACE,oBADO,EAEd;MAAEC,WAAW,EAAEtC,IAAf;MAAqBuC,YAAY,EAAEtC,KAAnC;MAA0CuC,aAAa,EAAEzC;IAAzD,CAFc,CADlB;IAKE,GAAG,EAAEI,IAAI,CAACsC,UALZ;IAME,QAAQ,EAAEtC,IAAI,CAACuC,QAAL,IAAiB9C,mBAAmB,CAACmC,OAApB,CAA4BY,MAA5B,CAAmCC,YANhE;IAOE,SAAS,EAAEhD,mBAAmB,CAACmC,OAApB,CAA4BC,YAA5B,CAAyCa,UAPtD;IAQE,IAAI,EAAEjD,mBAAmB,CAACmC,OAApB,CAA4BC,YAA5B,CAAyCc,IAAzC,CAA8C3C,IAA9C,CARR;IASE,MAAM,EAAEQ;EATV,EARJ,CAFF,CADF;AA0BD,CAnFM;;;AAqFP,MAAMwB,MAAM,GAAG,IAAAY,4CAAA,EAAiB;EAC9BX,KAAK,EAAE;IACLY,cAAc,EAAE;EADX,CADuB;EAI9BX,oBAAoB,EAAE;IACpBY,mBAAmB,EAAE,CADD;IAEpBC,oBAAoB,EAAE;EAFF;AAJQ,CAAjB,CAAf"}
@@ -29,7 +29,8 @@ const EditInput = _ref => {
29
29
  setText,
30
30
  editMessage,
31
31
  setEditMessage,
32
- onUpdateUserMessage
32
+ onUpdateUserMessage,
33
+ disabled
33
34
  } = _ref;
34
35
  const {
35
36
  STRINGS
@@ -66,6 +67,7 @@ const EditInput = _ref => {
66
67
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
67
68
  style: styles.inputWrapper
68
69
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.TextInput, {
70
+ editable: !disabled,
69
71
  autoFocus: AUTO_FOCUS,
70
72
  ref: inputRef,
71
73
  multiline: true,