@sendbird/uikit-react-native 3.1.2 → 3.3.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 (337) hide show
  1. package/README.md +67 -42
  2. package/lib/commonjs/components/ChannelInput/EditInput.js +2 -11
  3. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  4. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +145 -0
  5. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
  6. package/lib/commonjs/components/ChannelInput/SendInput.js +149 -323
  7. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  8. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +238 -0
  9. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -0
  10. package/lib/commonjs/components/ChannelInput/index.js +34 -3
  11. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  12. package/lib/commonjs/components/ChannelMessageList/index.js +148 -116
  13. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  14. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +24 -13
  15. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  16. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +134 -6
  17. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  18. package/lib/commonjs/components/MessageSearchResultItem.js +1 -0
  19. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
  20. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +1 -0
  21. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
  22. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +2 -2
  23. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  24. package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
  25. package/lib/commonjs/components/StatusComposition.js.map +1 -1
  26. package/lib/commonjs/constants.js +5 -1
  27. package/lib/commonjs/constants.js.map +1 -1
  28. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +1 -0
  29. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  30. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
  31. package/lib/commonjs/containers/SendbirdUIKitContainer.js +72 -34
  32. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  33. package/lib/commonjs/contexts/PlatformServiceCtx.js +16 -12
  34. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  35. package/lib/commonjs/contexts/ReactionCtx.js +3 -2
  36. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
  37. package/lib/commonjs/contexts/SendbirdChatCtx.js +2 -0
  38. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  39. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -4
  40. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  41. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +28 -42
  42. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  43. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +109 -5
  44. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  45. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  46. package/lib/commonjs/domain/userList/types.js.map +1 -1
  47. package/lib/commonjs/fragments/createGroupChannelFragment.js +34 -7
  48. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  49. package/lib/commonjs/fragments/createMessageSearchFragment.js +1 -1
  50. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  51. package/lib/commonjs/hooks/useChannelInputItems.js +211 -0
  52. package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -0
  53. package/lib/commonjs/hooks/useConnection.js +1 -1
  54. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  55. package/lib/commonjs/hooks/useVoiceMessageInput.js +207 -0
  56. package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -0
  57. package/lib/commonjs/index.js +36 -0
  58. package/lib/commonjs/index.js.map +1 -1
  59. package/lib/commonjs/libs/MentionManager.js.map +1 -1
  60. package/lib/commonjs/libs/SBUUtils.js +4 -0
  61. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  62. package/lib/commonjs/libs/VoiceMessageConfig.js +30 -0
  63. package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -0
  64. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  65. package/lib/commonjs/localization/createBaseStringSet.js +24 -9
  66. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  67. package/lib/commonjs/platform/createFileService.expo.js +10 -0
  68. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  69. package/lib/commonjs/platform/createFileService.native.js +19 -0
  70. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  71. package/lib/commonjs/platform/createPlayerService.expo.js +137 -0
  72. package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -0
  73. package/lib/commonjs/platform/createPlayerService.native.js +139 -0
  74. package/lib/commonjs/platform/createPlayerService.native.js.map +1 -0
  75. package/lib/commonjs/platform/createRecorderService.expo.js +158 -0
  76. package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -0
  77. package/lib/commonjs/platform/createRecorderService.native.js +157 -0
  78. package/lib/commonjs/platform/createRecorderService.native.js.map +1 -0
  79. package/lib/commonjs/platform/types.js.map +1 -1
  80. package/lib/commonjs/types.js +7 -0
  81. package/lib/commonjs/types.js.map +1 -1
  82. package/lib/commonjs/utils/promise.js +138 -0
  83. package/lib/commonjs/utils/promise.js.map +1 -0
  84. package/lib/commonjs/version.js +1 -1
  85. package/lib/commonjs/version.js.map +1 -1
  86. package/lib/module/components/ChannelInput/EditInput.js +3 -12
  87. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  88. package/lib/module/components/ChannelInput/MessageToReplyPreview.js +137 -0
  89. package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
  90. package/lib/module/components/ChannelInput/SendInput.js +152 -326
  91. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  92. package/lib/module/components/ChannelInput/VoiceMessageInput.js +228 -0
  93. package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -0
  94. package/lib/module/components/ChannelInput/index.js +36 -5
  95. package/lib/module/components/ChannelInput/index.js.map +1 -1
  96. package/lib/module/components/ChannelMessageList/index.js +149 -117
  97. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  98. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +24 -13
  99. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  100. package/lib/module/components/GroupChannelMessageRenderer/index.js +132 -7
  101. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  102. package/lib/module/components/MessageSearchResultItem.js +2 -1
  103. package/lib/module/components/MessageSearchResultItem.js.map +1 -1
  104. package/lib/module/components/OpenChannelMessageRenderer/index.js +1 -0
  105. package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
  106. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +2 -2
  107. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  108. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
  109. package/lib/module/components/StatusComposition.js.map +1 -1
  110. package/lib/module/constants.js +2 -0
  111. package/lib/module/constants.js.map +1 -1
  112. package/lib/module/containers/GroupChannelPreviewContainer.js +2 -1
  113. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  114. package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
  115. package/lib/module/containers/SendbirdUIKitContainer.js +74 -36
  116. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  117. package/lib/module/contexts/PlatformServiceCtx.js +14 -11
  118. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  119. package/lib/module/contexts/ReactionCtx.js +3 -2
  120. package/lib/module/contexts/ReactionCtx.js.map +1 -1
  121. package/lib/module/contexts/SendbirdChatCtx.js +2 -0
  122. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  123. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +15 -5
  124. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  125. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +29 -43
  126. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  127. package/lib/module/domain/groupChannel/module/moduleContext.js +111 -7
  128. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  129. package/lib/module/domain/groupChannel/types.js.map +1 -1
  130. package/lib/module/domain/userList/types.js.map +1 -1
  131. package/lib/module/fragments/createGroupChannelFragment.js +36 -9
  132. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  133. package/lib/module/fragments/createMessageSearchFragment.js +1 -1
  134. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
  135. package/lib/module/hooks/useChannelInputItems.js +203 -0
  136. package/lib/module/hooks/useChannelInputItems.js.map +1 -0
  137. package/lib/module/hooks/useConnection.js +1 -1
  138. package/lib/module/hooks/useConnection.js.map +1 -1
  139. package/lib/module/hooks/useVoiceMessageInput.js +199 -0
  140. package/lib/module/hooks/useVoiceMessageInput.js.map +1 -0
  141. package/lib/module/index.js +8 -0
  142. package/lib/module/index.js.map +1 -1
  143. package/lib/module/libs/MentionManager.js.map +1 -1
  144. package/lib/module/libs/SBUUtils.js +4 -0
  145. package/lib/module/libs/SBUUtils.js.map +1 -1
  146. package/lib/module/libs/VoiceMessageConfig.js +23 -0
  147. package/lib/module/libs/VoiceMessageConfig.js.map +1 -0
  148. package/lib/module/localization/StringSet.type.js.map +1 -1
  149. package/lib/module/localization/createBaseStringSet.js +25 -10
  150. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  151. package/lib/module/platform/createFileService.expo.js +10 -0
  152. package/lib/module/platform/createFileService.expo.js.map +1 -1
  153. package/lib/module/platform/createFileService.native.js +19 -0
  154. package/lib/module/platform/createFileService.native.js.map +1 -1
  155. package/lib/module/platform/createPlayerService.expo.js +129 -0
  156. package/lib/module/platform/createPlayerService.expo.js.map +1 -0
  157. package/lib/module/platform/createPlayerService.native.js +132 -0
  158. package/lib/module/platform/createPlayerService.native.js.map +1 -0
  159. package/lib/module/platform/createRecorderService.expo.js +150 -0
  160. package/lib/module/platform/createRecorderService.expo.js.map +1 -0
  161. package/lib/module/platform/createRecorderService.native.js +149 -0
  162. package/lib/module/platform/createRecorderService.native.js.map +1 -0
  163. package/lib/module/platform/types.js.map +1 -1
  164. package/lib/module/types.js +5 -1
  165. package/lib/module/types.js.map +1 -1
  166. package/lib/module/utils/promise.js +132 -0
  167. package/lib/module/utils/promise.js.map +1 -0
  168. package/lib/module/version.js +1 -1
  169. package/lib/module/version.js.map +1 -1
  170. package/lib/typescript/src/components/ChannelCover.d.ts +2 -1
  171. package/lib/typescript/src/components/ChannelInput/AttachmentsButton.d.ts +2 -1
  172. package/lib/typescript/src/components/ChannelInput/MessageToReplyPreview.d.ts +7 -0
  173. package/lib/typescript/src/components/ChannelInput/VoiceMessageInput.d.ts +11 -0
  174. package/lib/typescript/src/components/ChannelInput/index.d.ts +9 -3
  175. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +4 -1
  176. package/lib/typescript/src/components/FileViewer.d.ts +2 -1
  177. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +2 -1
  178. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.d.ts +1 -1
  179. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.d.ts +1 -1
  180. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +4 -2
  181. package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -0
  182. package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
  183. package/lib/typescript/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.d.ts +2 -1
  184. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +2 -0
  185. package/lib/typescript/src/components/ProviderLayout.d.ts +1 -1
  186. package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +2 -1
  187. package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +2 -1
  188. package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +3 -2
  189. package/lib/typescript/src/components/ReactionAddons/index.d.ts +3 -2
  190. package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +2 -1
  191. package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +2 -1
  192. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +4 -4
  193. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  194. package/lib/typescript/src/components/StatusComposition.d.ts +4 -4
  195. package/lib/typescript/src/components/TypedPlaceholder.d.ts +2 -1
  196. package/lib/typescript/src/components/UserActionBar.d.ts +2 -1
  197. package/lib/typescript/src/components/UserSelectableBar.d.ts +2 -1
  198. package/lib/typescript/src/constants.d.ts +2 -0
  199. package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +2 -1
  200. package/lib/typescript/src/containers/InternalErrorBoundaryContainer.d.ts +3 -3
  201. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +19 -8
  202. package/lib/typescript/src/contexts/LocalizationCtx.d.ts +1 -1
  203. package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +8 -8
  204. package/lib/typescript/src/contexts/ReactionCtx.d.ts +5 -2
  205. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +6 -3
  206. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +1 -1
  207. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +2 -1
  208. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
  209. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -1
  210. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +2 -1
  211. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +2 -1
  212. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +2 -1
  213. package/lib/typescript/src/domain/groupChannel/types.d.ts +48 -0
  214. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +2 -1
  215. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +2 -1
  216. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -1
  217. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -1
  218. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +2 -1
  219. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +2 -1
  220. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +2 -1
  221. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +2 -1
  222. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +2 -1
  223. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +2 -1
  224. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +2 -1
  225. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +2 -1
  226. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +2 -1
  227. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -1
  228. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -1
  229. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +2 -1
  230. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -1
  231. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +2 -1
  232. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +2 -1
  233. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -1
  234. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -1
  235. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +2 -1
  236. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +2 -1
  237. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +2 -1
  238. package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +2 -1
  239. package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +2 -1
  240. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusEmpty.d.ts +2 -1
  241. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusLoading.d.ts +2 -1
  242. package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +2 -2
  243. package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
  244. package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
  245. package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusEmpty.d.ts +2 -1
  246. package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusLoading.d.ts +2 -1
  247. package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.d.ts +2 -1
  248. package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.d.ts +2 -1
  249. package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.d.ts +2 -1
  250. package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.d.ts +2 -1
  251. package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateHeader.d.ts +2 -1
  252. package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.d.ts +2 -1
  253. package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.d.ts +2 -1
  254. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListHeader.d.ts +2 -1
  255. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +2 -1
  256. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusEmpty.d.ts +2 -1
  257. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusLoading.d.ts +2 -1
  258. package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationHeader.d.ts +2 -1
  259. package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationMenu.d.ts +2 -1
  260. package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.d.ts +2 -1
  261. package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.d.ts +2 -1
  262. package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.d.ts +2 -1
  263. package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.d.ts +2 -1
  264. package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsHeader.d.ts +2 -1
  265. package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsList.d.ts +2 -1
  266. package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.d.ts +2 -1
  267. package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.d.ts +2 -1
  268. package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsHeader.d.ts +2 -1
  269. package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsInfo.d.ts +2 -1
  270. package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsMenu.d.ts +2 -1
  271. package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +3 -3
  272. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
  273. package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +2 -1
  274. package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +2 -1
  275. package/lib/typescript/src/domain/userList/types.d.ts +2 -2
  276. package/lib/typescript/src/hooks/useChannelInputItems.d.ts +10 -0
  277. package/lib/typescript/src/hooks/useVoiceMessageInput.d.ts +53 -0
  278. package/lib/typescript/src/index.d.ts +4 -0
  279. package/lib/typescript/src/libs/MentionManager.d.ts +2 -1
  280. package/lib/typescript/src/libs/SBUUtils.d.ts +1 -0
  281. package/lib/typescript/src/libs/VoiceMessageConfig.d.ts +25 -0
  282. package/lib/typescript/src/localization/StringSet.type.d.ts +7 -0
  283. package/lib/typescript/src/platform/createPlayerService.expo.d.ts +7 -0
  284. package/lib/typescript/src/platform/createPlayerService.native.d.ts +9 -0
  285. package/lib/typescript/src/platform/createRecorderService.expo.d.ts +7 -0
  286. package/lib/typescript/src/platform/createRecorderService.native.d.ts +9 -0
  287. package/lib/typescript/src/platform/types.d.ts +100 -1
  288. package/lib/typescript/src/types.d.ts +5 -1
  289. package/lib/typescript/src/utils/promise.d.ts +7 -0
  290. package/lib/typescript/src/version.d.ts +1 -1
  291. package/package.json +10 -12
  292. package/src/components/ChannelInput/EditInput.tsx +3 -15
  293. package/src/components/ChannelInput/MessageToReplyPreview.tsx +133 -0
  294. package/src/components/ChannelInput/SendInput.tsx +131 -329
  295. package/src/components/ChannelInput/VoiceMessageInput.tsx +206 -0
  296. package/src/components/ChannelInput/index.tsx +37 -6
  297. package/src/components/ChannelMessageList/index.tsx +145 -113
  298. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +24 -11
  299. package/src/components/GroupChannelMessageRenderer/index.tsx +113 -4
  300. package/src/components/MessageSearchResultItem.tsx +2 -1
  301. package/src/components/OpenChannelMessageRenderer/index.tsx +1 -0
  302. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +2 -2
  303. package/src/components/ReactionBottomSheets/index.tsx +3 -2
  304. package/src/components/StatusComposition.tsx +3 -3
  305. package/src/constants.ts +2 -0
  306. package/src/containers/GroupChannelPreviewContainer.tsx +2 -0
  307. package/src/containers/InternalErrorBoundaryContainer.tsx +1 -1
  308. package/src/containers/SendbirdUIKitContainer.tsx +103 -59
  309. package/src/contexts/PlatformServiceCtx.tsx +22 -20
  310. package/src/contexts/ReactionCtx.tsx +7 -5
  311. package/src/contexts/SendbirdChatCtx.tsx +10 -2
  312. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +14 -3
  313. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +30 -43
  314. package/src/domain/groupChannel/module/moduleContext.tsx +119 -7
  315. package/src/domain/groupChannel/types.ts +45 -0
  316. package/src/domain/userList/types.ts +2 -2
  317. package/src/fragments/createGroupChannelFragment.tsx +43 -8
  318. package/src/fragments/createMessageSearchFragment.tsx +1 -1
  319. package/src/hooks/useChannelInputItems.ts +215 -0
  320. package/src/hooks/useConnection.ts +1 -1
  321. package/src/hooks/useVoiceMessageInput.ts +237 -0
  322. package/src/index.ts +9 -1
  323. package/src/libs/MentionManager.tsx +1 -1
  324. package/src/libs/SBUUtils.ts +5 -0
  325. package/src/libs/VoiceMessageConfig.ts +28 -0
  326. package/src/localization/StringSet.type.ts +8 -0
  327. package/src/localization/createBaseStringSet.ts +27 -11
  328. package/src/platform/createFileService.expo.ts +10 -0
  329. package/src/platform/createFileService.native.ts +19 -0
  330. package/src/platform/createPlayerService.expo.tsx +142 -0
  331. package/src/platform/createPlayerService.native.tsx +148 -0
  332. package/src/platform/createRecorderService.expo.tsx +160 -0
  333. package/src/platform/createRecorderService.native.tsx +170 -0
  334. package/src/platform/types.ts +114 -1
  335. package/src/types.ts +6 -1
  336. package/src/utils/promise.ts +139 -0
  337. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","exports","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","MESSAGE_FOCUS_ANIMATION_DELAY","UNKNOWN_USER_ID"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\nexport const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;\nexport const MESSAGE_FOCUS_ANIMATION_DELAY = 250;\n\nexport const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';\n"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAG,GAAG;AAACC,OAAA,CAAAD,wBAAA,GAAAA,wBAAA;AACrC,MAAME,gCAAgC,GAAG,GAAG;AAACD,OAAA,CAAAC,gCAAA,GAAAA,gCAAA;AAC7C,MAAMC,6BAA6B,GAAG,GAAG;AAACF,OAAA,CAAAE,6BAAA,GAAAA,6BAAA;AAE1C,MAAMC,eAAe,GAAG,iCAAiC;AAACH,OAAA,CAAAG,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","exports","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","MESSAGE_FOCUS_ANIMATION_DELAY","UNKNOWN_USER_ID","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\nexport const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;\nexport const MESSAGE_FOCUS_ANIMATION_DELAY = 250;\n\nexport const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';\nexport const VOICE_MESSAGE_META_ARRAY_DURATION_KEY = 'KEY_VOICE_MESSAGE_DURATION';\nexport const VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY = 'KEY_INTERNAL_MESSAGE_TYPE';\n"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAG,GAAG;AAACC,OAAA,CAAAD,wBAAA,GAAAA,wBAAA;AACrC,MAAME,gCAAgC,GAAG,GAAG;AAACD,OAAA,CAAAC,gCAAA,GAAAA,gCAAA;AAC7C,MAAMC,6BAA6B,GAAG,GAAG;AAACF,OAAA,CAAAE,6BAAA,GAAAA,6BAAA;AAE1C,MAAMC,eAAe,GAAG,iCAAiC;AAACH,OAAA,CAAAG,eAAA,GAAAA,eAAA;AAC1D,MAAMC,qCAAqC,GAAG,4BAA4B;AAACJ,OAAA,CAAAI,qCAAA,GAAAA,qCAAA;AAC3E,MAAMC,yCAAyC,GAAG,2BAA2B;AAACL,OAAA,CAAAK,yCAAA,GAAAA,yCAAA"}
