@sendbird/uikit-react-native 3.7.6 → 3.8.1

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 (1104) hide show
  1. package/lib/commonjs/components/ChannelCover.js +9 -11
  2. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  3. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js +7 -9
  4. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -1
  5. package/lib/commonjs/components/ChannelInput/EditInput.js +18 -18
  6. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  7. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +37 -50
  8. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
  9. package/lib/commonjs/components/ChannelInput/SendInput.js +44 -49
  10. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  11. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +12 -14
  12. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  13. package/lib/commonjs/components/ChannelInput/index.js +22 -27
  14. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  15. package/lib/commonjs/components/ChannelMessageList/index.js +59 -75
  16. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  17. package/lib/commonjs/components/ChannelThreadMessageList/index.js +54 -70
  18. package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
  19. package/lib/commonjs/components/ChatFlatList/FlatListInternal.js +1 -2
  20. package/lib/commonjs/components/ChatFlatList/FlatListInternal.js.map +1 -1
  21. package/lib/commonjs/components/ChatFlatList/index.js +13 -15
  22. package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
  23. package/lib/commonjs/components/FileViewer/FileViewerContent.js +18 -21
  24. package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -1
  25. package/lib/commonjs/components/FileViewer/FileViewerFooter.js +14 -19
  26. package/lib/commonjs/components/FileViewer/FileViewerFooter.js.map +1 -1
  27. package/lib/commonjs/components/FileViewer/FileViewerHeader.js +14 -20
  28. package/lib/commonjs/components/FileViewer/FileViewerHeader.js.map +1 -1
  29. package/lib/commonjs/components/FileViewer/index.js +15 -17
  30. package/lib/commonjs/components/FileViewer/index.js.map +1 -1
  31. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +6 -8
  32. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
  33. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +3 -4
  34. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  35. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +7 -9
  36. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
  37. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +18 -21
  38. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  39. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +13 -15
  40. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
  41. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +36 -39
  42. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  43. package/lib/commonjs/components/MessageSearchResultItem.js +20 -18
  44. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
  45. package/lib/commonjs/components/NewMessagesButton.js +7 -9
  46. package/lib/commonjs/components/NewMessagesButton.js.map +1 -1
  47. package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +6 -8
  48. package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
  49. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +13 -15
  50. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
  51. package/lib/commonjs/components/ProviderLayout.js +5 -7
  52. package/lib/commonjs/components/ProviderLayout.js.map +1 -1
  53. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +28 -42
  54. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  55. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +31 -41
  56. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  57. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +14 -16
  58. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  59. package/lib/commonjs/components/ReactionAddons/index.js +2 -3
  60. package/lib/commonjs/components/ReactionAddons/index.js.map +1 -1
  61. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +28 -39
  62. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  63. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +45 -51
  64. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  65. package/lib/commonjs/components/ReactionBottomSheets/index.js +2 -3
  66. package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
  67. package/lib/commonjs/components/ScrollToBottomButton.js +6 -8
  68. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  69. package/lib/commonjs/components/StatusComposition.js +9 -11
  70. package/lib/commonjs/components/StatusComposition.js.map +1 -1
  71. package/lib/commonjs/components/ThreadChatFlatList/index.js +13 -15
  72. package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -1
  73. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +2 -3
  74. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
  75. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +3 -4
  76. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
  77. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +2 -3
  78. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
  79. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +8 -8
  80. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  81. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +20 -14
  82. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
  83. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +24 -18
  84. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
  85. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +23 -22
  86. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
  87. package/lib/commonjs/components/TypedPlaceholder.js +6 -8
  88. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  89. package/lib/commonjs/components/UserActionBar.js +20 -20
  90. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  91. package/lib/commonjs/components/UserSelectableBar.js +14 -14
  92. package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
  93. package/lib/commonjs/constants.js +6 -12
  94. package/lib/commonjs/constants.js.map +1 -1
  95. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +12 -14
  96. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  97. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js +8 -9
  98. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
  99. package/lib/commonjs/containers/SendbirdUIKitContainer.js +17 -20
  100. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  101. package/lib/commonjs/contexts/LocalizationCtx.js +6 -8
  102. package/lib/commonjs/contexts/LocalizationCtx.js.map +1 -1
  103. package/lib/commonjs/contexts/PlatformServiceCtx.js +8 -10
  104. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  105. package/lib/commonjs/contexts/ReactionCtx.js +14 -19
  106. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
  107. package/lib/commonjs/contexts/SBUHandlersCtx.js +7 -9
  108. package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -1
  109. package/lib/commonjs/contexts/SendbirdChatCtx.js +16 -18
  110. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  111. package/lib/commonjs/contexts/UserProfileCtx.js +13 -24
  112. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  113. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -18
  114. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  115. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +9 -11
  116. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  117. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +12 -16
  118. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  119. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +2 -3
  120. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
  121. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +2 -3
  122. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
  123. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +26 -34
  124. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  125. package/lib/commonjs/domain/groupChannel/index.js +1 -1
  126. package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
  127. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +12 -14
  128. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  129. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +19 -22
  130. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  131. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  132. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +6 -8
  133. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  134. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +15 -25
  135. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  136. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +2 -3
  137. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
  138. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +5 -7
  139. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
  140. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +2 -3
  141. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
  142. package/lib/commonjs/domain/groupChannelBannedUsers/index.js +1 -1
  143. package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -1
  144. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +11 -13
  145. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
  146. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +8 -10
  147. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  148. package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -1
  149. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +3 -4
  150. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  151. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +20 -32
  152. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  153. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +2 -3
  154. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
  155. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +2 -3
  156. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
  157. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +13 -17
  158. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  159. package/lib/commonjs/domain/groupChannelList/index.js +1 -1
  160. package/lib/commonjs/domain/groupChannelList/index.js.map +1 -1
  161. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +11 -13
  162. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
  163. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +7 -9
  164. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
  165. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  166. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +6 -8
  167. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  168. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +9 -11
  169. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  170. package/lib/commonjs/domain/groupChannelModeration/index.js +1 -1
  171. package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -1
  172. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +8 -10
  173. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
  174. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +8 -10
  175. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  176. package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -1
  177. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +6 -8
  178. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  179. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +15 -25
  180. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  181. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +2 -3
  182. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
  183. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +5 -7
  184. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
  185. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +2 -3
  186. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
  187. package/lib/commonjs/domain/groupChannelMutedMembers/index.js +1 -1
  188. package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -1
  189. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +11 -13
  190. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
  191. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +8 -10
  192. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  193. package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -1
  194. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +6 -8
  195. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  196. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +19 -18
  197. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  198. package/lib/commonjs/domain/groupChannelNotifications/index.js +1 -1
  199. package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -1
  200. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +8 -10
  201. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
  202. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +8 -10
  203. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  204. package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -1
  205. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +7 -9
  206. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  207. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +15 -25
  208. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  209. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +2 -3
  210. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
  211. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +5 -7
  212. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
  213. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +2 -3
  214. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
  215. package/lib/commonjs/domain/groupChannelOperators/index.js +1 -1
  216. package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -1
  217. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +11 -13
  218. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
  219. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +8 -10
  220. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  221. package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -1
  222. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +6 -8
  223. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  224. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +4 -5
  225. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  226. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +12 -14
  227. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  228. package/lib/commonjs/domain/groupChannelSettings/index.js +1 -1
  229. package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -1
  230. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +9 -11
  231. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
  232. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +10 -13
  233. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  234. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  235. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +11 -15
  236. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  237. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +9 -11
  238. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  239. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +12 -16
  240. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  241. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +34 -37
  242. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  243. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +2 -3
  244. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
  245. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +2 -3
  246. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
  247. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +25 -33
  248. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  249. package/lib/commonjs/domain/groupChannelThread/index.js +1 -1
  250. package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -1
  251. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +13 -15
  252. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
  253. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +12 -14
  254. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  255. package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -1
  256. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  257. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +18 -18
  258. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  259. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +13 -16
  260. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -1
  261. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +2 -3
  262. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
  263. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +5 -7
  264. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
  265. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +2 -3
  266. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
  267. package/lib/commonjs/domain/messageSearch/index.js +1 -1
  268. package/lib/commonjs/domain/messageSearch/index.js.map +1 -1
  269. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +11 -13
  270. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
  271. package/lib/commonjs/domain/messageSearch/module/moduleContext.js +7 -9
  272. package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -1
  273. package/lib/commonjs/domain/messageSearch/types.js.map +1 -1
  274. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js +10 -12
  275. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  276. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +9 -11
  277. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  278. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +10 -13
  279. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  280. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js +2 -3
  281. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
  282. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js +2 -3
  283. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
  284. package/lib/commonjs/domain/openChannel/index.js +1 -1
  285. package/lib/commonjs/domain/openChannel/index.js.map +1 -1
  286. package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js +11 -13
  287. package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
  288. package/lib/commonjs/domain/openChannel/module/moduleContext.js +10 -12
  289. package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
  290. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  291. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +6 -8
  292. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  293. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +15 -25
  294. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
  295. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js +2 -3
  296. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
  297. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +5 -7
  298. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
  299. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js +2 -3
  300. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
  301. package/lib/commonjs/domain/openChannelBannedUsers/index.js +1 -1
  302. package/lib/commonjs/domain/openChannelBannedUsers/index.js.map +1 -1
  303. package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +11 -13
  304. package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
  305. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js +8 -10
  306. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  307. package/lib/commonjs/domain/openChannelBannedUsers/types.js.map +1 -1
  308. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js +8 -10
  309. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  310. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +14 -16
  311. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  312. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js +2 -3
  313. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
  314. package/lib/commonjs/domain/openChannelCreate/index.js +1 -1
  315. package/lib/commonjs/domain/openChannelCreate/index.js.map +1 -1
  316. package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js +9 -11
  317. package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
  318. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js +7 -9
  319. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  320. package/lib/commonjs/domain/openChannelCreate/types.js.map +1 -1
  321. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js +6 -8
  322. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  323. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +20 -32
  324. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  325. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js +2 -3
  326. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
  327. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js +5 -7
  328. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
  329. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js +2 -3
  330. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
  331. package/lib/commonjs/domain/openChannelList/index.js +1 -1
  332. package/lib/commonjs/domain/openChannelList/index.js.map +1 -1
  333. package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js +11 -13
  334. package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
  335. package/lib/commonjs/domain/openChannelList/module/moduleContext.js +7 -9
  336. package/lib/commonjs/domain/openChannelList/module/moduleContext.js.map +1 -1
  337. package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
  338. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js +6 -8
  339. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  340. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js +8 -10
  341. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
  342. package/lib/commonjs/domain/openChannelModeration/index.js +1 -1
  343. package/lib/commonjs/domain/openChannelModeration/index.js.map +1 -1
  344. package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js +8 -10
  345. package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
  346. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js +8 -10
  347. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  348. package/lib/commonjs/domain/openChannelModeration/types.js.map +1 -1
  349. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +6 -8
  350. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  351. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +15 -25
  352. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
  353. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js +2 -3
  354. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
  355. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +5 -7
  356. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
  357. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js +2 -3
  358. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
  359. package/lib/commonjs/domain/openChannelMutedParticipants/index.js +1 -1
  360. package/lib/commonjs/domain/openChannelMutedParticipants/index.js.map +1 -1
  361. package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +11 -13
  362. package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
  363. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js +8 -10
  364. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  365. package/lib/commonjs/domain/openChannelMutedParticipants/types.js.map +1 -1
  366. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +7 -9
  367. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  368. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js +15 -25
  369. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
  370. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js +2 -3
  371. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
  372. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +5 -7
  373. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
  374. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js +2 -3
  375. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
  376. package/lib/commonjs/domain/openChannelOperators/index.js +1 -1
  377. package/lib/commonjs/domain/openChannelOperators/index.js.map +1 -1
  378. package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +11 -13
  379. package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
  380. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js +8 -10
  381. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  382. package/lib/commonjs/domain/openChannelOperators/types.js.map +1 -1
  383. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +6 -8
  384. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  385. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +4 -5
  386. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  387. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +9 -11
  388. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  389. package/lib/commonjs/domain/openChannelSettings/index.js +1 -1
  390. package/lib/commonjs/domain/openChannelSettings/index.js.map +1 -1
  391. package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +9 -11
  392. package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
  393. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js +9 -11
  394. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  395. package/lib/commonjs/domain/openChannelSettings/types.js.map +1 -1
  396. package/lib/commonjs/domain/openChannelUserList/types.js.map +1 -1
  397. package/lib/commonjs/domain/userList/component/UserListHeader.js +10 -12
  398. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -1
  399. package/lib/commonjs/domain/userList/component/UserListList.js +16 -26
  400. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  401. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +2 -3
  402. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -1
  403. package/lib/commonjs/domain/userList/component/UserListStatusError.js +5 -7
  404. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
  405. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +2 -3
  406. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -1
  407. package/lib/commonjs/domain/userList/index.js +1 -1
  408. package/lib/commonjs/domain/userList/index.js.map +1 -1
  409. package/lib/commonjs/domain/userList/module/createUserListModule.js +11 -13
  410. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
  411. package/lib/commonjs/domain/userList/module/moduleContext.js +9 -11
  412. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
  413. package/lib/commonjs/domain/userList/types.js.map +1 -1
  414. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +10 -12
  415. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
  416. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +12 -15
  417. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  418. package/lib/commonjs/fragments/createGroupChannelFragment.js +28 -30
  419. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  420. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +13 -16
  421. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  422. package/lib/commonjs/fragments/createGroupChannelListFragment.js +12 -14
  423. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  424. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +16 -18
  425. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  426. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +13 -19
  427. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -1
  428. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +12 -14
  429. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
  430. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +6 -8
  431. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
  432. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +13 -15
  433. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
  434. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +15 -18
  435. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  436. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +15 -21
  437. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  438. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +25 -27
  439. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
  440. package/lib/commonjs/fragments/createMessageSearchFragment.js +15 -18
  441. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  442. package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js +10 -12
  443. package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
  444. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js +8 -10
  445. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js.map +1 -1
  446. package/lib/commonjs/fragments/createOpenChannelFragment.js +24 -26
  447. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  448. package/lib/commonjs/fragments/createOpenChannelListFragment.js +9 -11
  449. package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
  450. package/lib/commonjs/fragments/createOpenChannelModerationFragment.js +13 -19
  451. package/lib/commonjs/fragments/createOpenChannelModerationFragment.js.map +1 -1
  452. package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js +10 -12
  453. package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
  454. package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js +11 -13
  455. package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
  456. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js +13 -15
  457. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  458. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js +15 -18
  459. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  460. package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js +14 -20
  461. package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js.map +1 -1
  462. package/lib/commonjs/hooks/useChannelInputItems.js +1 -1
  463. package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -1
  464. package/lib/commonjs/hooks/useConnection.js +2 -3
  465. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  466. package/lib/commonjs/hooks/useContext.js.map +1 -1
  467. package/lib/commonjs/hooks/useKeyboardStatus.js +1 -2
  468. package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -1
  469. package/lib/commonjs/hooks/useMentionSuggestion.js +3 -5
  470. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
  471. package/lib/commonjs/hooks/useMentionTextInput.js +4 -4
  472. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
  473. package/lib/commonjs/hooks/usePushTokenRegistration.js +2 -3
  474. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
  475. package/lib/commonjs/hooks/useVoiceMessageInput.js +13 -17
  476. package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -1
  477. package/lib/commonjs/index.js +3 -3
  478. package/lib/commonjs/index.js.map +1 -1
  479. package/lib/commonjs/libs/EmojiManager.js +12 -8
  480. package/lib/commonjs/libs/EmojiManager.js.map +1 -1
  481. package/lib/commonjs/libs/ImageCompressionConfig.js +4 -5
  482. package/lib/commonjs/libs/ImageCompressionConfig.js.map +1 -1
  483. package/lib/commonjs/libs/InternalLocalCacheStorage.js +5 -11
  484. package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
  485. package/lib/commonjs/libs/MentionConfig.js +4 -5
  486. package/lib/commonjs/libs/MentionConfig.js.map +1 -1
  487. package/lib/commonjs/libs/MentionManager.js +45 -31
  488. package/lib/commonjs/libs/MentionManager.js.map +1 -1
  489. package/lib/commonjs/libs/SBUError.js +3 -3
  490. package/lib/commonjs/libs/SBUError.js.map +1 -1
  491. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  492. package/lib/commonjs/libs/VoiceMessageConfig.js +4 -5
  493. package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -1
  494. package/lib/commonjs/libs/VoiceMessageStatusManager.js +9 -10
  495. package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -1
  496. package/lib/commonjs/localization/StringSet.en.js +1 -2
  497. package/lib/commonjs/localization/StringSet.en.js.map +1 -1
  498. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  499. package/lib/commonjs/localization/createBaseStringSet.js +25 -30
  500. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  501. package/lib/commonjs/platform/createClipboardService.expo.js +1 -2
  502. package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -1
  503. package/lib/commonjs/platform/createClipboardService.native.js +1 -2
  504. package/lib/commonjs/platform/createClipboardService.native.js.map +1 -1
  505. package/lib/commonjs/platform/createFileService.expo.js +12 -15
  506. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  507. package/lib/commonjs/platform/createFileService.native.js +29 -35
  508. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  509. package/lib/commonjs/platform/createMediaService.expo.js +26 -31
  510. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
  511. package/lib/commonjs/platform/createMediaService.native.js +24 -29
  512. package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
  513. package/lib/commonjs/platform/createNotificationService.expo.js +4 -8
  514. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
  515. package/lib/commonjs/platform/createNotificationService.native.js +5 -7
  516. package/lib/commonjs/platform/createNotificationService.native.js.map +1 -1
  517. package/lib/commonjs/platform/createPlayerService.expo.js +8 -10
  518. package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -1
  519. package/lib/commonjs/platform/createPlayerService.native.js +8 -10
  520. package/lib/commonjs/platform/createPlayerService.native.js.map +1 -1
  521. package/lib/commonjs/platform/createRecorderService.expo.js +8 -10
  522. package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -1
  523. package/lib/commonjs/platform/createRecorderService.native.js +10 -12
  524. package/lib/commonjs/platform/createRecorderService.native.js.map +1 -1
  525. package/lib/commonjs/platform/dynamicModule.js +2 -4
  526. package/lib/commonjs/platform/dynamicModule.js.map +1 -1
  527. package/lib/commonjs/platform/types.js.map +1 -1
  528. package/lib/commonjs/types.js +1 -2
  529. package/lib/commonjs/types.js.map +1 -1
  530. package/lib/commonjs/utils/expoBackwardUtils.js +24 -31
  531. package/lib/commonjs/utils/expoBackwardUtils.js.map +1 -1
  532. package/lib/commonjs/utils/expoPermissionGranted.js +2 -3
  533. package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -1
  534. package/lib/commonjs/utils/nativePermissionGranted.js +2 -3
  535. package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -1
  536. package/lib/commonjs/utils/normalizeFile.js +7 -9
  537. package/lib/commonjs/utils/normalizeFile.js.map +1 -1
  538. package/lib/commonjs/utils/promise.js +1 -2
  539. package/lib/commonjs/utils/promise.js.map +1 -1
  540. package/lib/commonjs/utils/pubsub.js +1 -2
  541. package/lib/commonjs/utils/pubsub.js.map +1 -1
  542. package/lib/commonjs/version.js +2 -3
  543. package/lib/commonjs/version.js.map +1 -1
  544. package/lib/module/components/ChannelCover.js +7 -8
  545. package/lib/module/components/ChannelCover.js.map +1 -1
  546. package/lib/module/components/ChannelInput/AttachmentsButton.js +5 -6
  547. package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -1
  548. package/lib/module/components/ChannelInput/EditInput.js +15 -14
  549. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  550. package/lib/module/components/ChannelInput/MessageToReplyPreview.js +36 -49
  551. package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
  552. package/lib/module/components/ChannelInput/SendInput.js +40 -44
  553. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  554. package/lib/module/components/ChannelInput/VoiceMessageInput.js +8 -9
  555. package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  556. package/lib/module/components/ChannelInput/index.js +19 -23
  557. package/lib/module/components/ChannelInput/index.js.map +1 -1
  558. package/lib/module/components/ChannelMessageList/index.js +58 -73
  559. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  560. package/lib/module/components/ChannelThreadMessageList/index.js +53 -68
  561. package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
  562. package/lib/module/components/ChatFlatList/FlatListInternal.js.map +1 -1
  563. package/lib/module/components/ChatFlatList/index.js +9 -10
  564. package/lib/module/components/ChatFlatList/index.js.map +1 -1
  565. package/lib/module/components/FileViewer/FileViewerContent.js +14 -16
  566. package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -1
  567. package/lib/module/components/FileViewer/FileViewerFooter.js +12 -16
  568. package/lib/module/components/FileViewer/FileViewerFooter.js.map +1 -1
  569. package/lib/module/components/FileViewer/FileViewerHeader.js +13 -18
  570. package/lib/module/components/FileViewer/FileViewerHeader.js.map +1 -1
  571. package/lib/module/components/FileViewer/index.js +11 -12
  572. package/lib/module/components/FileViewer/index.js.map +1 -1
  573. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +4 -5
  574. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
  575. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  576. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +5 -6
  577. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
  578. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +15 -17
  579. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  580. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +11 -12
  581. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
  582. package/lib/module/components/GroupChannelMessageRenderer/index.js +32 -34
  583. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  584. package/lib/module/components/MessageSearchResultItem.js +18 -15
  585. package/lib/module/components/MessageSearchResultItem.js.map +1 -1
  586. package/lib/module/components/NewMessagesButton.js +5 -6
  587. package/lib/module/components/NewMessagesButton.js.map +1 -1
  588. package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +4 -5
  589. package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
  590. package/lib/module/components/OpenChannelMessageRenderer/index.js +11 -12
  591. package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
  592. package/lib/module/components/ProviderLayout.js +3 -4
  593. package/lib/module/components/ProviderLayout.js.map +1 -1
  594. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +27 -40
  595. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  596. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +30 -39
  597. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  598. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +12 -13
  599. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  600. package/lib/module/components/ReactionAddons/index.js.map +1 -1
  601. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +27 -37
  602. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  603. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +44 -49
  604. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  605. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
  606. package/lib/module/components/ScrollToBottomButton.js +4 -5
  607. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  608. package/lib/module/components/StatusComposition.js +7 -8
  609. package/lib/module/components/StatusComposition.js.map +1 -1
  610. package/lib/module/components/ThreadChatFlatList/index.js +9 -10
  611. package/lib/module/components/ThreadChatFlatList/index.js.map +1 -1
  612. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
  613. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +1 -1
  614. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
  615. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
  616. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +5 -4
  617. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  618. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +19 -12
  619. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
  620. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +22 -15
  621. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
  622. package/lib/module/components/ThreadParentMessageRenderer/index.js +19 -17
  623. package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
  624. package/lib/module/components/TypedPlaceholder.js +4 -5
  625. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  626. package/lib/module/components/UserActionBar.js +19 -18
  627. package/lib/module/components/UserActionBar.js.map +1 -1
  628. package/lib/module/components/UserSelectableBar.js +13 -12
  629. package/lib/module/components/UserSelectableBar.js.map +1 -1
  630. package/lib/module/constants.js.map +1 -1
  631. package/lib/module/containers/GroupChannelPreviewContainer.js +10 -11
  632. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  633. package/lib/module/containers/InternalErrorBoundaryContainer.js +6 -6
  634. package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
  635. package/lib/module/containers/SendbirdUIKitContainer.js +12 -13
  636. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  637. package/lib/module/contexts/LocalizationCtx.js +4 -5
  638. package/lib/module/contexts/LocalizationCtx.js.map +1 -1
  639. package/lib/module/contexts/PlatformServiceCtx.js +5 -6
  640. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  641. package/lib/module/contexts/ReactionCtx.js +11 -15
  642. package/lib/module/contexts/ReactionCtx.js.map +1 -1
  643. package/lib/module/contexts/SBUHandlersCtx.js +5 -6
  644. package/lib/module/contexts/SBUHandlersCtx.js.map +1 -1
  645. package/lib/module/contexts/SendbirdChatCtx.js +12 -13
  646. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  647. package/lib/module/contexts/UserProfileCtx.js +11 -21
  648. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  649. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +11 -14
  650. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  651. package/lib/module/domain/groupChannel/component/GroupChannelInput.js +5 -6
  652. package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  653. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +9 -13
  654. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  655. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
  656. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
  657. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +24 -31
  658. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  659. package/lib/module/domain/groupChannel/index.js.map +1 -1
  660. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +10 -11
  661. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  662. package/lib/module/domain/groupChannel/module/moduleContext.js +16 -18
  663. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  664. package/lib/module/domain/groupChannel/types.js.map +1 -1
  665. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +3 -4
  666. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  667. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +14 -23
  668. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  669. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
  670. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +3 -4
  671. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
  672. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
  673. package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -1
  674. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +9 -10
  675. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
  676. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +4 -5
  677. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  678. package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -1
  679. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  680. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +19 -30
  681. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  682. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
  683. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
  684. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +10 -13
  685. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  686. package/lib/module/domain/groupChannelList/index.js.map +1 -1
  687. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +9 -10
  688. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
  689. package/lib/module/domain/groupChannelList/module/moduleContext.js +3 -4
  690. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -1
  691. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  692. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +3 -4
  693. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  694. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +6 -7
  695. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  696. package/lib/module/domain/groupChannelModeration/index.js.map +1 -1
  697. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +6 -7
  698. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
  699. package/lib/module/domain/groupChannelModeration/module/moduleContext.js +4 -5
  700. package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  701. package/lib/module/domain/groupChannelModeration/types.js.map +1 -1
  702. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +3 -4
  703. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  704. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +14 -23
  705. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  706. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
  707. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +3 -4
  708. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
  709. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
  710. package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -1
  711. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +9 -10
  712. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
  713. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +4 -5
  714. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  715. package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -1
  716. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +3 -4
  717. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  718. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +18 -16
  719. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  720. package/lib/module/domain/groupChannelNotifications/index.js.map +1 -1
  721. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +6 -7
  722. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
  723. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +4 -5
  724. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  725. package/lib/module/domain/groupChannelNotifications/types.js.map +1 -1
  726. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +4 -5
  727. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  728. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +14 -23
  729. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  730. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
  731. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +3 -4
  732. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
  733. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
  734. package/lib/module/domain/groupChannelOperators/index.js.map +1 -1
  735. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +9 -10
  736. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
  737. package/lib/module/domain/groupChannelOperators/module/moduleContext.js +4 -5
  738. package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  739. package/lib/module/domain/groupChannelOperators/types.js.map +1 -1
  740. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +3 -4
  741. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  742. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  743. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +9 -10
  744. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  745. package/lib/module/domain/groupChannelSettings/index.js.map +1 -1
  746. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +7 -8
  747. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
  748. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +7 -9
  749. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  750. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  751. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +9 -12
  752. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  753. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +5 -6
  754. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  755. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +9 -12
  756. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  757. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +31 -33
  758. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  759. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
  760. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
  761. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +22 -29
  762. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  763. package/lib/module/domain/groupChannelThread/index.js.map +1 -1
  764. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +11 -12
  765. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
  766. package/lib/module/domain/groupChannelThread/module/moduleContext.js +8 -9
  767. package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  768. package/lib/module/domain/groupChannelThread/types.js.map +1 -1
  769. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  770. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +16 -15
  771. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  772. package/lib/module/domain/messageSearch/component/MessageSearchList.js +11 -13
  773. package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -1
  774. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
  775. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +3 -4
  776. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
  777. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
  778. package/lib/module/domain/messageSearch/index.js.map +1 -1
  779. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +9 -10
  780. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
  781. package/lib/module/domain/messageSearch/module/moduleContext.js +3 -4
  782. package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -1
  783. package/lib/module/domain/messageSearch/types.js.map +1 -1
  784. package/lib/module/domain/openChannel/component/OpenChannelHeader.js +6 -7
  785. package/lib/module/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  786. package/lib/module/domain/openChannel/component/OpenChannelInput.js +5 -6
  787. package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  788. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +6 -8
  789. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  790. package/lib/module/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
  791. package/lib/module/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
  792. package/lib/module/domain/openChannel/index.js.map +1 -1
  793. package/lib/module/domain/openChannel/module/createOpenChannelModule.js +9 -10
  794. package/lib/module/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
  795. package/lib/module/domain/openChannel/module/moduleContext.js +6 -7
  796. package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
  797. package/lib/module/domain/openChannel/types.js.map +1 -1
  798. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +3 -4
  799. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  800. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +14 -23
  801. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
  802. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
  803. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +3 -4
  804. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
  805. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
  806. package/lib/module/domain/openChannelBannedUsers/index.js.map +1 -1
  807. package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +9 -10
  808. package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
  809. package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js +4 -5
  810. package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  811. package/lib/module/domain/openChannelBannedUsers/types.js.map +1 -1
  812. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js +5 -6
  813. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  814. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +12 -13
  815. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  816. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
  817. package/lib/module/domain/openChannelCreate/index.js.map +1 -1
  818. package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js +7 -8
  819. package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
  820. package/lib/module/domain/openChannelCreate/module/moduleContext.js +3 -4
  821. package/lib/module/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  822. package/lib/module/domain/openChannelCreate/types.js.map +1 -1
  823. package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js +3 -4
  824. package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  825. package/lib/module/domain/openChannelList/component/OpenChannelListList.js +19 -30
  826. package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  827. package/lib/module/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
  828. package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js +3 -4
  829. package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
  830. package/lib/module/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
  831. package/lib/module/domain/openChannelList/index.js.map +1 -1
  832. package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js +9 -10
  833. package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
  834. package/lib/module/domain/openChannelList/module/moduleContext.js +3 -4
  835. package/lib/module/domain/openChannelList/module/moduleContext.js.map +1 -1
  836. package/lib/module/domain/openChannelList/types.js.map +1 -1
  837. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js +3 -4
  838. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  839. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js +6 -7
  840. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
  841. package/lib/module/domain/openChannelModeration/index.js.map +1 -1
  842. package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js +6 -7
  843. package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
  844. package/lib/module/domain/openChannelModeration/module/moduleContext.js +4 -5
  845. package/lib/module/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  846. package/lib/module/domain/openChannelModeration/types.js.map +1 -1
  847. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +3 -4
  848. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  849. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +14 -23
  850. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
  851. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
  852. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +3 -4
  853. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
  854. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
  855. package/lib/module/domain/openChannelMutedParticipants/index.js.map +1 -1
  856. package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +9 -10
  857. package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
  858. package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js +4 -5
  859. package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  860. package/lib/module/domain/openChannelMutedParticipants/types.js.map +1 -1
  861. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +4 -5
  862. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  863. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js +14 -23
  864. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
  865. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
  866. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +3 -4
  867. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
  868. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
  869. package/lib/module/domain/openChannelOperators/index.js.map +1 -1
  870. package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +9 -10
  871. package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
  872. package/lib/module/domain/openChannelOperators/module/moduleContext.js +4 -5
  873. package/lib/module/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  874. package/lib/module/domain/openChannelOperators/types.js.map +1 -1
  875. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +3 -4
  876. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  877. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  878. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +6 -7
  879. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  880. package/lib/module/domain/openChannelSettings/index.js.map +1 -1
  881. package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +7 -8
  882. package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
  883. package/lib/module/domain/openChannelSettings/module/moduleContext.js +5 -6
  884. package/lib/module/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  885. package/lib/module/domain/openChannelSettings/types.js.map +1 -1
  886. package/lib/module/domain/openChannelUserList/types.js.map +1 -1
  887. package/lib/module/domain/userList/component/UserListHeader.js +7 -8
  888. package/lib/module/domain/userList/component/UserListHeader.js.map +1 -1
  889. package/lib/module/domain/userList/component/UserListList.js +14 -23
  890. package/lib/module/domain/userList/component/UserListList.js.map +1 -1
  891. package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -1
  892. package/lib/module/domain/userList/component/UserListStatusError.js +3 -4
  893. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
  894. package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -1
  895. package/lib/module/domain/userList/index.js.map +1 -1
  896. package/lib/module/domain/userList/module/createUserListModule.js +9 -10
  897. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
  898. package/lib/module/domain/userList/module/moduleContext.js +5 -6
  899. package/lib/module/domain/userList/module/moduleContext.js.map +1 -1
  900. package/lib/module/domain/userList/types.js.map +1 -1
  901. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +8 -9
  902. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
  903. package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -12
  904. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  905. package/lib/module/fragments/createGroupChannelFragment.js +24 -25
  906. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  907. package/lib/module/fragments/createGroupChannelInviteFragment.js +9 -11
  908. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  909. package/lib/module/fragments/createGroupChannelListFragment.js +10 -11
  910. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  911. package/lib/module/fragments/createGroupChannelMembersFragment.js +14 -15
  912. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  913. package/lib/module/fragments/createGroupChannelModerationFragment.js +12 -17
  914. package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -1
  915. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +12 -13
  916. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
  917. package/lib/module/fragments/createGroupChannelNotificationsFragment.js +4 -5
  918. package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
  919. package/lib/module/fragments/createGroupChannelOperatorsFragment.js +13 -14
  920. package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
  921. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +11 -13
  922. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  923. package/lib/module/fragments/createGroupChannelSettingsFragment.js +14 -19
  924. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  925. package/lib/module/fragments/createGroupChannelThreadFragment.js +21 -22
  926. package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -1
  927. package/lib/module/fragments/createMessageSearchFragment.js +11 -13
  928. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
  929. package/lib/module/fragments/createOpenChannelBannedUsersFragment.js +8 -9
  930. package/lib/module/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
  931. package/lib/module/fragments/createOpenChannelCreateFragment.js +5 -6
  932. package/lib/module/fragments/createOpenChannelCreateFragment.js.map +1 -1
  933. package/lib/module/fragments/createOpenChannelFragment.js +20 -21
  934. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  935. package/lib/module/fragments/createOpenChannelListFragment.js +7 -8
  936. package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
  937. package/lib/module/fragments/createOpenChannelModerationFragment.js +12 -17
  938. package/lib/module/fragments/createOpenChannelModerationFragment.js.map +1 -1
  939. package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js +8 -9
  940. package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
  941. package/lib/module/fragments/createOpenChannelOperatorsFragment.js +9 -10
  942. package/lib/module/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
  943. package/lib/module/fragments/createOpenChannelParticipantsFragment.js +9 -10
  944. package/lib/module/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  945. package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js +11 -13
  946. package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  947. package/lib/module/fragments/createOpenChannelSettingsFragment.js +13 -18
  948. package/lib/module/fragments/createOpenChannelSettingsFragment.js.map +1 -1
  949. package/lib/module/hooks/useChannelInputItems.js.map +1 -1
  950. package/lib/module/hooks/useConnection.js.map +1 -1
  951. package/lib/module/hooks/useContext.js.map +1 -1
  952. package/lib/module/hooks/useKeyboardStatus.js.map +1 -1
  953. package/lib/module/hooks/useMentionSuggestion.js +3 -4
  954. package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
  955. package/lib/module/hooks/useMentionTextInput.js +4 -2
  956. package/lib/module/hooks/useMentionTextInput.js.map +1 -1
  957. package/lib/module/hooks/usePushTokenRegistration.js +1 -1
  958. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
  959. package/lib/module/hooks/useVoiceMessageInput.js +11 -14
  960. package/lib/module/hooks/useVoiceMessageInput.js.map +1 -1
  961. package/lib/module/index.js.map +1 -1
  962. package/lib/module/libs/EmojiManager.js +10 -5
  963. package/lib/module/libs/EmojiManager.js.map +1 -1
  964. package/lib/module/libs/ImageCompressionConfig.js +3 -3
  965. package/lib/module/libs/ImageCompressionConfig.js.map +1 -1
  966. package/lib/module/libs/InternalLocalCacheStorage.js +5 -11
  967. package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
  968. package/lib/module/libs/MentionConfig.js +3 -3
  969. package/lib/module/libs/MentionConfig.js.map +1 -1
  970. package/lib/module/libs/MentionManager.js +44 -29
  971. package/lib/module/libs/MentionManager.js.map +1 -1
  972. package/lib/module/libs/SBUError.js +3 -3
  973. package/lib/module/libs/SBUError.js.map +1 -1
  974. package/lib/module/libs/SBUUtils.js.map +1 -1
  975. package/lib/module/libs/VoiceMessageConfig.js +3 -3
  976. package/lib/module/libs/VoiceMessageConfig.js.map +1 -1
  977. package/lib/module/libs/VoiceMessageStatusManager.js +8 -8
  978. package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -1
  979. package/lib/module/localization/StringSet.en.js.map +1 -1
  980. package/lib/module/localization/StringSet.type.js.map +1 -1
  981. package/lib/module/localization/createBaseStringSet.js +25 -30
  982. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  983. package/lib/module/platform/createClipboardService.expo.js.map +1 -1
  984. package/lib/module/platform/createClipboardService.native.js.map +1 -1
  985. package/lib/module/platform/createFileService.expo.js +10 -12
  986. package/lib/module/platform/createFileService.expo.js.map +1 -1
  987. package/lib/module/platform/createFileService.native.js +27 -32
  988. package/lib/module/platform/createFileService.native.js.map +1 -1
  989. package/lib/module/platform/createMediaService.expo.js +24 -28
  990. package/lib/module/platform/createMediaService.expo.js.map +1 -1
  991. package/lib/module/platform/createMediaService.native.js +22 -26
  992. package/lib/module/platform/createMediaService.native.js.map +1 -1
  993. package/lib/module/platform/createNotificationService.expo.js +3 -6
  994. package/lib/module/platform/createNotificationService.expo.js.map +1 -1
  995. package/lib/module/platform/createNotificationService.native.js +4 -5
  996. package/lib/module/platform/createNotificationService.native.js.map +1 -1
  997. package/lib/module/platform/createPlayerService.expo.js +6 -7
  998. package/lib/module/platform/createPlayerService.expo.js.map +1 -1
  999. package/lib/module/platform/createPlayerService.native.js +7 -8
  1000. package/lib/module/platform/createPlayerService.native.js.map +1 -1
  1001. package/lib/module/platform/createRecorderService.expo.js +6 -7
  1002. package/lib/module/platform/createRecorderService.expo.js.map +1 -1
  1003. package/lib/module/platform/createRecorderService.native.js +8 -9
  1004. package/lib/module/platform/createRecorderService.native.js.map +1 -1
  1005. package/lib/module/platform/dynamicModule.js +1 -2
  1006. package/lib/module/platform/dynamicModule.js.map +1 -1
  1007. package/lib/module/platform/types.js.map +1 -1
  1008. package/lib/module/types.js.map +1 -1
  1009. package/lib/module/utils/expoBackwardUtils.js +22 -28
  1010. package/lib/module/utils/expoBackwardUtils.js.map +1 -1
  1011. package/lib/module/utils/expoPermissionGranted.js +1 -1
  1012. package/lib/module/utils/expoPermissionGranted.js.map +1 -1
  1013. package/lib/module/utils/nativePermissionGranted.js +1 -1
  1014. package/lib/module/utils/nativePermissionGranted.js.map +1 -1
  1015. package/lib/module/utils/normalizeFile.js +6 -7
  1016. package/lib/module/utils/normalizeFile.js.map +1 -1
  1017. package/lib/module/utils/promise.js.map +1 -1
  1018. package/lib/module/utils/pubsub.js.map +1 -1
  1019. package/lib/module/version.js +1 -1
  1020. package/lib/module/version.js.map +1 -1
  1021. package/lib/typescript/src/components/ChannelInput/index.d.ts +4 -0
  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/ReactionAddons/ReactionRoundedButton.d.ts +7 -3
  1025. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +2 -2
  1026. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +1 -0
  1027. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +4 -4
  1028. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +3 -3
  1029. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +1 -1
  1030. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +1 -1
  1031. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
  1032. package/lib/typescript/src/libs/EmojiManager.d.ts +3 -1
  1033. package/lib/typescript/src/libs/MentionManager.d.ts +1 -0
  1034. package/lib/typescript/src/localization/StringSet.type.d.ts +5 -2
  1035. package/lib/typescript/src/version.d.ts +1 -1
  1036. package/package.json +6 -6
  1037. package/src/components/ChannelInput/AttachmentsButton.tsx +1 -1
  1038. package/src/components/ChannelInput/EditInput.tsx +2 -0
  1039. package/src/components/ChannelInput/MessageToReplyPreview.tsx +29 -33
  1040. package/src/components/ChannelInput/SendInput.tsx +3 -1
  1041. package/src/components/ChannelInput/VoiceMessageInput.tsx +4 -4
  1042. package/src/components/ChannelInput/index.tsx +23 -11
  1043. package/src/components/ChannelMessageList/index.tsx +5 -7
  1044. package/src/components/ChannelThreadMessageList/index.tsx +5 -7
  1045. package/src/components/FileViewer/FileViewerFooter.tsx +6 -6
  1046. package/src/components/FileViewer/FileViewerHeader.tsx +6 -7
  1047. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +4 -4
  1048. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +5 -5
  1049. package/src/components/GroupChannelMessageRenderer/index.tsx +3 -2
  1050. package/src/components/MessageSearchResultItem.tsx +17 -15
  1051. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +5 -7
  1052. package/src/components/ReactionAddons/MessageReactionAddon.tsx +15 -19
  1053. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +9 -5
  1054. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +7 -8
  1055. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +41 -28
  1056. package/src/components/ReactionBottomSheets/index.tsx +2 -2
  1057. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +1 -1
  1058. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +4 -2
  1059. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +15 -6
  1060. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +37 -31
  1061. package/src/components/ThreadParentMessageRenderer/index.tsx +12 -2
  1062. package/src/components/UserActionBar.tsx +11 -10
  1063. package/src/components/UserSelectableBar.tsx +8 -7
  1064. package/src/containers/GroupChannelPreviewContainer.tsx +4 -5
  1065. package/src/containers/SendbirdUIKitContainer.tsx +3 -2
  1066. package/src/contexts/ReactionCtx.tsx +0 -3
  1067. package/src/contexts/UserProfileCtx.tsx +14 -13
  1068. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +6 -7
  1069. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +9 -5
  1070. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +21 -18
  1071. package/src/domain/groupChannel/module/moduleContext.tsx +2 -4
  1072. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -4
  1073. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +10 -4
  1074. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +3 -4
  1075. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +26 -11
  1076. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +3 -5
  1077. package/src/domain/groupChannelSettings/module/moduleContext.tsx +2 -4
  1078. package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +12 -6
  1079. package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +3 -4
  1080. package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +11 -10
  1081. package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +18 -16
  1082. package/src/domain/messageSearch/component/MessageSearchHeader.tsx +9 -6
  1083. package/src/domain/openChannel/component/OpenChannelHeader.tsx +1 -1
  1084. package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.tsx +3 -4
  1085. package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +6 -6
  1086. package/src/domain/openChannelList/component/OpenChannelListList.tsx +3 -4
  1087. package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.tsx +3 -4
  1088. package/src/domain/openChannelOperators/component/OpenChannelOperatorsList.tsx +3 -4
  1089. package/src/domain/userList/component/UserListList.tsx +3 -5
  1090. package/src/fragments/createGroupChannelFragment.tsx +1 -1
  1091. package/src/fragments/createGroupChannelMembersFragment.tsx +4 -5
  1092. package/src/fragments/createGroupChannelModerationFragment.tsx +4 -5
  1093. package/src/fragments/createGroupChannelMutedMembersFragment.tsx +4 -5
  1094. package/src/fragments/createGroupChannelOperatorsFragment.tsx +4 -5
  1095. package/src/fragments/createGroupChannelSettingsFragment.tsx +4 -5
  1096. package/src/fragments/createOpenChannelModerationFragment.tsx +4 -5
  1097. package/src/fragments/createOpenChannelSettingsFragment.tsx +4 -5
  1098. package/src/hooks/useMentionSuggestion.ts +3 -5
  1099. package/src/hooks/useMentionTextInput.ts +1 -0
  1100. package/src/libs/EmojiManager.ts +11 -3
  1101. package/src/libs/MentionManager.tsx +29 -3
  1102. package/src/localization/StringSet.type.ts +5 -1
  1103. package/src/localization/createBaseStringSet.ts +3 -0
  1104. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Logger","matchesOneOf","sleep","createNativePlayerService","_ref","audioRecorderModule","permissionModule","module","default","VoicePlayer","constructor","_defineProperty","Set","state","stateSubscribers","forEach","callback","addPlayBackListener","data","stopped","currentPosition","duration","stop","catch","error","warn","playbackSubscribers","currentTime","removePlayBackListener","OS","Version","READ_EXTERNAL_STORAGE","PERMISSIONS","ANDROID","status","check","request","add","delete","uri","setState","setListener","startPlayer","e","undefined","removeListener","resumePlayer","pausePlayer","stopPlayer","clear","time","seekToPlayer","setSubscriptionDuration"],"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":["Platform","Logger","matchesOneOf","sleep","createNativePlayerService","audioRecorderModule","permissionModule","module","default","VoicePlayer","constructor","_defineProperty","Set","state","stateSubscribers","forEach","callback","addPlayBackListener","data","stopped","currentPosition","duration","stop","catch","error","warn","playbackSubscribers","currentTime","removePlayBackListener","OS","Version","READ_EXTERNAL_STORAGE","PERMISSIONS","ANDROID","status","check","request","add","delete","uri","setState","setListener","startPlayer","e","undefined","removeListener","resumePlayer","pausePlayer","stopPlayer","clear","time","seekToPlayer","setSubscriptionDuration"],"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":[]}
