@sendbird/uikit-react-native 3.7.5 → 3.8.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 (1100) hide show
  1. package/README.md +3 -2
  2. package/lib/commonjs/components/ChannelCover.js +9 -11
  3. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  4. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js +7 -9
  5. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -1
  6. package/lib/commonjs/components/ChannelInput/EditInput.js +18 -18
  7. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  8. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +37 -50
  9. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
  10. package/lib/commonjs/components/ChannelInput/SendInput.js +44 -49
  11. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  12. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +12 -14
  13. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  14. package/lib/commonjs/components/ChannelInput/index.js +22 -27
  15. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  16. package/lib/commonjs/components/ChannelMessageList/index.js +59 -75
  17. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  18. package/lib/commonjs/components/ChannelThreadMessageList/index.js +54 -70
  19. package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
  20. package/lib/commonjs/components/ChatFlatList/FlatListInternal.js +1 -2
  21. package/lib/commonjs/components/ChatFlatList/FlatListInternal.js.map +1 -1
  22. package/lib/commonjs/components/ChatFlatList/index.js +13 -15
  23. package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
  24. package/lib/commonjs/components/FileViewer/FileViewerContent.js +18 -21
  25. package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -1
  26. package/lib/commonjs/components/FileViewer/FileViewerFooter.js +14 -19
  27. package/lib/commonjs/components/FileViewer/FileViewerFooter.js.map +1 -1
  28. package/lib/commonjs/components/FileViewer/FileViewerHeader.js +14 -20
  29. package/lib/commonjs/components/FileViewer/FileViewerHeader.js.map +1 -1
  30. package/lib/commonjs/components/FileViewer/index.js +15 -17
  31. package/lib/commonjs/components/FileViewer/index.js.map +1 -1
  32. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +6 -8
  33. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
  34. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +3 -4
  35. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  36. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +7 -9
  37. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
  38. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +18 -21
  39. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  40. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +13 -15
  41. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
  42. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +36 -39
  43. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  44. package/lib/commonjs/components/MessageSearchResultItem.js +20 -18
  45. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
  46. package/lib/commonjs/components/NewMessagesButton.js +7 -9
  47. package/lib/commonjs/components/NewMessagesButton.js.map +1 -1
  48. package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +6 -8
  49. package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
  50. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +13 -15
  51. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
  52. package/lib/commonjs/components/ProviderLayout.js +5 -7
  53. package/lib/commonjs/components/ProviderLayout.js.map +1 -1
  54. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +28 -42
  55. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  56. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +27 -40
  57. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  58. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +12 -15
  59. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  60. package/lib/commonjs/components/ReactionAddons/index.js +2 -3
  61. package/lib/commonjs/components/ReactionAddons/index.js.map +1 -1
  62. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +28 -39
  63. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  64. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +44 -48
  65. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  66. package/lib/commonjs/components/ReactionBottomSheets/index.js +2 -3
  67. package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
  68. package/lib/commonjs/components/ScrollToBottomButton.js +6 -8
  69. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  70. package/lib/commonjs/components/StatusComposition.js +9 -11
  71. package/lib/commonjs/components/StatusComposition.js.map +1 -1
  72. package/lib/commonjs/components/ThreadChatFlatList/index.js +13 -15
  73. package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -1
  74. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +2 -3
  75. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
  76. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +3 -4
  77. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
  78. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +2 -3
  79. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
  80. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +8 -8
  81. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  82. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +20 -14
  83. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
  84. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +24 -18
  85. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
  86. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +23 -22
  87. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
  88. package/lib/commonjs/components/TypedPlaceholder.js +6 -8
  89. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  90. package/lib/commonjs/components/UserActionBar.js +20 -20
  91. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  92. package/lib/commonjs/components/UserSelectableBar.js +14 -14
  93. package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
  94. package/lib/commonjs/constants.js +6 -12
  95. package/lib/commonjs/constants.js.map +1 -1
  96. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +12 -14
  97. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  98. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js +8 -9
  99. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
  100. package/lib/commonjs/containers/SendbirdUIKitContainer.js +17 -20
  101. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  102. package/lib/commonjs/contexts/LocalizationCtx.js +6 -8
  103. package/lib/commonjs/contexts/LocalizationCtx.js.map +1 -1
  104. package/lib/commonjs/contexts/PlatformServiceCtx.js +8 -10
  105. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  106. package/lib/commonjs/contexts/ReactionCtx.js +14 -19
  107. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
  108. package/lib/commonjs/contexts/SBUHandlersCtx.js +7 -9
  109. package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -1
  110. package/lib/commonjs/contexts/SendbirdChatCtx.js +16 -18
  111. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  112. package/lib/commonjs/contexts/UserProfileCtx.js +13 -24
  113. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  114. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -18
  115. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  116. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +9 -11
  117. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  118. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +12 -16
  119. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  120. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +2 -3
  121. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
  122. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +2 -3
  123. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
  124. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +24 -33
  125. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  126. package/lib/commonjs/domain/groupChannel/index.js +1 -1
  127. package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
  128. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +12 -14
  129. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  130. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +19 -22
  131. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  132. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  133. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +6 -8
  134. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  135. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +15 -25
  136. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  137. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +2 -3
  138. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
  139. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +5 -7
  140. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
  141. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +2 -3
  142. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
  143. package/lib/commonjs/domain/groupChannelBannedUsers/index.js +1 -1
  144. package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -1
  145. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +11 -13
  146. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
  147. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +8 -10
  148. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  149. package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -1
  150. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +3 -4
  151. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  152. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +20 -32
  153. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  154. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +2 -3
  155. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
  156. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +2 -3
  157. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
  158. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +13 -17
  159. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  160. package/lib/commonjs/domain/groupChannelList/index.js +1 -1
  161. package/lib/commonjs/domain/groupChannelList/index.js.map +1 -1
  162. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +11 -13
  163. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
  164. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +7 -9
  165. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
  166. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  167. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +6 -8
  168. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  169. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +9 -11
  170. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  171. package/lib/commonjs/domain/groupChannelModeration/index.js +1 -1
  172. package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -1
  173. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +8 -10
  174. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
  175. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +8 -10
  176. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  177. package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -1
  178. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +6 -8
  179. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  180. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +15 -25
  181. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  182. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +2 -3
  183. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
  184. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +5 -7
  185. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
  186. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +2 -3
  187. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
  188. package/lib/commonjs/domain/groupChannelMutedMembers/index.js +1 -1
  189. package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -1
  190. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +11 -13
  191. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
  192. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +8 -10
  193. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  194. package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -1
  195. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +6 -8
  196. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  197. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +19 -18
  198. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  199. package/lib/commonjs/domain/groupChannelNotifications/index.js +1 -1
  200. package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -1
  201. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +8 -10
  202. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
  203. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +8 -10
  204. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  205. package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -1
  206. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +7 -9
  207. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  208. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +15 -25
  209. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  210. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +2 -3
  211. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
  212. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +5 -7
  213. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
  214. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +2 -3
  215. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
  216. package/lib/commonjs/domain/groupChannelOperators/index.js +1 -1
  217. package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -1
  218. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +11 -13
  219. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
  220. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +8 -10
  221. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  222. package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -1
  223. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +6 -8
  224. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  225. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +4 -5
  226. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  227. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +12 -14
  228. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  229. package/lib/commonjs/domain/groupChannelSettings/index.js +1 -1
  230. package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -1
  231. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +9 -11
  232. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
  233. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +10 -13
  234. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  235. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  236. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +11 -15
  237. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  238. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +9 -11
  239. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  240. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +12 -16
  241. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  242. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +34 -37
  243. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  244. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +2 -3
  245. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
  246. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +2 -3
  247. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
  248. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +23 -32
  249. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  250. package/lib/commonjs/domain/groupChannelThread/index.js +1 -1
  251. package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -1
  252. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +13 -15
  253. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
  254. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +12 -14
  255. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  256. package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -1
  257. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  258. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +18 -18
  259. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  260. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +13 -16
  261. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -1
  262. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +2 -3
  263. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
  264. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +5 -7
  265. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
  266. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +2 -3
  267. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
  268. package/lib/commonjs/domain/messageSearch/index.js +1 -1
  269. package/lib/commonjs/domain/messageSearch/index.js.map +1 -1
  270. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +11 -13
  271. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
  272. package/lib/commonjs/domain/messageSearch/module/moduleContext.js +7 -9
  273. package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -1
  274. package/lib/commonjs/domain/messageSearch/types.js.map +1 -1
  275. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js +10 -12
  276. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  277. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +9 -11
  278. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  279. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +10 -13
  280. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  281. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js +2 -3
  282. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
  283. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js +2 -3
  284. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
  285. package/lib/commonjs/domain/openChannel/index.js +1 -1
  286. package/lib/commonjs/domain/openChannel/index.js.map +1 -1
  287. package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js +11 -13
  288. package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
  289. package/lib/commonjs/domain/openChannel/module/moduleContext.js +10 -12
  290. package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
  291. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  292. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +6 -8
  293. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  294. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +15 -25
  295. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
  296. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js +2 -3
  297. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
  298. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +5 -7
  299. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
  300. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js +2 -3
  301. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
  302. package/lib/commonjs/domain/openChannelBannedUsers/index.js +1 -1
  303. package/lib/commonjs/domain/openChannelBannedUsers/index.js.map +1 -1
  304. package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +11 -13
  305. package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
  306. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js +8 -10
  307. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  308. package/lib/commonjs/domain/openChannelBannedUsers/types.js.map +1 -1
  309. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js +8 -10
  310. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  311. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +14 -16
  312. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  313. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js +2 -3
  314. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
  315. package/lib/commonjs/domain/openChannelCreate/index.js +1 -1
  316. package/lib/commonjs/domain/openChannelCreate/index.js.map +1 -1
  317. package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js +9 -11
  318. package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
  319. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js +7 -9
  320. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  321. package/lib/commonjs/domain/openChannelCreate/types.js.map +1 -1
  322. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js +6 -8
  323. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  324. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +20 -32
  325. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  326. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js +2 -3
  327. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
  328. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js +5 -7
  329. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
  330. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js +2 -3
  331. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
  332. package/lib/commonjs/domain/openChannelList/index.js +1 -1
  333. package/lib/commonjs/domain/openChannelList/index.js.map +1 -1
  334. package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js +11 -13
  335. package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
  336. package/lib/commonjs/domain/openChannelList/module/moduleContext.js +7 -9
  337. package/lib/commonjs/domain/openChannelList/module/moduleContext.js.map +1 -1
  338. package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
  339. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js +6 -8
  340. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  341. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js +8 -10
  342. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
  343. package/lib/commonjs/domain/openChannelModeration/index.js +1 -1
  344. package/lib/commonjs/domain/openChannelModeration/index.js.map +1 -1
  345. package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js +8 -10
  346. package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
  347. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js +8 -10
  348. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  349. package/lib/commonjs/domain/openChannelModeration/types.js.map +1 -1
  350. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +6 -8
  351. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  352. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +15 -25
  353. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
  354. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js +2 -3
  355. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
  356. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +5 -7
  357. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
  358. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js +2 -3
  359. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
  360. package/lib/commonjs/domain/openChannelMutedParticipants/index.js +1 -1
  361. package/lib/commonjs/domain/openChannelMutedParticipants/index.js.map +1 -1
  362. package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +11 -13
  363. package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
  364. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js +8 -10
  365. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  366. package/lib/commonjs/domain/openChannelMutedParticipants/types.js.map +1 -1
  367. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +7 -9
  368. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  369. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js +15 -25
  370. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
  371. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js +2 -3
  372. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
  373. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +5 -7
  374. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
  375. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js +2 -3
  376. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
  377. package/lib/commonjs/domain/openChannelOperators/index.js +1 -1
  378. package/lib/commonjs/domain/openChannelOperators/index.js.map +1 -1
  379. package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +11 -13
  380. package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
  381. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js +8 -10
  382. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  383. package/lib/commonjs/domain/openChannelOperators/types.js.map +1 -1
  384. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +6 -8
  385. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  386. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +4 -5
  387. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  388. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +9 -11
  389. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  390. package/lib/commonjs/domain/openChannelSettings/index.js +1 -1
  391. package/lib/commonjs/domain/openChannelSettings/index.js.map +1 -1
  392. package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +9 -11
  393. package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
  394. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js +9 -11
  395. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  396. package/lib/commonjs/domain/openChannelSettings/types.js.map +1 -1
  397. package/lib/commonjs/domain/openChannelUserList/types.js.map +1 -1
  398. package/lib/commonjs/domain/userList/component/UserListHeader.js +10 -12
  399. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -1
  400. package/lib/commonjs/domain/userList/component/UserListList.js +16 -26
  401. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  402. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +2 -3
  403. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -1
  404. package/lib/commonjs/domain/userList/component/UserListStatusError.js +5 -7
  405. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
  406. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +2 -3
  407. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -1
  408. package/lib/commonjs/domain/userList/index.js +1 -1
  409. package/lib/commonjs/domain/userList/index.js.map +1 -1
  410. package/lib/commonjs/domain/userList/module/createUserListModule.js +11 -13
  411. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
  412. package/lib/commonjs/domain/userList/module/moduleContext.js +9 -11
  413. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
  414. package/lib/commonjs/domain/userList/types.js.map +1 -1
  415. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +10 -12
  416. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
  417. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +12 -15
  418. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  419. package/lib/commonjs/fragments/createGroupChannelFragment.js +28 -30
  420. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  421. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +13 -16
  422. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  423. package/lib/commonjs/fragments/createGroupChannelListFragment.js +12 -14
  424. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  425. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +16 -18
  426. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  427. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +13 -19
  428. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -1
  429. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +12 -14
  430. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
  431. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +6 -8
  432. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
  433. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +13 -15
  434. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
  435. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +15 -18
  436. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  437. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +15 -21
  438. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  439. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +25 -27
  440. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
  441. package/lib/commonjs/fragments/createMessageSearchFragment.js +15 -18
  442. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  443. package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js +10 -12
  444. package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
  445. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js +8 -10
  446. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js.map +1 -1
  447. package/lib/commonjs/fragments/createOpenChannelFragment.js +24 -26
  448. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  449. package/lib/commonjs/fragments/createOpenChannelListFragment.js +9 -11
  450. package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
  451. package/lib/commonjs/fragments/createOpenChannelModerationFragment.js +13 -19
  452. package/lib/commonjs/fragments/createOpenChannelModerationFragment.js.map +1 -1
  453. package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js +10 -12
  454. package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
  455. package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js +11 -13
  456. package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
  457. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js +13 -15
  458. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  459. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js +15 -18
  460. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  461. package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js +14 -20
  462. package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js.map +1 -1
  463. package/lib/commonjs/hooks/useChannelInputItems.js +1 -1
  464. package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -1
  465. package/lib/commonjs/hooks/useConnection.js +2 -3
  466. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  467. package/lib/commonjs/hooks/useContext.js.map +1 -1
  468. package/lib/commonjs/hooks/useKeyboardStatus.js +1 -2
  469. package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -1
  470. package/lib/commonjs/hooks/useMentionSuggestion.js +3 -5
  471. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
  472. package/lib/commonjs/hooks/useMentionTextInput.js +4 -4
  473. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
  474. package/lib/commonjs/hooks/usePushTokenRegistration.js +2 -3
  475. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
  476. package/lib/commonjs/hooks/useVoiceMessageInput.js +13 -17
  477. package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -1
  478. package/lib/commonjs/index.js +3 -3
  479. package/lib/commonjs/index.js.map +1 -1
  480. package/lib/commonjs/libs/EmojiManager.js +6 -8
  481. package/lib/commonjs/libs/EmojiManager.js.map +1 -1
  482. package/lib/commonjs/libs/ImageCompressionConfig.js +4 -5
  483. package/lib/commonjs/libs/ImageCompressionConfig.js.map +1 -1
  484. package/lib/commonjs/libs/InternalLocalCacheStorage.js +5 -11
  485. package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
  486. package/lib/commonjs/libs/MentionConfig.js +4 -5
  487. package/lib/commonjs/libs/MentionConfig.js.map +1 -1
  488. package/lib/commonjs/libs/MentionManager.js +45 -31
  489. package/lib/commonjs/libs/MentionManager.js.map +1 -1
  490. package/lib/commonjs/libs/SBUError.js +3 -3
  491. package/lib/commonjs/libs/SBUError.js.map +1 -1
  492. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  493. package/lib/commonjs/libs/VoiceMessageConfig.js +4 -5
  494. package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -1
  495. package/lib/commonjs/libs/VoiceMessageStatusManager.js +9 -10
  496. package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -1
  497. package/lib/commonjs/localization/StringSet.en.js +1 -2
  498. package/lib/commonjs/localization/StringSet.en.js.map +1 -1
  499. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  500. package/lib/commonjs/localization/createBaseStringSet.js +25 -30
  501. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  502. package/lib/commonjs/platform/createClipboardService.expo.js +1 -2
  503. package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -1
  504. package/lib/commonjs/platform/createClipboardService.native.js +1 -2
  505. package/lib/commonjs/platform/createClipboardService.native.js.map +1 -1
  506. package/lib/commonjs/platform/createFileService.expo.js +12 -15
  507. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  508. package/lib/commonjs/platform/createFileService.native.js +30 -36
  509. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  510. package/lib/commonjs/platform/createMediaService.expo.js +26 -31
  511. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
  512. package/lib/commonjs/platform/createMediaService.native.js +24 -29
  513. package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
  514. package/lib/commonjs/platform/createNotificationService.expo.js +4 -8
  515. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
  516. package/lib/commonjs/platform/createNotificationService.native.js +5 -7
  517. package/lib/commonjs/platform/createNotificationService.native.js.map +1 -1
  518. package/lib/commonjs/platform/createPlayerService.expo.js +8 -10
  519. package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -1
  520. package/lib/commonjs/platform/createPlayerService.native.js +8 -10
  521. package/lib/commonjs/platform/createPlayerService.native.js.map +1 -1
  522. package/lib/commonjs/platform/createRecorderService.expo.js +8 -10
  523. package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -1
  524. package/lib/commonjs/platform/createRecorderService.native.js +10 -12
  525. package/lib/commonjs/platform/createRecorderService.native.js.map +1 -1
  526. package/lib/commonjs/platform/dynamicModule.js +2 -4
  527. package/lib/commonjs/platform/dynamicModule.js.map +1 -1
  528. package/lib/commonjs/platform/types.js.map +1 -1
  529. package/lib/commonjs/types.js +1 -2
  530. package/lib/commonjs/types.js.map +1 -1
  531. package/lib/commonjs/utils/expoBackwardUtils.js +24 -31
  532. package/lib/commonjs/utils/expoBackwardUtils.js.map +1 -1
  533. package/lib/commonjs/utils/expoPermissionGranted.js +2 -3
  534. package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -1
  535. package/lib/commonjs/utils/nativePermissionGranted.js +2 -3
  536. package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -1
  537. package/lib/commonjs/utils/normalizeFile.js +7 -9
  538. package/lib/commonjs/utils/normalizeFile.js.map +1 -1
  539. package/lib/commonjs/utils/promise.js +1 -2
  540. package/lib/commonjs/utils/promise.js.map +1 -1
  541. package/lib/commonjs/utils/pubsub.js +1 -2
  542. package/lib/commonjs/utils/pubsub.js.map +1 -1
  543. package/lib/commonjs/version.js +2 -3
  544. package/lib/commonjs/version.js.map +1 -1
  545. package/lib/module/components/ChannelCover.js +7 -8
  546. package/lib/module/components/ChannelCover.js.map +1 -1
  547. package/lib/module/components/ChannelInput/AttachmentsButton.js +5 -6
  548. package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -1
  549. package/lib/module/components/ChannelInput/EditInput.js +15 -14
  550. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  551. package/lib/module/components/ChannelInput/MessageToReplyPreview.js +36 -49
  552. package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
  553. package/lib/module/components/ChannelInput/SendInput.js +40 -44
  554. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  555. package/lib/module/components/ChannelInput/VoiceMessageInput.js +8 -9
  556. package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  557. package/lib/module/components/ChannelInput/index.js +19 -23
  558. package/lib/module/components/ChannelInput/index.js.map +1 -1
  559. package/lib/module/components/ChannelMessageList/index.js +58 -73
  560. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  561. package/lib/module/components/ChannelThreadMessageList/index.js +53 -68
  562. package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
  563. package/lib/module/components/ChatFlatList/FlatListInternal.js.map +1 -1
  564. package/lib/module/components/ChatFlatList/index.js +9 -10
  565. package/lib/module/components/ChatFlatList/index.js.map +1 -1
  566. package/lib/module/components/FileViewer/FileViewerContent.js +14 -16
  567. package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -1
  568. package/lib/module/components/FileViewer/FileViewerFooter.js +12 -16
  569. package/lib/module/components/FileViewer/FileViewerFooter.js.map +1 -1
  570. package/lib/module/components/FileViewer/FileViewerHeader.js +13 -18
  571. package/lib/module/components/FileViewer/FileViewerHeader.js.map +1 -1
  572. package/lib/module/components/FileViewer/index.js +11 -12
  573. package/lib/module/components/FileViewer/index.js.map +1 -1
  574. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +4 -5
  575. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
  576. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  577. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +5 -6
  578. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
  579. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +15 -17
  580. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  581. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +11 -12
  582. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
  583. package/lib/module/components/GroupChannelMessageRenderer/index.js +32 -34
  584. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  585. package/lib/module/components/MessageSearchResultItem.js +18 -15
  586. package/lib/module/components/MessageSearchResultItem.js.map +1 -1
  587. package/lib/module/components/NewMessagesButton.js +5 -6
  588. package/lib/module/components/NewMessagesButton.js.map +1 -1
  589. package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +4 -5
  590. package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
  591. package/lib/module/components/OpenChannelMessageRenderer/index.js +11 -12
  592. package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
  593. package/lib/module/components/ProviderLayout.js +3 -4
  594. package/lib/module/components/ProviderLayout.js.map +1 -1
  595. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +27 -40
  596. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  597. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +26 -38
  598. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  599. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +10 -12
  600. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  601. package/lib/module/components/ReactionAddons/index.js.map +1 -1
  602. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +27 -37
  603. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  604. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +43 -46
  605. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  606. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
  607. package/lib/module/components/ScrollToBottomButton.js +4 -5
  608. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  609. package/lib/module/components/StatusComposition.js +7 -8
  610. package/lib/module/components/StatusComposition.js.map +1 -1
  611. package/lib/module/components/ThreadChatFlatList/index.js +9 -10
  612. package/lib/module/components/ThreadChatFlatList/index.js.map +1 -1
  613. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
  614. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +1 -1
  615. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
  616. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
  617. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +5 -4
  618. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  619. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +19 -12
  620. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
  621. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +22 -15
  622. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
  623. package/lib/module/components/ThreadParentMessageRenderer/index.js +19 -17
  624. package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
  625. package/lib/module/components/TypedPlaceholder.js +4 -5
  626. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  627. package/lib/module/components/UserActionBar.js +19 -18
  628. package/lib/module/components/UserActionBar.js.map +1 -1
  629. package/lib/module/components/UserSelectableBar.js +13 -12
  630. package/lib/module/components/UserSelectableBar.js.map +1 -1
  631. package/lib/module/constants.js.map +1 -1
  632. package/lib/module/containers/GroupChannelPreviewContainer.js +10 -11
  633. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  634. package/lib/module/containers/InternalErrorBoundaryContainer.js +6 -6
  635. package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
  636. package/lib/module/containers/SendbirdUIKitContainer.js +12 -13
  637. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  638. package/lib/module/contexts/LocalizationCtx.js +4 -5
  639. package/lib/module/contexts/LocalizationCtx.js.map +1 -1
  640. package/lib/module/contexts/PlatformServiceCtx.js +5 -6
  641. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  642. package/lib/module/contexts/ReactionCtx.js +11 -15
  643. package/lib/module/contexts/ReactionCtx.js.map +1 -1
  644. package/lib/module/contexts/SBUHandlersCtx.js +5 -6
  645. package/lib/module/contexts/SBUHandlersCtx.js.map +1 -1
  646. package/lib/module/contexts/SendbirdChatCtx.js +12 -13
  647. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  648. package/lib/module/contexts/UserProfileCtx.js +11 -21
  649. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  650. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +11 -14
  651. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  652. package/lib/module/domain/groupChannel/component/GroupChannelInput.js +5 -6
  653. package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  654. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +9 -13
  655. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  656. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
  657. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
  658. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +22 -30
  659. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  660. package/lib/module/domain/groupChannel/index.js.map +1 -1
  661. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +10 -11
  662. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  663. package/lib/module/domain/groupChannel/module/moduleContext.js +16 -18
  664. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  665. package/lib/module/domain/groupChannel/types.js.map +1 -1
  666. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +3 -4
  667. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  668. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +14 -23
  669. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  670. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
  671. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +3 -4
  672. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
  673. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
  674. package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -1
  675. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +9 -10
  676. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
  677. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +4 -5
  678. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  679. package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -1
  680. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  681. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +19 -30
  682. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  683. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
  684. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
  685. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +10 -13
  686. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  687. package/lib/module/domain/groupChannelList/index.js.map +1 -1
  688. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +9 -10
  689. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
  690. package/lib/module/domain/groupChannelList/module/moduleContext.js +3 -4
  691. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -1
  692. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  693. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +3 -4
  694. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  695. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +6 -7
  696. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  697. package/lib/module/domain/groupChannelModeration/index.js.map +1 -1
  698. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +6 -7
  699. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
  700. package/lib/module/domain/groupChannelModeration/module/moduleContext.js +4 -5
  701. package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  702. package/lib/module/domain/groupChannelModeration/types.js.map +1 -1
  703. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +3 -4
  704. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  705. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +14 -23
  706. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  707. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
  708. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +3 -4
  709. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
  710. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
  711. package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -1
  712. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +9 -10
  713. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
  714. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +4 -5
  715. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  716. package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -1
  717. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +3 -4
  718. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  719. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +18 -16
  720. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  721. package/lib/module/domain/groupChannelNotifications/index.js.map +1 -1
  722. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +6 -7
  723. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
  724. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +4 -5
  725. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  726. package/lib/module/domain/groupChannelNotifications/types.js.map +1 -1
  727. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +4 -5
  728. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  729. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +14 -23
  730. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  731. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
  732. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +3 -4
  733. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
  734. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
  735. package/lib/module/domain/groupChannelOperators/index.js.map +1 -1
  736. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +9 -10
  737. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
  738. package/lib/module/domain/groupChannelOperators/module/moduleContext.js +4 -5
  739. package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  740. package/lib/module/domain/groupChannelOperators/types.js.map +1 -1
  741. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +3 -4
  742. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  743. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  744. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +9 -10
  745. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  746. package/lib/module/domain/groupChannelSettings/index.js.map +1 -1
  747. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +7 -8
  748. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
  749. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +7 -9
  750. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  751. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  752. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +9 -12
  753. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  754. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +5 -6
  755. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  756. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +9 -12
  757. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  758. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +31 -33
  759. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  760. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
  761. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
  762. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +20 -28
  763. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  764. package/lib/module/domain/groupChannelThread/index.js.map +1 -1
  765. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +11 -12
  766. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
  767. package/lib/module/domain/groupChannelThread/module/moduleContext.js +8 -9
  768. package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  769. package/lib/module/domain/groupChannelThread/types.js.map +1 -1
  770. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  771. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +16 -15
  772. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  773. package/lib/module/domain/messageSearch/component/MessageSearchList.js +11 -13
  774. package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -1
  775. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
  776. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +3 -4
  777. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
  778. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
  779. package/lib/module/domain/messageSearch/index.js.map +1 -1
  780. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +9 -10
  781. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
  782. package/lib/module/domain/messageSearch/module/moduleContext.js +3 -4
  783. package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -1
  784. package/lib/module/domain/messageSearch/types.js.map +1 -1
  785. package/lib/module/domain/openChannel/component/OpenChannelHeader.js +6 -7
  786. package/lib/module/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  787. package/lib/module/domain/openChannel/component/OpenChannelInput.js +5 -6
  788. package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  789. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +6 -8
  790. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  791. package/lib/module/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
  792. package/lib/module/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
  793. package/lib/module/domain/openChannel/index.js.map +1 -1
  794. package/lib/module/domain/openChannel/module/createOpenChannelModule.js +9 -10
  795. package/lib/module/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
  796. package/lib/module/domain/openChannel/module/moduleContext.js +6 -7
  797. package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
  798. package/lib/module/domain/openChannel/types.js.map +1 -1
  799. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +3 -4
  800. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  801. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +14 -23
  802. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
  803. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
  804. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +3 -4
  805. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
  806. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
  807. package/lib/module/domain/openChannelBannedUsers/index.js.map +1 -1
  808. package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +9 -10
  809. package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
  810. package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js +4 -5
  811. package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  812. package/lib/module/domain/openChannelBannedUsers/types.js.map +1 -1
  813. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js +5 -6
  814. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  815. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +12 -13
  816. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  817. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
  818. package/lib/module/domain/openChannelCreate/index.js.map +1 -1
  819. package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js +7 -8
  820. package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
  821. package/lib/module/domain/openChannelCreate/module/moduleContext.js +3 -4
  822. package/lib/module/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  823. package/lib/module/domain/openChannelCreate/types.js.map +1 -1
  824. package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js +3 -4
  825. package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  826. package/lib/module/domain/openChannelList/component/OpenChannelListList.js +19 -30
  827. package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  828. package/lib/module/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
  829. package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js +3 -4
  830. package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
  831. package/lib/module/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
  832. package/lib/module/domain/openChannelList/index.js.map +1 -1
  833. package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js +9 -10
  834. package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
  835. package/lib/module/domain/openChannelList/module/moduleContext.js +3 -4
  836. package/lib/module/domain/openChannelList/module/moduleContext.js.map +1 -1
  837. package/lib/module/domain/openChannelList/types.js.map +1 -1
  838. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js +3 -4
  839. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  840. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js +6 -7
  841. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
  842. package/lib/module/domain/openChannelModeration/index.js.map +1 -1
  843. package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js +6 -7
  844. package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
  845. package/lib/module/domain/openChannelModeration/module/moduleContext.js +4 -5
  846. package/lib/module/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  847. package/lib/module/domain/openChannelModeration/types.js.map +1 -1
  848. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +3 -4
  849. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  850. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +14 -23
  851. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
  852. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
  853. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +3 -4
  854. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
  855. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
  856. package/lib/module/domain/openChannelMutedParticipants/index.js.map +1 -1
  857. package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +9 -10
  858. package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
  859. package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js +4 -5
  860. package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  861. package/lib/module/domain/openChannelMutedParticipants/types.js.map +1 -1
  862. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +4 -5
  863. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  864. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js +14 -23
  865. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
  866. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
  867. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +3 -4
  868. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
  869. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
  870. package/lib/module/domain/openChannelOperators/index.js.map +1 -1
  871. package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +9 -10
  872. package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
  873. package/lib/module/domain/openChannelOperators/module/moduleContext.js +4 -5
  874. package/lib/module/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  875. package/lib/module/domain/openChannelOperators/types.js.map +1 -1
  876. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +3 -4
  877. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  878. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  879. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +6 -7
  880. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  881. package/lib/module/domain/openChannelSettings/index.js.map +1 -1
  882. package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +7 -8
  883. package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
  884. package/lib/module/domain/openChannelSettings/module/moduleContext.js +5 -6
  885. package/lib/module/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  886. package/lib/module/domain/openChannelSettings/types.js.map +1 -1
  887. package/lib/module/domain/openChannelUserList/types.js.map +1 -1
  888. package/lib/module/domain/userList/component/UserListHeader.js +7 -8
  889. package/lib/module/domain/userList/component/UserListHeader.js.map +1 -1
  890. package/lib/module/domain/userList/component/UserListList.js +14 -23
  891. package/lib/module/domain/userList/component/UserListList.js.map +1 -1
  892. package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -1
  893. package/lib/module/domain/userList/component/UserListStatusError.js +3 -4
  894. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
  895. package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -1
  896. package/lib/module/domain/userList/index.js.map +1 -1
  897. package/lib/module/domain/userList/module/createUserListModule.js +9 -10
  898. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
  899. package/lib/module/domain/userList/module/moduleContext.js +5 -6
  900. package/lib/module/domain/userList/module/moduleContext.js.map +1 -1
  901. package/lib/module/domain/userList/types.js.map +1 -1
  902. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +8 -9
  903. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
  904. package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -12
  905. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  906. package/lib/module/fragments/createGroupChannelFragment.js +24 -25
  907. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  908. package/lib/module/fragments/createGroupChannelInviteFragment.js +9 -11
  909. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  910. package/lib/module/fragments/createGroupChannelListFragment.js +10 -11
  911. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  912. package/lib/module/fragments/createGroupChannelMembersFragment.js +14 -15
  913. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  914. package/lib/module/fragments/createGroupChannelModerationFragment.js +12 -17
  915. package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -1
  916. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +12 -13
  917. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
  918. package/lib/module/fragments/createGroupChannelNotificationsFragment.js +4 -5
  919. package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
  920. package/lib/module/fragments/createGroupChannelOperatorsFragment.js +13 -14
  921. package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
  922. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +11 -13
  923. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  924. package/lib/module/fragments/createGroupChannelSettingsFragment.js +14 -19
  925. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  926. package/lib/module/fragments/createGroupChannelThreadFragment.js +21 -22
  927. package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -1
  928. package/lib/module/fragments/createMessageSearchFragment.js +11 -13
  929. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
  930. package/lib/module/fragments/createOpenChannelBannedUsersFragment.js +8 -9
  931. package/lib/module/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
  932. package/lib/module/fragments/createOpenChannelCreateFragment.js +5 -6
  933. package/lib/module/fragments/createOpenChannelCreateFragment.js.map +1 -1
  934. package/lib/module/fragments/createOpenChannelFragment.js +20 -21
  935. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  936. package/lib/module/fragments/createOpenChannelListFragment.js +7 -8
  937. package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
  938. package/lib/module/fragments/createOpenChannelModerationFragment.js +12 -17
  939. package/lib/module/fragments/createOpenChannelModerationFragment.js.map +1 -1
  940. package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js +8 -9
  941. package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
  942. package/lib/module/fragments/createOpenChannelOperatorsFragment.js +9 -10
  943. package/lib/module/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
  944. package/lib/module/fragments/createOpenChannelParticipantsFragment.js +9 -10
  945. package/lib/module/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  946. package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js +11 -13
  947. package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  948. package/lib/module/fragments/createOpenChannelSettingsFragment.js +13 -18
  949. package/lib/module/fragments/createOpenChannelSettingsFragment.js.map +1 -1
  950. package/lib/module/hooks/useChannelInputItems.js.map +1 -1
  951. package/lib/module/hooks/useConnection.js.map +1 -1
  952. package/lib/module/hooks/useContext.js.map +1 -1
  953. package/lib/module/hooks/useKeyboardStatus.js.map +1 -1
  954. package/lib/module/hooks/useMentionSuggestion.js +3 -4
  955. package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
  956. package/lib/module/hooks/useMentionTextInput.js +4 -2
  957. package/lib/module/hooks/useMentionTextInput.js.map +1 -1
  958. package/lib/module/hooks/usePushTokenRegistration.js +1 -1
  959. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
  960. package/lib/module/hooks/useVoiceMessageInput.js +11 -14
  961. package/lib/module/hooks/useVoiceMessageInput.js.map +1 -1
  962. package/lib/module/index.js.map +1 -1
  963. package/lib/module/libs/EmojiManager.js +4 -5
  964. package/lib/module/libs/EmojiManager.js.map +1 -1
  965. package/lib/module/libs/ImageCompressionConfig.js +3 -3
  966. package/lib/module/libs/ImageCompressionConfig.js.map +1 -1
  967. package/lib/module/libs/InternalLocalCacheStorage.js +5 -11
  968. package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
  969. package/lib/module/libs/MentionConfig.js +3 -3
  970. package/lib/module/libs/MentionConfig.js.map +1 -1
  971. package/lib/module/libs/MentionManager.js +44 -29
  972. package/lib/module/libs/MentionManager.js.map +1 -1
  973. package/lib/module/libs/SBUError.js +3 -3
  974. package/lib/module/libs/SBUError.js.map +1 -1
  975. package/lib/module/libs/SBUUtils.js.map +1 -1
  976. package/lib/module/libs/VoiceMessageConfig.js +3 -3
  977. package/lib/module/libs/VoiceMessageConfig.js.map +1 -1
  978. package/lib/module/libs/VoiceMessageStatusManager.js +8 -8
  979. package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -1
  980. package/lib/module/localization/StringSet.en.js.map +1 -1
  981. package/lib/module/localization/StringSet.type.js.map +1 -1
  982. package/lib/module/localization/createBaseStringSet.js +25 -30
  983. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  984. package/lib/module/platform/createClipboardService.expo.js.map +1 -1
  985. package/lib/module/platform/createClipboardService.native.js.map +1 -1
  986. package/lib/module/platform/createFileService.expo.js +10 -12
  987. package/lib/module/platform/createFileService.expo.js.map +1 -1
  988. package/lib/module/platform/createFileService.native.js +28 -33
  989. package/lib/module/platform/createFileService.native.js.map +1 -1
  990. package/lib/module/platform/createMediaService.expo.js +24 -28
  991. package/lib/module/platform/createMediaService.expo.js.map +1 -1
  992. package/lib/module/platform/createMediaService.native.js +22 -26
  993. package/lib/module/platform/createMediaService.native.js.map +1 -1
  994. package/lib/module/platform/createNotificationService.expo.js +3 -6
  995. package/lib/module/platform/createNotificationService.expo.js.map +1 -1
  996. package/lib/module/platform/createNotificationService.native.js +4 -5
  997. package/lib/module/platform/createNotificationService.native.js.map +1 -1
  998. package/lib/module/platform/createPlayerService.expo.js +6 -7
  999. package/lib/module/platform/createPlayerService.expo.js.map +1 -1
  1000. package/lib/module/platform/createPlayerService.native.js +7 -8
  1001. package/lib/module/platform/createPlayerService.native.js.map +1 -1
  1002. package/lib/module/platform/createRecorderService.expo.js +6 -7
  1003. package/lib/module/platform/createRecorderService.expo.js.map +1 -1
  1004. package/lib/module/platform/createRecorderService.native.js +8 -9
  1005. package/lib/module/platform/createRecorderService.native.js.map +1 -1
  1006. package/lib/module/platform/dynamicModule.js +1 -2
  1007. package/lib/module/platform/dynamicModule.js.map +1 -1
  1008. package/lib/module/platform/types.js.map +1 -1
  1009. package/lib/module/types.js.map +1 -1
  1010. package/lib/module/utils/expoBackwardUtils.js +22 -28
  1011. package/lib/module/utils/expoBackwardUtils.js.map +1 -1
  1012. package/lib/module/utils/expoPermissionGranted.js +1 -1
  1013. package/lib/module/utils/expoPermissionGranted.js.map +1 -1
  1014. package/lib/module/utils/nativePermissionGranted.js +1 -1
  1015. package/lib/module/utils/nativePermissionGranted.js.map +1 -1
  1016. package/lib/module/utils/normalizeFile.js +6 -7
  1017. package/lib/module/utils/normalizeFile.js.map +1 -1
  1018. package/lib/module/utils/promise.js.map +1 -1
  1019. package/lib/module/utils/pubsub.js.map +1 -1
  1020. package/lib/module/version.js +1 -1
  1021. package/lib/module/version.js.map +1 -1
  1022. package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +1 -1
  1023. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -1
  1024. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +2 -2
  1025. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +1 -0
  1026. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +4 -4
  1027. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +3 -3
  1028. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
  1029. package/lib/typescript/src/libs/MentionManager.d.ts +1 -0
  1030. package/lib/typescript/src/localization/StringSet.type.d.ts +5 -2
  1031. package/lib/typescript/src/version.d.ts +1 -1
  1032. package/package.json +6 -6
  1033. package/src/components/ChannelInput/AttachmentsButton.tsx +1 -1
  1034. package/src/components/ChannelInput/EditInput.tsx +2 -0
  1035. package/src/components/ChannelInput/MessageToReplyPreview.tsx +29 -33
  1036. package/src/components/ChannelInput/SendInput.tsx +3 -1
  1037. package/src/components/ChannelInput/VoiceMessageInput.tsx +4 -4
  1038. package/src/components/ChannelInput/index.tsx +19 -11
  1039. package/src/components/ChannelMessageList/index.tsx +5 -7
  1040. package/src/components/ChannelThreadMessageList/index.tsx +5 -7
  1041. package/src/components/FileViewer/FileViewerFooter.tsx +6 -6
  1042. package/src/components/FileViewer/FileViewerHeader.tsx +6 -7
  1043. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +4 -4
  1044. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +5 -5
  1045. package/src/components/GroupChannelMessageRenderer/index.tsx +3 -2
  1046. package/src/components/MessageSearchResultItem.tsx +17 -15
  1047. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +5 -7
  1048. package/src/components/ReactionAddons/MessageReactionAddon.tsx +8 -14
  1049. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +1 -1
  1050. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +7 -8
  1051. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +33 -26
  1052. package/src/components/ReactionBottomSheets/index.tsx +2 -2
  1053. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +1 -1
  1054. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +4 -2
  1055. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +15 -6
  1056. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +37 -31
  1057. package/src/components/ThreadParentMessageRenderer/index.tsx +12 -2
  1058. package/src/components/UserActionBar.tsx +11 -10
  1059. package/src/components/UserSelectableBar.tsx +8 -7
  1060. package/src/containers/GroupChannelPreviewContainer.tsx +4 -5
  1061. package/src/containers/SendbirdUIKitContainer.tsx +3 -2
  1062. package/src/contexts/ReactionCtx.tsx +0 -3
  1063. package/src/contexts/UserProfileCtx.tsx +14 -13
  1064. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +6 -7
  1065. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +9 -5
  1066. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +15 -15
  1067. package/src/domain/groupChannel/module/moduleContext.tsx +2 -4
  1068. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -4
  1069. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +10 -4
  1070. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +3 -4
  1071. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +26 -11
  1072. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +3 -5
  1073. package/src/domain/groupChannelSettings/module/moduleContext.tsx +2 -4
  1074. package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +12 -6
  1075. package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +3 -4
  1076. package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +11 -10
  1077. package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +12 -13
  1078. package/src/domain/messageSearch/component/MessageSearchHeader.tsx +9 -6
  1079. package/src/domain/openChannel/component/OpenChannelHeader.tsx +1 -1
  1080. package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.tsx +3 -4
  1081. package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +6 -6
  1082. package/src/domain/openChannelList/component/OpenChannelListList.tsx +3 -4
  1083. package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.tsx +3 -4
  1084. package/src/domain/openChannelOperators/component/OpenChannelOperatorsList.tsx +3 -4
  1085. package/src/domain/userList/component/UserListList.tsx +3 -5
  1086. package/src/fragments/createGroupChannelFragment.tsx +1 -1
  1087. package/src/fragments/createGroupChannelMembersFragment.tsx +4 -5
  1088. package/src/fragments/createGroupChannelModerationFragment.tsx +4 -5
  1089. package/src/fragments/createGroupChannelMutedMembersFragment.tsx +4 -5
  1090. package/src/fragments/createGroupChannelOperatorsFragment.tsx +4 -5
  1091. package/src/fragments/createGroupChannelSettingsFragment.tsx +4 -5
  1092. package/src/fragments/createOpenChannelModerationFragment.tsx +4 -5
  1093. package/src/fragments/createOpenChannelSettingsFragment.tsx +4 -5
  1094. package/src/hooks/useMentionSuggestion.ts +3 -5
  1095. package/src/hooks/useMentionTextInput.ts +1 -0
  1096. package/src/libs/MentionManager.tsx +29 -3
  1097. package/src/localization/StringSet.type.ts +5 -1
  1098. package/src/localization/createBaseStringSet.ts +3 -0
  1099. package/src/platform/createFileService.native.ts +1 -1
  1100. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_uikitUtils","require","_expoPermissionGranted","_interopRequireDefault","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","createExpoPlayerService","_ref","avModule","sound","Audio","Sound","VoicePlayer","constructor","Set","state","stateSubscribers","forEach","callback","setProgressUpdateIntervalAsync","catch","error","Logger","warn","setOnPlaybackStatusUpdate","status","isLoaded","didJustFinish","stop","isPlaying","playbackSubscribers","currentTime","positionMillis","duration","durationMillis","stopped","getPermissionsAsync","expoPermissionGranted","requestPermissionsAsync","add","delete","uri","setState","loadAsync","shouldPlay","matchesOneOf","prepare","setListener","playAsync","e","removeListener","pauseAsync","stopAsync","unloadAsync","clear","time","playFromPositionAsync","_default","exports"],"sources":["createPlayerService.expo.tsx"],"sourcesContent":["import type * as ExpoAV from 'expo-av';\n\nimport { Logger, matchesOneOf } from '@sendbird/uikit-utils';\n\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type { PlayerServiceInterface, Unsubscribe } from './types';\n\ntype Modules = {\n avModule: typeof ExpoAV;\n};\ntype PlaybackListener = Parameters<PlayerServiceInterface['addPlaybackListener']>[number];\ntype StateListener = Parameters<PlayerServiceInterface['addStateListener']>[number];\nconst createExpoPlayerService = ({ avModule }: Modules): PlayerServiceInterface => {\n const sound = new avModule.Audio.Sound();\n\n class VoicePlayer implements PlayerServiceInterface {\n uri?: string;\n state: PlayerServiceInterface['state'] = 'idle';\n\n private readonly playbackSubscribers = new Set<PlaybackListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n\n private setState = (state: PlayerServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n private setListener = () => {\n sound.setProgressUpdateIntervalAsync(100).catch((error) => {\n Logger.warn('[PlayerService.Expo] Failed to set progress update interval', error);\n });\n sound.setOnPlaybackStatusUpdate((status) => {\n if (status.isLoaded) {\n if (status.didJustFinish) {\n this.stop().catch((error) => {\n Logger.warn('[PlayerService.Expo] Failed to stop in OnPlaybackStatusUpdate', error);\n });\n }\n if (status.isPlaying) {\n this.playbackSubscribers.forEach((callback) => {\n callback({\n currentTime: status.positionMillis,\n duration: status.durationMillis ?? 0,\n stopped: status.didJustFinish,\n });\n });\n }\n }\n });\n };\n\n private removeListener = () => {\n sound.setOnPlaybackStatusUpdate(null);\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const status = await avModule.Audio.getPermissionsAsync();\n if (expoPermissionGranted([status])) {\n return true;\n } else {\n const status = await avModule.Audio.requestPermissionsAsync();\n return expoPermissionGranted([status]);\n }\n };\n\n public addPlaybackListener = (callback: PlaybackListener): Unsubscribe => {\n this.playbackSubscribers.add(callback);\n return () => {\n this.playbackSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n private prepare = async (uri: string) => {\n this.setState('preparing');\n await sound.loadAsync({ uri }, { shouldPlay: false }, true);\n this.uri = uri;\n };\n\n public play = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'stopped'])) {\n try {\n await this.prepare(uri);\n this.setListener();\n await sound.playAsync();\n this.setState('playing');\n } catch (e) {\n this.setState('idle');\n this.uri = undefined;\n this.removeListener();\n throw e;\n }\n } else if (matchesOneOf(this.state, ['paused']) && this.uri === uri) {\n try {\n this.setListener();\n await sound.playAsync();\n this.setState('playing');\n } catch (e) {\n this.removeListener();\n throw e;\n }\n }\n };\n\n public pause = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing'])) {\n await sound.pauseAsync();\n this.removeListener();\n this.setState('paused');\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await sound.stopAsync();\n await sound.unloadAsync();\n this.removeListener();\n this.setState('stopped');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.setState('idle');\n this.uri = undefined;\n this.playbackSubscribers.clear();\n this.stateSubscribers.clear();\n };\n\n public seek = async (time: number): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await sound.playFromPositionAsync(time);\n }\n };\n }\n\n return new VoicePlayer();\n};\n\nexport default createExpoPlayerService;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_uikitUtils","require","_expoPermissionGranted","_interopRequireDefault","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","createExpoPlayerService","avModule","sound","Audio","Sound","VoicePlayer","constructor","Set","state","stateSubscribers","forEach","callback","setProgressUpdateIntervalAsync","catch","error","Logger","warn","setOnPlaybackStatusUpdate","status","isLoaded","didJustFinish","stop","isPlaying","playbackSubscribers","currentTime","positionMillis","duration","durationMillis","stopped","getPermissionsAsync","expoPermissionGranted","requestPermissionsAsync","add","delete","uri","setState","loadAsync","shouldPlay","matchesOneOf","prepare","setListener","playAsync","undefined","removeListener","pauseAsync","stopAsync","unloadAsync","clear","time","playFromPositionAsync","_default","exports"],"sources":["createPlayerService.expo.tsx"],"sourcesContent":["import type * as ExpoAV from 'expo-av';\n\nimport { Logger, matchesOneOf } from '@sendbird/uikit-utils';\n\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type { PlayerServiceInterface, Unsubscribe } from './types';\n\ntype Modules = {\n avModule: typeof ExpoAV;\n};\ntype PlaybackListener = Parameters<PlayerServiceInterface['addPlaybackListener']>[number];\ntype StateListener = Parameters<PlayerServiceInterface['addStateListener']>[number];\nconst createExpoPlayerService = ({ avModule }: Modules): PlayerServiceInterface => {\n const sound = new avModule.Audio.Sound();\n\n class VoicePlayer implements PlayerServiceInterface {\n uri?: string;\n state: PlayerServiceInterface['state'] = 'idle';\n\n private readonly playbackSubscribers = new Set<PlaybackListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n\n private setState = (state: PlayerServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n private setListener = () => {\n sound.setProgressUpdateIntervalAsync(100).catch((error) => {\n Logger.warn('[PlayerService.Expo] Failed to set progress update interval', error);\n });\n sound.setOnPlaybackStatusUpdate((status) => {\n if (status.isLoaded) {\n if (status.didJustFinish) {\n this.stop().catch((error) => {\n Logger.warn('[PlayerService.Expo] Failed to stop in OnPlaybackStatusUpdate', error);\n });\n }\n if (status.isPlaying) {\n this.playbackSubscribers.forEach((callback) => {\n callback({\n currentTime: status.positionMillis,\n duration: status.durationMillis ?? 0,\n stopped: status.didJustFinish,\n });\n });\n }\n }\n });\n };\n\n private removeListener = () => {\n sound.setOnPlaybackStatusUpdate(null);\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const status = await avModule.Audio.getPermissionsAsync();\n if (expoPermissionGranted([status])) {\n return true;\n } else {\n const status = await avModule.Audio.requestPermissionsAsync();\n return expoPermissionGranted([status]);\n }\n };\n\n public addPlaybackListener = (callback: PlaybackListener): Unsubscribe => {\n this.playbackSubscribers.add(callback);\n return () => {\n this.playbackSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n private prepare = async (uri: string) => {\n this.setState('preparing');\n await sound.loadAsync({ uri }, { shouldPlay: false }, true);\n this.uri = uri;\n };\n\n public play = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'stopped'])) {\n try {\n await this.prepare(uri);\n this.setListener();\n await sound.playAsync();\n this.setState('playing');\n } catch (e) {\n this.setState('idle');\n this.uri = undefined;\n this.removeListener();\n throw e;\n }\n } else if (matchesOneOf(this.state, ['paused']) && this.uri === uri) {\n try {\n this.setListener();\n await sound.playAsync();\n this.setState('playing');\n } catch (e) {\n this.removeListener();\n throw e;\n }\n }\n };\n\n public pause = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing'])) {\n await sound.pauseAsync();\n this.removeListener();\n this.setState('paused');\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await sound.stopAsync();\n await sound.unloadAsync();\n this.removeListener();\n this.setState('stopped');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.setState('idle');\n this.uri = undefined;\n this.playbackSubscribers.clear();\n this.stateSubscribers.clear();\n };\n\n public seek = async (time: number): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await sound.playFromPositionAsync(time);\n }\n };\n }\n\n return new VoicePlayer();\n};\n\nexport default createExpoPlayerService;\n"],"mappings":"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","ignoreList":[]}