@@ -50,6 +50,7 @@ const GroupChannelPreviewContainer = _ref => {
50
50
  var _channel$lastMessage;
51
51
  if (!((_channel$lastMessage = channel.lastMessage) !== null && _channel$lastMessage !== void 0 && _channel$lastMessage.isFileMessage())) return undefined;
52
52
  if (typingUsers.length > 0) return undefined;
53
+ if ((0, _uikitUtils.isVoiceMessage)(channel.lastMessage)) return undefined;
53
54
  return (0, _uikitUtils.getFileTypeFromMessage)(channel.lastMessage);
54
55
  });
55
56
  const titleCaptionIcon = (0, _uikitUtils.useIIFE)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitChatHooks","_uikitReactNativeFoundation","_uikitUtils","_ChannelCover","_interopRequireDefault","_constants","_useContext","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GroupChannelPreviewContainer","_ref","onPress","onLongPress","channel","currentUser","sdk","sbOptions","mentionManager","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","typingUsers","setTypingUsers","useState","handlerId","useUniqHandlerId","useChannelHandler","onTypingStatusUpdated","eventChannel","isDifferentChannel","uikit","groupChannel","channelList","enableTypingIndicator","getTypingUsers","outgoingStatus","useMessageOutgoingStatus","lastMessage","bodyText","useIIFE","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","fileType","_channel$lastMessage","isFileMessage","undefined","getFileTypeFromMessage","titleCaptionIcon","isEphemeral","enableMessageReceiptStatus","isMyMessage","userId","createElement","LoadingSpinner","size","style","styles","Icon","icon","color","error","onBackground03","containerStyle","secondary","unreadMessageCount","Pressable","delayLongPress","DEFAULT_LONG_PRESS_DELAY","GroupChannelPreview","customCover","coverUrl","title","CHANNEL_PREVIEW_TITLE","titleCaptionLeft","titleCaption","CHANNEL_PREVIEW_TITLE_CAPTION","body","bodyIcon","getFileIconFromMessageType","convertFileTypeToMessageType","badgeCount","mentioned","unreadMentionCount","mentionTrigger","config","trigger","memberCount","frozen","isFrozen","broadcast","isBroadcast","notificationOff","myPushTriggerOption","createStyleSheet","marginRight","broadcastCover","padding","borderRadius","_default","exports"],"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 convertFileTypeToMessageType,\n getFileIconFromMessageType,\n getFileTypeFromMessage,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqHandlerId,\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\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, sbOptions, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');\n useChannelHandler(sdk, handlerId, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (!sbOptions.uikit.groupChannel.channelList.enableTypingIndicator) return;\n setTypingUsers(eventChannel.getTypingUsers());\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 fileType = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return getFileTypeFromMessage(channel.lastMessage);\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage || channel.isEphemeral) return undefined;\n if (!sbOptions.uikit.groupChannel.channelList.enableMessageReceiptStatus) 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 unreadMessageCount = useIIFE(() => (channel.isEphemeral ? 0 : channel.unreadMessageCount));\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={fileType && getFileIconFromMessageType(convertFileTypeToMessageType(fileType))}\n badgeCount={unreadMessageCount}\n mentioned={channel.unreadMentionCount > 0}\n mentionTrigger={mentionManager.config.trigger}\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":["_react","_interopRequireWildcard","require","_reactNative","_uikitChatHooks","_uikitReactNativeFoundation","_uikitUtils","_ChannelCover","_interopRequireDefault","_constants","_useContext","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GroupChannelPreviewContainer","_ref","onPress","onLongPress","channel","currentUser","sdk","sbOptions","mentionManager","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","typingUsers","setTypingUsers","useState","handlerId","useUniqHandlerId","useChannelHandler","onTypingStatusUpdated","eventChannel","isDifferentChannel","uikit","groupChannel","channelList","enableTypingIndicator","getTypingUsers","outgoingStatus","useMessageOutgoingStatus","lastMessage","bodyText","useIIFE","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","fileType","_channel$lastMessage","isFileMessage","undefined","isVoiceMessage","getFileTypeFromMessage","titleCaptionIcon","isEphemeral","enableMessageReceiptStatus","isMyMessage","userId","createElement","LoadingSpinner","size","style","styles","Icon","icon","color","error","onBackground03","containerStyle","secondary","unreadMessageCount","Pressable","delayLongPress","DEFAULT_LONG_PRESS_DELAY","GroupChannelPreview","customCover","coverUrl","title","CHANNEL_PREVIEW_TITLE","titleCaptionLeft","titleCaption","CHANNEL_PREVIEW_TITLE_CAPTION","body","bodyIcon","getFileIconFromMessageType","convertFileTypeToMessageType","badgeCount","mentioned","unreadMentionCount","mentionTrigger","config","trigger","memberCount","frozen","isFrozen","broadcast","isBroadcast","notificationOff","myPushTriggerOption","createStyleSheet","marginRight","broadcastCover","padding","borderRadius","_default","exports"],"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 convertFileTypeToMessageType,\n getFileIconFromMessageType,\n getFileTypeFromMessage,\n isDifferentChannel,\n isMyMessage,\n isVoiceMessage,\n useIIFE,\n useUniqHandlerId,\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\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, sbOptions, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');\n useChannelHandler(sdk, handlerId, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (!sbOptions.uikit.groupChannel.channelList.enableTypingIndicator) return;\n setTypingUsers(eventChannel.getTypingUsers());\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 fileType = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n if (isVoiceMessage(channel.lastMessage)) return undefined;\n return getFileTypeFromMessage(channel.lastMessage);\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage || channel.isEphemeral) return undefined;\n if (!sbOptions.uikit.groupChannel.channelList.enableMessageReceiptStatus) 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 unreadMessageCount = useIIFE(() => (channel.isEphemeral ? 0 : channel.unreadMessageCount));\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={fileType && getFileIconFromMessageType(convertFileTypeToMessageType(fileType))}\n badgeCount={unreadMessageCount}\n mentioned={channel.unreadMentionCount > 0}\n mentionTrigger={mentionManager.config.trigger}\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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAH,OAAA;AAOA,IAAAI,WAAA,GAAAJ,OAAA;AAaA,IAAAK,aAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAAuE,SAAAM,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAd,wBAAAU,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAOvE,MAAMW,4BAA4B,GAAGC,IAAA,IAA8C;EAAA,IAA7C;IAAEC,OAAO;IAAEC,WAAW;IAAEC;EAAe,CAAC,GAAAH,IAAA;EAC5E,MAAM;IAAEI,WAAW;IAAEC,GAAG;IAAEC,SAAS;IAAEC;EAAe,CAAC,GAAG,IAAAC,2BAAe,GAAE;EACzE,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,2BAAe,GAAE;EACrC,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,yCAAa,GAAE;EAElC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAiB,EAAE,CAAC;EAElE,MAAMC,SAAS,GAAG,IAAAC,4BAAgB,EAAC,8CAA8C,CAAC;EAClF,IAAAC,iCAAiB,EAACb,GAAG,EAAEW,SAAS,EAAE;IAChCG,qBAAqBA,CAACC,YAAY,EAAE;MAClC,IAAI,IAAAC,8BAAkB,EAAClB,OAAO,EAAEiB,YAAY,CAAC,EAAE;MAC/C,IAAI,CAACd,SAAS,CAACgB,KAAK,CAACC,YAAY,CAACC,WAAW,CAACC,qBAAqB,EAAE;MACrEX,cAAc,CAACM,YAAY,CAACM,cAAc,EAAE,CAAC;IAC/C;EACF,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG,IAAAC,wCAAwB,EAACvB,GAAG,EAAEF,OAAO,EAAEA,OAAO,CAAC0B,WAAW,CAAC;EAElF,MAAMC,QAAQ,GAAG,IAAAC,mBAAO,EAAC,MAAM;IAC7B,IAAIlB,WAAW,CAACmB,MAAM,GAAG,CAAC,EAAE,OAAOvB,OAAO,CAACwB,MAAM,CAACC,wBAAwB,CAACrB,WAAW,CAAC,IAAI,EAAE,CAAC,KACzF,OAAOJ,OAAO,CAAC0B,kBAAkB,CAACC,oBAAoB,CAACjC,OAAO,CAAC;EACtE,CAAC,CAAC;EAEF,MAAMkC,QAAQ,GAAG,IAAAN,mBAAO,EAAC,MAAM;IAAA,IAAAO,oBAAA;IAC7B,IAAI,GAAAA,oBAAA,GAACnC,OAAO,CAAC0B,WAAW,cAAAS,oBAAA,eAAnBA,oBAAA,CAAqBC,aAAa,EAAE,GAAE,OAAOC,SAAS;IAC3D,IAAI3B,WAAW,CAACmB,MAAM,GAAG,CAAC,EAAE,OAAOQ,SAAS;IAC5C,IAAI,IAAAC,0BAAc,EAACtC,OAAO,CAAC0B,WAAW,CAAC,EAAE,OAAOW,SAAS;IACzD,OAAO,IAAAE,kCAAsB,EAACvC,OAAO,CAAC0B,WAAW,CAAC;EACpD,CAAC,CAAC;EAEF,MAAMc,gBAAgB,GAAG,IAAAZ,mBAAO,EAAC,MAAM;IACrC,IAAI,CAAC5B,OAAO,CAAC0B,WAAW,IAAI1B,OAAO,CAACyC,WAAW,EAAE,OAAOJ,SAAS;IACjE,IAAI,CAAClC,SAAS,CAACgB,KAAK,CAACC,YAAY,CAACC,WAAW,CAACqB,0BAA0B,EAAE,OAAOL,SAAS;IAC1F,IAAI,CAAC,IAAAM,uBAAW,EAAC3C,OAAO,CAAC0B,WAAW,EAAEzB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE2C,MAAM,CAAC,EAAE,OAAOP,SAAS;IAE5E,IAAIb,cAAc,KAAK,SAAS,EAAE;MAChC,oBAAO7D,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,2BAAA,CAAA8E,cAAc;QAACC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEC,MAAM,CAACT;MAAiB,EAAG;IACrE;IAEA,IAAIhB,cAAc,KAAK,QAAQ,EAAE;MAC/B,oBAAO7D,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,2BAAA,CAAAkF,IAAI;QAACC,IAAI,EAAE,OAAQ;QAACJ,IAAI,EAAE,EAAG;QAACK,KAAK,EAAE5C,MAAM,CAAC6C,KAAM;QAACL,KAAK,EAAEC,MAAM,CAACT;MAAiB,EAAG;IAC/F;IAEA,IAAIhB,cAAc,KAAK,aAAa,EAAE;MACpC,oBAAO7D,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,2BAAA,CAAAkF,IAAI;QAACC,IAAI,EAAE,MAAO;QAACJ,IAAI,EAAE,EAAG;QAACK,KAAK,EAAE5C,MAAM,CAAC8C,cAAe;QAACC,cAAc,EAAEN,MAAM,CAACT;MAAiB,EAAG;IAChH;IAEA,IAAIhB,cAAc,KAAK,WAAW,IAAIA,cAAc,KAAK,QAAQ,EAAE;MACjE,oBAAO7D,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,2BAAA,CAAAkF,IAAI;QAACC,IAAI,EAAE,UAAW;QAACJ,IAAI,EAAE,EAAG;QAACK,KAAK,EAAE5C,MAAM,CAAC8C,cAAe;QAACN,KAAK,EAAEC,MAAM,CAACT;MAAiB,EAAG;IAC3G;IAEA,IAAIhB,cAAc,KAAK,MAAM,EAAE;MAC7B,oBAAO7D,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,2BAAA,CAAAkF,IAAI;QAACC,IAAI,EAAE,UAAW;QAACJ,IAAI,EAAE,EAAG;QAACK,KAAK,EAAE5C,MAAM,CAACgD,SAAU;QAACR,KAAK,EAAEC,MAAM,CAACT;MAAiB,EAAG;IACtG;IAEA,OAAOH,SAAS;EAClB,CAAC,CAAC;EAEF,MAAMoB,kBAAkB,GAAG,IAAA7B,mBAAO,EAAC,MAAO5B,OAAO,CAACyC,WAAW,GAAG,CAAC,GAAGzC,OAAO,CAACyD,kBAAmB,CAAC;EAEhG,oBACE9F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC/E,YAAA,CAAA4F,SAAS;IAACC,cAAc,EAAEC,mCAAyB;IAAC9D,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,gBAC9FpC,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,2BAAA,CAAA6F,mBAAmB;IAClBC,WAAW,eAAEnG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,aAAA,CAAAM,OAAY;MAACwB,OAAO,EAAEA,OAAQ;MAAC+C,IAAI,EAAE;IAAG,EAAI;IAC1DgB,QAAQ,EAAE/D,OAAO,CAAC+D,QAAS;IAC3BC,KAAK,EAAE1D,OAAO,CAAC0B,kBAAkB,CAACiC,qBAAqB,CAAC,CAAAhE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE2C,MAAM,KAAI,EAAE,EAAE5C,OAAO,CAAE;IAC5FkE,gBAAgB,EAAE1B,gBAAiB;IACnC2B,YAAY,EAAE7D,OAAO,CAAC0B,kBAAkB,CAACoC,6BAA6B,CAACpE,OAAO,CAAE;IAChFqE,IAAI,EAAE1C,QAAS;IACf2C,QAAQ,EAAEpC,QAAQ,IAAI,IAAAqC,sCAA0B,EAAC,IAAAC,wCAA4B,EAACtC,QAAQ,CAAC,CAAE;IACzFuC,UAAU,EAAEhB,kBAAmB;IAC/BiB,SAAS,EAAE1E,OAAO,CAAC2E,kBAAkB,GAAG,CAAE;IAC1CC,cAAc,EAAExE,cAAc,CAACyE,MAAM,CAACC,OAAQ;IAC9CC,WAAW,EAAE/E,OAAO,CAAC+E,WAAW,GAAG,CAAC,GAAG/E,OAAO,CAAC+E,WAAW,GAAG1C,SAAU;IACvE2C,MAAM,EAAEhF,OAAO,CAACiF,QAAS;IACzBC,SAAS,EAAElF,OAAO,CAACmF,WAAY;IAC/BC,eAAe,EAAEpF,OAAO,CAACqF,mBAAmB,KAAK;EAAM,EACvD,CACQ;AAEhB,CAAC;AAED,MAAMpC,MAAM,GAAG,IAAAqC,4CAAgB,EAAC;EAC9B9C,gBAAgB,EAAE;IAChB+C,WAAW,EAAE;EACf,CAAC;EACDC,cAAc,EAAE;IACdC,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEY/F,4BAA4B;AAAAgG,OAAA,CAAApH,OAAA,GAAAmH,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_TypedPlaceholder","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DefaultErrorBoundaryComponent","props","createElement","View","style","flex","justifyContent","alignItems","type","onPressRetry","reset","InternalErrorBoundaryContainer","React","PureComponent","constructor","arguments","error","errorInfo","_this$props$onError","_this$props","setState","onError","state","_this$props$ErrorInfo","_this$props2","ErrorInfoComponent","Fragment","children","_default","exports"],"sources":["InternalErrorBoundaryContainer.tsx"],"sourcesContent":["import React, { ErrorInfo } from 'react';\nimport { View } from 'react-native';\n\nimport TypedPlaceholder from '../components/TypedPlaceholder';\nimport type { ErrorBoundaryProps } from '../types';\n\nconst DefaultErrorBoundaryComponent = (props: ErrorBoundaryProps) => {\n return (\n <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>\n <TypedPlaceholder type={'error-wrong'} onPressRetry={props.reset} />\n </View>\n );\n};\n\nclass InternalErrorBoundaryContainer extends React.PureComponent<{\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n children?: React.ReactNode;\n}> {\n static defaultProps = {\n ErrorInfoComponent: DefaultErrorBoundaryComponent,\n };\n\n state: { error: Error | null; errorInfo: ErrorInfo | null } = {\n error: null,\n errorInfo: null,\n };\n\n componentDidCatch = (error: Error, errorInfo: ErrorInfo) => {\n this.setState({ error, errorInfo });\n this.props.onError?.({ error, errorInfo, reset: this.reset });\n };\n\n reset = () => {\n this.setState({ error: null, errorInfo: null });\n };\n\n render = () => {\n if (this.state.error && this.state.errorInfo) {\n return (\n this.props.ErrorInfoComponent?.({\n error: this.state.error,\n errorInfo: this.state.errorInfo,\n reset: this.reset,\n }) ?? null\n );\n }\n\n return <>{this.props.children}</>;\n };\n}\n\nexport default InternalErrorBoundaryContainer;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_TypedPlaceholder","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DefaultErrorBoundaryComponent","props","createElement","View","style","flex","justifyContent","alignItems","type","onPressRetry","reset","InternalErrorBoundaryContainer","React","PureComponent","constructor","arguments","error","errorInfo","_this$props$onError","_this$props","setState","onError","state","_this$props$ErrorInfo","_this$props2","ErrorInfoComponent","Fragment","children","_default","exports"],"sources":["InternalErrorBoundaryContainer.tsx"],"sourcesContent":["import React, { ErrorInfo } from 'react';\nimport { View } from 'react-native';\n\nimport TypedPlaceholder from '../components/TypedPlaceholder';\nimport type { ErrorBoundaryProps } from '../types';\n\nconst DefaultErrorBoundaryComponent = (props: ErrorBoundaryProps) => {\n return (\n <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>\n <TypedPlaceholder type={'error-wrong'} onPressRetry={props.reset} />\n </View>\n );\n};\n\nclass InternalErrorBoundaryContainer extends React.PureComponent<{\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode;\n children?: React.ReactNode;\n}> {\n static defaultProps = {\n ErrorInfoComponent: DefaultErrorBoundaryComponent,\n };\n\n state: { error: Error | null; errorInfo: ErrorInfo | null } = {\n error: null,\n errorInfo: null,\n };\n\n componentDidCatch = (error: Error, errorInfo: ErrorInfo) => {\n this.setState({ error, errorInfo });\n this.props.onError?.({ error, errorInfo, reset: this.reset });\n };\n\n reset = () => {\n this.setState({ error: null, errorInfo: null });\n };\n\n render = () => {\n if (this.state.error && this.state.errorInfo) {\n return (\n this.props.ErrorInfoComponent?.({\n error: this.state.error,\n errorInfo: this.state.errorInfo,\n reset: this.reset,\n }) ?? null\n );\n }\n\n return <>{this.props.children}</>;\n };\n}\n\nexport default InternalErrorBoundaryContainer;\n"],"mappings":"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"}