@@ -1,14 +1,13 @@
1
- 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; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- 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); }
1
+ 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; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ 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); }
4
4
  import { Platform } from 'react-native';
5
5
  import { matchesOneOf, sleep } from '@sendbird/uikit-utils';
6
6
  import VoiceMessageConfig from '../libs/VoiceMessageConfig';
7
7
  import expoPermissionGranted from '../utils/expoPermissionGranted';
8
- const createExpoRecorderService = _ref => {
9
- let {
10
- avModule
11
- } = _ref;
8
+ const createExpoRecorderService = ({
9
+ avModule
10
+ }) => {
12
11
  class VoiceRecorder {
13
12
  constructor() {
14
13
  _defineProperty(this, "uri", undefined);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","matchesOneOf","sleep","VoiceMessageConfig","expoPermissionGranted","createExpoRecorderService","_ref","avModule","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","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","OS","setAudioModeAsync","allowsRecordingIOS","playsInSilentModeIOS","_recorder","_isDoneRecording","setProgressUpdateInterval","setOnRecordingStatusUpdate","status","completed","durationMillis","stop","isRecording","_recordingSubscribers","forEach","callback","currentTime","prepareToRecordAsync","_audioOptions","state","_stateSubscribers","getPermissionsAsync","requestPermissionsAsync","add","delete","prepare","startAsync","uri","getURI","e","buffer","_getRecorderStopSafeBuffer","stopAndUnloadAsync","clear"],"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":["Platform","matchesOneOf","sleep","VoiceMessageConfig","expoPermissionGranted","createExpoRecorderService","avModule","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","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","OS","setAudioModeAsync","allowsRecordingIOS","playsInSilentModeIOS","_recorder","_isDoneRecording","setProgressUpdateInterval","setOnRecordingStatusUpdate","status","completed","durationMillis","stop","isRecording","_recordingSubscribers","forEach","callback","currentTime","prepareToRecordAsync","_audioOptions","state","_stateSubscribers","getPermissionsAsync","requestPermissionsAsync","add","delete","prepare","startAsync","uri","getURI","e","buffer","_getRecorderStopSafeBuffer","stopAndUnloadAsync","clear"],"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":[]}
@@ -1,15 +1,14 @@
1
- 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; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- 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); }
1
+ 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; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ 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); }
4
4
  import { Platform } from 'react-native';