@@ -6,14 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _uikitUtils = require("@sendbird/uikit-utils");
9
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
12
- const createNativePlayerService = _ref => {
13
- let {
14
- audioRecorderModule,
15
- permissionModule
16
- } = _ref;
9
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
11
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
+ const createNativePlayerService = ({
13
+ audioRecorderModule,
14
+ permissionModule
15
+ }) => {
17
16
  const module = new audioRecorderModule.default();
18
17
  class VoicePlayer {
19
18
  constructor() {
@@ -139,6 +138,5 @@ const createNativePlayerService = _ref => {
139
138
  }
140
139
  return new VoicePlayer();
141
140
  };
142
- var _default = createNativePlayerService;
143
- exports.default = _default;
141
+ var _default = exports.default = createNativePlayerService;
144
142
  //# sourceMappingURL=createPlayerService.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_uikitUtils","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","createNativePlayerService","_ref","audioRecorderModule","permissionModule","module","default","VoicePlayer","constructor","Set","state","stateSubscribers","forEach","callback","addPlayBackListener","data","stopped","currentPosition","duration","stop","catch","error","Logger","warn","playbackSubscribers","currentTime","removePlayBackListener","Platform","OS","Version","READ_EXTERNAL_STORAGE","PERMISSIONS","ANDROID","status","check","request","add","delete","uri","matchesOneOf","setState","setListener","sleep","startPlayer","e","removeListener","resumePlayer","pausePlayer","stopPlayer","clear","time","seekToPlayer","setSubscriptionDuration","_default","exports"],"sources":["createPlayerService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport type * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport type { PlayerServiceInterface, Unsubscribe } from './types';\n\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\ntype PlaybackListener = Parameters<PlayerServiceInterface['addPlaybackListener']>[number];\ntype StateListener = Parameters<PlayerServiceInterface['addStateListener']>[number];\nconst createNativePlayerService = ({ audioRecorderModule, permissionModule }: Modules): PlayerServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoicePlayer implements PlayerServiceInterface {\n uri?: string;\n state: PlayerServiceInterface['state'] = 'idle';\n\n private readonly playbackSubscribers = new Set<PlaybackListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[PlayerService.Native] Failed to set subscription duration', error);\n });\n }\n\n private setState = (state: PlayerServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n private setListener = () => {\n module.addPlayBackListener(async (data) => {\n const stopped = data.currentPosition >= data.duration;\n\n if (stopped) {\n this.stop().catch((error) => {\n Logger.warn('[PlayerService.Native] Failed to stop in PlayBackListener', error);\n });\n }\n if (this.state === 'playing') {\n this.playbackSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, duration: data.duration, stopped });\n });\n }\n });\n };\n\n private removeListener = () => {\n module.removePlayBackListener();\n };\n\n public requestPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n if (Platform.Version > 32) return true;\n\n const { READ_EXTERNAL_STORAGE } = permissionModule.PERMISSIONS.ANDROID;\n\n const status = await permissionModule.check(READ_EXTERNAL_STORAGE);\n if (status === 'granted') {\n return true;\n } else {\n const status = await permissionModule.request(READ_EXTERNAL_STORAGE);\n return status === 'granted';\n }\n } else {\n return true;\n }\n };\n\n public addPlaybackListener = (callback: PlaybackListener): Unsubscribe => {\n this.playbackSubscribers.add(callback);\n return () => {\n this.playbackSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public play = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'stopped'])) {\n try {\n this.setState('preparing');\n this.uri = uri;\n this.setListener();\n\n // FIXME: Workaround, `module.startPlayer()` caused a significant frame-drop and prevented the 'preparing' UI transition.\n await sleep(0);\n await module.startPlayer(uri);\n\n this.setState('playing');\n } catch (e) {\n this.setState('idle');\n this.uri = undefined;\n this.removeListener();\n throw e;\n }\n } else if (matchesOneOf(this.state, ['paused']) && this.uri === uri) {\n try {\n this.setListener();\n await module.resumePlayer();\n this.setState('playing');\n } catch (e) {\n this.removeListener();\n throw e;\n }\n }\n };\n\n public pause = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing'])) {\n await module.pausePlayer();\n this.removeListener();\n this.setState('paused');\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['preparing', 'playing', 'paused'])) {\n await module.stopPlayer();\n this.removeListener();\n this.setState('stopped');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.setState('idle');\n this.uri = undefined;\n this.playbackSubscribers.clear();\n this.stateSubscribers.clear();\n };\n\n public seek = async (time: number): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await module.seekToPlayer(time);\n }\n };\n }\n\n return new VoicePlayer();\n};\n\nexport default createNativePlayerService;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_uikitUtils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","createNativePlayerService","audioRecorderModule","permissionModule","module","default","VoicePlayer","constructor","Set","state","stateSubscribers","forEach","callback","addPlayBackListener","data","stopped","currentPosition","duration","stop","catch","error","Logger","warn","playbackSubscribers","currentTime","removePlayBackListener","Platform","OS","Version","READ_EXTERNAL_STORAGE","PERMISSIONS","ANDROID","status","check","request","add","delete","uri","matchesOneOf","setState","setListener","sleep","startPlayer","undefined","removeListener","resumePlayer","pausePlayer","stopPlayer","clear","time","seekToPlayer","setSubscriptionDuration","_default","exports"],"sources":["createPlayerService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport type * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport type { PlayerServiceInterface, Unsubscribe } from './types';\n\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\ntype PlaybackListener = Parameters<PlayerServiceInterface['addPlaybackListener']>[number];\ntype StateListener = Parameters<PlayerServiceInterface['addStateListener']>[number];\nconst createNativePlayerService = ({ audioRecorderModule, permissionModule }: Modules): PlayerServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoicePlayer implements PlayerServiceInterface {\n uri?: string;\n state: PlayerServiceInterface['state'] = 'idle';\n\n private readonly playbackSubscribers = new Set<PlaybackListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[PlayerService.Native] Failed to set subscription duration', error);\n });\n }\n\n private setState = (state: PlayerServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n private setListener = () => {\n module.addPlayBackListener(async (data) => {\n const stopped = data.currentPosition >= data.duration;\n\n if (stopped) {\n this.stop().catch((error) => {\n Logger.warn('[PlayerService.Native] Failed to stop in PlayBackListener', error);\n });\n }\n if (this.state === 'playing') {\n this.playbackSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, duration: data.duration, stopped });\n });\n }\n });\n };\n\n private removeListener = () => {\n module.removePlayBackListener();\n };\n\n public requestPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n if (Platform.Version > 32) return true;\n\n const { READ_EXTERNAL_STORAGE } = permissionModule.PERMISSIONS.ANDROID;\n\n const status = await permissionModule.check(READ_EXTERNAL_STORAGE);\n if (status === 'granted') {\n return true;\n } else {\n const status = await permissionModule.request(READ_EXTERNAL_STORAGE);\n return status === 'granted';\n }\n } else {\n return true;\n }\n };\n\n public addPlaybackListener = (callback: PlaybackListener): Unsubscribe => {\n this.playbackSubscribers.add(callback);\n return () => {\n this.playbackSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public play = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'stopped'])) {\n try {\n this.setState('preparing');\n this.uri = uri;\n this.setListener();\n\n // FIXME: Workaround, `module.startPlayer()` caused a significant frame-drop and prevented the 'preparing' UI transition.\n await sleep(0);\n await module.startPlayer(uri);\n\n this.setState('playing');\n } catch (e) {\n this.setState('idle');\n this.uri = undefined;\n this.removeListener();\n throw e;\n }\n } else if (matchesOneOf(this.state, ['paused']) && this.uri === uri) {\n try {\n this.setListener();\n await module.resumePlayer();\n this.setState('playing');\n } catch (e) {\n this.removeListener();\n throw e;\n }\n }\n };\n\n public pause = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing'])) {\n await module.pausePlayer();\n this.removeListener();\n this.setState('paused');\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['preparing', 'playing', 'paused'])) {\n await module.stopPlayer();\n this.removeListener();\n this.setState('stopped');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.setState('idle');\n this.uri = undefined;\n this.playbackSubscribers.clear();\n this.stateSubscribers.clear();\n };\n\n public seek = async (time: number): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await module.seekToPlayer(time);\n }\n };\n }\n\n return new VoicePlayer();\n};\n\nexport default createNativePlayerService;\n"],"mappings":"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","ignoreList":[]}
@@ -8,14 +8,13 @@ var _reactNative = require("react-native");
8
8
  var _uikitUtils = require("@sendbird/uikit-utils");
9
9
  var _VoiceMessageConfig = _interopRequireDefault(require("../libs/VoiceMessageConfig"));
10
10
  var _expoPermissionGranted = _interopRequireDefault(require("../utils/expoPermissionGranted"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
14
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
- const createExpoRecorderService = _ref => {
16
- let {
17
- avModule
18
- } = _ref;
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ const createExpoRecorderService = ({
16
+ avModule
17
+ }) => {
19
18
  class VoiceRecorder {
20
19
  constructor() {
21
20
  _defineProperty(this, "uri", undefined);
@@ -153,6 +152,5 @@ const createExpoRecorderService = _ref => {
153
152
  }
154
153
  return new VoiceRecorder();
155
154
  };
156
- var _default = createExpoRecorderService;
157
- exports.default = _default;
155
+ var _default = exports.default = createExpoRecorderService;
158
156
  //# sourceMappingURL=createRecorderService.expo.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_uikitUtils","_VoiceMessageConfig","_interopRequireDefault","_expoPermissionGranted","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","createExpoRecorderService","_ref","avModule","VoiceRecorder","constructor","minDuration","VoiceMessageConfig","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Audio","Recording","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","numberOfChannels","CHANNELS","android","_audioSettings","options","audioEncoder","AndroidAudioEncoder","AAC","outputFormat","AndroidOutputFormat","MPEG_4","ios","IOSOutputFormat","MPEG4AAC","audioQuality","IOSAudioQuality","HIGH","web","setState","Platform","OS","setAudioModeAsync","allowsRecordingIOS","playsInSilentModeIOS","_recorder","_isDoneRecording","setProgressUpdateInterval","setOnRecordingStatusUpdate","status","completed","durationMillis","stop","isRecording","_recordingSubscribers","forEach","callback","currentTime","prepareToRecordAsync","_audioOptions","state","_stateSubscribers","getPermissionsAsync","expoPermissionGranted","requestPermissionsAsync","add","delete","matchesOneOf","prepare","startAsync","uri","getURI","e","buffer","_getRecorderStopSafeBuffer","sleep","stopAndUnloadAsync","clear","_default","exports"],"sources":["createRecorderService.expo.tsx"],"sourcesContent":["import * as ExpoAV from 'expo-av';\nimport type { RecordingOptions } from 'expo-av/build/Audio/Recording.types';\nimport { Platform } from 'react-native';\n\nimport { matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n avModule: typeof ExpoAV;\n};\nconst createExpoRecorderService = ({ avModule }: Modules): RecorderServiceInterface => {\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private _recorder = new avModule.Audio.Recording();\n private readonly _recordingSubscribers = new Set<RecordingListener>();\n private readonly _stateSubscribers = new Set<StateListener>();\n private readonly _audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n numberOfChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly _audioOptions: RecordingOptions = {\n android: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n audioEncoder: avModule.Audio.AndroidAudioEncoder.AAC,\n outputFormat: avModule.Audio.AndroidOutputFormat.MPEG_4,\n },\n ios: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n outputFormat: avModule.Audio.IOSOutputFormat.MPEG4AAC,\n audioQuality: avModule.Audio.IOSAudioQuality.HIGH,\n },\n web: {},\n };\n\n private prepare = async () => {\n this.setState('preparing');\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true });\n }\n\n if (this._recorder._isDoneRecording) {\n this._recorder = new avModule.Audio.Recording();\n }\n this._recorder.setProgressUpdateInterval(100);\n this._recorder.setOnRecordingStatusUpdate((status) => {\n const completed = status.durationMillis >= this.options.maxDuration;\n if (completed) this.stop();\n if (status.isRecording) {\n this._recordingSubscribers.forEach((callback) => {\n callback({ currentTime: status.durationMillis, completed: completed });\n });\n }\n });\n await this._recorder.prepareToRecordAsync(this._audioOptions);\n };\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this._stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const status = await avModule.Audio.getPermissionsAsync();\n if (expoPermissionGranted([status])) {\n return true;\n } else {\n const status = await avModule.Audio.requestPermissionsAsync();\n return expoPermissionGranted([status]);\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this._recordingSubscribers.add(callback);\n return () => {\n this._recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this._stateSubscribers.add(callback);\n return () => {\n this._stateSubscribers.delete(callback);\n };\n };\n\n public record = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n await this.prepare();\n await this._recorder.startAsync();\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n const uri = this._recorder.getURI();\n if (uri) this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await this._recorder.stopAndUnloadAsync();\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: false, playsInSilentModeIOS: false });\n }\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this._recordingSubscribers.clear();\n this._recorder = new avModule.Audio.Recording();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createExpoRecorderService;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_uikitUtils","_VoiceMessageConfig","_interopRequireDefault","_expoPermissionGranted","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","createExpoRecorderService","avModule","VoiceRecorder","constructor","undefined","minDuration","VoiceMessageConfig","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Audio","Recording","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","numberOfChannels","CHANNELS","android","_audioSettings","options","audioEncoder","AndroidAudioEncoder","AAC","outputFormat","AndroidOutputFormat","MPEG_4","ios","IOSOutputFormat","MPEG4AAC","audioQuality","IOSAudioQuality","HIGH","web","setState","Platform","OS","setAudioModeAsync","allowsRecordingIOS","playsInSilentModeIOS","_recorder","_isDoneRecording","setProgressUpdateInterval","setOnRecordingStatusUpdate","status","completed","durationMillis","stop","isRecording","_recordingSubscribers","forEach","callback","currentTime","prepareToRecordAsync","_audioOptions","state","_stateSubscribers","getPermissionsAsync","expoPermissionGranted","requestPermissionsAsync","add","delete","matchesOneOf","prepare","startAsync","uri","getURI","buffer","_getRecorderStopSafeBuffer","sleep","stopAndUnloadAsync","clear","_default","exports"],"sources":["createRecorderService.expo.tsx"],"sourcesContent":["import * as ExpoAV from 'expo-av';\nimport type { RecordingOptions } from 'expo-av/build/Audio/Recording.types';\nimport { Platform } from 'react-native';\n\nimport { matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n avModule: typeof ExpoAV;\n};\nconst createExpoRecorderService = ({ avModule }: Modules): RecorderServiceInterface => {\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private _recorder = new avModule.Audio.Recording();\n private readonly _recordingSubscribers = new Set<RecordingListener>();\n private readonly _stateSubscribers = new Set<StateListener>();\n private readonly _audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n numberOfChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly _audioOptions: RecordingOptions = {\n android: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n audioEncoder: avModule.Audio.AndroidAudioEncoder.AAC,\n outputFormat: avModule.Audio.AndroidOutputFormat.MPEG_4,\n },\n ios: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n outputFormat: avModule.Audio.IOSOutputFormat.MPEG4AAC,\n audioQuality: avModule.Audio.IOSAudioQuality.HIGH,\n },\n web: {},\n };\n\n private prepare = async () => {\n this.setState('preparing');\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true });\n }\n\n if (this._recorder._isDoneRecording) {\n this._recorder = new avModule.Audio.Recording();\n }\n this._recorder.setProgressUpdateInterval(100);\n this._recorder.setOnRecordingStatusUpdate((status) => {\n const completed = status.durationMillis >= this.options.maxDuration;\n if (completed) this.stop();\n if (status.isRecording) {\n this._recordingSubscribers.forEach((callback) => {\n callback({ currentTime: status.durationMillis, completed: completed });\n });\n }\n });\n await this._recorder.prepareToRecordAsync(this._audioOptions);\n };\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this._stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const status = await avModule.Audio.getPermissionsAsync();\n if (expoPermissionGranted([status])) {\n return true;\n } else {\n const status = await avModule.Audio.requestPermissionsAsync();\n return expoPermissionGranted([status]);\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this._recordingSubscribers.add(callback);\n return () => {\n this._recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this._stateSubscribers.add(callback);\n return () => {\n this._stateSubscribers.delete(callback);\n };\n };\n\n public record = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n await this.prepare();\n await this._recorder.startAsync();\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n const uri = this._recorder.getURI();\n if (uri) this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await this._recorder.stopAndUnloadAsync();\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: false, playsInSilentModeIOS: false });\n }\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this._recordingSubscribers.clear();\n this._recorder = new avModule.Audio.Recording();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createExpoRecorderService;\n"],"mappings":"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","ignoreList":[]}
@@ -8,15 +8,14 @@ var _reactNative = require("react-native");
8
8
  var _uikitUtils = require("@sendbird/uikit-utils");
9
9
  var _VoiceMessageConfig = _interopRequireDefault(require("../libs/VoiceMessageConfig"));
10
10
  var _nativePermissionGranted = _interopRequireDefault(require("../utils/nativePermissionGranted"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
14
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
- const createNativeRecorderService = _ref => {
16
- let {
17
- audioRecorderModule,
18
- permissionModule
19
- } = _ref;
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ const createNativeRecorderService = ({
16
+ audioRecorderModule,
17
+ permissionModule
18
+ }) => {
20
19
  const module = new audioRecorderModule.default();
21
20
  class VoiceRecorder {
22
21
  constructor() {
@@ -75,7 +74,7 @@ const createNativeRecorderService = _ref => {
75
74
  default: undefined
76
75
  });
77
76
  if (_reactNative.Platform.OS === 'android' && _reactNative.Platform.Version <= 28) {
78
- permission === null || permission === void 0 ? void 0 : permission.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
77
+ permission === null || permission === void 0 || permission.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
79
78
  }
80
79
  if (permission) {
81
80
  const status = await permissionModule.checkMultiple(permission);
@@ -158,6 +157,5 @@ const createNativeRecorderService = _ref => {
158
157
  }
159
158
  return new VoiceRecorder();
160
159
  };
161
- var _default = createNativeRecorderService;
162
- exports.default = _default;
160
+ var _default = exports.default = createNativeRecorderService;
163
161
  //# sourceMappingURL=createRecorderService.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_uikitUtils","_VoiceMessageConfig","_interopRequireDefault","_nativePermissionGranted","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","createNativeRecorderService","_ref","audioRecorderModule","permissionModule","module","VoiceRecorder","constructor","minDuration","VoiceMessageConfig","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","audioChannels","CHANNELS","Platform","select","android","AudioEncodingBitRateAndroid","audioSettings","AudioChannelsAndroid","AudioSamplingRateAndroid","AudioEncoderAndroid","AudioEncoderAndroidType","AAC","OutputFormatAndroid","OutputFormatAndroidType","MPEG_4","AudioSourceAndroid","AudioSourceAndroidType","VOICE_RECOGNITION","ios","AVEncoderBitRateKeyIOS","AVNumberOfChannelsKeyIOS","AVSampleRateKeyIOS","AVFormatIDKeyIOS","AVEncodingOption","mp4","AVEncoderAudioQualityKeyIOS","AVEncoderAudioQualityIOSType","high","state","stateSubscribers","forEach","callback","permission","PERMISSIONS","ANDROID","RECORD_AUDIO","IOS","MICROPHONE","windows","WINDOWS","OS","Version","push","WRITE_EXTERNAL_STORAGE","status","checkMultiple","nativePermissionGranted","requestMultiple","recordingSubscribers","add","delete","uri","matchesOneOf","setState","startRecorder","audioOptions","e","buffer","_getRecorderStopSafeBuffer","sleep","stopRecorder","stop","clear","setSubscriptionDuration","catch","error","Logger","warn","addRecordBackListener","data","completed","currentPosition","options","currentTime","_default","exports"],"sources":["createRecorderService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\nimport { Permission } from 'react-native-permissions/src/types';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport nativePermissionGranted from '../utils/nativePermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\nconst createNativeRecorderService = ({ audioRecorderModule, permissionModule }: Modules): RecorderServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private readonly recordingSubscribers = new Set<RecordingListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n private readonly audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n audioChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly audioOptions = Platform.select({\n android: {\n AudioEncodingBitRateAndroid: this.audioSettings.bitRate,\n AudioChannelsAndroid: this.audioSettings.audioChannels,\n AudioSamplingRateAndroid: this.audioSettings.sampleRate,\n AudioEncoderAndroid: audioRecorderModule.AudioEncoderAndroidType.AAC,\n OutputFormatAndroid: audioRecorderModule.OutputFormatAndroidType.MPEG_4,\n AudioSourceAndroid: audioRecorderModule.AudioSourceAndroidType.VOICE_RECOGNITION,\n },\n ios: {\n AVEncoderBitRateKeyIOS: this.audioSettings.bitRate,\n AVNumberOfChannelsKeyIOS: this.audioSettings.audioChannels,\n AVSampleRateKeyIOS: this.audioSettings.sampleRate,\n AVFormatIDKeyIOS: audioRecorderModule.AVEncodingOption.mp4, // same with aac\n AVEncoderAudioQualityKeyIOS: audioRecorderModule.AVEncoderAudioQualityIOSType.high,\n },\n default: {},\n });\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to set subscription duration', error);\n });\n module.addRecordBackListener((data) => {\n const completed = data.currentPosition >= this.options.maxDuration;\n\n if (completed) {\n this.stop().catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to stop in RecordBackListener', error);\n });\n }\n if (this.state === 'recording') {\n this.recordingSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, completed });\n });\n }\n });\n }\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const permission: Permission[] | undefined = Platform.select({\n android: [permissionModule.PERMISSIONS.ANDROID.RECORD_AUDIO],\n ios: [permissionModule.PERMISSIONS.IOS.MICROPHONE],\n windows: [permissionModule.PERMISSIONS.WINDOWS.MICROPHONE],\n default: undefined,\n });\n\n if (Platform.OS === 'android' && Platform.Version <= 28) {\n permission?.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);\n }\n\n if (permission) {\n const status = await permissionModule.checkMultiple(permission);\n if (nativePermissionGranted(status)) {\n return true;\n } else {\n const status = await permissionModule.requestMultiple(permission);\n return nativePermissionGranted(status);\n }\n } else {\n return true;\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this.recordingSubscribers.add(callback);\n return () => {\n this.recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public record = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n this.setState('preparing');\n await module.startRecorder(uri, {\n ...this.audioOptions,\n });\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await module.stopRecorder();\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this.recordingSubscribers.clear();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createNativeRecorderService;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_uikitUtils","_VoiceMessageConfig","_interopRequireDefault","_nativePermissionGranted","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","createNativeRecorderService","audioRecorderModule","permissionModule","module","VoiceRecorder","constructor","undefined","minDuration","VoiceMessageConfig","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","audioChannels","CHANNELS","Platform","select","android","AudioEncodingBitRateAndroid","audioSettings","AudioChannelsAndroid","AudioSamplingRateAndroid","AudioEncoderAndroid","AudioEncoderAndroidType","AAC","OutputFormatAndroid","OutputFormatAndroidType","MPEG_4","AudioSourceAndroid","AudioSourceAndroidType","VOICE_RECOGNITION","ios","AVEncoderBitRateKeyIOS","AVNumberOfChannelsKeyIOS","AVSampleRateKeyIOS","AVFormatIDKeyIOS","AVEncodingOption","mp4","AVEncoderAudioQualityKeyIOS","AVEncoderAudioQualityIOSType","high","state","stateSubscribers","forEach","callback","permission","PERMISSIONS","ANDROID","RECORD_AUDIO","IOS","MICROPHONE","windows","WINDOWS","OS","Version","push","WRITE_EXTERNAL_STORAGE","status","checkMultiple","nativePermissionGranted","requestMultiple","recordingSubscribers","add","delete","uri","matchesOneOf","setState","startRecorder","audioOptions","buffer","_getRecorderStopSafeBuffer","sleep","stopRecorder","stop","clear","setSubscriptionDuration","catch","error","Logger","warn","addRecordBackListener","data","completed","currentPosition","options","currentTime","_default","exports"],"sources":["createRecorderService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\nimport { Permission } from 'react-native-permissions/src/types';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport nativePermissionGranted from '../utils/nativePermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\nconst createNativeRecorderService = ({ audioRecorderModule, permissionModule }: Modules): RecorderServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private readonly recordingSubscribers = new Set<RecordingListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n private readonly audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n audioChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly audioOptions = Platform.select({\n android: {\n AudioEncodingBitRateAndroid: this.audioSettings.bitRate,\n AudioChannelsAndroid: this.audioSettings.audioChannels,\n AudioSamplingRateAndroid: this.audioSettings.sampleRate,\n AudioEncoderAndroid: audioRecorderModule.AudioEncoderAndroidType.AAC,\n OutputFormatAndroid: audioRecorderModule.OutputFormatAndroidType.MPEG_4,\n AudioSourceAndroid: audioRecorderModule.AudioSourceAndroidType.VOICE_RECOGNITION,\n },\n ios: {\n AVEncoderBitRateKeyIOS: this.audioSettings.bitRate,\n AVNumberOfChannelsKeyIOS: this.audioSettings.audioChannels,\n AVSampleRateKeyIOS: this.audioSettings.sampleRate,\n AVFormatIDKeyIOS: audioRecorderModule.AVEncodingOption.mp4, // same with aac\n AVEncoderAudioQualityKeyIOS: audioRecorderModule.AVEncoderAudioQualityIOSType.high,\n },\n default: {},\n });\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to set subscription duration', error);\n });\n module.addRecordBackListener((data) => {\n const completed = data.currentPosition >= this.options.maxDuration;\n\n if (completed) {\n this.stop().catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to stop in RecordBackListener', error);\n });\n }\n if (this.state === 'recording') {\n this.recordingSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, completed });\n });\n }\n });\n }\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const permission: Permission[] | undefined = Platform.select({\n android: [permissionModule.PERMISSIONS.ANDROID.RECORD_AUDIO],\n ios: [permissionModule.PERMISSIONS.IOS.MICROPHONE],\n windows: [permissionModule.PERMISSIONS.WINDOWS.MICROPHONE],\n default: undefined,\n });\n\n if (Platform.OS === 'android' && Platform.Version <= 28) {\n permission?.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);\n }\n\n if (permission) {\n const status = await permissionModule.checkMultiple(permission);\n if (nativePermissionGranted(status)) {\n return true;\n } else {\n const status = await permissionModule.requestMultiple(permission);\n return nativePermissionGranted(status);\n }\n } else {\n return true;\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this.recordingSubscribers.add(callback);\n return () => {\n this.recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public record = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n this.setState('preparing');\n await module.startRecorder(uri, {\n ...this.audioOptions,\n });\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await module.stopRecorder();\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this.recordingSubscribers.clear();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createNativeRecorderService;\n"],"mappings":"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","ignoreList":[]}
@@ -44,13 +44,11 @@ const SBUDynamicModule = {
44
44
  getInfo(name) {
45
45
  return SBUDynamicModuleRegistry[name] ?? null;
46
46
  },
47
- get(name) {
48
- let logLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'error';
47
+ get(name, logLevel = 'error') {
49
48
  const dmi = this.getInfo(name);
50
49
  if (!dmi) _uikitUtils.Logger.warn(`${name} doesn't exist in the dynamic module`);
51
50
  return dmi === null || dmi === void 0 ? void 0 : dmi.getPackage(logLevel);
52
51
  }
53
52
  };
54
- var _default = SBUDynamicModule;
55
- exports.default = _default;
53
+ var _default = exports.default = SBUDynamicModule;
56
54
  //# sourceMappingURL=dynamicModule.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_uikitUtils","checkLink","dmi","logLevel","nativeModule","isComponent","UIManager","getViewManagerConfig","nativeModuleNamespace","NativeModules","message","packageName","url","console","error","warn","SBUDynamicModuleRegistry","getPackage","e","SBUDynamicModule","register","mdi","getInfo","name","get","arguments","length","undefined","Logger","_default","exports","default"],"sources":["dynamicModule.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type * as RNCNetInfo from '@react-native-community/netinfo';\nimport { NativeModules, UIManager } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport type SBUNativeModule = keyof DynamicModules;\n\ninterface SBUDynamicModuleInfo {\n packageName: SBUNativeModule;\n nativeModuleNamespace: string;\n getPackage: <T>(logLevel: 'error' | 'warn' | 'none') => T;\n url: string;\n isComponent?: boolean;\n}\n\nfunction checkLink(dmi: SBUDynamicModuleInfo, logLevel: 'error' | 'warn' | 'none') {\n const nativeModule = (() => {\n if (dmi.isComponent) {\n return UIManager.getViewManagerConfig(dmi.nativeModuleNamespace);\n } else {\n return NativeModules[dmi.nativeModuleNamespace];\n }\n })();\n\n if (!nativeModule) {\n const message = `[UIKit] Cannot use native module, you should install and link ${dmi.packageName} (${dmi.url})`;\n if (logLevel === 'error') console.error(message);\n if (logLevel === 'warn') console.warn(message);\n }\n}\n\nexport interface DynamicModules {\n '@react-native-community/netinfo': typeof RNCNetInfo;\n}\n\nconst SBUDynamicModuleRegistry: Record<SBUNativeModule, SBUDynamicModuleInfo> = {\n '@react-native-community/netinfo': {\n packageName: '@react-native-community/netinfo',\n nativeModuleNamespace: 'RNCNetInfo',\n url: 'https://github.com/react-native-netinfo/react-native-netinfo',\n getPackage(logLevel) {\n checkLink(this, logLevel);\n\n try {\n return require('@react-native-community/netinfo');\n } catch (e) {\n return null;\n }\n },\n },\n};\n\nconst SBUDynamicModule = {\n register(mdi: SBUDynamicModuleInfo) {\n SBUDynamicModuleRegistry[mdi.nativeModuleNamespace as SBUNativeModule] = mdi;\n },\n getInfo(name: SBUNativeModule) {\n return SBUDynamicModuleRegistry[name] ?? null;\n },\n get<K extends SBUNativeModule, T extends DynamicModules[K]>(name: K, logLevel: 'error' | 'warn' | 'none' = 'error') {\n const dmi = this.getInfo(name);\n if (!dmi) Logger.warn(`${name} doesn't exist in the dynamic module`);\n return dmi?.getPackage<T>(logLevel);\n },\n};\n\nexport default SBUDynamicModule;\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAJA;;AAgBA,SAASE,SAASA,CAACC,GAAyB,EAAEC,QAAmC,EAAE;EACjF,MAAMC,YAAY,GAAG,CAAC,MAAM;IAC1B,IAAIF,GAAG,CAACG,WAAW,EAAE;MACnB,OAAOC,sBAAS,CAACC,oBAAoB,CAACL,GAAG,CAACM,qBAAqB,CAAC;IAClE,CAAC,MAAM;MACL,OAAOC,0BAAa,CAACP,GAAG,CAACM,qBAAqB,CAAC;IACjD;EACF,CAAC,GAAG;EAEJ,IAAI,CAACJ,YAAY,EAAE;IACjB,MAAMM,OAAO,GAAI,iEAAgER,GAAG,CAACS,WAAY,KAAIT,GAAG,CAACU,GAAI,GAAE;IAC/G,IAAIT,QAAQ,KAAK,OAAO,EAAEU,OAAO,CAACC,KAAK,CAACJ,OAAO,CAAC;IAChD,IAAIP,QAAQ,KAAK,MAAM,EAAEU,OAAO,CAACE,IAAI,CAACL,OAAO,CAAC;EAChD;AACF;AAMA,MAAMM,wBAAuE,GAAG;EAC9E,iCAAiC,EAAE;IACjCL,WAAW,EAAE,iCAAiC;IAC9CH,qBAAqB,EAAE,YAAY;IACnCI,GAAG,EAAE,8DAA8D;IACnEK,UAAUA,CAACd,QAAQ,EAAE;MACnBF,SAAS,CAAC,IAAI,EAAEE,QAAQ,CAAC;MAEzB,IAAI;QACF,OAAOJ,OAAO,CAAC,iCAAiC,CAAC;MACnD,CAAC,CAAC,OAAOmB,CAAC,EAAE;QACV,OAAO,IAAI;MACb;IACF;EACF;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAG;EACvBC,QAAQA,CAACC,GAAyB,EAAE;IAClCL,wBAAwB,CAACK,GAAG,CAACb,qBAAqB,CAAoB,GAAGa,GAAG;EAC9E,CAAC;EACDC,OAAOA,CAACC,IAAqB,EAAE;IAC7B,OAAOP,wBAAwB,CAACO,IAAI,CAAC,IAAI,IAAI;EAC/C,CAAC;EACDC,GAAGA,CAAyDD,IAAO,EAAiD;IAAA,IAA/CpB,QAAmC,GAAAsB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;IAChH,MAAMvB,GAAG,GAAG,IAAI,CAACoB,OAAO,CAACC,IAAI,CAAC;IAC9B,IAAI,CAACrB,GAAG,EAAE0B,kBAAM,CAACb,IAAI,CAAE,GAAEQ,IAAK,sCAAqC,CAAC;IACpE,OAAOrB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEe,UAAU,CAAId,QAAQ,CAAC;EACrC;AACF,CAAC;AAAC,IAAA0B,QAAA,GAEaV,gBAAgB;AAAAW,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_reactNative","require","_uikitUtils","checkLink","dmi","logLevel","nativeModule","isComponent","UIManager","getViewManagerConfig","nativeModuleNamespace","NativeModules","message","packageName","url","console","error","warn","SBUDynamicModuleRegistry","getPackage","e","SBUDynamicModule","register","mdi","getInfo","name","get","Logger","_default","exports","default"],"sources":["dynamicModule.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type * as RNCNetInfo from '@react-native-community/netinfo';\nimport { NativeModules, UIManager } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport type SBUNativeModule = keyof DynamicModules;\n\ninterface SBUDynamicModuleInfo {\n packageName: SBUNativeModule;\n nativeModuleNamespace: string;\n getPackage: <T>(logLevel: 'error' | 'warn' | 'none') => T;\n url: string;\n isComponent?: boolean;\n}\n\nfunction checkLink(dmi: SBUDynamicModuleInfo, logLevel: 'error' | 'warn' | 'none') {\n const nativeModule = (() => {\n if (dmi.isComponent) {\n return UIManager.getViewManagerConfig(dmi.nativeModuleNamespace);\n } else {\n return NativeModules[dmi.nativeModuleNamespace];\n }\n })();\n\n if (!nativeModule) {\n const message = `[UIKit] Cannot use native module, you should install and link ${dmi.packageName} (${dmi.url})`;\n if (logLevel === 'error') console.error(message);\n if (logLevel === 'warn') console.warn(message);\n }\n}\n\nexport interface DynamicModules {\n '@react-native-community/netinfo': typeof RNCNetInfo;\n}\n\nconst SBUDynamicModuleRegistry: Record<SBUNativeModule, SBUDynamicModuleInfo> = {\n '@react-native-community/netinfo': {\n packageName: '@react-native-community/netinfo',\n nativeModuleNamespace: 'RNCNetInfo',\n url: 'https://github.com/react-native-netinfo/react-native-netinfo',\n getPackage(logLevel) {\n checkLink(this, logLevel);\n\n try {\n return require('@react-native-community/netinfo');\n } catch (e) {\n return null;\n }\n },\n },\n};\n\nconst SBUDynamicModule = {\n register(mdi: SBUDynamicModuleInfo) {\n SBUDynamicModuleRegistry[mdi.nativeModuleNamespace as SBUNativeModule] = mdi;\n },\n getInfo(name: SBUNativeModule) {\n return SBUDynamicModuleRegistry[name] ?? null;\n },\n get<K extends SBUNativeModule, T extends DynamicModules[K]>(name: K, logLevel: 'error' | 'warn' | 'none' = 'error') {\n const dmi = this.getInfo(name);\n if (!dmi) Logger.warn(`${name} doesn't exist in the dynamic module`);\n return dmi?.getPackage<T>(logLevel);\n },\n};\n\nexport default SBUDynamicModule;\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAJA;;AAgBA,SAASE,SAASA,CAACC,GAAyB,EAAEC,QAAmC,EAAE;EACjF,MAAMC,YAAY,GAAG,CAAC,MAAM;IAC1B,IAAIF,GAAG,CAACG,WAAW,EAAE;MACnB,OAAOC,sBAAS,CAACC,oBAAoB,CAACL,GAAG,CAACM,qBAAqB,CAAC;IAClE,CAAC,MAAM;MACL,OAAOC,0BAAa,CAACP,GAAG,CAACM,qBAAqB,CAAC;IACjD;EACF,CAAC,EAAE,CAAC;EAEJ,IAAI,CAACJ,YAAY,EAAE;IACjB,MAAMM,OAAO,GAAG,iEAAiER,GAAG,CAACS,WAAW,KAAKT,GAAG,CAACU,GAAG,GAAG;IAC/G,IAAIT,QAAQ,KAAK,OAAO,EAAEU,OAAO,CAACC,KAAK,CAACJ,OAAO,CAAC;IAChD,IAAIP,QAAQ,KAAK,MAAM,EAAEU,OAAO,CAACE,IAAI,CAACL,OAAO,CAAC;EAChD;AACF;AAMA,MAAMM,wBAAuE,GAAG;EAC9E,iCAAiC,EAAE;IACjCL,WAAW,EAAE,iCAAiC;IAC9CH,qBAAqB,EAAE,YAAY;IACnCI,GAAG,EAAE,8DAA8D;IACnEK,UAAUA,CAACd,QAAQ,EAAE;MACnBF,SAAS,CAAC,IAAI,EAAEE,QAAQ,CAAC;MAEzB,IAAI;QACF,OAAOJ,OAAO,CAAC,iCAAiC,CAAC;MACnD,CAAC,CAAC,OAAOmB,CAAC,EAAE;QACV,OAAO,IAAI;MACb;IACF;EACF;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAG;EACvBC,QAAQA,CAACC,GAAyB,EAAE;IAClCL,wBAAwB,CAACK,GAAG,CAACb,qBAAqB,CAAoB,GAAGa,GAAG;EAC9E,CAAC;EACDC,OAAOA,CAACC,IAAqB,EAAE;IAC7B,OAAOP,wBAAwB,CAACO,IAAI,CAAC,IAAI,IAAI;EAC/C,CAAC;EACDC,GAAGA,CAAyDD,IAAO,EAAEpB,QAAmC,GAAG,OAAO,EAAE;IAClH,MAAMD,GAAG,GAAG,IAAI,CAACoB,OAAO,CAACC,IAAI,CAAC;IAC9B,IAAI,CAACrB,GAAG,EAAEuB,kBAAM,CAACV,IAAI,CAAC,GAAGQ,IAAI,sCAAsC,CAAC;IACpE,OAAOrB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEe,UAAU,CAAId,QAAQ,CAAC;EACrC;AACF,CAAC;AAAC,IAAAuB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaT,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport type SBUError from '../libs/SBUError';\n\nexport type Unsubscribe = () => void | undefined;\nexport type DownloadedPath = string;\nexport type FilePickerResponse = FileType | null;\n\n/**\n * We are following the file format of react-native FormData\n * @see https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/FormData.js#L37-L41\n * */\nexport type FileType = { name: string; uri: string; size: number; type: string };\n\n// ---------- NotificationService ---------- //\nexport interface NotificationServiceInterface {\n hasPushPermission(): Promise<boolean>;\n requestPushPermission(): Promise<boolean>;\n\n getAPNSToken(): Promise<string | null>;\n getFCMToken(): Promise<string | null>;\n onTokenRefresh(handler: (token: string) => void): Unsubscribe;\n}\n\n// ---------- ClipboardService ---------- //\nexport interface ClipboardServiceInterface {\n setString(text: string): void;\n getString(): Promise<string>;\n}\n\n// ---------- FileService ---------- //\nexport interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}\n\nexport interface OpenResultListener {\n onOpenFailure?: (error: SBUError, originError?: unknown) => void;\n}\nexport interface OpenMediaLibraryOptions extends OpenResultListener {\n selectionLimit?: number;\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport interface OpenCameraOptions extends OpenResultListener {\n cameraType?: 'front' | 'back';\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport type OpenDocumentOptions = OpenResultListener;\nexport interface SaveOptions {\n fileUrl: string;\n fileName: string;\n fileType?: string | null;\n}\n\nexport interface FilePickerServiceInterface {\n openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<null | FilePickerResponse[]>;\n openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse>;\n openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse>;\n}\n\nexport interface FileSystemServiceInterface {\n // NOTE: On iOS, You can access the downloaded files by providing options below to info.plist\n // - Supports opening documents in place\n // - Application supports iTunes file sharing\n save(options?: SaveOptions): Promise<DownloadedPath | null>;\n createRecordFilePath(customExtension?: string): { recordFilePath: string; uri: string };\n}\n\n// ---------- MediaService ---------- //\nexport type VideoProps = {\n source: { uri: string } | number;\n resizeMode?: 'cover' | 'contain' | 'stretch';\n onLoad?: () => void;\n};\n\nexport type GetVideoThumbnailOptions = {\n url: string;\n timeMills?: number;\n quality?: number;\n};\nexport type GetVideoThumbnailResult = Promise<{ path: string } | null>;\n\nexport type CompressImageOptions = {\n /**\n * A uri of image file to compress\n * */\n uri: string;\n\n /**\n * A resize width, apply only to downscale\n * */\n maxWidth?: number;\n\n /**\n * A resize height, apply only to downscale\n * */\n maxHeight?: number;\n\n /**\n * A value in range 0.0 - 1.0 specifying compression level of the result image.\n * 1 means highest quality and 0 the lowest quality.\n * */\n compressionRate?: number;\n};\nexport type CompressImageResult = Promise<{ uri: string; size: number } | null>;\n\nexport interface MediaServiceInterface {\n VideoComponent<Props = {}>(props: VideoProps & Props): ReactNode;\n getVideoThumbnail(options: GetVideoThumbnailOptions): GetVideoThumbnailResult;\n compressImage(options: CompressImageOptions): CompressImageResult;\n}\n\n// ---------- PlayerService ---------- //\nexport interface PlayerServiceInterface {\n uri?: string;\n state: 'idle' | 'preparing' | 'playing' | 'paused' | 'stopped';\n\n /**\n * Check and request permission for the player.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add a playback listener.\n * */\n addPlaybackListener(\n callback: (params: { currentTime: number; duration: number; stopped: boolean }) => void,\n ): Unsubscribe;\n\n /**\n * Add a state listener.\n * */\n addStateListener(callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, stopped] to [playing] - start from the beginning\n * [paused] to [playing] - resume\n * */\n play(uri: string): Promise<void>;\n\n /**\n * State transition:\n * [playing] to [paused]\n * */\n pause(): Promise<void>;\n\n /**\n * State transition:\n * [preparing, playing, paused] to [stop]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n\n /**\n * Seek time, only available when the state is [playing, paused].\n * */\n seek(time: number): Promise<void>;\n}\n\n// ---------- RecorderService ---------- //\nexport interface RecorderOptions {\n /**\n * Minimum recording duration (milliseconds).\n * */\n minDuration: number;\n\n /**\n * Maximum recording duration (milliseconds).\n * */\n maxDuration: number;\n\n /**\n * File extension for recorded audio file\n * */\n extension: string;\n}\n\nexport interface RecorderServiceInterface {\n uri?: string;\n options: RecorderOptions;\n state: 'idle' | 'preparing' | 'recording' | 'completed';\n\n /**\n * Check and request permission for the recorder.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add recording listener.\n * */\n addRecordingListener(callback: (params: { currentTime: number; completed: boolean }) => void): Unsubscribe;\n\n /**\n * Add state listener.\n * */\n addStateListener(callback: (state: RecorderServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, completed] to [recording]\n * */\n record(uri?: string): Promise<void>;\n\n /**\n * State transition:\n * [recording] to [completed]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport type SBUError from '../libs/SBUError';\n\nexport type Unsubscribe = () => void | undefined;\nexport type DownloadedPath = string;\nexport type FilePickerResponse = FileType | null;\n\n/**\n * We are following the file format of react-native FormData\n * @see https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/FormData.js#L37-L41\n * */\nexport type FileType = { name: string; uri: string; size: number; type: string };\n\n// ---------- NotificationService ---------- //\nexport interface NotificationServiceInterface {\n hasPushPermission(): Promise<boolean>;\n requestPushPermission(): Promise<boolean>;\n\n getAPNSToken(): Promise<string | null>;\n getFCMToken(): Promise<string | null>;\n onTokenRefresh(handler: (token: string) => void): Unsubscribe;\n}\n\n// ---------- ClipboardService ---------- //\nexport interface ClipboardServiceInterface {\n setString(text: string): void;\n getString(): Promise<string>;\n}\n\n// ---------- FileService ---------- //\nexport interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}\n\nexport interface OpenResultListener {\n onOpenFailure?: (error: SBUError, originError?: unknown) => void;\n}\nexport interface OpenMediaLibraryOptions extends OpenResultListener {\n selectionLimit?: number;\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport interface OpenCameraOptions extends OpenResultListener {\n cameraType?: 'front' | 'back';\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport type OpenDocumentOptions = OpenResultListener;\nexport interface SaveOptions {\n fileUrl: string;\n fileName: string;\n fileType?: string | null;\n}\n\nexport interface FilePickerServiceInterface {\n openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<null | FilePickerResponse[]>;\n openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse>;\n openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse>;\n}\n\nexport interface FileSystemServiceInterface {\n // NOTE: On iOS, You can access the downloaded files by providing options below to info.plist\n // - Supports opening documents in place\n // - Application supports iTunes file sharing\n save(options?: SaveOptions): Promise<DownloadedPath | null>;\n createRecordFilePath(customExtension?: string): { recordFilePath: string; uri: string };\n}\n\n// ---------- MediaService ---------- //\nexport type VideoProps = {\n source: { uri: string } | number;\n resizeMode?: 'cover' | 'contain' | 'stretch';\n onLoad?: () => void;\n};\n\nexport type GetVideoThumbnailOptions = {\n url: string;\n timeMills?: number;\n quality?: number;\n};\nexport type GetVideoThumbnailResult = Promise<{ path: string } | null>;\n\nexport type CompressImageOptions = {\n /**\n * A uri of image file to compress\n * */\n uri: string;\n\n /**\n * A resize width, apply only to downscale\n * */\n maxWidth?: number;\n\n /**\n * A resize height, apply only to downscale\n * */\n maxHeight?: number;\n\n /**\n * A value in range 0.0 - 1.0 specifying compression level of the result image.\n * 1 means highest quality and 0 the lowest quality.\n * */\n compressionRate?: number;\n};\nexport type CompressImageResult = Promise<{ uri: string; size: number } | null>;\n\nexport interface MediaServiceInterface {\n VideoComponent<Props = {}>(props: VideoProps & Props): ReactNode;\n getVideoThumbnail(options: GetVideoThumbnailOptions): GetVideoThumbnailResult;\n compressImage(options: CompressImageOptions): CompressImageResult;\n}\n\n// ---------- PlayerService ---------- //\nexport interface PlayerServiceInterface {\n uri?: string;\n state: 'idle' | 'preparing' | 'playing' | 'paused' | 'stopped';\n\n /**\n * Check and request permission for the player.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add a playback listener.\n * */\n addPlaybackListener(\n callback: (params: { currentTime: number; duration: number; stopped: boolean }) => void,\n ): Unsubscribe;\n\n /**\n * Add a state listener.\n * */\n addStateListener(callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, stopped] to [playing] - start from the beginning\n * [paused] to [playing] - resume\n * */\n play(uri: string): Promise<void>;\n\n /**\n * State transition:\n * [playing] to [paused]\n * */\n pause(): Promise<void>;\n\n /**\n * State transition:\n * [preparing, playing, paused] to [stop]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n\n /**\n * Seek time, only available when the state is [playing, paused].\n * */\n seek(time: number): Promise<void>;\n}\n\n// ---------- RecorderService ---------- //\nexport interface RecorderOptions {\n /**\n * Minimum recording duration (milliseconds).\n * */\n minDuration: number;\n\n /**\n * Maximum recording duration (milliseconds).\n * */\n maxDuration: number;\n\n /**\n * File extension for recorded audio file\n * */\n extension: string;\n}\n\nexport interface RecorderServiceInterface {\n uri?: string;\n options: RecorderOptions;\n state: 'idle' | 'preparing' | 'recording' | 'completed';\n\n /**\n * Check and request permission for the recorder.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add recording listener.\n * */\n addRecordingListener(callback: (params: { currentTime: number; completed: boolean }) => void): Unsubscribe;\n\n /**\n * Add state listener.\n * */\n addStateListener(callback: (state: RecorderServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, completed] to [recording]\n * */\n record(uri?: string): Promise<void>;\n\n /**\n * State transition:\n * [recording] to [completed]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TypingIndicatorType = void 0;
7
- let TypingIndicatorType = /*#__PURE__*/function (TypingIndicatorType) {
7
+ let TypingIndicatorType = exports.TypingIndicatorType = /*#__PURE__*/function (TypingIndicatorType) {
8
8
  TypingIndicatorType["Text"] = "text";
9
9
  TypingIndicatorType["Bubble"] = "bubble";
10
10
  return TypingIndicatorType;
11
11
  }({});
12
- exports.TypingIndicatorType = TypingIndicatorType;
13
12
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TypingIndicatorType","exports"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\nimport type { MMKV } from 'react-native-mmkv';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type LocalCacheStorage = AsyncLocalCacheStorage | MMKVLocalCacheStorage;\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface AsyncLocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type MMKVLocalCacheStorage = Pick<MMKV, 'getString' | 'set' | 'delete' | 'getAllKeys'>;\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> = ComponentType<P & { children?: ReactNode | undefined }>;\n\nexport type MentionedUser = {\n range: Range;\n user: SendbirdUser;\n};\n\nexport type Range = {\n start: number;\n end: number;\n};\n\nexport enum TypingIndicatorType {\n Text = 'text',\n Bubble = 'bubble',\n}\n"],"mappings":";;;;;;IAoCYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAAC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["TypingIndicatorType","exports"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\nimport type { MMKV } from 'react-native-mmkv';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type LocalCacheStorage = AsyncLocalCacheStorage | MMKVLocalCacheStorage;\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface AsyncLocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type MMKVLocalCacheStorage = Pick<MMKV, 'getString' | 'set' | 'delete' | 'getAllKeys'>;\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> = ComponentType<P & { children?: ReactNode | undefined }>;\n\nexport type MentionedUser = {\n range: Range;\n user: SendbirdUser;\n};\n\nexport type Range = {\n start: number;\n end: number;\n};\n\nexport enum TypingIndicatorType {\n Text = 'text',\n Bubble = 'bubble',\n}\n"],"mappings":";;;;;;IAoCYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _normalizeFile = _interopRequireDefault(require("./normalizeFile"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  const expoBackwardUtils = {
10
10
  imagePicker: {
11
11
  isCanceled(result) {
@@ -15,20 +15,17 @@ const expoBackwardUtils = {
15
15
  async toFilePickerResponses(result, fsModule) {
16
16
  if (result.assets) {
17
17
  const assets = result.assets || [];
18
- const promises = assets.map(_ref => {
19
- let {
20
- fileName: name,
21
- fileSize: size,
22
- type,
23
- uri
24
- } = _ref;
25
- return (0, _normalizeFile.default)({
26
- uri,
27
- size,
28
- name,
29
- type
30
- });
31
- });
18
+ const promises = assets.map(({
19
+ fileName: name,
20
+ fileSize: size,
21
+ type,
22
+ uri
23
+ }) => (0, _normalizeFile.default)({
24
+ uri,
25
+ size,
26
+ name,
27
+ type
28
+ }));
32
29
  return Promise.all(promises);
33
30
  } else if ('uri' in result && typeof result.uri === 'string') {
34
31
  const fileInfo = await fsModule.getInfoAsync(result.uri);
@@ -50,20 +47,17 @@ const expoBackwardUtils = {
50
47
  async toFilePickerResponses(result) {
51
48
  if (result.assets) {
52
49
  const assets = result.assets || [];
53
- const promises = assets.map(_ref2 => {
54
- let {
55
- name,
56
- size,
57
- mimeType,
58
- uri
59
- } = _ref2;
60
- return (0, _normalizeFile.default)({
61
- uri,
62
- size,
63
- name,
64
- type: mimeType
65
- });
66
- });
50
+ const promises = assets.map(({
51
+ name,
52
+ size,
53
+ mimeType,
54
+ uri
55
+ }) => (0, _normalizeFile.default)({
56
+ uri,
57
+ size,
58
+ name,
59
+ type: mimeType
60
+ }));
67
61
  return Promise.all(promises);
68
62
  } else if ('uri' in result && typeof result.uri === 'string') {
69
63
  // @ts-expect-error backward compatibility
@@ -93,6 +87,5 @@ const expoBackwardUtils = {
93
87
  }
94
88
  }
95
89
  };
96
- var _default = expoBackwardUtils;
97
- exports.default = _default;
90
+ var _default = exports.default = expoBackwardUtils;
98
91
  //# sourceMappingURL=expoBackwardUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_normalizeFile","_interopRequireDefault","require","obj","__esModule","default","expoBackwardUtils","imagePicker","isCanceled","result","canceled","cancelled","toFilePickerResponses","fsModule","assets","promises","map","_ref","fileName","name","fileSize","size","type","uri","normalizeFile","Promise","all","fileInfo","getInfoAsync","response","toFileSize","documentPicker","_ref2","mimeType","info","_default","exports"],"sources":["expoBackwardUtils.ts"],"sourcesContent":["import type * as ExpoDocumentPicker from 'expo-document-picker';\nimport type * as ExpoFs from 'expo-file-system';\nimport type * as ExpoImagePicker from 'expo-image-picker';\n\nimport type { FilePickerResponse } from '../platform/types';\nimport normalizeFile from './normalizeFile';\n\nconst expoBackwardUtils = {\n imagePicker: {\n isCanceled(result: ExpoImagePicker.ImagePickerResult) {\n // @ts-expect-error backward compatibility\n return result.canceled ?? result.cancelled;\n },\n async toFilePickerResponses(\n result: ExpoImagePicker.ImagePickerResult,\n fsModule: typeof ExpoFs,\n ): Promise<FilePickerResponse[]> {\n if (result.assets) {\n const assets = result.assets || [];\n const promises = assets.map(({ fileName: name, fileSize: size, type, uri }) =>\n normalizeFile({ uri, size, name, type }),\n );\n\n return Promise.all(promises);\n } else if ('uri' in result && typeof result.uri === 'string') {\n const fileInfo = await fsModule.getInfoAsync(result.uri);\n const response = await normalizeFile({ uri: result.uri, size: expoBackwardUtils.toFileSize(fileInfo) });\n return [response];\n } else {\n return [];\n }\n },\n },\n documentPicker: {\n isCanceled(result: ExpoDocumentPicker.DocumentPickerResult) {\n // @ts-expect-error backward compatibility\n return result.canceled ?? result.type === 'cancel';\n },\n async toFilePickerResponses(result: ExpoDocumentPicker.DocumentPickerResult): Promise<FilePickerResponse[]> {\n if (result.assets) {\n const assets = result.assets || [];\n const promises = assets.map(({ name, size, mimeType, uri }) =>\n normalizeFile({ uri, size, name, type: mimeType }),\n );\n\n return Promise.all(promises);\n } else if ('uri' in result && typeof result.uri === 'string') {\n // @ts-expect-error backward compatibility\n const { mimeType, uri, size, name } = result;\n const response = await normalizeFile({ uri, size, name, type: mimeType });\n\n return [response];\n } else {\n return [];\n }\n },\n },\n toFileSize(info: ExpoFs.FileInfo) {\n if ('size' in info) {\n return info.size;\n } else {\n return 0;\n }\n },\n};\n\nexport default expoBackwardUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_normalizeFile","_interopRequireDefault","require","e","__esModule","default","expoBackwardUtils","imagePicker","isCanceled","result","canceled","cancelled","toFilePickerResponses","fsModule","assets","promises","map","fileName","name","fileSize","size","type","uri","normalizeFile","Promise","all","fileInfo","getInfoAsync","response","toFileSize","documentPicker","mimeType","info","_default","exports"],"sources":["expoBackwardUtils.ts"],"sourcesContent":["import type * as ExpoDocumentPicker from 'expo-document-picker';\nimport type * as ExpoFs from 'expo-file-system';\nimport type * as ExpoImagePicker from 'expo-image-picker';\n\nimport type { FilePickerResponse } from '../platform/types';\nimport normalizeFile from './normalizeFile';\n\nconst expoBackwardUtils = {\n imagePicker: {\n isCanceled(result: ExpoImagePicker.ImagePickerResult) {\n // @ts-expect-error backward compatibility\n return result.canceled ?? result.cancelled;\n },\n async toFilePickerResponses(\n result: ExpoImagePicker.ImagePickerResult,\n fsModule: typeof ExpoFs,\n ): Promise<FilePickerResponse[]> {\n if (result.assets) {\n const assets = result.assets || [];\n const promises = assets.map(({ fileName: name, fileSize: size, type, uri }) =>\n normalizeFile({ uri, size, name, type }),\n );\n\n return Promise.all(promises);\n } else if ('uri' in result && typeof result.uri === 'string') {\n const fileInfo = await fsModule.getInfoAsync(result.uri);\n const response = await normalizeFile({ uri: result.uri, size: expoBackwardUtils.toFileSize(fileInfo) });\n return [response];\n } else {\n return [];\n }\n },\n },\n documentPicker: {\n isCanceled(result: ExpoDocumentPicker.DocumentPickerResult) {\n // @ts-expect-error backward compatibility\n return result.canceled ?? result.type === 'cancel';\n },\n async toFilePickerResponses(result: ExpoDocumentPicker.DocumentPickerResult): Promise<FilePickerResponse[]> {\n if (result.assets) {\n const assets = result.assets || [];\n const promises = assets.map(({ name, size, mimeType, uri }) =>\n normalizeFile({ uri, size, name, type: mimeType }),\n );\n\n return Promise.all(promises);\n } else if ('uri' in result && typeof result.uri === 'string') {\n // @ts-expect-error backward compatibility\n const { mimeType, uri, size, name } = result;\n const response = await normalizeFile({ uri, size, name, type: mimeType });\n\n return [response];\n } else {\n return [];\n }\n },\n },\n toFileSize(info: ExpoFs.FileInfo) {\n if ('size' in info) {\n return info.size;\n } else {\n return 0;\n }\n },\n};\n\nexport default expoBackwardUtils;\n"],"mappings":"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","ignoreList":[]}