@@ -23,6 +23,7 @@ var _ImageCompressionConfig = _interopRequireDefault(require("../libs/ImageCompr
23
23
  var _InternalLocalCacheStorage = _interopRequireDefault(require("../libs/InternalLocalCacheStorage"));
24
24
  var _MentionConfig = _interopRequireDefault(require("../libs/MentionConfig"));
25
25
  var _MentionManager = _interopRequireDefault(require("../libs/MentionManager"));
26
+ var _VoiceMessageConfig = _interopRequireDefault(require("../libs/VoiceMessageConfig"));
26
27
  var _StringSet = _interopRequireDefault(require("../localization/StringSet.en"));
27
28
  var _dynamicModule = _interopRequireDefault(require("../platform/dynamicModule"));
28
29
  var _version = _interopRequireDefault(require("../version"));
@@ -30,6 +31,7 @@ var _InternalErrorBoundaryContainer = _interopRequireDefault(require("./Internal
30
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
33
  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; }
34
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
35
  const NetInfo = _dynamicModule.default.get('@react-native-community/netinfo', 'warn');
34
36
  const SendbirdUIKit = Object.freeze({
35
37
  VERSION: _version.default,
@@ -41,8 +43,16 @@ const SendbirdUIKit = Object.freeze({
41
43
  }
42
44
  });
43
45
  exports.SendbirdUIKit = SendbirdUIKit;
44
- const SendbirdUIKitContainer = _ref => {
45
- let {
46
+ const chatOmitKeys = ['appId', 'newInstance', 'modules', 'debugMode', 'appVersion', 'localCacheEnabled', 'useAsyncStorageStore'];
47
+ function sanitizeChatOptions(chatOptions) {
48
+ const opts = {
49
+ ...chatOptions
50
+ };
51
+ chatOmitKeys.forEach(key => delete opts[key]);
52
+ return opts;
53
+ }
54
+ const SendbirdUIKitContainer = props => {
55
+ const {
46
56
  children,
47
57
  appId,
48
58
  chatOptions,
@@ -53,9 +63,8 @@ const SendbirdUIKitContainer = _ref => {
53
63
  errorBoundary,
54
64
  toast,
55
65
  userProfile,
56
- userMention,
57
- imageCompression
58
- } = _ref;
66
+ reaction
67
+ } = props;
59
68
  if (!chatOptions.localCacheStorage) {
60
69
  throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');
61
70
  }
@@ -66,34 +75,23 @@ const SendbirdUIKitContainer = _ref => {
66
75
  const [sdkInstance, setSdkInstance] = (0, _react.useState)(() => {
67
76
  const sendbird = initializeSendbird(appId, {
68
77
  internalStorage,
69
- ...chatOptions
78
+ ...sanitizeChatOptions(chatOptions)
70
79
  });
71
80
  unsubscribes.current = sendbird.unsubscribes;
72
81
  return sendbird.chatSDK;
73
82
  });
83
+ const {
84
+ imageCompressionConfig,
85
+ voiceMessageConfig,
86
+ mentionConfig
87
+ } = useConfigInstance(props);
74
88
  const emojiManager = (0, _react.useMemo)(() => new _EmojiManager.default(internalStorage), [internalStorage]);
75
- const mentionManager = (0, _react.useMemo)(() => {
76
- const config = new _MentionConfig.default({
77
- mentionLimit: (userMention === null || userMention === void 0 ? void 0 : userMention.mentionLimit) || _MentionConfig.default.DEFAULT.MENTION_LIMIT,
78
- suggestionLimit: (userMention === null || userMention === void 0 ? void 0 : userMention.suggestionLimit) || _MentionConfig.default.DEFAULT.SUGGESTION_LIMIT,
79
- debounceMills: (userMention === null || userMention === void 0 ? void 0 : userMention.debounceMills) ?? _MentionConfig.default.DEFAULT.DEBOUNCE_MILLS,
80
- delimiter: _MentionConfig.default.DEFAULT.DELIMITER,
81
- trigger: _MentionConfig.default.DEFAULT.TRIGGER
82
- });
83
- return new _MentionManager.default(config);
84
- }, [userMention === null || userMention === void 0 ? void 0 : userMention.mentionLimit, userMention === null || userMention === void 0 ? void 0 : userMention.suggestionLimit, userMention === null || userMention === void 0 ? void 0 : userMention.debounceMills]);
85
- const imageCompressionConfig = (0, _react.useMemo)(() => {
86
- return new _ImageCompressionConfig.default({
87
- compressionRate: (imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.compressionRate) || _ImageCompressionConfig.default.DEFAULT.COMPRESSION_RATE,
88
- width: imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.width,
89
- height: imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.height
90
- });
91
- }, [imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.compressionRate, imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.width, imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.height]);
89
+ const mentionManager = (0, _react.useMemo)(() => new _MentionManager.default(mentionConfig), [mentionConfig]);
92
90
  (0, _react.useLayoutEffect)(() => {
93
91
  if (!isFirstMount) {
94
92
  const sendbird = initializeSendbird(appId, {
95
93
  internalStorage,
96
- ...chatOptions
94
+ ...sanitizeChatOptions(chatOptions)
97
95
  });
98
96
  setSdkInstance(sendbird.chatSDK);
99
97
  unsubscribes.current = sendbird.unsubscribes;
@@ -131,6 +129,7 @@ const SendbirdUIKitContainer = _ref => {
131
129
  emojiManager: emojiManager,
132
130
  mentionManager: mentionManager,
133
131
  imageCompressionConfig: imageCompressionConfig,
132
+ voiceMessageConfig: voiceMessageConfig,
134
133
  enableAutoPushTokenRegistration: chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION,
135
134
  enableUseUserIdForNickname: chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME,
136
135
  enableImageCompression: chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION
@@ -140,7 +139,10 @@ const SendbirdUIKitContainer = _ref => {
140
139
  fileService: platformServices.file,
141
140
  notificationService: platformServices.notification,
142
141
  clipboardService: platformServices.clipboard,
143
- mediaService: platformServices.media
142
+ mediaService: platformServices.media,
143
+ playerService: platformServices.player,
144
+ recorderService: platformServices.recorder,
145
+ voiceMessageConfig: voiceMessageConfig
144
146
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.UIKitThemeProvider, {
145
147
  theme: (styles === null || styles === void 0 ? void 0 : styles.theme) ?? _uikitReactNativeFoundation.LightUIKitTheme
146
148
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.HeaderStyleProvider, {
@@ -149,11 +151,9 @@ const SendbirdUIKitContainer = _ref => {
149
151
  statusBarTranslucent: (styles === null || styles === void 0 ? void 0 : styles.statusBarTranslucent) ?? true
150
152
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ToastProvider, {
151
153
  dismissTimeout: toast === null || toast === void 0 ? void 0 : toast.dismissTimeout
152
- }, /*#__PURE__*/_react.default.createElement(_UserProfileCtx.UserProfileProvider, {
153
- onCreateChannel: userProfile === null || userProfile === void 0 ? void 0 : userProfile.onCreateChannel,
154
- onBeforeCreateChannel: userProfile === null || userProfile === void 0 ? void 0 : userProfile.onBeforeCreateChannel,
154
+ }, /*#__PURE__*/_react.default.createElement(_UserProfileCtx.UserProfileProvider, _extends({}, userProfile, {
155
155
  statusBarTranslucent: (styles === null || styles === void 0 ? void 0 : styles.statusBarTranslucent) ?? true
156
- }, /*#__PURE__*/_react.default.createElement(_ReactionCtx.ReactionProvider, null, /*#__PURE__*/_react.default.createElement(_LocalizationCtx.LocalizationContext.Consumer, null, value => {
156
+ }), /*#__PURE__*/_react.default.createElement(_ReactionCtx.ReactionProvider, reaction, /*#__PURE__*/_react.default.createElement(_LocalizationCtx.LocalizationContext.Consumer, null, value => {
157
157
  const STRINGS = (value === null || value === void 0 ? void 0 : value.STRINGS) || defaultStringSet;
158
158
  return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.DialogProvider, {
159
159
  defaultLabels: {
@@ -174,16 +174,16 @@ const initializeSendbird = (appId, options) => {
174
174
  const unsubscribes = [];
175
175
  const {
176
176
  internalStorage,
177
- localCacheEncryption,
178
- onInitialized
177
+ onInitialized,
178
+ ...chatInitParams
179
179
  } = options;
180
180
  chatSDK = _chat.default.init({
181
+ ...chatInitParams,
181
182
  appId,
182
183
  newInstance: true,
183
184
  modules: [new _groupChannel.GroupChannelModule(), new _openChannel.OpenChannelModule()],
184
- localCacheEnabled: Boolean(internalStorage),
185
- useAsyncStorageStore: internalStorage,
186
- localCacheEncryption
185
+ localCacheEnabled: true,
186
+ useAsyncStorageStore: internalStorage
187
187
  });
188
188
  if (onInitialized) {
189
189
  chatSDK = onInitialized(chatSDK);
@@ -266,6 +266,44 @@ function getReactNativeVersion() {
266
266
  } = _reactNative.Platform.constants.reactNativeVersion;
267
267
  return `${major}.${minor}.${patch}`;
268
268
  }
269
+ const useConfigInstance = _ref => {
270
+ var _voiceMessage$recorde3, _voiceMessage$recorde4;
271
+ let {
272
+ imageCompression,
273
+ userMention,
274
+ voiceMessage
275
+ } = _ref;
276
+ const mentionConfig = (0, _react.useMemo)(() => {
277
+ return new _MentionConfig.default({
278
+ mentionLimit: (userMention === null || userMention === void 0 ? void 0 : userMention.mentionLimit) || _MentionConfig.default.DEFAULT.MENTION_LIMIT,
279
+ suggestionLimit: (userMention === null || userMention === void 0 ? void 0 : userMention.suggestionLimit) || _MentionConfig.default.DEFAULT.SUGGESTION_LIMIT,
280
+ debounceMills: (userMention === null || userMention === void 0 ? void 0 : userMention.debounceMills) ?? _MentionConfig.default.DEFAULT.DEBOUNCE_MILLS,
281
+ delimiter: _MentionConfig.default.DEFAULT.DELIMITER,
282
+ trigger: _MentionConfig.default.DEFAULT.TRIGGER
283
+ });
284
+ }, [userMention === null || userMention === void 0 ? void 0 : userMention.mentionLimit, userMention === null || userMention === void 0 ? void 0 : userMention.suggestionLimit, userMention === null || userMention === void 0 ? void 0 : userMention.debounceMills]);
285
+ const imageCompressionConfig = (0, _react.useMemo)(() => {
286
+ return new _ImageCompressionConfig.default({
287
+ compressionRate: (imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.compressionRate) || _ImageCompressionConfig.default.DEFAULT.COMPRESSION_RATE,
288
+ width: imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.width,
289
+ height: imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.height
290
+ });
291
+ }, [imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.compressionRate, imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.width, imageCompression === null || imageCompression === void 0 ? void 0 : imageCompression.height]);
292
+ const voiceMessageConfig = (0, _react.useMemo)(() => {
293
+ var _voiceMessage$recorde, _voiceMessage$recorde2;
294
+ return new _VoiceMessageConfig.default({
295
+ recorder: {
296
+ minDuration: (voiceMessage === null || voiceMessage === void 0 ? void 0 : (_voiceMessage$recorde = voiceMessage.recorder) === null || _voiceMessage$recorde === void 0 ? void 0 : _voiceMessage$recorde.minDuration) ?? _VoiceMessageConfig.default.DEFAULT.RECORDER.MIN_DURATION,
297
+ maxDuration: (voiceMessage === null || voiceMessage === void 0 ? void 0 : (_voiceMessage$recorde2 = voiceMessage.recorder) === null || _voiceMessage$recorde2 === void 0 ? void 0 : _voiceMessage$recorde2.maxDuration) ?? _VoiceMessageConfig.default.DEFAULT.RECORDER.MAX_DURATION
298
+ }
299
+ });
300
+ }, [voiceMessage === null || voiceMessage === void 0 ? void 0 : (_voiceMessage$recorde3 = voiceMessage.recorder) === null || _voiceMessage$recorde3 === void 0 ? void 0 : _voiceMessage$recorde3.minDuration, voiceMessage === null || voiceMessage === void 0 ? void 0 : (_voiceMessage$recorde4 = voiceMessage.recorder) === null || _voiceMessage$recorde4 === void 0 ? void 0 : _voiceMessage$recorde4.maxDuration]);
301
+ return {
302
+ mentionConfig,
303
+ imageCompressionConfig,
304
+ voiceMessageConfig
305
+ };
306
+ };
269
307
  var _default = SendbirdUIKitContainer;
270
308
  exports.default = _default;
271
309
  //# sourceMappingURL=SendbirdUIKitContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_chat","_groupChannel","_openChannel","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_LocalizationCtx","_PlatformServiceCtx","_ReactionCtx","_SendbirdChatCtx","_UserProfileCtx","_EmojiManager","_interopRequireDefault","_ImageCompressionConfig","_InternalLocalCacheStorage","_MentionConfig","_MentionManager","_StringSet","_dynamicModule","_version","_InternalErrorBoundaryContainer","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","NetInfo","SBUDynamicModule","SendbirdUIKit","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","exports","SendbirdUIKitContainer","_ref","children","appId","chatOptions","uikitOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","userMention","imageCompression","localCacheStorage","Error","defaultStringSet","stringSet","StringSetEn","isFirstMount","useIsFirstMount","unsubscribes","useRef","internalStorage","useState","InternalLocalCacheStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","emojiManager","useMemo","EmojiManager","mentionManager","config","MentionConfig","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","MentionManager","imageCompressionConfig","ImageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","useLayoutEffect","forEach","u","renderChildren","disabled","createElement","SafeAreaProvider","UIKitConfigProvider","storage","localConfigs","common","groupChannel","channel","channelList","groupChannelList","setting","groupChannelSettings","openChannel","SendbirdChatProvider","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","LocalizationProvider","PlatformServiceProvider","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","UIKitThemeProvider","theme","LightUIKitTheme","HeaderStyleProvider","HeaderComponent","Header","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","ToastProvider","dismissTimeout","UserProfileProvider","onCreateChannel","onBeforeCreateChannel","ReactionProvider","LocalizationContext","Consumer","value","STRINGS","DialogProvider","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","localCacheEncryption","onInitialized","Sendbird","init","newInstance","modules","GroupChannelModule","OpenChannelModule","localCacheEnabled","Boolean","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","SendbirdProduct","UIKIT_CHAT","SendbirdPlatform","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","NOOP","listener","callback","callbackType","callCount","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","DeviceOsPlatform","ANDROID","IOS","WEB","WINDOWS","undefined","major","minor","patch","constants","reactNativeVersion","_default"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird, { DeviceOsPlatform, SendbirdPlatform, SendbirdProduct } 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 { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';\nimport type {\n PartialDeep,\n SendbirdChatSDK,\n SendbirdEncryption,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { NOOP, useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\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');\ntype UnimplementedFeatures = 'enableVoiceMessage' | 'threadReplySelectType' | 'replyType';\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n USE_USER_ID_FOR_NICKNAME: false,\n IMAGE_COMPRESSION: true,\n },\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 localCacheEncryption?: SendbirdEncryption;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<ChatRelatedFeaturesInUIKit>;\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], UnimplementedFeatures> & {\n replyType: Extract<SBUConfig['groupChannel']['channel']['replyType'], 'none' | 'quote_reply'>;\n };\n groupChannelList: SBUConfig['groupChannel']['channelList'];\n groupChannelSettings: SBUConfig['groupChannel']['setting'];\n openChannel: SBUConfig['openChannel']['channel'];\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 errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n userMention,\n imageCompression,\n}: SendbirdUIKitContainerProps) => {\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n }\n\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n\n const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, { internalStorage, ...chatOptions });\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n\n const mentionManager = useMemo(() => {\n const config = new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n return new MentionManager(config);\n }, [userMention?.mentionLimit, userMention?.suggestionLimit, userMention?.debounceMills]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, { internalStorage, ...chatOptions });\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: uikitOptions?.groupChannel,\n channelList: uikitOptions?.groupChannelList,\n setting: uikitOptions?.groupChannelSettings,\n },\n openChannel: {\n channel: uikitOptions?.openChannel,\n },\n }}\n >\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n enableAutoPushTokenRegistration={\n chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableUseUserIdForNickname={\n chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableImageCompression={chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\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 <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider\n onCreateChannel={userProfile?.onCreateChannel}\n onBeforeCreateChannel={userProfile?.onBeforeCreateChannel}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ReactionProvider>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\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 {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </UIKitConfigProvider>\n </SafeAreaProvider>\n );\n};\n\nconst initializeSendbird = (\n appId: string,\n options: {\n internalStorage?: InternalLocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n localCacheEncryption?: SendbirdEncryption;\n },\n) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { internalStorage, localCacheEncryption, onInitialized } = options;\n\n chatSDK = Sendbird.init({\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(internalStorage),\n useAsyncStorageStore: internalStorage as never,\n localCacheEncryption,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n const platform = getDeviceOSPlatform();\n if (SendbirdUIKit.VERSION && platform) {\n const deviceOSInfo = { platform, version: String(Platform.Version) };\n const customData = { platform_version: getReactNativeVersion() };\n const uikitExtension = {\n product: SendbirdProduct.UIKIT_CHAT,\n version: SendbirdUIKit.VERSION,\n platform: SendbirdPlatform.REACT_NATIVE,\n };\n\n chatSDK.addSendbirdExtensions([uikitExtension], deviceOSInfo, customData);\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nfunction getDeviceOSPlatform() {\n switch (Platform.OS) {\n case 'android':\n return DeviceOsPlatform.ANDROID;\n case 'ios':\n return DeviceOsPlatform.IOS;\n case 'web':\n return DeviceOsPlatform.WEB;\n case 'windows':\n return DeviceOsPlatform.WINDOWS;\n default:\n return undefined;\n }\n}\n\nfunction getReactNativeVersion() {\n const { major, minor, patch } = Platform.constants.reactNativeVersion;\n return `${major}.${minor}.${patch}`;\n}\n\nexport default SendbirdUIKitContainer;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAEA,IAAAM,2BAAA,GAAAN,OAAA;AAQA,IAAAO,WAAA,GAAAP,OAAA;AAUA,IAAAQ,WAAA,GAAAR,OAAA;AAEA,IAAAS,gBAAA,GAAAT,OAAA;AACA,IAAAU,mBAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAX,OAAA;AAEA,IAAAY,gBAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AACA,IAAAc,aAAA,GAAAC,sBAAA,CAAAf,OAAA;AAEA,IAAAgB,uBAAA,GAAAD,sBAAA,CAAAf,OAAA;AACA,IAAAiB,0BAAA,GAAAF,sBAAA,CAAAf,OAAA;AACA,IAAAkB,cAAA,GAAAH,sBAAA,CAAAf,OAAA;AACA,IAAAmB,eAAA,GAAAJ,sBAAA,CAAAf,OAAA;AACA,IAAAoB,UAAA,GAAAL,sBAAA,CAAAf,OAAA;AAEA,IAAAqB,cAAA,GAAAN,sBAAA,CAAAf,OAAA;AAQA,IAAAsB,QAAA,GAAAP,sBAAA,CAAAf,OAAA;AACA,IAAAuB,+BAAA,GAAAR,sBAAA,CAAAf,OAAA;AAA8E,SAAAe,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAA7B,wBAAAyB,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAE9E,MAAMW,OAAO,GAAGC,sBAAgB,CAACb,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC;AAExE,MAAMc,aAAa,GAAGX,MAAM,CAACY,MAAM,CAAC;EACzCC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAAEC,qBAAQ,CAACC,EAAE,CAACC,WAAW,EAAE;EACnCC,OAAO,EAAE;IACPC,4BAA4B,EAAE,IAAI;IAClCC,wBAAwB,EAAE,KAAK;IAC/BC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAACC,OAAA,CAAAX,aAAA,GAAAA,aAAA;AAqDH,MAAMY,sBAAsB,GAAGC,IAAA,IAaI;EAAA,IAbH;IAC9BC,QAAQ;IACRC,KAAK;IACLC,WAAW;IACXC,YAAY;IACZC,gBAAgB;IAChBC,YAAY;IACZC,MAAM;IACNC,aAAa;IACbC,KAAK;IACLC,WAAW;IACXC,WAAW;IACXC;EAC2B,CAAC,GAAAZ,IAAA;EAC5B,IAAI,CAACG,WAAW,CAACU,iBAAiB,EAAE;IAClC,MAAM,IAAIC,KAAK,CAAC,mEAAmE,CAAC;EACtF;EAEA,MAAMC,gBAAgB,GAAG,CAAAT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,SAAS,KAAIC,kBAAW;EAE/D,MAAMC,YAAY,GAAG,IAAAC,2BAAe,GAAE;EACtC,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAAoB,EAAE,CAAC;EAElD,MAAM,CAACC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM,IAAIC,kCAAyB,CAACrB,WAAW,CAACU,iBAAiB,CAAC,CAAC;EACtG,MAAM,CAACY,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAH,eAAQ,EAAkB,MAAM;IACpE,MAAMI,QAAQ,GAAGC,kBAAkB,CAAC1B,KAAK,EAAE;MAAEoB,eAAe;MAAE,GAAGnB;IAAY,CAAC,CAAC;IAC/EiB,YAAY,CAACS,OAAO,GAAGF,QAAQ,CAACP,YAAY;IAC5C,OAAOO,QAAQ,CAACG,OAAO;EACzB,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAIC,qBAAY,CAACX,eAAe,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAExF,MAAMY,cAAc,GAAG,IAAAF,cAAO,EAAC,MAAM;IACnC,MAAMG,MAAM,GAAG,IAAIC,sBAAa,CAAC;MAC/BC,YAAY,EAAE,CAAA1B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE0B,YAAY,KAAID,sBAAa,CAAC1C,OAAO,CAAC4C,aAAa;MAC9EC,eAAe,EAAE,CAAA5B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE4B,eAAe,KAAIH,sBAAa,CAAC1C,OAAO,CAAC8C,gBAAgB;MACvFC,aAAa,EAAE,CAAA9B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE8B,aAAa,KAAIL,sBAAa,CAAC1C,OAAO,CAACgD,cAAc;MACjFC,SAAS,EAAEP,sBAAa,CAAC1C,OAAO,CAACkD,SAAS;MAC1CC,OAAO,EAAET,sBAAa,CAAC1C,OAAO,CAACoD;IACjC,CAAC,CAAC;IACF,OAAO,IAAIC,uBAAc,CAACZ,MAAM,CAAC;EACnC,CAAC,EAAE,CAACxB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE0B,YAAY,EAAE1B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE4B,eAAe,EAAE5B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE8B,aAAa,CAAC,CAAC;EAEzF,MAAMO,sBAAsB,GAAG,IAAAhB,cAAO,EAAC,MAAM;IAC3C,OAAO,IAAIiB,+BAAsB,CAAC;MAChCC,eAAe,EAAE,CAAAtC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEsC,eAAe,KAAID,+BAAsB,CAACvD,OAAO,CAACyD,gBAAgB;MACrGC,KAAK,EAAExC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEwC,KAAK;MAC9BC,MAAM,EAAEzC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEyC;IAC5B,CAAC,CAAC;EACJ,CAAC,EAAE,CAACzC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEsC,eAAe,EAAEtC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEwC,KAAK,EAAExC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEyC,MAAM,CAAC,CAAC;EAE1F,IAAAC,sBAAe,EAAC,MAAM;IACpB,IAAI,CAACpC,YAAY,EAAE;MACjB,MAAMS,QAAQ,GAAGC,kBAAkB,CAAC1B,KAAK,EAAE;QAAEoB,eAAe;QAAE,GAAGnB;MAAY,CAAC,CAAC;MAC/EuB,cAAc,CAACC,QAAQ,CAACG,OAAO,CAAC;MAChCV,YAAY,CAACS,OAAO,GAAGF,QAAQ,CAACP,YAAY;IAC9C;IAEA,OAAO,MAAM;MACXA,YAAY,CAACS,OAAO,CAAC0B,OAAO,CAAEC,CAAC,IAAK;QAClC,IAAI;UACFA,CAAC,EAAE;QACL,CAAC,CAAC,MAAM,CAAC;MACX,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACtD,KAAK,EAAEoB,eAAe,CAAC,CAAC;EAE5B,MAAMmC,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIjD,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEkD,QAAQ,EAAE;MAC3B,OAAOzD,QAAQ;IACjB,CAAC,MAAM;MACL,oBAAOhE,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAACjG,+BAAA,CAAAG,OAA8B,EAAK2C,aAAa,EAAGP,QAAQ,CAAkC;IACvG;EACF,CAAC;EAED,oBACEhE,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAACtH,2BAAA,CAAAuH,gBAAgB,qBACf3H,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAACjH,WAAA,CAAAmH,mBAAmB;IAClBC,OAAO,EAAExC,eAAgB;IACzByC,YAAY,EAAE;MACZC,MAAM,EAAE5D,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE4D,MAAM;MAC5BC,YAAY,EAAE;QACZC,OAAO,EAAE9D,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE6D,YAAY;QACnCE,WAAW,EAAE/D,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgE,gBAAgB;QAC3CC,OAAO,EAAEjE,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEkE;MACzB,CAAC;MACDC,WAAW,EAAE;QACXL,OAAO,EAAE9D,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEmE;MACzB;IACF;EAAE,gBAEFtI,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAC5G,gBAAA,CAAAyH,oBAAoB;IACnB/C,WAAW,EAAEA,WAAY;IACzBM,YAAY,EAAEA,YAAa;IAC3BG,cAAc,EAAEA,cAAe;IAC/Bc,sBAAsB,EAAEA,sBAAuB;IAC/CyB,+BAA+B,EAC7BtE,WAAW,CAACsE,+BAA+B,IAAItF,aAAa,CAACO,OAAO,CAACC,4BACtE;IACD+E,0BAA0B,EACxBvE,WAAW,CAACuE,0BAA0B,IAAIvF,aAAa,CAACO,OAAO,CAACE,wBACjE;IACD+E,sBAAsB,EAAExE,WAAW,CAACwE,sBAAsB,IAAIxF,aAAa,CAACO,OAAO,CAACG;EAAkB,gBAEtG5D,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAC/G,gBAAA,CAAAgI,oBAAoB;IAAC5D,SAAS,EAAED;EAAiB,gBAChD9E,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAC9G,mBAAA,CAAAgI,uBAAuB;IACtBC,WAAW,EAAEzE,gBAAgB,CAAC0E,IAAK;IACnCC,mBAAmB,EAAE3E,gBAAgB,CAAC4E,YAAa;IACnDC,gBAAgB,EAAE7E,gBAAgB,CAAC8E,SAAU;IAC7CC,YAAY,EAAE/E,gBAAgB,CAACgF;EAAM,gBAErCpJ,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAClH,2BAAA,CAAA6I,kBAAkB;IAACC,KAAK,EAAE,CAAAhF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEgF,KAAK,KAAIC;EAAgB,gBAC1DvJ,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAClH,2BAAA,CAAAgJ,mBAAmB;IAClBC,eAAe,EAAE,CAAAnF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEmF,eAAe,KAAIC,kCAAO;IACnDC,iBAAiB,EAAE,CAAArF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEsF,uBAAuB,KAAI,MAAO;IAC7DC,oBAAoB,EAAE,CAAAvF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEuF,oBAAoB,KAAI;EAAK,gBAE3D7J,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAClH,2BAAA,CAAAsJ,aAAa;IAACC,cAAc,EAAEvF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEuF;EAAe,gBACnD/J,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAC3G,eAAA,CAAAiJ,mBAAmB;IAClBC,eAAe,EAAExF,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEwF,eAAgB;IAC9CC,qBAAqB,EAAEzF,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEyF,qBAAsB;IAC1DL,oBAAoB,EAAE,CAAAvF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEuF,oBAAoB,KAAI;EAAK,gBAE3D7J,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAC7G,YAAA,CAAAsJ,gBAAgB,qBACfnK,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAC/G,gBAAA,CAAAyJ,mBAAmB,CAACC,QAAQ,QACzBC,KAAK,IAAK;IACV,MAAMC,OAAO,GAAG,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,OAAO,KAAIzF,gBAAgB;IAClD,oBACE9E,MAAA,CAAA4B,OAAA,CAAA8F,aAAA,CAAClH,2BAAA,CAAAgK,cAAc;MACbC,aAAa,EAAE;QACbC,KAAK,EAAE;UAAEC,EAAE,EAAEJ,OAAO,CAACK,MAAM,CAACC;QAAiB,CAAC;QAC9CC,MAAM,EAAE;UACNH,EAAE,EAAEJ,OAAO,CAACK,MAAM,CAACG,iBAAiB;UACpCC,MAAM,EAAET,OAAO,CAACK,MAAM,CAACK,qBAAqB;UAC5CC,WAAW,EAAEX,OAAO,CAACK,MAAM,CAACO;QAC9B;MACF;IAAE,GAED3D,cAAc,EAAE,CACF;EAErB,CAAC,CAC4B,CACd,CACC,CACR,CACI,CACH,CACG,CACL,CACF,CACH,CACL;AAEvB,CAAC;AAED,MAAM7B,kBAAkB,GAAGA,CACzB1B,KAAa,EACbmH,OAIC,KACE;EACH,IAAIvF,OAAwB;EAC5B,MAAMV,YAA+B,GAAG,EAAE;EAC1C,MAAM;IAAEE,eAAe;IAAEgG,oBAAoB;IAAEC;EAAc,CAAC,GAAGF,OAAO;EAExEvF,OAAO,GAAG0F,aAAQ,CAACC,IAAI,CAAC;IACtBvH,KAAK;IACLwH,WAAW,EAAE,IAAI;IACjBC,OAAO,EAAE,CAAC,IAAIC,gCAAkB,EAAE,EAAE,IAAIC,8BAAiB,EAAE,CAAC;IAC5DC,iBAAiB,EAAEC,OAAO,CAACzG,eAAe,CAAC;IAC3C0G,oBAAoB,EAAE1G,eAAwB;IAC9CgG;EACF,CAAC,CAAC;EAEF,IAAIC,aAAa,EAAE;IACjBzF,OAAO,GAAGyF,aAAa,CAACzF,OAAO,CAAC;EAClC;EAEA,MAAMmG,QAAQ,GAAGC,mBAAmB,EAAE;EACtC,IAAI/I,aAAa,CAACE,OAAO,IAAI4I,QAAQ,EAAE;IACrC,MAAME,YAAY,GAAG;MAAEF,QAAQ;MAAEG,OAAO,EAAEC,MAAM,CAAC9I,qBAAQ,CAAC+I,OAAO;IAAE,CAAC;IACpE,MAAMC,UAAU,GAAG;MAAEC,gBAAgB,EAAEC,qBAAqB;IAAG,CAAC;IAChE,MAAMC,cAAc,GAAG;MACrBC,OAAO,EAAEC,qBAAe,CAACC,UAAU;MACnCT,OAAO,EAAEjJ,aAAa,CAACE,OAAO;MAC9B4I,QAAQ,EAAEa,sBAAgB,CAACC;IAC7B,CAAC;IAEDjH,OAAO,CAACkH,qBAAqB,CAAC,CAACN,cAAc,CAAC,EAAEP,YAAY,EAAEI,UAAU,CAAC;IACzEzG,OAAO,CAACmH,YAAY,CAAC,UAAU,EAAE9J,aAAa,CAACE,OAAO,CAAC;EACzD;EAEA,IAAIF,aAAa,CAACG,QAAQ,EAAE;IAC1BwC,OAAO,CAACmH,YAAY,CAAC,oBAAoB,EAAE9J,aAAa,CAACG,QAAQ,CAAC;EACpE;EAEA,IAAIL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEiK,gBAAgB,EAAE;IAAA,IAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,SAAA;IAC7B,IAAI;MACF;MACA;MACA;MACA;MACA;MACArK,OAAO,CAACiK,gBAAgB,CAACK,gBAAI,CAAC,EAAE;IAClC,CAAC,CAAC,MAAM,CAAC;IAET,MAAMC,QAAQ,GAAGA,CAACC,QAAoB,EAAEC,YAAkC,KAAK;MAC7E,IAAIC,SAAS,GAAG,CAAC;MACjB,MAAMC,WAAW,GAAG3K,OAAO,CAACiK,gBAAgB,CAAEW,KAAK,IAAK;QACtD,MAAMC,MAAM,GAAG/B,OAAO,CAAC8B,KAAK,CAACE,WAAW,CAAC,IAAIhC,OAAO,CAAC8B,KAAK,CAACG,mBAAmB,CAAC;;QAE/E;QACA;QACA;QACA,IAAIL,SAAS,KAAK,CAAC,EAAE;UACnBA,SAAS,EAAE;UACX;QACF;QAEA,IAAIG,MAAM,IAAIJ,YAAY,KAAK,QAAQ,EAAED,QAAQ,EAAE;QACnD,IAAI,CAACK,MAAM,IAAIJ,YAAY,KAAK,SAAS,EAAED,QAAQ,EAAE;MACvD,CAAC,CAAC;MACFrI,YAAY,CAAC6I,IAAI,CAACL,WAAW,CAAC;MAC9B,OAAOA,WAAW;IACpB,CAAC;IACD,CAAAT,qBAAA,IAAAC,QAAA,GAAAtH,OAAO,EAACoI,iBAAiB,cAAAf,qBAAA,uBAAzBA,qBAAA,CAAArK,IAAA,CAAAsK,QAAA,EAA6Be,QAAQ,IAAKX,QAAQ,CAACW,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAAd,qBAAA,IAAAC,SAAA,GAAAxH,OAAO,EAACsI,kBAAkB,cAAAf,qBAAA,uBAA1BA,qBAAA,CAAAvK,IAAA,CAAAwK,SAAA,EAA8Be,SAAS,IAAKb,QAAQ,CAACa,SAAS,EAAE,SAAS,CAAC,CAAC;EAC7E;EACA,OAAO;IAAEvI,OAAO;IAAEV;EAAa,CAAC;AAClC,CAAC;AAED,SAAS8G,mBAAmBA,CAAA,EAAG;EAC7B,QAAQ3I,qBAAQ,CAACC,EAAE;IACjB,KAAK,SAAS;MACZ,OAAO8K,sBAAgB,CAACC,OAAO;IACjC,KAAK,KAAK;MACR,OAAOD,sBAAgB,CAACE,GAAG;IAC7B,KAAK,KAAK;MACR,OAAOF,sBAAgB,CAACG,GAAG;IAC7B,KAAK,SAAS;MACZ,OAAOH,sBAAgB,CAACI,OAAO;IACjC;MACE,OAAOC,SAAS;EAAC;AAEvB;AAEA,SAASlC,qBAAqBA,CAAA,EAAG;EAC/B,MAAM;IAAEmC,KAAK;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGvL,qBAAQ,CAACwL,SAAS,CAACC,kBAAkB;EACrE,OAAQ,GAAEJ,KAAM,IAAGC,KAAM,IAAGC,KAAM,EAAC;AACrC;AAAC,IAAAG,QAAA,GAEclL,sBAAsB;AAAAD,OAAA,CAAAjC,OAAA,GAAAoN,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_chat","_groupChannel","_openChannel","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_LocalizationCtx","_PlatformServiceCtx","_ReactionCtx","_SendbirdChatCtx","_UserProfileCtx","_EmojiManager","_interopRequireDefault","_ImageCompressionConfig","_InternalLocalCacheStorage","_MentionConfig","_MentionManager","_VoiceMessageConfig","_StringSet","_dynamicModule","_version","_InternalErrorBoundaryContainer","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","NetInfo","SBUDynamicModule","SendbirdUIKit","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","exports","chatOmitKeys","sanitizeChatOptions","chatOptions","opts","forEach","SendbirdUIKitContainer","props","children","appId","uikitOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","reaction","localCacheStorage","Error","defaultStringSet","stringSet","StringSetEn","isFirstMount","useIsFirstMount","unsubscribes","useRef","internalStorage","useState","InternalLocalCacheStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","useMemo","EmojiManager","mentionManager","MentionManager","useLayoutEffect","u","renderChildren","disabled","createElement","SafeAreaProvider","UIKitConfigProvider","storage","localConfigs","common","groupChannel","channel","channelList","groupChannelList","setting","groupChannelSettings","openChannel","SendbirdChatProvider","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","LocalizationProvider","PlatformServiceProvider","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","UIKitThemeProvider","theme","LightUIKitTheme","HeaderStyleProvider","HeaderComponent","Header","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","ToastProvider","dismissTimeout","UserProfileProvider","ReactionProvider","LocalizationContext","Consumer","value","STRINGS","DialogProvider","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","SendbirdChat","init","newInstance","modules","GroupChannelModule","OpenChannelModule","localCacheEnabled","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","SendbirdProduct","UIKIT_CHAT","SendbirdPlatform","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","NOOP","listener","callback","callbackType","callCount","unsubscribe","state","online","Boolean","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","DeviceOsPlatform","ANDROID","IOS","WEB","WINDOWS","undefined","major","minor","patch","constants","reactNativeVersion","_ref","_voiceMessage$recorde3","_voiceMessage$recorde4","imageCompression","userMention","voiceMessage","MentionConfig","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","ImageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","VoiceMessageConfig","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","_default"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport SendbirdChat, { DeviceOsPlatform, SendbirdChatParams, SendbirdPlatform, SendbirdProduct } 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 { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';\nimport type {\n PartialDeep,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { NOOP, useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport VoiceMessageConfig, { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';\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 PlayerServiceInterface,\n RecorderServiceInterface,\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');\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n USE_USER_ID_FOR_NICKNAME: false,\n IMAGE_COMPRESSION: true,\n },\n});\n\ntype UnimplementedFeatures = 'threadReplySelectType' | 'replyType';\nexport type ChatOmittedInitParams = Omit<\n SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>,\n (typeof chatOmitKeys)[number]\n>;\n\nconst chatOmitKeys = [\n 'appId',\n 'newInstance',\n 'modules',\n 'debugMode',\n 'appVersion',\n 'localCacheEnabled',\n 'useAsyncStorageStore',\n] as const;\nfunction sanitizeChatOptions<T extends Record<string, unknown>>(chatOptions: T): T {\n const opts = { ...chatOptions };\n chatOmitKeys.forEach((key) => delete opts[key]);\n return opts;\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 player: PlayerServiceInterface;\n recorder: RecorderServiceInterface;\n };\n chatOptions: {\n localCacheStorage: LocalCacheStorage;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<ChatOmittedInitParams> &\n Partial<ChatRelatedFeaturesInUIKit>;\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], UnimplementedFeatures> & {\n replyType: Extract<SBUConfig['groupChannel']['channel']['replyType'], 'none' | 'quote_reply'>;\n };\n groupChannelList: SBUConfig['groupChannel']['channelList'];\n groupChannelSettings: SBUConfig['groupChannel']['setting'];\n openChannel: SBUConfig['openChannel']['channel'];\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 errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n reaction?: {\n onPressUserProfile?: (user: SendbirdUser | SendbirdMember) => void;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n voiceMessage?: PartialDeep<VoiceMessageConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = (props: SendbirdUIKitContainerProps) => {\n const {\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n reaction,\n } = props;\n\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n }\n\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n\n const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, { internalStorage, ...sanitizeChatOptions(chatOptions) });\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const { imageCompressionConfig, voiceMessageConfig, mentionConfig } = useConfigInstance(props);\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n const mentionManager = useMemo(() => new MentionManager(mentionConfig), [mentionConfig]);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, { internalStorage, ...sanitizeChatOptions(chatOptions) });\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: uikitOptions?.groupChannel,\n channelList: uikitOptions?.groupChannelList,\n setting: uikitOptions?.groupChannelSettings,\n },\n openChannel: {\n channel: uikitOptions?.openChannel,\n },\n }}\n >\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n voiceMessageConfig={voiceMessageConfig}\n enableAutoPushTokenRegistration={\n chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableUseUserIdForNickname={\n chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableImageCompression={chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n playerService={platformServices.player}\n recorderService={platformServices.recorder}\n voiceMessageConfig={voiceMessageConfig}\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 <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider {...userProfile} statusBarTranslucent={styles?.statusBarTranslucent ?? true}>\n <ReactionProvider {...reaction}>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\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 {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </UIKitConfigProvider>\n </SafeAreaProvider>\n );\n};\n\ninterface InitOptions extends ChatOmittedInitParams {\n internalStorage: InternalLocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n}\nconst initializeSendbird = (appId: string, options: InitOptions) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { internalStorage, onInitialized, ...chatInitParams } = options;\n\n chatSDK = SendbirdChat.init({\n ...chatInitParams,\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: true,\n useAsyncStorageStore: internalStorage as never,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n const platform = getDeviceOSPlatform();\n if (SendbirdUIKit.VERSION && platform) {\n const deviceOSInfo = { platform, version: String(Platform.Version) };\n const customData = { platform_version: getReactNativeVersion() };\n const uikitExtension = {\n product: SendbirdProduct.UIKIT_CHAT,\n version: SendbirdUIKit.VERSION,\n platform: SendbirdPlatform.REACT_NATIVE,\n };\n\n chatSDK.addSendbirdExtensions([uikitExtension], deviceOSInfo, customData);\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nfunction getDeviceOSPlatform() {\n switch (Platform.OS) {\n case 'android':\n return DeviceOsPlatform.ANDROID;\n case 'ios':\n return DeviceOsPlatform.IOS;\n case 'web':\n return DeviceOsPlatform.WEB;\n case 'windows':\n return DeviceOsPlatform.WINDOWS;\n default:\n return undefined;\n }\n}\n\nfunction getReactNativeVersion() {\n const { major, minor, patch } = Platform.constants.reactNativeVersion;\n return `${major}.${minor}.${patch}`;\n}\n\nconst useConfigInstance = ({ imageCompression, userMention, voiceMessage }: SendbirdUIKitContainerProps) => {\n const mentionConfig = useMemo(() => {\n return new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n }, [userMention?.mentionLimit, userMention?.suggestionLimit, userMention?.debounceMills]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n const voiceMessageConfig = useMemo(() => {\n return new VoiceMessageConfig({\n recorder: {\n minDuration: voiceMessage?.recorder?.minDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: voiceMessage?.recorder?.maxDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n },\n });\n }, [voiceMessage?.recorder?.minDuration, voiceMessage?.recorder?.maxDuration]);\n\n return {\n mentionConfig,\n imageCompressionConfig,\n voiceMessageConfig,\n };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
@@ -4,25 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PlatformServiceProvider = exports.PlatformServiceContext = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _uikitUtils = require("@sendbird/uikit-utils");
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ 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; }
9
11
  const PlatformServiceContext = /*#__PURE__*/_react.default.createContext(null);
10
12
  exports.PlatformServiceContext = PlatformServiceContext;
11
13
  const PlatformServiceProvider = _ref => {
12
14
  let {
13
15
  children,
14
- fileService,
15
- clipboardService,
16
- notificationService,
17
- mediaService
16
+ voiceMessageConfig,
17
+ ...services
18
18
  } = _ref;
19
- return /*#__PURE__*/_react.default.createElement(PlatformServiceContext.Provider, {
20
- value: {
21
- fileService,
22
- clipboardService,
23
- notificationService,
24
- mediaService
19
+ (0, _react.useEffect)(() => {
20
+ services.recorderService.options.minDuration = voiceMessageConfig.recorder.minDuration;
21
+ services.recorderService.options.maxDuration = voiceMessageConfig.recorder.maxDuration;
22
+ }, [voiceMessageConfig]);
23
+ (0, _uikitUtils.useAppState)('change', state => {
24
+ if (state !== 'active') {
25
+ Promise.allSettled([services.playerService.reset(), services.recorderService.reset()]);
25
26
  }
27
+ });
28
+ return /*#__PURE__*/_react.default.createElement(PlatformServiceContext.Provider, {
29
+ value: services
26
30
  }, children);
27
31
  };
28
32
  exports.PlatformServiceProvider = PlatformServiceProvider;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","obj","__esModule","default","PlatformServiceContext","React","createContext","exports","PlatformServiceProvider","_ref","children","fileService","clipboardService","notificationService","mediaService","createElement","Provider","value"],"sources":["PlatformServiceCtx.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\n\ntype Props = React.PropsWithChildren<{\n fileService: FileServiceInterface;\n clipboardService: ClipboardServiceInterface;\n notificationService: NotificationServiceInterface;\n mediaService: MediaServiceInterface;\n}>;\n\nexport type PlatformServiceContextType = {\n fileService: FileServiceInterface;\n clipboardService: ClipboardServiceInterface;\n notificationService: NotificationServiceInterface;\n mediaService: MediaServiceInterface;\n};\n\nexport const PlatformServiceContext = React.createContext<PlatformServiceContextType | null>(null);\nexport const PlatformServiceProvider = ({\n children,\n fileService,\n clipboardService,\n notificationService,\n mediaService,\n}: Props) => {\n return (\n <PlatformServiceContext.Provider value={{ fileService, clipboardService, notificationService, mediaService }}>\n {children}\n </PlatformServiceContext.Provider>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAuBnB,MAAMG,sBAAsB,gBAAGC,cAAK,CAACC,aAAa,CAAoC,IAAI,CAAC;AAACC,OAAA,CAAAH,sBAAA,GAAAA,sBAAA;AAC5F,MAAMI,uBAAuB,GAAGC,IAAA,IAM1B;EAAA,IAN2B;IACtCC,QAAQ;IACRC,WAAW;IACXC,gBAAgB;IAChBC,mBAAmB;IACnBC;EACK,CAAC,GAAAL,IAAA;EACN,oBACEX,MAAA,CAAAK,OAAA,CAAAY,aAAA,CAACX,sBAAsB,CAACY,QAAQ;IAACC,KAAK,EAAE;MAAEN,WAAW;MAAEC,gBAAgB;MAAEC,mBAAmB;MAAEC;IAAa;EAAE,GAC1GJ,QAAQ,CACuB;AAEtC,CAAC;AAACH,OAAA,CAAAC,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","PlatformServiceContext","React","createContext","exports","PlatformServiceProvider","_ref","children","voiceMessageConfig","services","useEffect","recorderService","options","minDuration","recorder","maxDuration","useAppState","state","Promise","allSettled","playerService","reset","createElement","Provider","value"],"sources":["PlatformServiceCtx.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\n\nimport { useAppState } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n PlayerServiceInterface,\n RecorderServiceInterface,\n} from '../platform/types';\n\nexport type PlatformServiceContextType = {\n fileService: FileServiceInterface;\n clipboardService: ClipboardServiceInterface;\n notificationService: NotificationServiceInterface;\n mediaService: MediaServiceInterface;\n recorderService: RecorderServiceInterface;\n playerService: PlayerServiceInterface;\n};\ntype Props = React.PropsWithChildren<PlatformServiceContextType & { voiceMessageConfig: VoiceMessageConfig }>;\n\nexport const PlatformServiceContext = React.createContext<PlatformServiceContextType | null>(null);\nexport const PlatformServiceProvider = ({ children, voiceMessageConfig, ...services }: Props) => {\n useEffect(() => {\n services.recorderService.options.minDuration = voiceMessageConfig.recorder.minDuration;\n services.recorderService.options.maxDuration = voiceMessageConfig.recorder.maxDuration;\n }, [voiceMessageConfig]);\n\n useAppState('change', (state) => {\n if (state !== 'active') {\n Promise.allSettled([services.playerService.reset(), services.recorderService.reset()]);\n }\n });\n\n return <PlatformServiceContext.Provider value={services}>{children}</PlatformServiceContext.Provider>;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAAoD,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAsB7C,MAAMW,sBAAsB,gBAAGC,cAAK,CAACC,aAAa,CAAoC,IAAI,CAAC;AAACC,OAAA,CAAAH,sBAAA,GAAAA,sBAAA;AAC5F,MAAMI,uBAAuB,GAAGC,IAAA,IAA0D;EAAA,IAAzD;IAAEC,QAAQ;IAAEC,kBAAkB;IAAE,GAAGC;EAAgB,CAAC,GAAAH,IAAA;EAC1F,IAAAI,gBAAS,EAAC,MAAM;IACdD,QAAQ,CAACE,eAAe,CAACC,OAAO,CAACC,WAAW,GAAGL,kBAAkB,CAACM,QAAQ,CAACD,WAAW;IACtFJ,QAAQ,CAACE,eAAe,CAACC,OAAO,CAACG,WAAW,GAAGP,kBAAkB,CAACM,QAAQ,CAACC,WAAW;EACxF,CAAC,EAAE,CAACP,kBAAkB,CAAC,CAAC;EAExB,IAAAQ,uBAAW,EAAC,QAAQ,EAAGC,KAAK,IAAK;IAC/B,IAAIA,KAAK,KAAK,QAAQ,EAAE;MACtBC,OAAO,CAACC,UAAU,CAAC,CAACV,QAAQ,CAACW,aAAa,CAACC,KAAK,EAAE,EAAEZ,QAAQ,CAACE,eAAe,CAACU,KAAK,EAAE,CAAC,CAAC;IACxF;EACF,CAAC,CAAC;EAEF,oBAAO9C,MAAA,CAAAW,OAAA,CAAAoC,aAAA,CAACrB,sBAAsB,CAACsB,QAAQ;IAACC,KAAK,EAAEf;EAAS,GAAEF,QAAQ,CAAmC;AACvG,CAAC;AAACH,OAAA,CAAAC,uBAAA,GAAAA,uBAAA"}
@@ -17,7 +17,8 @@ const ReactionContext = /*#__PURE__*/_react.default.createContext(null);
17
17
  exports.ReactionContext = ReactionContext;
18
18
  const ReactionProvider = _ref => {
19
19
  let {
20
- children
20
+ children,
21
+ onPressUserProfile
21
22
  } = _ref;
22
23
  const chatCtx = (0, _react.useContext)(_SendbirdChatCtx.SendbirdChatContext);
23
24
  const localizationCtx = (0, _react.useContext)(_LocalizationCtx.LocalizationContext);
@@ -72,7 +73,7 @@ const ReactionProvider = _ref => {
72
73
  chatCtx,
73
74
  reactionCtx,
74
75
  localizationCtx,
75
- userProfileCtx,
76
+ onPressUserProfile: onPressUserProfile ?? userProfileCtx.show,
76
77
  onDismiss: () => {
77
78
  var _closeResolver$curren;
78
79
  setState({});
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitUtils","_ReactionBottomSheets","_LocalizationCtx","_SendbirdChatCtx","_UserProfileCtx","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ReactionContext","React","createContext","exports","ReactionProvider","_ref","children","chatCtx","useContext","SendbirdChatContext","localizationCtx","LocalizationContext","userProfileCtx","UserProfileContext","Error","state","setState","useReducer","prev","next","reactionListVisible","setReactionListVisible","useState","reactionUserListVisible","setReactionUserListVisible","reactionUserListFocusIndex","setReactionUserListFocusIndex","closeResolver","useRef","NOOP","openReactionList","useCallback","params","openReactionUserList","_ref2","channel","message","focusIndex","updateReactionFocusedItem","createOnCloseWithResolver","callback","Promise","resolve","current","reactionCtx","sheetProps","onDismiss","_closeResolver$curren","createElement","Provider","value","ReactionBottomSheets","UserList","visible","onClose","ReactionList"],"sources":["ReactionCtx.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef, useState } from 'react';\n\nimport type { SendbirdBaseChannel, SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport { ReactionBottomSheets } from '../components/ReactionBottomSheets';\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\ntype State = {\n message?: SendbirdBaseMessage;\n channel?: SendbirdBaseChannel;\n};\nexport type ReactionContextType = {\n openReactionList(param: Required<State>): void;\n openReactionUserList(param: Required<State> & { focusIndex?: number }): void;\n updateReactionFocusedItem(param?: State): void;\n focusIndex: number;\n} & State;\n\ntype Props = React.PropsWithChildren<{}>;\n\nexport const ReactionContext = React.createContext<ReactionContextType | null>(null);\nexport const ReactionProvider = ({ children }: Props) => {\n const chatCtx = useContext(SendbirdChatContext);\n const localizationCtx = useContext(LocalizationContext);\n const userProfileCtx = useContext(UserProfileContext);\n if (!chatCtx) throw new Error('SendbirdChatContext is not provided');\n if (!localizationCtx) throw new Error('LocalizationContext is not provided');\n if (!userProfileCtx) throw new Error('UserProfileContext is not provided');\n\n const [state, setState] = useReducer((prev: State, next: State) => ({ ...prev, ...next }), {});\n const [reactionListVisible, setReactionListVisible] = useState(false);\n const [reactionUserListVisible, setReactionUserListVisible] = useState(false);\n const [reactionUserListFocusIndex, setReactionUserListFocusIndex] = useState(0);\n\n const closeResolver = useRef<() => void>(NOOP);\n\n const openReactionList: ReactionContextType['openReactionList'] = useCallback((params) => {\n setState(params);\n setReactionListVisible(true);\n }, []);\n\n const openReactionUserList: ReactionContextType['openReactionUserList'] = useCallback(\n ({ channel, message, focusIndex = 0 }) => {\n setState({ channel, message });\n setReactionUserListFocusIndex(focusIndex);\n setReactionUserListVisible(true);\n },\n [],\n );\n\n const updateReactionFocusedItem: ReactionContextType['updateReactionFocusedItem'] = useCallback((params) => {\n if (params) setState(params);\n else setState({});\n }, []);\n\n const createOnCloseWithResolver = (callback: () => void) => {\n return () => {\n return new Promise<void>((resolve) => {\n closeResolver.current = resolve;\n callback();\n });\n };\n };\n\n const reactionCtx = {\n ...state,\n openReactionList,\n openReactionUserList,\n updateReactionFocusedItem,\n focusIndex: reactionUserListFocusIndex,\n };\n\n const sheetProps = {\n chatCtx,\n reactionCtx,\n localizationCtx,\n userProfileCtx,\n onDismiss: () => {\n setState({});\n closeResolver.current?.();\n },\n };\n\n return (\n <ReactionContext.Provider value={reactionCtx}>\n {children}\n <ReactionBottomSheets.UserList\n {...sheetProps}\n visible={reactionUserListVisible}\n onClose={createOnCloseWithResolver(() => setReactionUserListVisible(false))}\n />\n <ReactionBottomSheets.ReactionList\n {...sheetProps}\n visible={reactionListVisible}\n onClose={createOnCloseWithResolver(() => setReactionListVisible(false))}\n />\n </ReactionContext.Provider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitUtils","_ReactionBottomSheets","_LocalizationCtx","_SendbirdChatCtx","_UserProfileCtx","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ReactionContext","React","createContext","exports","ReactionProvider","_ref","children","onPressUserProfile","chatCtx","useContext","SendbirdChatContext","localizationCtx","LocalizationContext","userProfileCtx","UserProfileContext","Error","state","setState","useReducer","prev","next","reactionListVisible","setReactionListVisible","useState","reactionUserListVisible","setReactionUserListVisible","reactionUserListFocusIndex","setReactionUserListFocusIndex","closeResolver","useRef","NOOP","openReactionList","useCallback","params","openReactionUserList","_ref2","channel","message","focusIndex","updateReactionFocusedItem","createOnCloseWithResolver","callback","Promise","resolve","current","reactionCtx","sheetProps","show","onDismiss","_closeResolver$curren","createElement","Provider","value","ReactionBottomSheets","UserList","visible","onClose","ReactionList"],"sources":["ReactionCtx.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef, useState } from 'react';\n\nimport type { SendbirdBaseChannel, SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport { ReactionBottomSheetProps, ReactionBottomSheets } from '../components/ReactionBottomSheets';\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\ntype State = {\n message?: SendbirdBaseMessage;\n channel?: SendbirdBaseChannel;\n};\nexport type ReactionContextType = {\n openReactionList(param: Required<State>): void;\n openReactionUserList(param: Required<State> & { focusIndex?: number }): void;\n updateReactionFocusedItem(param?: State): void;\n focusIndex: number;\n} & State;\n\ntype Props = React.PropsWithChildren<{\n onPressUserProfile?: ReactionBottomSheetProps['onPressUserProfile'];\n}>;\n\nexport const ReactionContext = React.createContext<ReactionContextType | null>(null);\nexport const ReactionProvider = ({ children, onPressUserProfile }: Props) => {\n const chatCtx = useContext(SendbirdChatContext);\n const localizationCtx = useContext(LocalizationContext);\n const userProfileCtx = useContext(UserProfileContext);\n if (!chatCtx) throw new Error('SendbirdChatContext is not provided');\n if (!localizationCtx) throw new Error('LocalizationContext is not provided');\n if (!userProfileCtx) throw new Error('UserProfileContext is not provided');\n\n const [state, setState] = useReducer((prev: State, next: State) => ({ ...prev, ...next }), {});\n const [reactionListVisible, setReactionListVisible] = useState(false);\n const [reactionUserListVisible, setReactionUserListVisible] = useState(false);\n const [reactionUserListFocusIndex, setReactionUserListFocusIndex] = useState(0);\n\n const closeResolver = useRef<() => void>(NOOP);\n\n const openReactionList: ReactionContextType['openReactionList'] = useCallback((params) => {\n setState(params);\n setReactionListVisible(true);\n }, []);\n\n const openReactionUserList: ReactionContextType['openReactionUserList'] = useCallback(\n ({ channel, message, focusIndex = 0 }) => {\n setState({ channel, message });\n setReactionUserListFocusIndex(focusIndex);\n setReactionUserListVisible(true);\n },\n [],\n );\n\n const updateReactionFocusedItem: ReactionContextType['updateReactionFocusedItem'] = useCallback((params) => {\n if (params) setState(params);\n else setState({});\n }, []);\n\n const createOnCloseWithResolver = (callback: () => void) => {\n return () => {\n return new Promise<void>((resolve) => {\n closeResolver.current = resolve;\n callback();\n });\n };\n };\n\n const reactionCtx = {\n ...state,\n openReactionList,\n openReactionUserList,\n updateReactionFocusedItem,\n focusIndex: reactionUserListFocusIndex,\n };\n\n const sheetProps: Omit<ReactionBottomSheetProps, 'visible' | 'onClose'> = {\n chatCtx,\n reactionCtx,\n localizationCtx,\n onPressUserProfile: onPressUserProfile ?? userProfileCtx.show,\n onDismiss: () => {\n setState({});\n closeResolver.current?.();\n },\n };\n\n return (\n <ReactionContext.Provider value={reactionCtx}>\n {children}\n <ReactionBottomSheets.UserList\n {...sheetProps}\n visible={reactionUserListVisible}\n onClose={createOnCloseWithResolver(() => setReactionUserListVisible(false))}\n />\n <ReactionBottomSheets.ReactionList\n {...sheetProps}\n visible={reactionListVisible}\n onClose={createOnCloseWithResolver(() => setReactionListVisible(false))}\n />\n </ReactionContext.Provider>\n );\n};\n"],"mappings":"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"}