5
5
  import { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';
6
6
  import VoiceMessageConfig from '../libs/VoiceMessageConfig';
7
7
  import nativePermissionGranted from '../utils/nativePermissionGranted';
8
- const createNativeRecorderService = _ref => {
9
- let {
10
- audioRecorderModule,
11
- permissionModule
12
- } = _ref;
8
+ const createNativeRecorderService = ({
9
+ audioRecorderModule,
10
+ permissionModule
11
+ }) => {
13
12
  const module = new audioRecorderModule.default();
14
13
  class VoiceRecorder {
15
14
  constructor() {
@@ -68,7 +67,7 @@ const createNativeRecorderService = _ref => {
68
67
  default: undefined
69
68
  });
70
69
  if (Platform.OS === 'android' && Platform.Version <= 28) {
71
- permission === null || permission === void 0 ? void 0 : permission.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
70
+ permission === null || permission === void 0 || permission.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
72
71
  }
73
72
  if (permission) {
74
73
  const status = await permissionModule.checkMultiple(permission);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Logger","matchesOneOf","sleep","VoiceMessageConfig","nativePermissionGranted","createNativeRecorderService","_ref","audioRecorderModule","permissionModule","module","default","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","audioChannels","CHANNELS","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","requestMultiple","recordingSubscribers","add","delete","uri","setState","startRecorder","audioOptions","e","buffer","_getRecorderStopSafeBuffer","stopRecorder","stop","clear","setSubscriptionDuration","catch","error","warn","addRecordBackListener","data","completed","currentPosition","options","currentTime"],"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":["Platform","Logger","matchesOneOf","sleep","VoiceMessageConfig","nativePermissionGranted","createNativeRecorderService","audioRecorderModule","permissionModule","module","default","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","audioChannels","CHANNELS","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","requestMultiple","recordingSubscribers","add","delete","uri","setState","startRecorder","audioOptions","e","buffer","_getRecorderStopSafeBuffer","stopRecorder","stop","clear","setSubscriptionDuration","catch","error","warn","addRecordBackListener","data","completed","currentPosition","options","currentTime"],"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":";;;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAKvC,SAASC,MAAM,EAAEC,YAAY,EAAEC,KAAK,QAAQ,uBAAuB;AAEnE,OAAOC,kBAAkB,MAAM,4BAA4B;AAC3D,OAAOC,uBAAuB,MAAM,kCAAkC;AAStE,MAAMC,2BAA2B,GAAGA,CAAC;EAAEC,mBAAmB;EAAEC;AAA0B,CAAC,KAA+B;EACpH,MAAMC,MAAM,GAAG,IAAIF,mBAAmB,CAACG,OAAO,CAAC,CAAC;EAEhD,MAAMC,aAAa,CAAqC;IA6CtDC,WAAWA,CAAA,EAAG;MAAAC,eAAA,cA5CgCC,SAAS;MAAAD,eAAA,gBACL,MAAM;MAAAA,eAAA,kBACF;QACpDE,WAAW,EAAEX,kBAAkB,CAACY,OAAO,CAACC,QAAQ,CAACC,YAAY;QAC7DC,WAAW,EAAEf,kBAAkB,CAACY,OAAO,CAACC,QAAQ,CAACG,YAAY;QAC7DC,SAAS,EAAEjB,kBAAkB,CAACY,OAAO,CAACC,QAAQ,CAACK;MACjD,CAAC;MAED;MAAAT,eAAA,2BAC2B,CAAC;MAAAA,eAAA,qCACS,MAAM;QACzC,MAAMU,cAAc,GAAG,GAAG;QAC1B,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAACC,gBAAgB;QACtD,IAAIH,WAAW,GAAGD,cAAc,EAAE,OAAO,CAAC,CAAC,KACtC,OAAOA,cAAc,GAAGC,WAAW;MAC1C,CAAC;MAAAX,eAAA,+BAEuC,IAAIe,GAAG,CAAoB,CAAC;MAAAf,eAAA,2BAChC,IAAIe,GAAG,CAAgB,CAAC;MAAAf,eAAA,wBAC3B;QAC/BgB,UAAU,EAAEzB,kBAAkB,CAACY,OAAO,CAACC,QAAQ,CAACa,WAAW;QAC3DC,OAAO,EAAE3B,kBAAkB,CAACY,OAAO,CAACC,QAAQ,CAACe,QAAQ;QACrDC,aAAa,EAAE7B,kBAAkB,CAACY,OAAO,CAACC,QAAQ,CAACiB;QACnD;MACF,CAAC;MAAArB,eAAA,uBAC+Bb,QAAQ,CAACmC,MAAM,CAAC;QAC9CC,OAAO,EAAE;UACPC,2BAA2B,EAAE,IAAI,CAACC,aAAa,CAACP,OAAO;UACvDQ,oBAAoB,EAAE,IAAI,CAACD,aAAa,CAACL,aAAa;UACtDO,wBAAwB,EAAE,IAAI,CAACF,aAAa,CAACT,UAAU;UACvDY,mBAAmB,EAAElC,mBAAmB,CAACmC,uBAAuB,CAACC,GAAG;UACpEC,mBAAmB,EAAErC,mBAAmB,CAACsC,uBAAuB,CAACC,MAAM;UACvEC,kBAAkB,EAAExC,mBAAmB,CAACyC,sBAAsB,CAACC;QACjE,CAAC;QACDC,GAAG,EAAE;UACHC,sBAAsB,EAAE,IAAI,CAACb,aAAa,CAACP,OAAO;UAClDqB,wBAAwB,EAAE,IAAI,CAACd,aAAa,CAACL,aAAa;UAC1DoB,kBAAkB,EAAE,IAAI,CAACf,aAAa,CAACT,UAAU;UACjDyB,gBAAgB,EAAE/C,mBAAmB,CAACgD,gBAAgB,CAACC,GAAG;UAAE;UAC5DC,2BAA2B,EAAElD,mBAAmB,CAACmD,4BAA4B,CAACC;QAChF,CAAC;QACDjD,OAAO,EAAE,CAAC;MACZ,CAAC,CAAC;MAAAG,eAAA,mBAsBkB+C,KAAwC,IAAK;QAC/D,IAAI,CAACA,KAAK,GAAGA,KAAK;QAClB,IAAI,CAACC,gBAAgB,CAACC,OAAO,CAAEC,QAAQ,IAAK;UAC1CA,QAAQ,CAACH,KAAK,CAAC;QACjB,CAAC,CAAC;MACJ,CAAC;MAAA/C,eAAA,4BAE0B,YAA8B;QACvD,MAAMmD,UAAoC,GAAGhE,QAAQ,CAACmC,MAAM,CAAC;UAC3DC,OAAO,EAAE,CAAC5B,gBAAgB,CAACyD,WAAW,CAACC,OAAO,CAACC,YAAY,CAAC;UAC5DjB,GAAG,EAAE,CAAC1C,gBAAgB,CAACyD,WAAW,CAACG,GAAG,CAACC,UAAU,CAAC;UAClDC,OAAO,EAAE,CAAC9D,gBAAgB,CAACyD,WAAW,CAACM,OAAO,CAACF,UAAU,CAAC;UAC1D3D,OAAO,EAAEI;QACX,CAAC,CAAC;QAEF,IAAId,QAAQ,CAACwE,EAAE,KAAK,SAAS,IAAIxE,QAAQ,CAACyE,OAAO,IAAI,EAAE,EAAE;UACvDT,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEU,IAAI,CAAClE,gBAAgB,CAACyD,WAAW,CAACC,OAAO,CAACS,sBAAsB,CAAC;QAC/E;QAEA,IAAIX,UAAU,EAAE;UACd,MAAMY,MAAM,GAAG,MAAMpE,gBAAgB,CAACqE,aAAa,CAACb,UAAU,CAAC;UAC/D,IAAI3D,uBAAuB,CAACuE,MAAM,CAAC,EAAE;YACnC,OAAO,IAAI;UACb,CAAC,MAAM;YACL,MAAMA,MAAM,GAAG,MAAMpE,gBAAgB,CAACsE,eAAe,CAACd,UAAU,CAAC;YACjE,OAAO3D,uBAAuB,CAACuE,MAAM,CAAC;UACxC;QACF,CAAC,MAAM;UACL,OAAO,IAAI;QACb;MACF,CAAC;MAAA/D,eAAA,+BAE8BkD,QAA2B,IAAkB;QAC1E,IAAI,CAACgB,oBAAoB,CAACC,GAAG,CAACjB,QAAQ,CAAC;QACvC,OAAO,MAAM;UACX,IAAI,CAACgB,oBAAoB,CAACE,MAAM,CAAClB,QAAQ,CAAC;QAC5C,CAAC;MACH,CAAC;MAAAlD,eAAA,2BAE0BkD,QAAuB,IAAkB;QAClE,IAAI,CAACF,gBAAgB,CAACmB,GAAG,CAACjB,QAAQ,CAAC;QACnC,OAAO,MAAM;UACX,IAAI,CAACF,gBAAgB,CAACoB,MAAM,CAAClB,QAAQ,CAAC;QACxC,CAAC;MACH,CAAC;MAAAlD,eAAA,iBAEe,MAAOqE,GAAW,IAAoB;QACpD,IAAIhF,YAAY,CAAC,IAAI,CAAC0D,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE;UACnD,IAAI;YACF,IAAI,CAACuB,QAAQ,CAAC,WAAW,CAAC;YAC1B,MAAM1E,MAAM,CAAC2E,aAAa,CAACF,GAAG,EAAE;cAC9B,GAAG,IAAI,CAACG;YACV,CAAC,CAAC;YAEF,IAAIrF,QAAQ,CAACwE,EAAE,KAAK,SAAS,EAAE;cAC7B,IAAI,CAAC7C,gBAAgB,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC;YACpC;YAEA,IAAI,CAACwD,GAAG,GAAGA,GAAG;YACd,IAAI,CAACC,QAAQ,CAAC,WAAW,CAAC;UAC5B,CAAC,CAAC,OAAOG,CAAC,EAAE;YACV,IAAI,CAACH,QAAQ,CAAC,MAAM,CAAC;YACrB,MAAMG,CAAC;UACT;QACF;MACF,CAAC;MAAAzE,eAAA,eAEa,YAA2B;QACvC,IAAIX,YAAY,CAAC,IAAI,CAAC0D,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;UAC3C,IAAI5D,QAAQ,CAACwE,EAAE,KAAK,SAAS,EAAE;YAC7B,MAAMe,MAAM,GAAG,IAAI,CAACC,0BAA0B,CAAC,CAAC;YAChD,IAAID,MAAM,GAAG,CAAC,EAAE,MAAMpF,KAAK,CAACoF,MAAM,CAAC;UACrC;UAEA,MAAM9E,MAAM,CAACgF,YAAY,CAAC,CAAC;UAC3B,IAAI,CAACN,QAAQ,CAAC,WAAW,CAAC;QAC5B;MACF,CAAC;MAAAtE,eAAA,gBAEc,YAA2B;QACxC,MAAM,IAAI,CAAC6E,IAAI,CAAC,CAAC;QACjB,IAAI,CAACR,GAAG,GAAGpE,SAAS;QACpB,IAAI,CAACiE,oBAAoB,CAACY,KAAK,CAAC,CAAC;QACjC,IAAI,CAACR,QAAQ,CAAC,MAAM,CAAC;MACvB,CAAC;MAvGC1E,MAAM,CAACmF,uBAAuB,CAAC,GAAG,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;QACnD7F,MAAM,CAAC8F,IAAI,CAAC,8DAA8D,EAAED,KAAK,CAAC;MACpF,CAAC,CAAC;MACFrF,MAAM,CAACuF,qBAAqB,CAAEC,IAAI,IAAK;QACrC,MAAMC,SAAS,GAAGD,IAAI,CAACE,eAAe,IAAI,IAAI,CAACC,OAAO,CAACjF,WAAW;QAElE,IAAI+E,SAAS,EAAE;UACb,IAAI,CAACR,IAAI,CAAC,CAAC,CAACG,KAAK,CAAEC,KAAK,IAAK;YAC3B7F,MAAM,CAAC8F,IAAI,CAAC,+DAA+D,EAAED,KAAK,CAAC;UACrF,CAAC,CAAC;QACJ;QACA,IAAI,IAAI,CAAClC,KAAK,KAAK,WAAW,EAAE;UAC9B,IAAI,CAACmB,oBAAoB,CAACjB,OAAO,CAAEC,QAAQ,IAAK;YAC9CA,QAAQ,CAAC;cAAEsC,WAAW,EAAEJ,IAAI,CAACE,eAAe;cAAED;YAAU,CAAC,CAAC;UAC5D,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ;EAuFF;EAEA,OAAO,IAAIvF,aAAa,CAAC,CAAC;AAC5B,CAAC;AAED,eAAeL,2BAA2B","ignoreList":[]}
@@ -38,8 +38,7 @@ const SBUDynamicModule = {
38
38
  getInfo(name) {
39
39
  return SBUDynamicModuleRegistry[name] ?? null;
40
40
  },
41
- get(name) {
42
- let logLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'error';
41
+ get(name, logLevel = 'error') {
43
42
  const dmi = this.getInfo(name);
44
43
  if (!dmi) Logger.warn(`${name} doesn't exist in the dynamic module`);
45
44
  return dmi === null || dmi === void 0 ? void 0 : dmi.getPackage(logLevel);
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","UIManager","Logger","checkLink","dmi","logLevel","nativeModule","isComponent","getViewManagerConfig","nativeModuleNamespace","message","packageName","url","console","error","warn","SBUDynamicModuleRegistry","getPackage","require","e","SBUDynamicModule","register","mdi","getInfo","name","get","arguments","length","undefined"],"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":"AAAA;;AAEA,SAASA,aAAa,EAAEC,SAAS,QAAQ,cAAc;AAEvD,SAASC,MAAM,QAAQ,uBAAuB;AAY9C,SAASC,SAASA,CAACC,GAAyB,EAAEC,QAAmC,EAAE;EACjF,MAAMC,YAAY,GAAG,CAAC,MAAM;IAC1B,IAAIF,GAAG,CAACG,WAAW,EAAE;MACnB,OAAON,SAAS,CAACO,oBAAoB,CAACJ,GAAG,CAACK,qBAAqB,CAAC;IAClE,CAAC,MAAM;MACL,OAAOT,aAAa,CAACI,GAAG,CAACK,qBAAqB,CAAC;IACjD;EACF,CAAC,GAAG;EAEJ,IAAI,CAACH,YAAY,EAAE;IACjB,MAAMI,OAAO,GAAI,iEAAgEN,GAAG,CAACO,WAAY,KAAIP,GAAG,CAACQ,GAAI,GAAE;IAC/G,IAAIP,QAAQ,KAAK,OAAO,EAAEQ,OAAO,CAACC,KAAK,CAACJ,OAAO,CAAC;IAChD,IAAIL,QAAQ,KAAK,MAAM,EAAEQ,OAAO,CAACE,IAAI,CAACL,OAAO,CAAC;EAChD;AACF;AAMA,MAAMM,wBAAuE,GAAG;EAC9E,iCAAiC,EAAE;IACjCL,WAAW,EAAE,iCAAiC;IAC9CF,qBAAqB,EAAE,YAAY;IACnCG,GAAG,EAAE,8DAA8D;IACnEK,UAAUA,CAACZ,QAAQ,EAAE;MACnBF,SAAS,CAAC,IAAI,EAAEE,QAAQ,CAAC;MAEzB,IAAI;QACF,OAAOa,OAAO,CAAC,iCAAiC,CAAC;MACnD,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV,OAAO,IAAI;MACb;IACF;EACF;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAG;EACvBC,QAAQA,CAACC,GAAyB,EAAE;IAClCN,wBAAwB,CAACM,GAAG,CAACb,qBAAqB,CAAoB,GAAGa,GAAG;EAC9E,CAAC;EACDC,OAAOA,CAACC,IAAqB,EAAE;IAC7B,OAAOR,wBAAwB,CAACQ,IAAI,CAAC,IAAI,IAAI;EAC/C,CAAC;EACDC,GAAGA,CAAyDD,IAAO,EAAiD;IAAA,IAA/CnB,QAAmC,GAAAqB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;IAChH,MAAMtB,GAAG,GAAG,IAAI,CAACmB,OAAO,CAACC,IAAI,CAAC;IAC9B,IAAI,CAACpB,GAAG,EAAEF,MAAM,CAACa,IAAI,CAAE,GAAES,IAAK,sCAAqC,CAAC;IACpE,OAAOpB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEa,UAAU,CAAIZ,QAAQ,CAAC;EACrC;AACF,CAAC;AAED,eAAee,gBAAgB"}
1
+ {"version":3,"names":["NativeModules","UIManager","Logger","checkLink","dmi","logLevel","nativeModule","isComponent","getViewManagerConfig","nativeModuleNamespace","message","packageName","url","console","error","warn","SBUDynamicModuleRegistry","getPackage","require","e","SBUDynamicModule","register","mdi","getInfo","name","get"],"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":"AAAA;;AAEA,SAASA,aAAa,EAAEC,SAAS,QAAQ,cAAc;AAEvD,SAASC,MAAM,QAAQ,uBAAuB;AAY9C,SAASC,SAASA,CAACC,GAAyB,EAAEC,QAAmC,EAAE;EACjF,MAAMC,YAAY,GAAG,CAAC,MAAM;IAC1B,IAAIF,GAAG,CAACG,WAAW,EAAE;MACnB,OAAON,SAAS,CAACO,oBAAoB,CAACJ,GAAG,CAACK,qBAAqB,CAAC;IAClE,CAAC,MAAM;MACL,OAAOT,aAAa,CAACI,GAAG,CAACK,qBAAqB,CAAC;IACjD;EACF,CAAC,EAAE,CAAC;EAEJ,IAAI,CAACH,YAAY,EAAE;IACjB,MAAMI,OAAO,GAAG,iEAAiEN,GAAG,CAACO,WAAW,KAAKP,GAAG,CAACQ,GAAG,GAAG;IAC/G,IAAIP,QAAQ,KAAK,OAAO,EAAEQ,OAAO,CAACC,KAAK,CAACJ,OAAO,CAAC;IAChD,IAAIL,QAAQ,KAAK,MAAM,EAAEQ,OAAO,CAACE,IAAI,CAACL,OAAO,CAAC;EAChD;AACF;AAMA,MAAMM,wBAAuE,GAAG;EAC9E,iCAAiC,EAAE;IACjCL,WAAW,EAAE,iCAAiC;IAC9CF,qBAAqB,EAAE,YAAY;IACnCG,GAAG,EAAE,8DAA8D;IACnEK,UAAUA,CAACZ,QAAQ,EAAE;MACnBF,SAAS,CAAC,IAAI,EAAEE,QAAQ,CAAC;MAEzB,IAAI;QACF,OAAOa,OAAO,CAAC,iCAAiC,CAAC;MACnD,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV,OAAO,IAAI;MACb;IACF;EACF;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAG;EACvBC,QAAQA,CAACC,GAAyB,EAAE;IAClCN,wBAAwB,CAACM,GAAG,CAACb,qBAAqB,CAAoB,GAAGa,GAAG;EAC9E,CAAC;EACDC,OAAOA,CAACC,IAAqB,EAAE;IAC7B,OAAOR,wBAAwB,CAACQ,IAAI,CAAC,IAAI,IAAI;EAC/C,CAAC;EACDC,GAAGA,CAAyDD,IAAO,EAAEnB,QAAmC,GAAG,OAAO,EAAE;IAClH,MAAMD,GAAG,GAAG,IAAI,CAACmB,OAAO,CAACC,IAAI,CAAC;IAC9B,IAAI,CAACpB,GAAG,EAAEF,MAAM,CAACa,IAAI,CAAC,GAAGS,IAAI,sCAAsC,CAAC;IACpE,OAAOpB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEa,UAAU,CAAIZ,QAAQ,CAAC;EACrC;AACF,CAAC;AAED,eAAee,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":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TypingIndicatorType"],"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":"AAoCA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA"}
1
+ {"version":3,"names":["TypingIndicatorType"],"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":"AAoCA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
@@ -8,20 +8,17 @@ const expoBackwardUtils = {
8
8
  async toFilePickerResponses(result, fsModule) {
9
9
  if (result.assets) {
10
10
  const assets = result.assets || [];
11
- const promises = assets.map(_ref => {
12
- let {
13
- fileName: name,
14
- fileSize: size,
15
- type,
16
- uri
17
- } = _ref;
18
- return normalizeFile({
19
- uri,
20
- size,
21
- name,
22
- type
23
- });
24
- });
11
+ const promises = assets.map(({
12
+ fileName: name,
13
+ fileSize: size,
14
+ type,
15
+ uri
16
+ }) => normalizeFile({
17
+ uri,
18
+ size,
19
+ name,
20
+ type
21
+ }));
25
22
  return Promise.all(promises);
26
23
  } else if ('uri' in result && typeof result.uri === 'string') {
27
24
  const fileInfo = await fsModule.getInfoAsync(result.uri);
@@ -43,20 +40,17 @@ const expoBackwardUtils = {
43
40
  async toFilePickerResponses(result) {
44
41
  if (result.assets) {
45
42
  const assets = result.assets || [];
46
- const promises = assets.map(_ref2 => {
47
- let {
48
- name,
49
- size,
50
- mimeType,
51
- uri
52
- } = _ref2;
53
- return normalizeFile({
54
- uri,
55
- size,
56
- name,
57
- type: mimeType
58
- });
59
- });
43
+ const promises = assets.map(({
44
+ name,
45
+ size,
46
+ mimeType,
47
+ uri
48
+ }) => normalizeFile({
49
+ uri,
50
+ size,
51
+ name,
52
+ type: mimeType
53
+ }));
60
54
  return Promise.all(promises);
61
55
  } else if ('uri' in result && typeof result.uri === 'string') {
62
56
  // @ts-expect-error backward compatibility
@@ -1 +1 @@
1
- {"version":3,"names":["normalizeFile","expoBackwardUtils","imagePicker","isCanceled","result","canceled","cancelled","toFilePickerResponses","fsModule","assets","promises","map","_ref","fileName","name","fileSize","size","type","uri","Promise","all","fileInfo","getInfoAsync","response","toFileSize","documentPicker","_ref2","mimeType","info"],"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":"AAKA,OAAOA,aAAa,MAAM,iBAAiB;AAE3C,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAE;IACXC,UAAUA,CAACC,MAAyC,EAAE;MACpD;MACA,OAAOA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACE,SAAS;IAC5C,CAAC;IACD,MAAMC,qBAAqBA,CACzBH,MAAyC,EACzCI,QAAuB,EACQ;MAC/B,IAAIJ,MAAM,CAACK,MAAM,EAAE;QACjB,MAAMA,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAI,EAAE;QAClC,MAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,CAACC,IAAA;UAAA,IAAC;YAAEC,QAAQ,EAAEC,IAAI;YAAEC,QAAQ,EAAEC,IAAI;YAAEC,IAAI;YAAEC;UAAI,CAAC,GAAAN,IAAA;UAAA,OACxEZ,aAAa,CAAC;YAAEkB,GAAG;YAAEF,IAAI;YAAEF,IAAI;YAAEG;UAAK,CAAC,CAAC;QAAA,EACzC;QAED,OAAOE,OAAO,CAACC,GAAG,CAACV,QAAQ,CAAC;MAC9B,CAAC,MAAM,IAAI,KAAK,IAAIN,MAAM,IAAI,OAAOA,MAAM,CAACc,GAAG,KAAK,QAAQ,EAAE;QAC5D,MAAMG,QAAQ,GAAG,MAAMb,QAAQ,CAACc,YAAY,CAAClB,MAAM,CAACc,GAAG,CAAC;QACxD,MAAMK,QAAQ,GAAG,MAAMvB,aAAa,CAAC;UAAEkB,GAAG,EAAEd,MAAM,CAACc,GAAG;UAAEF,IAAI,EAAEf,iBAAiB,CAACuB,UAAU,CAACH,QAAQ;QAAE,CAAC,CAAC;QACvG,OAAO,CAACE,QAAQ,CAAC;MACnB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDE,cAAc,EAAE;IACdtB,UAAUA,CAACC,MAA+C,EAAE;MAC1D;MACA,OAAOA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACa,IAAI,KAAK,QAAQ;IACpD,CAAC;IACD,MAAMV,qBAAqBA,CAACH,MAA+C,EAAiC;MAC1G,IAAIA,MAAM,CAACK,MAAM,EAAE;QACjB,MAAMA,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAI,EAAE;QAClC,MAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,CAACe,KAAA;UAAA,IAAC;YAAEZ,IAAI;YAAEE,IAAI;YAAEW,QAAQ;YAAET;UAAI,CAAC,GAAAQ,KAAA;UAAA,OACxD1B,aAAa,CAAC;YAAEkB,GAAG;YAAEF,IAAI;YAAEF,IAAI;YAAEG,IAAI,EAAEU;UAAS,CAAC,CAAC;QAAA,EACnD;QAED,OAAOR,OAAO,CAACC,GAAG,CAACV,QAAQ,CAAC;MAC9B,CAAC,MAAM,IAAI,KAAK,IAAIN,MAAM,IAAI,OAAOA,MAAM,CAACc,GAAG,KAAK,QAAQ,EAAE;QAC5D;QACA,MAAM;UAAES,QAAQ;UAAET,GAAG;UAAEF,IAAI;UAAEF;QAAK,CAAC,GAAGV,MAAM;QAC5C,MAAMmB,QAAQ,GAAG,MAAMvB,aAAa,CAAC;UAAEkB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG,IAAI,EAAEU;QAAS,CAAC,CAAC;QAEzE,OAAO,CAACJ,QAAQ,CAAC;MACnB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDC,UAAUA,CAACI,IAAqB,EAAE;IAChC,IAAI,MAAM,IAAIA,IAAI,EAAE;MAClB,OAAOA,IAAI,CAACZ,IAAI;IAClB,CAAC,MAAM;MACL,OAAO,CAAC;IACV;EACF;AACF,CAAC;AAED,eAAef,iBAAiB"}
1
+ {"version":3,"names":["normalizeFile","expoBackwardUtils","imagePicker","isCanceled","result","canceled","cancelled","toFilePickerResponses","fsModule","assets","promises","map","fileName","name","fileSize","size","type","uri","Promise","all","fileInfo","getInfoAsync","response","toFileSize","documentPicker","mimeType","info"],"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":"AAKA,OAAOA,aAAa,MAAM,iBAAiB;AAE3C,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAE;IACXC,UAAUA,CAACC,MAAyC,EAAE;MACpD;MACA,OAAOA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACE,SAAS;IAC5C,CAAC;IACD,MAAMC,qBAAqBA,CACzBH,MAAyC,EACzCI,QAAuB,EACQ;MAC/B,IAAIJ,MAAM,CAACK,MAAM,EAAE;QACjB,MAAMA,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAI,EAAE;QAClC,MAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,CAAC,CAAC;UAAEC,QAAQ,EAAEC,IAAI;UAAEC,QAAQ,EAAEC,IAAI;UAAEC,IAAI;UAAEC;QAAI,CAAC,KACxEjB,aAAa,CAAC;UAAEiB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG;QAAK,CAAC,CACzC,CAAC;QAED,OAAOE,OAAO,CAACC,GAAG,CAACT,QAAQ,CAAC;MAC9B,CAAC,MAAM,IAAI,KAAK,IAAIN,MAAM,IAAI,OAAOA,MAAM,CAACa,GAAG,KAAK,QAAQ,EAAE;QAC5D,MAAMG,QAAQ,GAAG,MAAMZ,QAAQ,CAACa,YAAY,CAACjB,MAAM,CAACa,GAAG,CAAC;QACxD,MAAMK,QAAQ,GAAG,MAAMtB,aAAa,CAAC;UAAEiB,GAAG,EAAEb,MAAM,CAACa,GAAG;UAAEF,IAAI,EAAEd,iBAAiB,CAACsB,UAAU,CAACH,QAAQ;QAAE,CAAC,CAAC;QACvG,OAAO,CAACE,QAAQ,CAAC;MACnB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDE,cAAc,EAAE;IACdrB,UAAUA,CAACC,MAA+C,EAAE;MAC1D;MACA,OAAOA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACY,IAAI,KAAK,QAAQ;IACpD,CAAC;IACD,MAAMT,qBAAqBA,CAACH,MAA+C,EAAiC;MAC1G,IAAIA,MAAM,CAACK,MAAM,EAAE;QACjB,MAAMA,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAI,EAAE;QAClC,MAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,CAAC,CAAC;UAAEE,IAAI;UAAEE,IAAI;UAAEU,QAAQ;UAAER;QAAI,CAAC,KACxDjB,aAAa,CAAC;UAAEiB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG,IAAI,EAAES;QAAS,CAAC,CACnD,CAAC;QAED,OAAOP,OAAO,CAACC,GAAG,CAACT,QAAQ,CAAC;MAC9B,CAAC,MAAM,IAAI,KAAK,IAAIN,MAAM,IAAI,OAAOA,MAAM,CAACa,GAAG,KAAK,QAAQ,EAAE;QAC5D;QACA,MAAM;UAAEQ,QAAQ;UAAER,GAAG;UAAEF,IAAI;UAAEF;QAAK,CAAC,GAAGT,MAAM;QAC5C,MAAMkB,QAAQ,GAAG,MAAMtB,aAAa,CAAC;UAAEiB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG,IAAI,EAAES;QAAS,CAAC,CAAC;QAEzE,OAAO,CAACH,QAAQ,CAAC;MACnB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDC,UAAUA,CAACG,IAAqB,EAAE;IAChC,IAAI,MAAM,IAAIA,IAAI,EAAE;MAClB,OAAOA,IAAI,CAACX,IAAI;IAClB,CAAC,MAAM;MACL,OAAO,CAAC;IACV;EACF;AACF,CAAC;AAED,eAAed,iBAAiB","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  const expoPermissionGranted = (stats, limitedCallback) => {
2
2
  return stats.every(res => {
3
3
  if ('accessPrivileges' in res) {
4
- if (res.accessPrivileges === 'limited') limitedCallback === null || limitedCallback === void 0 ? void 0 : limitedCallback();
4
+ if (res.accessPrivileges === 'limited') limitedCallback === null || limitedCallback === void 0 || limitedCallback();
5
5
  return res.granted || res.status === 'granted' || res.accessPrivileges === 'all' || res.accessPrivileges === 'limited';
6
6
  }
7
7
  if ('ios' in res) {
@@ -1 +1 @@
1
- {"version":3,"names":["expoPermissionGranted","stats","limitedCallback","every","res","accessPrivileges","granted","status","_res$ios","ios"],"sources":["expoPermissionGranted.ts"],"sourcesContent":["import type { NotificationPermissionsStatus } from 'expo-notifications';\n\nexport interface ExpoPermissionResponse {\n canAskAgain: boolean;\n granted: boolean;\n status: 'denied' | 'granted' | 'undetermined';\n}\n\nexport interface ExpoMediaLibraryPermissionResponse extends ExpoPermissionResponse {\n accessPrivileges?: 'all' | 'limited' | 'none';\n}\nexport interface ExpoPushPermissionResponse extends ExpoPermissionResponse, NotificationPermissionsStatus {}\n\nconst expoPermissionGranted = (\n stats: Array<ExpoMediaLibraryPermissionResponse | ExpoPushPermissionResponse | ExpoPermissionResponse>,\n limitedCallback?: () => void,\n) => {\n return stats.every((res) => {\n if ('accessPrivileges' in res) {\n if (res.accessPrivileges === 'limited') limitedCallback?.();\n return (\n res.granted || res.status === 'granted' || res.accessPrivileges === 'all' || res.accessPrivileges === 'limited'\n );\n }\n if ('ios' in res) {\n // NOT_DETERMINED = 0,\n // DENIED = 1,\n // AUTHORIZED = 2,\n // PROVISIONAL = 3,\n // EPHEMERAL = 4,\n return (\n res.granted || res.status === 'granted' || (res.ios?.status && (res.ios.status === 2 || res.ios.status === 3))\n );\n }\n return res.granted || res.status === 'granted';\n });\n};\n\nexport default expoPermissionGranted;\n"],"mappings":"AAaA,MAAMA,qBAAqB,GAAGA,CAC5BC,KAAsG,EACtGC,eAA4B,KACzB;EACH,OAAOD,KAAK,CAACE,KAAK,CAAEC,GAAG,IAAK;IAC1B,IAAI,kBAAkB,IAAIA,GAAG,EAAE;MAC7B,IAAIA,GAAG,CAACC,gBAAgB,KAAK,SAAS,EAAEH,eAAe,aAAfA,eAAe,uBAAfA,eAAe,EAAI;MAC3D,OACEE,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS,IAAIH,GAAG,CAACC,gBAAgB,KAAK,KAAK,IAAID,GAAG,CAACC,gBAAgB,KAAK,SAAS;IAEnH;IACA,IAAI,KAAK,IAAID,GAAG,EAAE;MAAA,IAAAI,QAAA;MAChB;MACA;MACA;MACA;MACA;MACA,OACEJ,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS,IAAK,EAAAC,QAAA,GAAAJ,GAAG,CAACK,GAAG,cAAAD,QAAA,uBAAPA,QAAA,CAASD,MAAM,MAAKH,GAAG,CAACK,GAAG,CAACF,MAAM,KAAK,CAAC,IAAIH,GAAG,CAACK,GAAG,CAACF,MAAM,KAAK,CAAC,CAAE;IAElH;IACA,OAAOH,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS;EAChD,CAAC,CAAC;AACJ,CAAC;AAED,eAAeP,qBAAqB"}
1
+ {"version":3,"names":["expoPermissionGranted","stats","limitedCallback","every","res","accessPrivileges","granted","status","_res$ios","ios"],"sources":["expoPermissionGranted.ts"],"sourcesContent":["import type { NotificationPermissionsStatus } from 'expo-notifications';\n\nexport interface ExpoPermissionResponse {\n canAskAgain: boolean;\n granted: boolean;\n status: 'denied' | 'granted' | 'undetermined';\n}\n\nexport interface ExpoMediaLibraryPermissionResponse extends ExpoPermissionResponse {\n accessPrivileges?: 'all' | 'limited' | 'none';\n}\nexport interface ExpoPushPermissionResponse extends ExpoPermissionResponse, NotificationPermissionsStatus {}\n\nconst expoPermissionGranted = (\n stats: Array<ExpoMediaLibraryPermissionResponse | ExpoPushPermissionResponse | ExpoPermissionResponse>,\n limitedCallback?: () => void,\n) => {\n return stats.every((res) => {\n if ('accessPrivileges' in res) {\n if (res.accessPrivileges === 'limited') limitedCallback?.();\n return (\n res.granted || res.status === 'granted' || res.accessPrivileges === 'all' || res.accessPrivileges === 'limited'\n );\n }\n if ('ios' in res) {\n // NOT_DETERMINED = 0,\n // DENIED = 1,\n // AUTHORIZED = 2,\n // PROVISIONAL = 3,\n // EPHEMERAL = 4,\n return (\n res.granted || res.status === 'granted' || (res.ios?.status && (res.ios.status === 2 || res.ios.status === 3))\n );\n }\n return res.granted || res.status === 'granted';\n });\n};\n\nexport default expoPermissionGranted;\n"],"mappings":"AAaA,MAAMA,qBAAqB,GAAGA,CAC5BC,KAAsG,EACtGC,eAA4B,KACzB;EACH,OAAOD,KAAK,CAACE,KAAK,CAAEC,GAAG,IAAK;IAC1B,IAAI,kBAAkB,IAAIA,GAAG,EAAE;MAC7B,IAAIA,GAAG,CAACC,gBAAgB,KAAK,SAAS,EAAEH,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAG,CAAC;MAC3D,OACEE,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS,IAAIH,GAAG,CAACC,gBAAgB,KAAK,KAAK,IAAID,GAAG,CAACC,gBAAgB,KAAK,SAAS;IAEnH;IACA,IAAI,KAAK,IAAID,GAAG,EAAE;MAAA,IAAAI,QAAA;MAChB;MACA;MACA;MACA;MACA;MACA,OACEJ,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS,IAAK,EAAAC,QAAA,GAAAJ,GAAG,CAACK,GAAG,cAAAD,QAAA,uBAAPA,QAAA,CAASD,MAAM,MAAKH,GAAG,CAACK,GAAG,CAACF,MAAM,KAAK,CAAC,IAAIH,GAAG,CAACK,GAAG,CAACF,MAAM,KAAK,CAAC,CAAE;IAElH;IACA,OAAOH,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS;EAChD,CAAC,CAAC;AACJ,CAAC;AAED,eAAeP,qBAAqB","ignoreList":[]}
@@ -2,7 +2,7 @@ const nativePermissionGranted = (stats, limitedCallback) => {
2
2
  return Object.values(stats).every(result => {
3
3
  if (result === 'granted') return true;
4
4
  if (result === 'limited') {
5
- limitedCallback === null || limitedCallback === void 0 ? void 0 : limitedCallback();
5
+ limitedCallback === null || limitedCallback === void 0 || limitedCallback();
6
6
  return true;
7
7
  }
8
8
  return false;
@@ -1 +1 @@
1
- {"version":3,"names":["nativePermissionGranted","stats","limitedCallback","Object","values","every","result"],"sources":["nativePermissionGranted.ts"],"sourcesContent":["import type { Permission, PermissionStatus } from 'react-native-permissions';\n\nconst nativePermissionGranted = (stats: Record<Permission, PermissionStatus>, limitedCallback?: () => void) => {\n return Object.values(stats).every((result) => {\n if (result === 'granted') return true;\n if (result === 'limited') {\n limitedCallback?.();\n return true;\n }\n return false;\n });\n};\n\nexport default nativePermissionGranted;\n"],"mappings":"AAEA,MAAMA,uBAAuB,GAAGA,CAACC,KAA2C,EAAEC,eAA4B,KAAK;EAC7G,OAAOC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,KAAK,CAAEC,MAAM,IAAK;IAC5C,IAAIA,MAAM,KAAK,SAAS,EAAE,OAAO,IAAI;IACrC,IAAIA,MAAM,KAAK,SAAS,EAAE;MACxBJ,eAAe,aAAfA,eAAe,uBAAfA,eAAe,EAAI;MACnB,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC,CAAC;AACJ,CAAC;AAED,eAAeF,uBAAuB"}
1
+ {"version":3,"names":["nativePermissionGranted","stats","limitedCallback","Object","values","every","result"],"sources":["nativePermissionGranted.ts"],"sourcesContent":["import type { Permission, PermissionStatus } from 'react-native-permissions';\n\nconst nativePermissionGranted = (stats: Record<Permission, PermissionStatus>, limitedCallback?: () => void) => {\n return Object.values(stats).every((result) => {\n if (result === 'granted') return true;\n if (result === 'limited') {\n limitedCallback?.();\n return true;\n }\n return false;\n });\n};\n\nexport default nativePermissionGranted;\n"],"mappings":"AAEA,MAAMA,uBAAuB,GAAGA,CAACC,KAA2C,EAAEC,eAA4B,KAAK;EAC7G,OAAOC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,KAAK,CAAEC,MAAM,IAAK;IAC5C,IAAIA,MAAM,KAAK,SAAS,EAAE,OAAO,IAAI;IACrC,IAAIA,MAAM,KAAK,SAAS,EAAE;MACxBJ,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAG,CAAC;MACnB,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC,CAAC;AACJ,CAAC;AAED,eAAeF,uBAAuB","ignoreList":[]}
@@ -1,11 +1,10 @@
1
1
  import { getFileExtension, getFileExtensionFromMime, getFileExtensionFromUri, getMimeFromFileExtension, normalizeFileName } from '@sendbird/uikit-utils';
2
- const normalizeFile = async _ref => {
3
- let {
4
- uri,
5
- size,
6
- name,
7
- type
8
- } = _ref;
2
+ const normalizeFile = async ({
3
+ uri,
4
+ size,
5
+ name,
6
+ type
7
+ }) => {
9
8
  // URI is required property
10
9
  if (!uri) return null;
11
10
  let filename = name || String(Date.now());
@@ -1 +1 @@
1
- {"version":3,"names":["getFileExtension","getFileExtensionFromMime","getFileExtensionFromUri","getMimeFromFileExtension","normalizeFileName","normalizeFile","_ref","uri","size","name","type","filename","String","Date","now","filetype","extension","isNotMimeType","str","indexOf"],"sources":["normalizeFile.ts"],"sourcesContent":["import type { PartialNullable } from '@sendbird/uikit-utils';\nimport {\n getFileExtension,\n getFileExtensionFromMime,\n getFileExtensionFromUri,\n getMimeFromFileExtension,\n normalizeFileName,\n} from '@sendbird/uikit-utils';\n\nimport type { FilePickerResponse, FileType } from '../platform/types';\n\nconst normalizeFile = async ({ uri, size, name, type }: PartialNullable<FileType>): Promise<FilePickerResponse> => {\n // URI is required property\n if (!uri) return null;\n\n let filename = name || String(Date.now());\n let filetype = type || '';\n\n const extension =\n getFileExtension(filename) || getFileExtensionFromMime(filetype) || (await getFileExtensionFromUri(uri));\n\n if (extension) {\n filename = normalizeFileName(filename, extension);\n if (!filetype || isNotMimeType(filetype)) {\n filetype = getMimeFromFileExtension(extension);\n }\n }\n\n return { uri, name: filename, type: filetype, size: size ?? 0 };\n};\n\nfunction isNotMimeType(str: string) {\n return str.indexOf('/') === -1;\n}\n\nexport default normalizeFile;\n"],"mappings":"AACA,SACEA,gBAAgB,EAChBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,iBAAiB,QACZ,uBAAuB;AAI9B,MAAMC,aAAa,GAAG,MAAAC,IAAA,IAA6F;EAAA,IAAtF;IAAEC,GAAG;IAAEC,IAAI;IAAEC,IAAI;IAAEC;EAAgC,CAAC,GAAAJ,IAAA;EAC/E;EACA,IAAI,CAACC,GAAG,EAAE,OAAO,IAAI;EAErB,IAAII,QAAQ,GAAGF,IAAI,IAAIG,MAAM,CAACC,IAAI,CAACC,GAAG,EAAE,CAAC;EACzC,IAAIC,QAAQ,GAAGL,IAAI,IAAI,EAAE;EAEzB,MAAMM,SAAS,GACbhB,gBAAgB,CAACW,QAAQ,CAAC,IAAIV,wBAAwB,CAACc,QAAQ,CAAC,KAAK,MAAMb,uBAAuB,CAACK,GAAG,CAAC,CAAC;EAE1G,IAAIS,SAAS,EAAE;IACbL,QAAQ,GAAGP,iBAAiB,CAACO,QAAQ,EAAEK,SAAS,CAAC;IACjD,IAAI,CAACD,QAAQ,IAAIE,aAAa,CAACF,QAAQ,CAAC,EAAE;MACxCA,QAAQ,GAAGZ,wBAAwB,CAACa,SAAS,CAAC;IAChD;EACF;EAEA,OAAO;IAAET,GAAG;IAAEE,IAAI,EAAEE,QAAQ;IAAED,IAAI,EAAEK,QAAQ;IAAEP,IAAI,EAAEA,IAAI,IAAI;EAAE,CAAC;AACjE,CAAC;AAED,SAASS,aAAaA,CAACC,GAAW,EAAE;EAClC,OAAOA,GAAG,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC;AAEA,eAAed,aAAa"}
1
+ {"version":3,"names":["getFileExtension","getFileExtensionFromMime","getFileExtensionFromUri","getMimeFromFileExtension","normalizeFileName","normalizeFile","uri","size","name","type","filename","String","Date","now","filetype","extension","isNotMimeType","str","indexOf"],"sources":["normalizeFile.ts"],"sourcesContent":["import type { PartialNullable } from '@sendbird/uikit-utils';\nimport {\n getFileExtension,\n getFileExtensionFromMime,\n getFileExtensionFromUri,\n getMimeFromFileExtension,\n normalizeFileName,\n} from '@sendbird/uikit-utils';\n\nimport type { FilePickerResponse, FileType } from '../platform/types';\n\nconst normalizeFile = async ({ uri, size, name, type }: PartialNullable<FileType>): Promise<FilePickerResponse> => {\n // URI is required property\n if (!uri) return null;\n\n let filename = name || String(Date.now());\n let filetype = type || '';\n\n const extension =\n getFileExtension(filename) || getFileExtensionFromMime(filetype) || (await getFileExtensionFromUri(uri));\n\n if (extension) {\n filename = normalizeFileName(filename, extension);\n if (!filetype || isNotMimeType(filetype)) {\n filetype = getMimeFromFileExtension(extension);\n }\n }\n\n return { uri, name: filename, type: filetype, size: size ?? 0 };\n};\n\nfunction isNotMimeType(str: string) {\n return str.indexOf('/') === -1;\n}\n\nexport default normalizeFile;\n"],"mappings":"AACA,SACEA,gBAAgB,EAChBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,iBAAiB,QACZ,uBAAuB;AAI9B,MAAMC,aAAa,GAAG,MAAAA,CAAO;EAAEC,GAAG;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAgC,CAAC,KAAkC;EACjH;EACA,IAAI,CAACH,GAAG,EAAE,OAAO,IAAI;EAErB,IAAII,QAAQ,GAAGF,IAAI,IAAIG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;EACzC,IAAIC,QAAQ,GAAGL,IAAI,IAAI,EAAE;EAEzB,MAAMM,SAAS,GACbf,gBAAgB,CAACU,QAAQ,CAAC,IAAIT,wBAAwB,CAACa,QAAQ,CAAC,KAAK,MAAMZ,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAE1G,IAAIS,SAAS,EAAE;IACbL,QAAQ,GAAGN,iBAAiB,CAACM,QAAQ,EAAEK,SAAS,CAAC;IACjD,IAAI,CAACD,QAAQ,IAAIE,aAAa,CAACF,QAAQ,CAAC,EAAE;MACxCA,QAAQ,GAAGX,wBAAwB,CAACY,SAAS,CAAC;IAChD;EACF;EAEA,OAAO;IAAET,GAAG;IAAEE,IAAI,EAAEE,QAAQ;IAAED,IAAI,EAAEK,QAAQ;IAAEP,IAAI,EAAEA,IAAI,IAAI;EAAE,CAAC;AACjE,CAAC;AAED,SAASS,aAAaA,CAACC,GAAW,EAAE;EAClC,OAAOA,GAAG,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC;AAEA,eAAeb,aAAa","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["iterableToArray","iterable","Array","from","x","prototype","slice","call","onSettledFulfill","value","status","onSettledReject","reason","mapAllSettled","item","Promise","then","bind","getAggregateError","errors","AggregateError","error","Error","name","PromisePolyfill","allSettled","values","all","map","race","resolve","reject","forEach","any","promises","hasResolved","rejectionReasons","resolveOnce","rejectionCheck","push","length","apply","global"],"sources":["promise.ts"],"sourcesContent":["import 'react-native';\n\n/**\n * This file contains subcomponents with separate copyright notices and license terms.\n * Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses.\n *\n * MIT License: https://github.com/then/promise\n *\n * Copyright (c) 2014 Forbes Lindesay\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Original code: https://github.com/then/promise/blob/master/src/es6-extensions.js\n * */\nlet iterableToArray = function <T>(iterable: Iterable<T | PromiseLike<T>>): (T | PromiseLike<T>)[] {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) {\n return Array.prototype.slice.call(x);\n };\n return Array.prototype.slice.call(iterable);\n};\n\nfunction onSettledFulfill<T>(value: T) {\n return { status: 'fulfilled', value: value } as const;\n}\n\nfunction onSettledReject<T>(reason: T) {\n return { status: 'rejected', reason: reason } as const;\n}\n\nfunction mapAllSettled<T>(item: T | PromiseLike<T>): PromiseLike<PromiseSettledResult<T>> | PromiseSettledResult<T> {\n if (item && (typeof item === 'object' || typeof item === 'function')) {\n if (item instanceof Promise && item.then === Promise.prototype.then) {\n return item.then(onSettledFulfill, onSettledReject);\n }\n // @ts-expect-error\n const then = item.then;\n if (typeof then === 'function') {\n return new Promise<T>(then.bind(item)).then(onSettledFulfill, onSettledReject);\n }\n }\n\n // @ts-expect-error\n return onSettledFulfill(item);\n}\n\nfunction getAggregateError(errors: unknown[]) {\n if (typeof AggregateError === 'function') {\n return new AggregateError(errors, 'All promises were rejected');\n }\n\n const error = new Error('All promises were rejected') as Error & { errors: unknown[] };\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nexport const PromisePolyfill = {\n allSettled<T extends readonly unknown[] | []>(values: T) {\n return Promise.all(iterableToArray(values).map(mapAllSettled)) as Promise<{\n -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>;\n }>;\n },\n race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function (value) {\n Promise.resolve(value).then(resolve, reject);\n });\n });\n },\n any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise<Awaited<T>>(function (resolve, reject) {\n const promises = iterableToArray(values);\n let hasResolved = false;\n const rejectionReasons: unknown[] = [];\n\n function resolveOnce(value: Awaited<T>) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason: unknown) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if (promises.length === 0) {\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function (value) {\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n },\n apply() {\n // https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Utilities/PolyfillFunctions.js\n if (typeof global !== 'undefined' && 'Promise' in global) {\n if (!global.Promise.allSettled) {\n global.Promise.allSettled = this.allSettled;\n }\n if (!global.Promise.any) {\n global.Promise.any = this.any;\n }\n if (!global.Promise.race) {\n global.Promise.race = this.race;\n }\n }\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["iterableToArray","iterable","Array","from","x","prototype","slice","call","onSettledFulfill","value","status","onSettledReject","reason","mapAllSettled","item","Promise","then","bind","getAggregateError","errors","AggregateError","error","Error","name","PromisePolyfill","allSettled","values","all","map","race","resolve","reject","forEach","any","promises","hasResolved","rejectionReasons","resolveOnce","rejectionCheck","push","length","apply","global"],"sources":["promise.ts"],"sourcesContent":["import 'react-native';\n\n/**\n * This file contains subcomponents with separate copyright notices and license terms.\n * Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses.\n *\n * MIT License: https://github.com/then/promise\n *\n * Copyright (c) 2014 Forbes Lindesay\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Original code: https://github.com/then/promise/blob/master/src/es6-extensions.js\n * */\nlet iterableToArray = function <T>(iterable: Iterable<T | PromiseLike<T>>): (T | PromiseLike<T>)[] {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) {\n return Array.prototype.slice.call(x);\n };\n return Array.prototype.slice.call(iterable);\n};\n\nfunction onSettledFulfill<T>(value: T) {\n return { status: 'fulfilled', value: value } as const;\n}\n\nfunction onSettledReject<T>(reason: T) {\n return { status: 'rejected', reason: reason } as const;\n}\n\nfunction mapAllSettled<T>(item: T | PromiseLike<T>): PromiseLike<PromiseSettledResult<T>> | PromiseSettledResult<T> {\n if (item && (typeof item === 'object' || typeof item === 'function')) {\n if (item instanceof Promise && item.then === Promise.prototype.then) {\n return item.then(onSettledFulfill, onSettledReject);\n }\n // @ts-expect-error\n const then = item.then;\n if (typeof then === 'function') {\n return new Promise<T>(then.bind(item)).then(onSettledFulfill, onSettledReject);\n }\n }\n\n // @ts-expect-error\n return onSettledFulfill(item);\n}\n\nfunction getAggregateError(errors: unknown[]) {\n if (typeof AggregateError === 'function') {\n return new AggregateError(errors, 'All promises were rejected');\n }\n\n const error = new Error('All promises were rejected') as Error & { errors: unknown[] };\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nexport const PromisePolyfill = {\n allSettled<T extends readonly unknown[] | []>(values: T) {\n return Promise.all(iterableToArray(values).map(mapAllSettled)) as Promise<{\n -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>;\n }>;\n },\n race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function (value) {\n Promise.resolve(value).then(resolve, reject);\n });\n });\n },\n any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise<Awaited<T>>(function (resolve, reject) {\n const promises = iterableToArray(values);\n let hasResolved = false;\n const rejectionReasons: unknown[] = [];\n\n function resolveOnce(value: Awaited<T>) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason: unknown) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if (promises.length === 0) {\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function (value) {\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n },\n apply() {\n // https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Utilities/PolyfillFunctions.js\n if (typeof global !== 'undefined' && 'Promise' in global) {\n if (!global.Promise.allSettled) {\n global.Promise.allSettled = this.allSettled;\n }\n if (!global.Promise.any) {\n global.Promise.any = this.any;\n }\n if (!global.Promise.race) {\n global.Promise.race = this.race;\n }\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["pubsub","subscribers","Set","publish","data","forEach","subscriber","setTimeout","subscribe","add","delete"],"sources":["pubsub.ts"],"sourcesContent":["export type PubSub<T> = {\n publish: (data: T) => void;\n subscribe: (subscriber: (data: T) => void) => () => void;\n};\n\nconst pubsub = <T>(): PubSub<T> => {\n const subscribers = new Set<Function>();\n\n return {\n publish: (data: unknown) => {\n subscribers.forEach((subscriber) => {\n setTimeout(() => subscriber(data), 0);\n });\n },\n subscribe: (subscriber: Function) => {\n subscribers.add(subscriber);\n return () => subscribers.delete(subscriber);\n },\n };\n};\n\nexport default pubsub;\n"],"mappings":"AAKA,MAAMA,MAAM,GAAGA,CAAA,KAAoB;EACjC,MAAMC,WAAW,GAAG,IAAIC,GAAG,EAAY;EAEvC,OAAO;IACLC,OAAO,EAAGC,IAAa,IAAK;MAC1BH,WAAW,CAACI,OAAO,CAAEC,UAAU,IAAK;QAClCC,UAAU,CAAC,MAAMD,UAAU,CAACF,IAAI,CAAC,EAAE,CAAC,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC;IACDI,SAAS,EAAGF,UAAoB,IAAK;MACnCL,WAAW,CAACQ,GAAG,CAACH,UAAU,CAAC;MAC3B,OAAO,MAAML,WAAW,CAACS,MAAM,CAACJ,UAAU,CAAC;IAC7C;EACF,CAAC;AACH,CAAC;AAED,eAAeN,MAAM"}
1
+ {"version":3,"names":["pubsub","subscribers","Set","publish","data","forEach","subscriber","setTimeout","subscribe","add","delete"],"sources":["pubsub.ts"],"sourcesContent":["export type PubSub<T> = {\n publish: (data: T) => void;\n subscribe: (subscriber: (data: T) => void) => () => void;\n};\n\nconst pubsub = <T>(): PubSub<T> => {\n const subscribers = new Set<Function>();\n\n return {\n publish: (data: unknown) => {\n subscribers.forEach((subscriber) => {\n setTimeout(() => subscriber(data), 0);\n });\n },\n subscribe: (subscriber: Function) => {\n subscribers.add(subscriber);\n return () => subscribers.delete(subscriber);\n },\n };\n};\n\nexport default pubsub;\n"],"mappings":"AAKA,MAAMA,MAAM,GAAGA,CAAA,KAAoB;EACjC,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEvC,OAAO;IACLC,OAAO,EAAGC,IAAa,IAAK;MAC1BH,WAAW,CAACI,OAAO,CAAEC,UAAU,IAAK;QAClCC,UAAU,CAAC,MAAMD,UAAU,CAACF,IAAI,CAAC,EAAE,CAAC,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC;IACDI,SAAS,EAAGF,UAAoB,IAAK;MACnCL,WAAW,CAACQ,GAAG,CAACH,UAAU,CAAC;MAC3B,OAAO,MAAML,WAAW,CAACS,MAAM,CAACJ,UAAU,CAAC;IAC7C;EACF,CAAC;AACH,CAAC;AAED,eAAeN,MAAM","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- const VERSION = '3.7.6';
1
+ const VERSION = '3.8.1';
2
2
  export default VERSION;
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.7.6';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO"}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.1';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO","ignoreList":[]}
@@ -13,6 +13,10 @@ export type SuggestedMentionListProps = {
13
13
  inputHeight: number;
14
14
  onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;
15
15
  mentionedUsers: MentionedUser[];
16
+ /**
17
+ * Whether to show user id information on each item.
18
+ * */
19
+ showUserId?: boolean;
16
20
  };
17
21
  export type ChannelInputProps = {
18
22
  style?: StyleProp<TextStyle>;