@sendbird/uikit-react-native 3.7.5 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1100) hide show
  1. package/README.md +3 -2
  2. package/lib/commonjs/components/ChannelCover.js +9 -11
  3. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  4. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js +7 -9
  5. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -1
  6. package/lib/commonjs/components/ChannelInput/EditInput.js +18 -18
  7. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  8. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +37 -50
  9. package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
  10. package/lib/commonjs/components/ChannelInput/SendInput.js +44 -49
  11. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  12. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +12 -14
  13. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  14. package/lib/commonjs/components/ChannelInput/index.js +22 -27
  15. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  16. package/lib/commonjs/components/ChannelMessageList/index.js +59 -75
  17. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  18. package/lib/commonjs/components/ChannelThreadMessageList/index.js +54 -70
  19. package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
  20. package/lib/commonjs/components/ChatFlatList/FlatListInternal.js +1 -2
  21. package/lib/commonjs/components/ChatFlatList/FlatListInternal.js.map +1 -1
  22. package/lib/commonjs/components/ChatFlatList/index.js +13 -15
  23. package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
  24. package/lib/commonjs/components/FileViewer/FileViewerContent.js +18 -21
  25. package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -1
  26. package/lib/commonjs/components/FileViewer/FileViewerFooter.js +14 -19
  27. package/lib/commonjs/components/FileViewer/FileViewerFooter.js.map +1 -1
  28. package/lib/commonjs/components/FileViewer/FileViewerHeader.js +14 -20
  29. package/lib/commonjs/components/FileViewer/FileViewerHeader.js.map +1 -1
  30. package/lib/commonjs/components/FileViewer/index.js +15 -17
  31. package/lib/commonjs/components/FileViewer/index.js.map +1 -1
  32. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +6 -8
  33. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
  34. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +3 -4
  35. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  36. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +7 -9
  37. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
  38. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +18 -21
  39. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  40. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +13 -15
  41. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
  42. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +36 -39
  43. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  44. package/lib/commonjs/components/MessageSearchResultItem.js +20 -18
  45. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
  46. package/lib/commonjs/components/NewMessagesButton.js +7 -9
  47. package/lib/commonjs/components/NewMessagesButton.js.map +1 -1
  48. package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +6 -8
  49. package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
  50. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +13 -15
  51. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
  52. package/lib/commonjs/components/ProviderLayout.js +5 -7
  53. package/lib/commonjs/components/ProviderLayout.js.map +1 -1
  54. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +28 -42
  55. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  56. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +27 -40
  57. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  58. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +12 -15
  59. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  60. package/lib/commonjs/components/ReactionAddons/index.js +2 -3
  61. package/lib/commonjs/components/ReactionAddons/index.js.map +1 -1
  62. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +28 -39
  63. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  64. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +44 -48
  65. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  66. package/lib/commonjs/components/ReactionBottomSheets/index.js +2 -3
  67. package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
  68. package/lib/commonjs/components/ScrollToBottomButton.js +6 -8
  69. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  70. package/lib/commonjs/components/StatusComposition.js +9 -11
  71. package/lib/commonjs/components/StatusComposition.js.map +1 -1
  72. package/lib/commonjs/components/ThreadChatFlatList/index.js +13 -15
  73. package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -1
  74. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +2 -3
  75. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
  76. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +3 -4
  77. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
  78. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +2 -3
  79. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
  80. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +8 -8
  81. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  82. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +20 -14
  83. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
  84. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +24 -18
  85. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
  86. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +23 -22
  87. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
  88. package/lib/commonjs/components/TypedPlaceholder.js +6 -8
  89. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  90. package/lib/commonjs/components/UserActionBar.js +20 -20
  91. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  92. package/lib/commonjs/components/UserSelectableBar.js +14 -14
  93. package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
  94. package/lib/commonjs/constants.js +6 -12
  95. package/lib/commonjs/constants.js.map +1 -1
  96. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +12 -14
  97. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  98. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js +8 -9
  99. package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
  100. package/lib/commonjs/containers/SendbirdUIKitContainer.js +17 -20
  101. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  102. package/lib/commonjs/contexts/LocalizationCtx.js +6 -8
  103. package/lib/commonjs/contexts/LocalizationCtx.js.map +1 -1
  104. package/lib/commonjs/contexts/PlatformServiceCtx.js +8 -10
  105. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  106. package/lib/commonjs/contexts/ReactionCtx.js +14 -19
  107. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
  108. package/lib/commonjs/contexts/SBUHandlersCtx.js +7 -9
  109. package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -1
  110. package/lib/commonjs/contexts/SendbirdChatCtx.js +16 -18
  111. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  112. package/lib/commonjs/contexts/UserProfileCtx.js +13 -24
  113. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  114. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -18
  115. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  116. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +9 -11
  117. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  118. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +12 -16
  119. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  120. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +2 -3
  121. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
  122. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +2 -3
  123. package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
  124. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +24 -33
  125. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  126. package/lib/commonjs/domain/groupChannel/index.js +1 -1
  127. package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
  128. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +12 -14
  129. package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  130. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +19 -22
  131. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  132. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  133. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +6 -8
  134. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  135. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +15 -25
  136. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  137. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +2 -3
  138. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
  139. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +5 -7
  140. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
  141. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +2 -3
  142. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
  143. package/lib/commonjs/domain/groupChannelBannedUsers/index.js +1 -1
  144. package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -1
  145. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +11 -13
  146. package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
  147. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +8 -10
  148. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  149. package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -1
  150. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +3 -4
  151. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  152. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +20 -32
  153. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  154. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +2 -3
  155. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
  156. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +2 -3
  157. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
  158. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +13 -17
  159. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  160. package/lib/commonjs/domain/groupChannelList/index.js +1 -1
  161. package/lib/commonjs/domain/groupChannelList/index.js.map +1 -1
  162. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +11 -13
  163. package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
  164. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +7 -9
  165. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
  166. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  167. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +6 -8
  168. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  169. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +9 -11
  170. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  171. package/lib/commonjs/domain/groupChannelModeration/index.js +1 -1
  172. package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -1
  173. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +8 -10
  174. package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
  175. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +8 -10
  176. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  177. package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -1
  178. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +6 -8
  179. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  180. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +15 -25
  181. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  182. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +2 -3
  183. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
  184. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +5 -7
  185. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
  186. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +2 -3
  187. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
  188. package/lib/commonjs/domain/groupChannelMutedMembers/index.js +1 -1
  189. package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -1
  190. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +11 -13
  191. package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
  192. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +8 -10
  193. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  194. package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -1
  195. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +6 -8
  196. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  197. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +19 -18
  198. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  199. package/lib/commonjs/domain/groupChannelNotifications/index.js +1 -1
  200. package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -1
  201. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +8 -10
  202. package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
  203. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +8 -10
  204. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  205. package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -1
  206. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +7 -9
  207. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  208. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +15 -25
  209. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  210. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +2 -3
  211. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
  212. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +5 -7
  213. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
  214. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +2 -3
  215. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
  216. package/lib/commonjs/domain/groupChannelOperators/index.js +1 -1
  217. package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -1
  218. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +11 -13
  219. package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
  220. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +8 -10
  221. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  222. package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -1
  223. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +6 -8
  224. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  225. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +4 -5
  226. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  227. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +12 -14
  228. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  229. package/lib/commonjs/domain/groupChannelSettings/index.js +1 -1
  230. package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -1
  231. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +9 -11
  232. package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
  233. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +10 -13
  234. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  235. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  236. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +11 -15
  237. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  238. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +9 -11
  239. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  240. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +12 -16
  241. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  242. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +34 -37
  243. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  244. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +2 -3
  245. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
  246. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +2 -3
  247. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
  248. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +23 -32
  249. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  250. package/lib/commonjs/domain/groupChannelThread/index.js +1 -1
  251. package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -1
  252. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +13 -15
  253. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
  254. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +12 -14
  255. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  256. package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -1
  257. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  258. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +18 -18
  259. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  260. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +13 -16
  261. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -1
  262. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +2 -3
  263. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
  264. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +5 -7
  265. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
  266. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +2 -3
  267. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
  268. package/lib/commonjs/domain/messageSearch/index.js +1 -1
  269. package/lib/commonjs/domain/messageSearch/index.js.map +1 -1
  270. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +11 -13
  271. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
  272. package/lib/commonjs/domain/messageSearch/module/moduleContext.js +7 -9
  273. package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -1
  274. package/lib/commonjs/domain/messageSearch/types.js.map +1 -1
  275. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js +10 -12
  276. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  277. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +9 -11
  278. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  279. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +10 -13
  280. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  281. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js +2 -3
  282. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
  283. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js +2 -3
  284. package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
  285. package/lib/commonjs/domain/openChannel/index.js +1 -1
  286. package/lib/commonjs/domain/openChannel/index.js.map +1 -1
  287. package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js +11 -13
  288. package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
  289. package/lib/commonjs/domain/openChannel/module/moduleContext.js +10 -12
  290. package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
  291. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  292. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +6 -8
  293. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  294. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +15 -25
  295. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
  296. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js +2 -3
  297. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
  298. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +5 -7
  299. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
  300. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js +2 -3
  301. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
  302. package/lib/commonjs/domain/openChannelBannedUsers/index.js +1 -1
  303. package/lib/commonjs/domain/openChannelBannedUsers/index.js.map +1 -1
  304. package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +11 -13
  305. package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
  306. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js +8 -10
  307. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  308. package/lib/commonjs/domain/openChannelBannedUsers/types.js.map +1 -1
  309. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js +8 -10
  310. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  311. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +14 -16
  312. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  313. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js +2 -3
  314. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
  315. package/lib/commonjs/domain/openChannelCreate/index.js +1 -1
  316. package/lib/commonjs/domain/openChannelCreate/index.js.map +1 -1
  317. package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js +9 -11
  318. package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
  319. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js +7 -9
  320. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  321. package/lib/commonjs/domain/openChannelCreate/types.js.map +1 -1
  322. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js +6 -8
  323. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  324. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +20 -32
  325. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  326. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js +2 -3
  327. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
  328. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js +5 -7
  329. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
  330. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js +2 -3
  331. package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
  332. package/lib/commonjs/domain/openChannelList/index.js +1 -1
  333. package/lib/commonjs/domain/openChannelList/index.js.map +1 -1
  334. package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js +11 -13
  335. package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
  336. package/lib/commonjs/domain/openChannelList/module/moduleContext.js +7 -9
  337. package/lib/commonjs/domain/openChannelList/module/moduleContext.js.map +1 -1
  338. package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
  339. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js +6 -8
  340. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  341. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js +8 -10
  342. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
  343. package/lib/commonjs/domain/openChannelModeration/index.js +1 -1
  344. package/lib/commonjs/domain/openChannelModeration/index.js.map +1 -1
  345. package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js +8 -10
  346. package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
  347. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js +8 -10
  348. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  349. package/lib/commonjs/domain/openChannelModeration/types.js.map +1 -1
  350. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +6 -8
  351. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  352. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +15 -25
  353. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
  354. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js +2 -3
  355. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
  356. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +5 -7
  357. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
  358. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js +2 -3
  359. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
  360. package/lib/commonjs/domain/openChannelMutedParticipants/index.js +1 -1
  361. package/lib/commonjs/domain/openChannelMutedParticipants/index.js.map +1 -1
  362. package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +11 -13
  363. package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
  364. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js +8 -10
  365. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  366. package/lib/commonjs/domain/openChannelMutedParticipants/types.js.map +1 -1
  367. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +7 -9
  368. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  369. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js +15 -25
  370. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
  371. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js +2 -3
  372. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
  373. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +5 -7
  374. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
  375. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js +2 -3
  376. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
  377. package/lib/commonjs/domain/openChannelOperators/index.js +1 -1
  378. package/lib/commonjs/domain/openChannelOperators/index.js.map +1 -1
  379. package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +11 -13
  380. package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
  381. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js +8 -10
  382. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  383. package/lib/commonjs/domain/openChannelOperators/types.js.map +1 -1
  384. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +6 -8
  385. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  386. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +4 -5
  387. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  388. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +9 -11
  389. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  390. package/lib/commonjs/domain/openChannelSettings/index.js +1 -1
  391. package/lib/commonjs/domain/openChannelSettings/index.js.map +1 -1
  392. package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +9 -11
  393. package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
  394. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js +9 -11
  395. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  396. package/lib/commonjs/domain/openChannelSettings/types.js.map +1 -1
  397. package/lib/commonjs/domain/openChannelUserList/types.js.map +1 -1
  398. package/lib/commonjs/domain/userList/component/UserListHeader.js +10 -12
  399. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -1
  400. package/lib/commonjs/domain/userList/component/UserListList.js +16 -26
  401. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  402. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +2 -3
  403. package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -1
  404. package/lib/commonjs/domain/userList/component/UserListStatusError.js +5 -7
  405. package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
  406. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +2 -3
  407. package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -1
  408. package/lib/commonjs/domain/userList/index.js +1 -1
  409. package/lib/commonjs/domain/userList/index.js.map +1 -1
  410. package/lib/commonjs/domain/userList/module/createUserListModule.js +11 -13
  411. package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
  412. package/lib/commonjs/domain/userList/module/moduleContext.js +9 -11
  413. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
  414. package/lib/commonjs/domain/userList/types.js.map +1 -1
  415. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +10 -12
  416. package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
  417. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +12 -15
  418. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  419. package/lib/commonjs/fragments/createGroupChannelFragment.js +28 -30
  420. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  421. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +13 -16
  422. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  423. package/lib/commonjs/fragments/createGroupChannelListFragment.js +12 -14
  424. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  425. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +16 -18
  426. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  427. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +13 -19
  428. package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -1
  429. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +12 -14
  430. package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
  431. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +6 -8
  432. package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
  433. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +13 -15
  434. package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
  435. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +15 -18
  436. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  437. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +15 -21
  438. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  439. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +25 -27
  440. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
  441. package/lib/commonjs/fragments/createMessageSearchFragment.js +15 -18
  442. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  443. package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js +10 -12
  444. package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
  445. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js +8 -10
  446. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js.map +1 -1
  447. package/lib/commonjs/fragments/createOpenChannelFragment.js +24 -26
  448. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  449. package/lib/commonjs/fragments/createOpenChannelListFragment.js +9 -11
  450. package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
  451. package/lib/commonjs/fragments/createOpenChannelModerationFragment.js +13 -19
  452. package/lib/commonjs/fragments/createOpenChannelModerationFragment.js.map +1 -1
  453. package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js +10 -12
  454. package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
  455. package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js +11 -13
  456. package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
  457. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js +13 -15
  458. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  459. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js +15 -18
  460. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  461. package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js +14 -20
  462. package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js.map +1 -1
  463. package/lib/commonjs/hooks/useChannelInputItems.js +1 -1
  464. package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -1
  465. package/lib/commonjs/hooks/useConnection.js +2 -3
  466. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  467. package/lib/commonjs/hooks/useContext.js.map +1 -1
  468. package/lib/commonjs/hooks/useKeyboardStatus.js +1 -2
  469. package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -1
  470. package/lib/commonjs/hooks/useMentionSuggestion.js +3 -5
  471. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
  472. package/lib/commonjs/hooks/useMentionTextInput.js +4 -4
  473. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
  474. package/lib/commonjs/hooks/usePushTokenRegistration.js +2 -3
  475. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
  476. package/lib/commonjs/hooks/useVoiceMessageInput.js +13 -17
  477. package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -1
  478. package/lib/commonjs/index.js +3 -3
  479. package/lib/commonjs/index.js.map +1 -1
  480. package/lib/commonjs/libs/EmojiManager.js +6 -8
  481. package/lib/commonjs/libs/EmojiManager.js.map +1 -1
  482. package/lib/commonjs/libs/ImageCompressionConfig.js +4 -5
  483. package/lib/commonjs/libs/ImageCompressionConfig.js.map +1 -1
  484. package/lib/commonjs/libs/InternalLocalCacheStorage.js +5 -11
  485. package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
  486. package/lib/commonjs/libs/MentionConfig.js +4 -5
  487. package/lib/commonjs/libs/MentionConfig.js.map +1 -1
  488. package/lib/commonjs/libs/MentionManager.js +45 -31
  489. package/lib/commonjs/libs/MentionManager.js.map +1 -1
  490. package/lib/commonjs/libs/SBUError.js +3 -3
  491. package/lib/commonjs/libs/SBUError.js.map +1 -1
  492. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  493. package/lib/commonjs/libs/VoiceMessageConfig.js +4 -5
  494. package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -1
  495. package/lib/commonjs/libs/VoiceMessageStatusManager.js +9 -10
  496. package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -1
  497. package/lib/commonjs/localization/StringSet.en.js +1 -2
  498. package/lib/commonjs/localization/StringSet.en.js.map +1 -1
  499. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  500. package/lib/commonjs/localization/createBaseStringSet.js +25 -30
  501. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  502. package/lib/commonjs/platform/createClipboardService.expo.js +1 -2
  503. package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -1
  504. package/lib/commonjs/platform/createClipboardService.native.js +1 -2
  505. package/lib/commonjs/platform/createClipboardService.native.js.map +1 -1
  506. package/lib/commonjs/platform/createFileService.expo.js +12 -15
  507. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  508. package/lib/commonjs/platform/createFileService.native.js +30 -36
  509. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  510. package/lib/commonjs/platform/createMediaService.expo.js +26 -31
  511. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
  512. package/lib/commonjs/platform/createMediaService.native.js +24 -29
  513. package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
  514. package/lib/commonjs/platform/createNotificationService.expo.js +4 -8
  515. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
  516. package/lib/commonjs/platform/createNotificationService.native.js +5 -7
  517. package/lib/commonjs/platform/createNotificationService.native.js.map +1 -1
  518. package/lib/commonjs/platform/createPlayerService.expo.js +8 -10
  519. package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -1
  520. package/lib/commonjs/platform/createPlayerService.native.js +8 -10
  521. package/lib/commonjs/platform/createPlayerService.native.js.map +1 -1
  522. package/lib/commonjs/platform/createRecorderService.expo.js +8 -10
  523. package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -1
  524. package/lib/commonjs/platform/createRecorderService.native.js +10 -12
  525. package/lib/commonjs/platform/createRecorderService.native.js.map +1 -1
  526. package/lib/commonjs/platform/dynamicModule.js +2 -4
  527. package/lib/commonjs/platform/dynamicModule.js.map +1 -1
  528. package/lib/commonjs/platform/types.js.map +1 -1
  529. package/lib/commonjs/types.js +1 -2
  530. package/lib/commonjs/types.js.map +1 -1
  531. package/lib/commonjs/utils/expoBackwardUtils.js +24 -31
  532. package/lib/commonjs/utils/expoBackwardUtils.js.map +1 -1
  533. package/lib/commonjs/utils/expoPermissionGranted.js +2 -3
  534. package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -1
  535. package/lib/commonjs/utils/nativePermissionGranted.js +2 -3
  536. package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -1
  537. package/lib/commonjs/utils/normalizeFile.js +7 -9
  538. package/lib/commonjs/utils/normalizeFile.js.map +1 -1
  539. package/lib/commonjs/utils/promise.js +1 -2
  540. package/lib/commonjs/utils/promise.js.map +1 -1
  541. package/lib/commonjs/utils/pubsub.js +1 -2
  542. package/lib/commonjs/utils/pubsub.js.map +1 -1
  543. package/lib/commonjs/version.js +2 -3
  544. package/lib/commonjs/version.js.map +1 -1
  545. package/lib/module/components/ChannelCover.js +7 -8
  546. package/lib/module/components/ChannelCover.js.map +1 -1
  547. package/lib/module/components/ChannelInput/AttachmentsButton.js +5 -6
  548. package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -1
  549. package/lib/module/components/ChannelInput/EditInput.js +15 -14
  550. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  551. package/lib/module/components/ChannelInput/MessageToReplyPreview.js +36 -49
  552. package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
  553. package/lib/module/components/ChannelInput/SendInput.js +40 -44
  554. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  555. package/lib/module/components/ChannelInput/VoiceMessageInput.js +8 -9
  556. package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  557. package/lib/module/components/ChannelInput/index.js +19 -23
  558. package/lib/module/components/ChannelInput/index.js.map +1 -1
  559. package/lib/module/components/ChannelMessageList/index.js +58 -73
  560. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  561. package/lib/module/components/ChannelThreadMessageList/index.js +53 -68
  562. package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
  563. package/lib/module/components/ChatFlatList/FlatListInternal.js.map +1 -1
  564. package/lib/module/components/ChatFlatList/index.js +9 -10
  565. package/lib/module/components/ChatFlatList/index.js.map +1 -1
  566. package/lib/module/components/FileViewer/FileViewerContent.js +14 -16
  567. package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -1
  568. package/lib/module/components/FileViewer/FileViewerFooter.js +12 -16
  569. package/lib/module/components/FileViewer/FileViewerFooter.js.map +1 -1
  570. package/lib/module/components/FileViewer/FileViewerHeader.js +13 -18
  571. package/lib/module/components/FileViewer/FileViewerHeader.js.map +1 -1
  572. package/lib/module/components/FileViewer/index.js +11 -12
  573. package/lib/module/components/FileViewer/index.js.map +1 -1
  574. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +4 -5
  575. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
  576. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  577. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +5 -6
  578. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
  579. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +15 -17
  580. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  581. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +11 -12
  582. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
  583. package/lib/module/components/GroupChannelMessageRenderer/index.js +32 -34
  584. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  585. package/lib/module/components/MessageSearchResultItem.js +18 -15
  586. package/lib/module/components/MessageSearchResultItem.js.map +1 -1
  587. package/lib/module/components/NewMessagesButton.js +5 -6
  588. package/lib/module/components/NewMessagesButton.js.map +1 -1
  589. package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +4 -5
  590. package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
  591. package/lib/module/components/OpenChannelMessageRenderer/index.js +11 -12
  592. package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
  593. package/lib/module/components/ProviderLayout.js +3 -4
  594. package/lib/module/components/ProviderLayout.js.map +1 -1
  595. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +27 -40
  596. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  597. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +26 -38
  598. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  599. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +10 -12
  600. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  601. package/lib/module/components/ReactionAddons/index.js.map +1 -1
  602. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +27 -37
  603. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  604. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +43 -46
  605. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  606. package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
  607. package/lib/module/components/ScrollToBottomButton.js +4 -5
  608. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  609. package/lib/module/components/StatusComposition.js +7 -8
  610. package/lib/module/components/StatusComposition.js.map +1 -1
  611. package/lib/module/components/ThreadChatFlatList/index.js +9 -10
  612. package/lib/module/components/ThreadChatFlatList/index.js.map +1 -1
  613. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
  614. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +1 -1
  615. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
  616. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
  617. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +5 -4
  618. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  619. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +19 -12
  620. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
  621. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +22 -15
  622. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
  623. package/lib/module/components/ThreadParentMessageRenderer/index.js +19 -17
  624. package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
  625. package/lib/module/components/TypedPlaceholder.js +4 -5
  626. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  627. package/lib/module/components/UserActionBar.js +19 -18
  628. package/lib/module/components/UserActionBar.js.map +1 -1
  629. package/lib/module/components/UserSelectableBar.js +13 -12
  630. package/lib/module/components/UserSelectableBar.js.map +1 -1
  631. package/lib/module/constants.js.map +1 -1
  632. package/lib/module/containers/GroupChannelPreviewContainer.js +10 -11
  633. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  634. package/lib/module/containers/InternalErrorBoundaryContainer.js +6 -6
  635. package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
  636. package/lib/module/containers/SendbirdUIKitContainer.js +12 -13
  637. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  638. package/lib/module/contexts/LocalizationCtx.js +4 -5
  639. package/lib/module/contexts/LocalizationCtx.js.map +1 -1
  640. package/lib/module/contexts/PlatformServiceCtx.js +5 -6
  641. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  642. package/lib/module/contexts/ReactionCtx.js +11 -15
  643. package/lib/module/contexts/ReactionCtx.js.map +1 -1
  644. package/lib/module/contexts/SBUHandlersCtx.js +5 -6
  645. package/lib/module/contexts/SBUHandlersCtx.js.map +1 -1
  646. package/lib/module/contexts/SendbirdChatCtx.js +12 -13
  647. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  648. package/lib/module/contexts/UserProfileCtx.js +11 -21
  649. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  650. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +11 -14
  651. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  652. package/lib/module/domain/groupChannel/component/GroupChannelInput.js +5 -6
  653. package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  654. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +9 -13
  655. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  656. package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
  657. package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
  658. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +22 -30
  659. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  660. package/lib/module/domain/groupChannel/index.js.map +1 -1
  661. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +10 -11
  662. package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
  663. package/lib/module/domain/groupChannel/module/moduleContext.js +16 -18
  664. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  665. package/lib/module/domain/groupChannel/types.js.map +1 -1
  666. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +3 -4
  667. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  668. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +14 -23
  669. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
  670. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
  671. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +3 -4
  672. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
  673. package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
  674. package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -1
  675. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +9 -10
  676. package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
  677. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +4 -5
  678. package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  679. package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -1
  680. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  681. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +19 -30
  682. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  683. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
  684. package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
  685. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +10 -13
  686. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  687. package/lib/module/domain/groupChannelList/index.js.map +1 -1
  688. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +9 -10
  689. package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
  690. package/lib/module/domain/groupChannelList/module/moduleContext.js +3 -4
  691. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -1
  692. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  693. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +3 -4
  694. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  695. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +6 -7
  696. package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  697. package/lib/module/domain/groupChannelModeration/index.js.map +1 -1
  698. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +6 -7
  699. package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
  700. package/lib/module/domain/groupChannelModeration/module/moduleContext.js +4 -5
  701. package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  702. package/lib/module/domain/groupChannelModeration/types.js.map +1 -1
  703. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +3 -4
  704. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  705. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +14 -23
  706. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
  707. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
  708. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +3 -4
  709. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
  710. package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
  711. package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -1
  712. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +9 -10
  713. package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
  714. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +4 -5
  715. package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  716. package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -1
  717. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +3 -4
  718. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  719. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +18 -16
  720. package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  721. package/lib/module/domain/groupChannelNotifications/index.js.map +1 -1
  722. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +6 -7
  723. package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
  724. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +4 -5
  725. package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  726. package/lib/module/domain/groupChannelNotifications/types.js.map +1 -1
  727. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +4 -5
  728. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  729. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +14 -23
  730. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
  731. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
  732. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +3 -4
  733. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
  734. package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
  735. package/lib/module/domain/groupChannelOperators/index.js.map +1 -1
  736. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +9 -10
  737. package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
  738. package/lib/module/domain/groupChannelOperators/module/moduleContext.js +4 -5
  739. package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  740. package/lib/module/domain/groupChannelOperators/types.js.map +1 -1
  741. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +3 -4
  742. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  743. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  744. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +9 -10
  745. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  746. package/lib/module/domain/groupChannelSettings/index.js.map +1 -1
  747. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +7 -8
  748. package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
  749. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +7 -9
  750. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  751. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  752. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +9 -12
  753. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  754. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +5 -6
  755. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  756. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +9 -12
  757. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  758. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +31 -33
  759. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  760. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
  761. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
  762. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +20 -28
  763. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  764. package/lib/module/domain/groupChannelThread/index.js.map +1 -1
  765. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +11 -12
  766. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
  767. package/lib/module/domain/groupChannelThread/module/moduleContext.js +8 -9
  768. package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  769. package/lib/module/domain/groupChannelThread/types.js.map +1 -1
  770. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  771. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +16 -15
  772. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  773. package/lib/module/domain/messageSearch/component/MessageSearchList.js +11 -13
  774. package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -1
  775. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
  776. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +3 -4
  777. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
  778. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
  779. package/lib/module/domain/messageSearch/index.js.map +1 -1
  780. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +9 -10
  781. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
  782. package/lib/module/domain/messageSearch/module/moduleContext.js +3 -4
  783. package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -1
  784. package/lib/module/domain/messageSearch/types.js.map +1 -1
  785. package/lib/module/domain/openChannel/component/OpenChannelHeader.js +6 -7
  786. package/lib/module/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  787. package/lib/module/domain/openChannel/component/OpenChannelInput.js +5 -6
  788. package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  789. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +6 -8
  790. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  791. package/lib/module/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
  792. package/lib/module/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
  793. package/lib/module/domain/openChannel/index.js.map +1 -1
  794. package/lib/module/domain/openChannel/module/createOpenChannelModule.js +9 -10
  795. package/lib/module/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
  796. package/lib/module/domain/openChannel/module/moduleContext.js +6 -7
  797. package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
  798. package/lib/module/domain/openChannel/types.js.map +1 -1
  799. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +3 -4
  800. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  801. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +14 -23
  802. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
  803. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
  804. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +3 -4
  805. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
  806. package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
  807. package/lib/module/domain/openChannelBannedUsers/index.js.map +1 -1
  808. package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +9 -10
  809. package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
  810. package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js +4 -5
  811. package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  812. package/lib/module/domain/openChannelBannedUsers/types.js.map +1 -1
  813. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js +5 -6
  814. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  815. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +12 -13
  816. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  817. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
  818. package/lib/module/domain/openChannelCreate/index.js.map +1 -1
  819. package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js +7 -8
  820. package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
  821. package/lib/module/domain/openChannelCreate/module/moduleContext.js +3 -4
  822. package/lib/module/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  823. package/lib/module/domain/openChannelCreate/types.js.map +1 -1
  824. package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js +3 -4
  825. package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  826. package/lib/module/domain/openChannelList/component/OpenChannelListList.js +19 -30
  827. package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  828. package/lib/module/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
  829. package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js +3 -4
  830. package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
  831. package/lib/module/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
  832. package/lib/module/domain/openChannelList/index.js.map +1 -1
  833. package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js +9 -10
  834. package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
  835. package/lib/module/domain/openChannelList/module/moduleContext.js +3 -4
  836. package/lib/module/domain/openChannelList/module/moduleContext.js.map +1 -1
  837. package/lib/module/domain/openChannelList/types.js.map +1 -1
  838. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js +3 -4
  839. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  840. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js +6 -7
  841. package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
  842. package/lib/module/domain/openChannelModeration/index.js.map +1 -1
  843. package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js +6 -7
  844. package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
  845. package/lib/module/domain/openChannelModeration/module/moduleContext.js +4 -5
  846. package/lib/module/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  847. package/lib/module/domain/openChannelModeration/types.js.map +1 -1
  848. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +3 -4
  849. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  850. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +14 -23
  851. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
  852. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
  853. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +3 -4
  854. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
  855. package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
  856. package/lib/module/domain/openChannelMutedParticipants/index.js.map +1 -1
  857. package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +9 -10
  858. package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
  859. package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js +4 -5
  860. package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  861. package/lib/module/domain/openChannelMutedParticipants/types.js.map +1 -1
  862. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +4 -5
  863. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  864. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js +14 -23
  865. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
  866. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
  867. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +3 -4
  868. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
  869. package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
  870. package/lib/module/domain/openChannelOperators/index.js.map +1 -1
  871. package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +9 -10
  872. package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
  873. package/lib/module/domain/openChannelOperators/module/moduleContext.js +4 -5
  874. package/lib/module/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  875. package/lib/module/domain/openChannelOperators/types.js.map +1 -1
  876. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +3 -4
  877. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  878. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  879. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +6 -7
  880. package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  881. package/lib/module/domain/openChannelSettings/index.js.map +1 -1
  882. package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +7 -8
  883. package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
  884. package/lib/module/domain/openChannelSettings/module/moduleContext.js +5 -6
  885. package/lib/module/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  886. package/lib/module/domain/openChannelSettings/types.js.map +1 -1
  887. package/lib/module/domain/openChannelUserList/types.js.map +1 -1
  888. package/lib/module/domain/userList/component/UserListHeader.js +7 -8
  889. package/lib/module/domain/userList/component/UserListHeader.js.map +1 -1
  890. package/lib/module/domain/userList/component/UserListList.js +14 -23
  891. package/lib/module/domain/userList/component/UserListList.js.map +1 -1
  892. package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -1
  893. package/lib/module/domain/userList/component/UserListStatusError.js +3 -4
  894. package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
  895. package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -1
  896. package/lib/module/domain/userList/index.js.map +1 -1
  897. package/lib/module/domain/userList/module/createUserListModule.js +9 -10
  898. package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
  899. package/lib/module/domain/userList/module/moduleContext.js +5 -6
  900. package/lib/module/domain/userList/module/moduleContext.js.map +1 -1
  901. package/lib/module/domain/userList/types.js.map +1 -1
  902. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +8 -9
  903. package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
  904. package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -12
  905. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  906. package/lib/module/fragments/createGroupChannelFragment.js +24 -25
  907. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  908. package/lib/module/fragments/createGroupChannelInviteFragment.js +9 -11
  909. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  910. package/lib/module/fragments/createGroupChannelListFragment.js +10 -11
  911. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  912. package/lib/module/fragments/createGroupChannelMembersFragment.js +14 -15
  913. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  914. package/lib/module/fragments/createGroupChannelModerationFragment.js +12 -17
  915. package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -1
  916. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +12 -13
  917. package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
  918. package/lib/module/fragments/createGroupChannelNotificationsFragment.js +4 -5
  919. package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
  920. package/lib/module/fragments/createGroupChannelOperatorsFragment.js +13 -14
  921. package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
  922. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +11 -13
  923. package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  924. package/lib/module/fragments/createGroupChannelSettingsFragment.js +14 -19
  925. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  926. package/lib/module/fragments/createGroupChannelThreadFragment.js +21 -22
  927. package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -1
  928. package/lib/module/fragments/createMessageSearchFragment.js +11 -13
  929. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
  930. package/lib/module/fragments/createOpenChannelBannedUsersFragment.js +8 -9
  931. package/lib/module/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
  932. package/lib/module/fragments/createOpenChannelCreateFragment.js +5 -6
  933. package/lib/module/fragments/createOpenChannelCreateFragment.js.map +1 -1
  934. package/lib/module/fragments/createOpenChannelFragment.js +20 -21
  935. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  936. package/lib/module/fragments/createOpenChannelListFragment.js +7 -8
  937. package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
  938. package/lib/module/fragments/createOpenChannelModerationFragment.js +12 -17
  939. package/lib/module/fragments/createOpenChannelModerationFragment.js.map +1 -1
  940. package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js +8 -9
  941. package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
  942. package/lib/module/fragments/createOpenChannelOperatorsFragment.js +9 -10
  943. package/lib/module/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
  944. package/lib/module/fragments/createOpenChannelParticipantsFragment.js +9 -10
  945. package/lib/module/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  946. package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js +11 -13
  947. package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  948. package/lib/module/fragments/createOpenChannelSettingsFragment.js +13 -18
  949. package/lib/module/fragments/createOpenChannelSettingsFragment.js.map +1 -1
  950. package/lib/module/hooks/useChannelInputItems.js.map +1 -1
  951. package/lib/module/hooks/useConnection.js.map +1 -1
  952. package/lib/module/hooks/useContext.js.map +1 -1
  953. package/lib/module/hooks/useKeyboardStatus.js.map +1 -1
  954. package/lib/module/hooks/useMentionSuggestion.js +3 -4
  955. package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
  956. package/lib/module/hooks/useMentionTextInput.js +4 -2
  957. package/lib/module/hooks/useMentionTextInput.js.map +1 -1
  958. package/lib/module/hooks/usePushTokenRegistration.js +1 -1
  959. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
  960. package/lib/module/hooks/useVoiceMessageInput.js +11 -14
  961. package/lib/module/hooks/useVoiceMessageInput.js.map +1 -1
  962. package/lib/module/index.js.map +1 -1
  963. package/lib/module/libs/EmojiManager.js +4 -5
  964. package/lib/module/libs/EmojiManager.js.map +1 -1
  965. package/lib/module/libs/ImageCompressionConfig.js +3 -3
  966. package/lib/module/libs/ImageCompressionConfig.js.map +1 -1
  967. package/lib/module/libs/InternalLocalCacheStorage.js +5 -11
  968. package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
  969. package/lib/module/libs/MentionConfig.js +3 -3
  970. package/lib/module/libs/MentionConfig.js.map +1 -1
  971. package/lib/module/libs/MentionManager.js +44 -29
  972. package/lib/module/libs/MentionManager.js.map +1 -1
  973. package/lib/module/libs/SBUError.js +3 -3
  974. package/lib/module/libs/SBUError.js.map +1 -1
  975. package/lib/module/libs/SBUUtils.js.map +1 -1
  976. package/lib/module/libs/VoiceMessageConfig.js +3 -3
  977. package/lib/module/libs/VoiceMessageConfig.js.map +1 -1
  978. package/lib/module/libs/VoiceMessageStatusManager.js +8 -8
  979. package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -1
  980. package/lib/module/localization/StringSet.en.js.map +1 -1
  981. package/lib/module/localization/StringSet.type.js.map +1 -1
  982. package/lib/module/localization/createBaseStringSet.js +25 -30
  983. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  984. package/lib/module/platform/createClipboardService.expo.js.map +1 -1
  985. package/lib/module/platform/createClipboardService.native.js.map +1 -1
  986. package/lib/module/platform/createFileService.expo.js +10 -12
  987. package/lib/module/platform/createFileService.expo.js.map +1 -1
  988. package/lib/module/platform/createFileService.native.js +28 -33
  989. package/lib/module/platform/createFileService.native.js.map +1 -1
  990. package/lib/module/platform/createMediaService.expo.js +24 -28
  991. package/lib/module/platform/createMediaService.expo.js.map +1 -1
  992. package/lib/module/platform/createMediaService.native.js +22 -26
  993. package/lib/module/platform/createMediaService.native.js.map +1 -1
  994. package/lib/module/platform/createNotificationService.expo.js +3 -6
  995. package/lib/module/platform/createNotificationService.expo.js.map +1 -1
  996. package/lib/module/platform/createNotificationService.native.js +4 -5
  997. package/lib/module/platform/createNotificationService.native.js.map +1 -1
  998. package/lib/module/platform/createPlayerService.expo.js +6 -7
  999. package/lib/module/platform/createPlayerService.expo.js.map +1 -1
  1000. package/lib/module/platform/createPlayerService.native.js +7 -8
  1001. package/lib/module/platform/createPlayerService.native.js.map +1 -1
  1002. package/lib/module/platform/createRecorderService.expo.js +6 -7
  1003. package/lib/module/platform/createRecorderService.expo.js.map +1 -1
  1004. package/lib/module/platform/createRecorderService.native.js +8 -9
  1005. package/lib/module/platform/createRecorderService.native.js.map +1 -1
  1006. package/lib/module/platform/dynamicModule.js +1 -2
  1007. package/lib/module/platform/dynamicModule.js.map +1 -1
  1008. package/lib/module/platform/types.js.map +1 -1
  1009. package/lib/module/types.js.map +1 -1
  1010. package/lib/module/utils/expoBackwardUtils.js +22 -28
  1011. package/lib/module/utils/expoBackwardUtils.js.map +1 -1
  1012. package/lib/module/utils/expoPermissionGranted.js +1 -1
  1013. package/lib/module/utils/expoPermissionGranted.js.map +1 -1
  1014. package/lib/module/utils/nativePermissionGranted.js +1 -1
  1015. package/lib/module/utils/nativePermissionGranted.js.map +1 -1
  1016. package/lib/module/utils/normalizeFile.js +6 -7
  1017. package/lib/module/utils/normalizeFile.js.map +1 -1
  1018. package/lib/module/utils/promise.js.map +1 -1
  1019. package/lib/module/utils/pubsub.js.map +1 -1
  1020. package/lib/module/version.js +1 -1
  1021. package/lib/module/version.js.map +1 -1
  1022. package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +1 -1
  1023. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -1
  1024. package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +2 -2
  1025. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +1 -0
  1026. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +4 -4
  1027. package/lib/typescript/src/contexts/UserProfileCtx.d.ts +3 -3
  1028. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
  1029. package/lib/typescript/src/libs/MentionManager.d.ts +1 -0
  1030. package/lib/typescript/src/localization/StringSet.type.d.ts +5 -2
  1031. package/lib/typescript/src/version.d.ts +1 -1
  1032. package/package.json +6 -6
  1033. package/src/components/ChannelInput/AttachmentsButton.tsx +1 -1
  1034. package/src/components/ChannelInput/EditInput.tsx +2 -0
  1035. package/src/components/ChannelInput/MessageToReplyPreview.tsx +29 -33
  1036. package/src/components/ChannelInput/SendInput.tsx +3 -1
  1037. package/src/components/ChannelInput/VoiceMessageInput.tsx +4 -4
  1038. package/src/components/ChannelInput/index.tsx +19 -11
  1039. package/src/components/ChannelMessageList/index.tsx +5 -7
  1040. package/src/components/ChannelThreadMessageList/index.tsx +5 -7
  1041. package/src/components/FileViewer/FileViewerFooter.tsx +6 -6
  1042. package/src/components/FileViewer/FileViewerHeader.tsx +6 -7
  1043. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +4 -4
  1044. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +5 -5
  1045. package/src/components/GroupChannelMessageRenderer/index.tsx +3 -2
  1046. package/src/components/MessageSearchResultItem.tsx +17 -15
  1047. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +5 -7
  1048. package/src/components/ReactionAddons/MessageReactionAddon.tsx +8 -14
  1049. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +1 -1
  1050. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +7 -8
  1051. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +33 -26
  1052. package/src/components/ReactionBottomSheets/index.tsx +2 -2
  1053. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +1 -1
  1054. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +4 -2
  1055. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +15 -6
  1056. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +37 -31
  1057. package/src/components/ThreadParentMessageRenderer/index.tsx +12 -2
  1058. package/src/components/UserActionBar.tsx +11 -10
  1059. package/src/components/UserSelectableBar.tsx +8 -7
  1060. package/src/containers/GroupChannelPreviewContainer.tsx +4 -5
  1061. package/src/containers/SendbirdUIKitContainer.tsx +3 -2
  1062. package/src/contexts/ReactionCtx.tsx +0 -3
  1063. package/src/contexts/UserProfileCtx.tsx +14 -13
  1064. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +6 -7
  1065. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +9 -5
  1066. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +15 -15
  1067. package/src/domain/groupChannel/module/moduleContext.tsx +2 -4
  1068. package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -4
  1069. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +10 -4
  1070. package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +3 -4
  1071. package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +26 -11
  1072. package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +3 -5
  1073. package/src/domain/groupChannelSettings/module/moduleContext.tsx +2 -4
  1074. package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +12 -6
  1075. package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +3 -4
  1076. package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +11 -10
  1077. package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +12 -13
  1078. package/src/domain/messageSearch/component/MessageSearchHeader.tsx +9 -6
  1079. package/src/domain/openChannel/component/OpenChannelHeader.tsx +1 -1
  1080. package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.tsx +3 -4
  1081. package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +6 -6
  1082. package/src/domain/openChannelList/component/OpenChannelListList.tsx +3 -4
  1083. package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.tsx +3 -4
  1084. package/src/domain/openChannelOperators/component/OpenChannelOperatorsList.tsx +3 -4
  1085. package/src/domain/userList/component/UserListList.tsx +3 -5
  1086. package/src/fragments/createGroupChannelFragment.tsx +1 -1
  1087. package/src/fragments/createGroupChannelMembersFragment.tsx +4 -5
  1088. package/src/fragments/createGroupChannelModerationFragment.tsx +4 -5
  1089. package/src/fragments/createGroupChannelMutedMembersFragment.tsx +4 -5
  1090. package/src/fragments/createGroupChannelOperatorsFragment.tsx +4 -5
  1091. package/src/fragments/createGroupChannelSettingsFragment.tsx +4 -5
  1092. package/src/fragments/createOpenChannelModerationFragment.tsx +4 -5
  1093. package/src/fragments/createOpenChannelSettingsFragment.tsx +4 -5
  1094. package/src/hooks/useMentionSuggestion.ts +3 -5
  1095. package/src/hooks/useMentionTextInput.ts +1 -0
  1096. package/src/libs/MentionManager.tsx +29 -3
  1097. package/src/localization/StringSet.type.ts +5 -1
  1098. package/src/localization/createBaseStringSet.ts +3 -0
  1099. package/src/platform/createFileService.native.ts +1 -1
  1100. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","ScrollView","useSafeAreaInsets","createStyleSheet","useUIKitTheme","NOOP","createOpenChannelSettingsModule","createOpenChannelSettingsFragment","initModule","OpenChannelSettingsModule","_ref","onPressHeaderLeft","channel","onPressMenuModeration","onPressMenuParticipants","onPressMenuDeleteChannel","onNavigateToOpenChannel","menuItemsCreator","colors","left","right","createElement","Provider","Header","style","backgroundColor","background","contentContainerStyle","paddingLeft","styles","viewContainer","paddingHorizontal","paddingRight","Info","Menu"],"sources":["createOpenChannelSettingsFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport { createOpenChannelSettingsModule } from '../domain/openChannelSettings';\nimport type { OpenChannelSettingsFragment, OpenChannelSettingsModule } from '../domain/openChannelSettings/types';\n\nconst createOpenChannelSettingsFragment = (\n initModule?: Partial<OpenChannelSettingsModule>,\n): OpenChannelSettingsFragment => {\n const OpenChannelSettingsModule = createOpenChannelSettingsModule(initModule);\n\n return ({\n onPressHeaderLeft = NOOP,\n channel,\n onPressMenuModeration,\n onPressMenuParticipants,\n onPressMenuDeleteChannel,\n onNavigateToOpenChannel,\n menuItemsCreator,\n }) => {\n const { colors } = useUIKitTheme();\n const { left, right } = useSafeAreaInsets();\n\n return (\n <OpenChannelSettingsModule.Provider channel={channel} onNavigateToOpenChannel={onNavigateToOpenChannel}>\n <OpenChannelSettingsModule.Header onPressHeaderLeft={onPressHeaderLeft} />\n <ScrollView\n style={{ backgroundColor: colors.background }}\n contentContainerStyle={{\n paddingLeft: left + styles.viewContainer.paddingHorizontal,\n paddingRight: right + styles.viewContainer.paddingHorizontal,\n }}\n >\n <OpenChannelSettingsModule.Info />\n <OpenChannelSettingsModule.Menu\n menuItemsCreator={menuItemsCreator}\n onPressMenuModeration={onPressMenuModeration}\n onPressMenuParticipants={onPressMenuParticipants}\n onPressMenuDeleteChannel={onPressMenuDeleteChannel}\n />\n </ScrollView>\n </OpenChannelSettingsModule.Provider>\n );\n };\n};\n\nconst styles = createStyleSheet({\n viewContainer: {\n paddingHorizontal: 16,\n },\n});\n\nexport default createOpenChannelSettingsFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,yCAAyC;AACzF,SAASC,IAAI,QAAQ,uBAAuB;AAE5C,SAASC,+BAA+B,QAAQ,+BAA+B;AAG/E,MAAMC,iCAAiC,GACrCC,UAA+C,IACf;EAChC,MAAMC,yBAAyB,GAAGH,+BAA+B,CAACE,UAAU,CAAC;EAE7E,OAAOE,IAAA,IAQD;IAAA,IARE;MACNC,iBAAiB,GAAGN,IAAI;MACxBO,OAAO;MACPC,qBAAqB;MACrBC,uBAAuB;MACvBC,wBAAwB;MACxBC,uBAAuB;MACvBC;IACF,CAAC,GAAAP,IAAA;IACC,MAAM;MAAEQ;IAAO,CAAC,GAAGd,aAAa,EAAE;IAClC,MAAM;MAAEe,IAAI;MAAEC;IAAM,CAAC,GAAGlB,iBAAiB,EAAE;IAE3C,oBACEF,KAAA,CAAAqB,aAAA,CAACZ,yBAAyB,CAACa,QAAQ;MAACV,OAAO,EAAEA,OAAQ;MAACI,uBAAuB,EAAEA;IAAwB,gBACrGhB,KAAA,CAAAqB,aAAA,CAACZ,yBAAyB,CAACc,MAAM;MAACZ,iBAAiB,EAAEA;IAAkB,EAAG,eAC1EX,KAAA,CAAAqB,aAAA,CAACpB,UAAU;MACTuB,KAAK,EAAE;QAAEC,eAAe,EAAEP,MAAM,CAACQ;MAAW,CAAE;MAC9CC,qBAAqB,EAAE;QACrBC,WAAW,EAAET,IAAI,GAAGU,MAAM,CAACC,aAAa,CAACC,iBAAiB;QAC1DC,YAAY,EAAEZ,KAAK,GAAGS,MAAM,CAACC,aAAa,CAACC;MAC7C;IAAE,gBAEF/B,KAAA,CAAAqB,aAAA,CAACZ,yBAAyB,CAACwB,IAAI,OAAG,eAClCjC,KAAA,CAAAqB,aAAA,CAACZ,yBAAyB,CAACyB,IAAI;MAC7BjB,gBAAgB,EAAEA,gBAAiB;MACnCJ,qBAAqB,EAAEA,qBAAsB;MAC7CC,uBAAuB,EAAEA,uBAAwB;MACjDC,wBAAwB,EAAEA;IAAyB,EACnD,CACS,CACsB;EAEzC,CAAC;AACH,CAAC;AAED,MAAMc,MAAM,GAAG1B,gBAAgB,CAAC;EAC9B2B,aAAa,EAAE;IACbC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAEF,eAAexB,iCAAiC"}
1
+ {"version":3,"names":["React","ScrollView","createStyleSheet","useUIKitTheme","NOOP","useSafeAreaPadding","createOpenChannelSettingsModule","createOpenChannelSettingsFragment","initModule","OpenChannelSettingsModule","onPressHeaderLeft","channel","onPressMenuModeration","onPressMenuParticipants","onPressMenuDeleteChannel","onNavigateToOpenChannel","menuItemsCreator","colors","safeArea","createElement","Provider","Header","style","backgroundColor","background","contentContainerStyle","paddingStart","styles","viewContainer","paddingHorizontal","paddingEnd","Info","Menu"],"sources":["createOpenChannelSettingsFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport { createOpenChannelSettingsModule } from '../domain/openChannelSettings';\nimport type { OpenChannelSettingsFragment, OpenChannelSettingsModule } from '../domain/openChannelSettings/types';\n\nconst createOpenChannelSettingsFragment = (\n initModule?: Partial<OpenChannelSettingsModule>,\n): OpenChannelSettingsFragment => {\n const OpenChannelSettingsModule = createOpenChannelSettingsModule(initModule);\n\n return ({\n onPressHeaderLeft = NOOP,\n channel,\n onPressMenuModeration,\n onPressMenuParticipants,\n onPressMenuDeleteChannel,\n onNavigateToOpenChannel,\n menuItemsCreator,\n }) => {\n const { colors } = useUIKitTheme();\n const safeArea = useSafeAreaPadding(['left', 'right']);\n\n return (\n <OpenChannelSettingsModule.Provider channel={channel} onNavigateToOpenChannel={onNavigateToOpenChannel}>\n <OpenChannelSettingsModule.Header onPressHeaderLeft={onPressHeaderLeft} />\n <ScrollView\n style={{ backgroundColor: colors.background }}\n contentContainerStyle={{\n paddingStart: safeArea.paddingStart + styles.viewContainer.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.viewContainer.paddingHorizontal,\n }}\n >\n <OpenChannelSettingsModule.Info />\n <OpenChannelSettingsModule.Menu\n menuItemsCreator={menuItemsCreator}\n onPressMenuModeration={onPressMenuModeration}\n onPressMenuParticipants={onPressMenuParticipants}\n onPressMenuDeleteChannel={onPressMenuDeleteChannel}\n />\n </ScrollView>\n </OpenChannelSettingsModule.Provider>\n );\n };\n};\n\nconst styles = createStyleSheet({\n viewContainer: {\n paddingHorizontal: 16,\n },\n});\n\nexport default createOpenChannelSettingsFragment;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,yCAAyC;AACzF,SAASC,IAAI,EAAEC,kBAAkB,QAAQ,uBAAuB;AAEhE,SAASC,+BAA+B,QAAQ,+BAA+B;AAG/E,MAAMC,iCAAiC,GACrCC,UAA+C,IACf;EAChC,MAAMC,yBAAyB,GAAGH,+BAA+B,CAACE,UAAU,CAAC;EAE7E,OAAO,CAAC;IACNE,iBAAiB,GAAGN,IAAI;IACxBO,OAAO;IACPC,qBAAqB;IACrBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC;EACF,CAAC,KAAK;IACJ,MAAM;MAAEC;IAAO,CAAC,GAAGd,aAAa,CAAC,CAAC;IAClC,MAAMe,QAAQ,GAAGb,kBAAkB,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtD,oBACEL,KAAA,CAAAmB,aAAA,CAACV,yBAAyB,CAACW,QAAQ;MAACT,OAAO,EAAEA,OAAQ;MAACI,uBAAuB,EAAEA;IAAwB,gBACrGf,KAAA,CAAAmB,aAAA,CAACV,yBAAyB,CAACY,MAAM;MAACX,iBAAiB,EAAEA;IAAkB,CAAE,CAAC,eAC1EV,KAAA,CAAAmB,aAAA,CAAClB,UAAU;MACTqB,KAAK,EAAE;QAAEC,eAAe,EAAEN,MAAM,CAACO;MAAW,CAAE;MAC9CC,qBAAqB,EAAE;QACrBC,YAAY,EAAER,QAAQ,CAACQ,YAAY,GAAGC,MAAM,CAACC,aAAa,CAACC,iBAAiB;QAC5EC,UAAU,EAAEZ,QAAQ,CAACY,UAAU,GAAGH,MAAM,CAACC,aAAa,CAACC;MACzD;IAAE,gBAEF7B,KAAA,CAAAmB,aAAA,CAACV,yBAAyB,CAACsB,IAAI,MAAE,CAAC,eAClC/B,KAAA,CAAAmB,aAAA,CAACV,yBAAyB,CAACuB,IAAI;MAC7BhB,gBAAgB,EAAEA,gBAAiB;MACnCJ,qBAAqB,EAAEA,qBAAsB;MAC7CC,uBAAuB,EAAEA,uBAAwB;MACjDC,wBAAwB,EAAEA;IAAyB,CACpD,CACS,CACsB,CAAC;EAEzC,CAAC;AACH,CAAC;AAED,MAAMa,MAAM,GAAGzB,gBAAgB,CAAC;EAC9B0B,aAAa,EAAE;IACbC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAEF,eAAetB,iCAAiC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useAlert","useToast","isImage","shouldCompressImage","useIIFE","SBUError","SBUUtils","useLocalization","usePlatformService","useSendbirdChat","useChannelInputItems","channel","sendFileMessage","sbOptions","imageCompressionConfig","STRINGS","fileService","mediaService","alert","toast","sheetItems","input","isOpenChannel","uikit","openChannel","isGroupChannel","groupChannel","enableDocument","camera","enablePhoto","enableVideo","gallery","push","title","LABELS","CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO","icon","onPress","mediaFile","openCamera","mediaType","onOpenFailure","error","code","CODE","ERR_PERMISSIONS_DENIED","DIALOG","ALERT_PERMISSIONS_TITLE","message","ALERT_PERMISSIONS_MESSAGE","PERMISSION_CAMERA","PERMISSION_APP_NAME","buttons","text","ALERT_PERMISSIONS_OK","openSettings","show","TOAST","OPEN_CAMERA_ERROR","uri","type","chat","imageCompressionEnabled","safeRun","compressed","compressImage","maxWidth","width","maxHeight","height","compressionRate","size","CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO","CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY","mediaFiles","openMediaLibrary","selectionLimit","PERMISSION_DEVICE_STORAGE","OPEN_PHOTO_LIBRARY_ERROR","CHANNEL_INPUT_ATTACHMENT_FILES","documentFile","openDocument","OPEN_FILES_ERROR"],"sources":["useChannelInputItems.ts"],"sourcesContent":["import { BottomSheetItem, useAlert, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdChannel, isImage, shouldCompressImage, useIIFE } from '@sendbird/uikit-utils';\n\nimport SBUError from '../libs/SBUError';\nimport SBUUtils from '../libs/SBUUtils';\nimport { FileType } from '../platform/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from './useContext';\n\nexport const useChannelInputItems = (channel: SendbirdChannel, sendFileMessage: (file: FileType) => void) => {\n const { sbOptions, imageCompressionConfig } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { fileService, mediaService } = usePlatformService();\n const { alert } = useAlert();\n const toast = useToast();\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const input = useIIFE(() => {\n switch (true) {\n case channel.isOpenChannel():\n return sbOptions.uikit.openChannel.channel.input;\n case channel.isGroupChannel():\n return sbOptions.uikit.groupChannel.channel.input;\n default:\n return {\n enableDocument: true,\n camera: { enablePhoto: true, enableVideo: true },\n gallery: { enablePhoto: true, enableVideo: true },\n };\n }\n });\n\n if (input.camera.enablePhoto) {\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO,\n icon: 'camera',\n onPress: async () => {\n const mediaFile = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_CAMERA,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');\n }\n },\n });\n\n if (mediaFile) {\n // Image compression\n if (\n isImage(mediaFile.uri, mediaFile.type) &&\n shouldCompressImage(mediaFile.type, sbOptions.chat.imageCompressionEnabled)\n ) {\n await SBUUtils.safeRun(async () => {\n const compressed = await mediaService.compressImage({\n uri: mediaFile.uri,\n maxWidth: imageCompressionConfig.width,\n maxHeight: imageCompressionConfig.height,\n compressionRate: imageCompressionConfig.compressionRate,\n });\n\n if (compressed) {\n mediaFile.uri = compressed.uri;\n mediaFile.size = compressed.size;\n }\n });\n }\n\n sendFileMessage(mediaFile);\n }\n },\n });\n }\n\n if (input.camera.enableVideo) {\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO,\n icon: 'camera',\n onPress: async () => {\n const mediaFile = await fileService.openCamera({\n mediaType: 'video',\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_CAMERA,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');\n }\n },\n });\n\n if (mediaFile) {\n sendFileMessage(mediaFile);\n }\n },\n });\n }\n\n if (input.gallery.enablePhoto || input.gallery.enableVideo) {\n const mediaType = (() => {\n switch (true) {\n case input.gallery.enablePhoto && input.gallery.enableVideo:\n return 'all';\n case input.gallery.enablePhoto && !input.gallery.enableVideo:\n return 'photo';\n case !input.gallery.enablePhoto && input.gallery.enableVideo:\n return 'video';\n default:\n return 'all';\n }\n })();\n\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY,\n icon: 'photo',\n onPress: async () => {\n const mediaFiles = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType,\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error');\n }\n },\n });\n\n if (mediaFiles && mediaFiles[0]) {\n const mediaFile = mediaFiles[0];\n\n // Image compression\n if (\n isImage(mediaFile.uri, mediaFile.type) &&\n shouldCompressImage(mediaFile.type, sbOptions.chat.imageCompressionEnabled)\n ) {\n await SBUUtils.safeRun(async () => {\n const compressed = await mediaService.compressImage({\n uri: mediaFile.uri,\n maxWidth: imageCompressionConfig.width,\n maxHeight: imageCompressionConfig.height,\n compressionRate: imageCompressionConfig.compressionRate,\n });\n\n if (compressed) {\n mediaFile.uri = compressed.uri;\n mediaFile.size = compressed.size;\n }\n });\n }\n\n sendFileMessage(mediaFile);\n }\n },\n });\n }\n\n if (input.enableDocument) {\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_FILES,\n icon: 'document',\n onPress: async () => {\n const documentFile = await fileService.openDocument({\n onOpenFailure: () => toast.show(STRINGS.TOAST.OPEN_FILES_ERROR, 'error'),\n });\n\n if (documentFile) {\n // Image compression\n if (\n isImage(documentFile.uri, documentFile.type) &&\n shouldCompressImage(documentFile.type, sbOptions.chat.imageCompressionEnabled)\n ) {\n await SBUUtils.safeRun(async () => {\n const compressed = await mediaService.compressImage({\n uri: documentFile.uri,\n maxWidth: imageCompressionConfig.width,\n maxHeight: imageCompressionConfig.height,\n compressionRate: imageCompressionConfig.compressionRate,\n });\n\n if (compressed) {\n documentFile.uri = compressed.uri;\n documentFile.size = compressed.size;\n }\n });\n }\n\n sendFileMessage(documentFile);\n }\n },\n });\n }\n\n return sheetItems;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useAlert","useToast","isImage","shouldCompressImage","useIIFE","SBUError","SBUUtils","useLocalization","usePlatformService","useSendbirdChat","useChannelInputItems","channel","sendFileMessage","sbOptions","imageCompressionConfig","STRINGS","fileService","mediaService","alert","toast","sheetItems","input","isOpenChannel","uikit","openChannel","isGroupChannel","groupChannel","enableDocument","camera","enablePhoto","enableVideo","gallery","push","title","LABELS","CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO","icon","onPress","mediaFile","openCamera","mediaType","onOpenFailure","error","code","CODE","ERR_PERMISSIONS_DENIED","DIALOG","ALERT_PERMISSIONS_TITLE","message","ALERT_PERMISSIONS_MESSAGE","PERMISSION_CAMERA","PERMISSION_APP_NAME","buttons","text","ALERT_PERMISSIONS_OK","openSettings","show","TOAST","OPEN_CAMERA_ERROR","uri","type","chat","imageCompressionEnabled","safeRun","compressed","compressImage","maxWidth","width","maxHeight","height","compressionRate","size","CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO","CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY","mediaFiles","openMediaLibrary","selectionLimit","PERMISSION_DEVICE_STORAGE","OPEN_PHOTO_LIBRARY_ERROR","CHANNEL_INPUT_ATTACHMENT_FILES","documentFile","openDocument","OPEN_FILES_ERROR"],"sources":["useChannelInputItems.ts"],"sourcesContent":["import { BottomSheetItem, useAlert, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdChannel, isImage, shouldCompressImage, useIIFE } from '@sendbird/uikit-utils';\n\nimport SBUError from '../libs/SBUError';\nimport SBUUtils from '../libs/SBUUtils';\nimport { FileType } from '../platform/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from './useContext';\n\nexport const useChannelInputItems = (channel: SendbirdChannel, sendFileMessage: (file: FileType) => void) => {\n const { sbOptions, imageCompressionConfig } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { fileService, mediaService } = usePlatformService();\n const { alert } = useAlert();\n const toast = useToast();\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const input = useIIFE(() => {\n switch (true) {\n case channel.isOpenChannel():\n return sbOptions.uikit.openChannel.channel.input;\n case channel.isGroupChannel():\n return sbOptions.uikit.groupChannel.channel.input;\n default:\n return {\n enableDocument: true,\n camera: { enablePhoto: true, enableVideo: true },\n gallery: { enablePhoto: true, enableVideo: true },\n };\n }\n });\n\n if (input.camera.enablePhoto) {\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO,\n icon: 'camera',\n onPress: async () => {\n const mediaFile = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_CAMERA,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');\n }\n },\n });\n\n if (mediaFile) {\n // Image compression\n if (\n isImage(mediaFile.uri, mediaFile.type) &&\n shouldCompressImage(mediaFile.type, sbOptions.chat.imageCompressionEnabled)\n ) {\n await SBUUtils.safeRun(async () => {\n const compressed = await mediaService.compressImage({\n uri: mediaFile.uri,\n maxWidth: imageCompressionConfig.width,\n maxHeight: imageCompressionConfig.height,\n compressionRate: imageCompressionConfig.compressionRate,\n });\n\n if (compressed) {\n mediaFile.uri = compressed.uri;\n mediaFile.size = compressed.size;\n }\n });\n }\n\n sendFileMessage(mediaFile);\n }\n },\n });\n }\n\n if (input.camera.enableVideo) {\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO,\n icon: 'camera',\n onPress: async () => {\n const mediaFile = await fileService.openCamera({\n mediaType: 'video',\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_CAMERA,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');\n }\n },\n });\n\n if (mediaFile) {\n sendFileMessage(mediaFile);\n }\n },\n });\n }\n\n if (input.gallery.enablePhoto || input.gallery.enableVideo) {\n const mediaType = (() => {\n switch (true) {\n case input.gallery.enablePhoto && input.gallery.enableVideo:\n return 'all';\n case input.gallery.enablePhoto && !input.gallery.enableVideo:\n return 'photo';\n case !input.gallery.enablePhoto && input.gallery.enableVideo:\n return 'video';\n default:\n return 'all';\n }\n })();\n\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY,\n icon: 'photo',\n onPress: async () => {\n const mediaFiles = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType,\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error');\n }\n },\n });\n\n if (mediaFiles && mediaFiles[0]) {\n const mediaFile = mediaFiles[0];\n\n // Image compression\n if (\n isImage(mediaFile.uri, mediaFile.type) &&\n shouldCompressImage(mediaFile.type, sbOptions.chat.imageCompressionEnabled)\n ) {\n await SBUUtils.safeRun(async () => {\n const compressed = await mediaService.compressImage({\n uri: mediaFile.uri,\n maxWidth: imageCompressionConfig.width,\n maxHeight: imageCompressionConfig.height,\n compressionRate: imageCompressionConfig.compressionRate,\n });\n\n if (compressed) {\n mediaFile.uri = compressed.uri;\n mediaFile.size = compressed.size;\n }\n });\n }\n\n sendFileMessage(mediaFile);\n }\n },\n });\n }\n\n if (input.enableDocument) {\n sheetItems.push({\n title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_FILES,\n icon: 'document',\n onPress: async () => {\n const documentFile = await fileService.openDocument({\n onOpenFailure: () => toast.show(STRINGS.TOAST.OPEN_FILES_ERROR, 'error'),\n });\n\n if (documentFile) {\n // Image compression\n if (\n isImage(documentFile.uri, documentFile.type) &&\n shouldCompressImage(documentFile.type, sbOptions.chat.imageCompressionEnabled)\n ) {\n await SBUUtils.safeRun(async () => {\n const compressed = await mediaService.compressImage({\n uri: documentFile.uri,\n maxWidth: imageCompressionConfig.width,\n maxHeight: imageCompressionConfig.height,\n compressionRate: imageCompressionConfig.compressionRate,\n });\n\n if (compressed) {\n documentFile.uri = compressed.uri;\n documentFile.size = compressed.size;\n }\n });\n }\n\n sendFileMessage(documentFile);\n }\n },\n });\n }\n\n return sheetItems;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useUIKitConfig","Logger","useSendbirdChat","usePushTokenRegistration","cacheRestrictCodes","isCacheRestrictedError","error","some","code","initEmoji","sdk","emojiManager","_sdk$appInfo","init","appInfo","emojiHash","container","getAllEmoji","useConnection","initDashboardConfigs","setCurrentUser","sbOptions","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","connect","userId","opts","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","chat","useUserIdForNicknameEnabled","autoPushTokenRegistrationEnabled","Promise","all","info","isCacheEnabled","message","clearCachedData","currentUser","disconnect","undefined","reconnect"],"sources":["useConnection.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useUIKitConfig } from '@sendbird/uikit-tools';\nimport { Logger, SendbirdChatSDK, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type EmojiManager from '../libs/EmojiManager';\nimport { useSendbirdChat } from './useContext';\nimport usePushTokenRegistration from './usePushTokenRegistration';\n\ntype ConnectOptions = { nickname?: string; accessToken?: string };\n\nconst cacheRestrictCodes = [400300, 400301, 400302, 400310];\nfunction isCacheRestrictedError(error: SendbirdError) {\n return cacheRestrictCodes.some((code) => error.code === code);\n}\n\nasync function initEmoji(sdk: SendbirdChatSDK, emojiManager: EmojiManager) {\n await emojiManager.init();\n if (sdk.appInfo?.emojiHash !== emojiManager.emojiHash) {\n try {\n const container = await sdk.getAllEmoji();\n await emojiManager.init(container);\n } catch {}\n }\n}\n\nconst useConnection = () => {\n const { initDashboardConfigs } = useUIKitConfig();\n const { sdk, emojiManager, setCurrentUser, sbOptions } = useSendbirdChat();\n const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();\n\n const connect = useCallback(\n async (userId: string, opts?: ConnectOptions): Promise<SendbirdUser> => {\n try {\n Logger.debug('[useConnection]', 'connect start:', userId);\n let user = await sdk.connect(userId, opts?.accessToken);\n\n if (opts?.nickname) {\n Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);\n await sdk\n .updateCurrentUserInfo({ nickname: opts.nickname })\n .then((updatedUser) => (user = updatedUser))\n .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));\n } else if (sbOptions.chat.useUserIdForNicknameEnabled) {\n await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));\n }\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');\n await registerPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);\n });\n }\n\n await Promise.all([\n initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')),\n initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure')),\n ]);\n\n Logger.debug('[useConnection]', 'connected! (online)');\n setCurrentUser(user);\n\n return user;\n } catch (e) {\n const error = e as unknown as SendbirdError;\n\n if (sdk.isCacheEnabled) {\n if (isCacheRestrictedError(error)) {\n Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);\n Logger.warn('[useConnection]', 'clear cached-data');\n await sdk.clearCachedData().catch((e) => Logger.warn('[useConnection]', 'clear cached-data failure', e));\n } else if (sdk.currentUser) {\n await Promise.all([\n initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')),\n initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure')),\n ]);\n\n Logger.debug('[useConnection]', 'connected! (offline)');\n setCurrentUser(sdk.currentUser);\n return sdk.currentUser;\n }\n }\n\n Logger.warn('[useConnection]', 'connect failure', error.message, error.code);\n throw error;\n }\n },\n [sdk, registerPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled],\n );\n\n const disconnect = useCallback(async () => {\n Logger.debug('[useConnection]', 'disconnect start');\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');\n await unregisterPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);\n });\n }\n\n await sdk.disconnect().then(() => setCurrentUser(undefined));\n Logger.debug('[useConnection]', 'disconnected!');\n }, [sdk, unregisterPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);\n\n return { connect, disconnect, reconnect: () => sdk.reconnect() };\n};\n\nexport default useConnection;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","useUIKitConfig","Logger","useSendbirdChat","usePushTokenRegistration","cacheRestrictCodes","isCacheRestrictedError","error","some","code","initEmoji","sdk","emojiManager","_sdk$appInfo","init","appInfo","emojiHash","container","getAllEmoji","useConnection","initDashboardConfigs","setCurrentUser","sbOptions","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","connect","userId","opts","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","chat","useUserIdForNicknameEnabled","autoPushTokenRegistrationEnabled","Promise","all","info","isCacheEnabled","message","clearCachedData","currentUser","disconnect","undefined","reconnect"],"sources":["useConnection.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useUIKitConfig } from '@sendbird/uikit-tools';\nimport { Logger, SendbirdChatSDK, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type EmojiManager from '../libs/EmojiManager';\nimport { useSendbirdChat } from './useContext';\nimport usePushTokenRegistration from './usePushTokenRegistration';\n\ntype ConnectOptions = { nickname?: string; accessToken?: string };\n\nconst cacheRestrictCodes = [400300, 400301, 400302, 400310];\nfunction isCacheRestrictedError(error: SendbirdError) {\n return cacheRestrictCodes.some((code) => error.code === code);\n}\n\nasync function initEmoji(sdk: SendbirdChatSDK, emojiManager: EmojiManager) {\n await emojiManager.init();\n if (sdk.appInfo?.emojiHash !== emojiManager.emojiHash) {\n try {\n const container = await sdk.getAllEmoji();\n await emojiManager.init(container);\n } catch {}\n }\n}\n\nconst useConnection = () => {\n const { initDashboardConfigs } = useUIKitConfig();\n const { sdk, emojiManager, setCurrentUser, sbOptions } = useSendbirdChat();\n const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();\n\n const connect = useCallback(\n async (userId: string, opts?: ConnectOptions): Promise<SendbirdUser> => {\n try {\n Logger.debug('[useConnection]', 'connect start:', userId);\n let user = await sdk.connect(userId, opts?.accessToken);\n\n if (opts?.nickname) {\n Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);\n await sdk\n .updateCurrentUserInfo({ nickname: opts.nickname })\n .then((updatedUser) => (user = updatedUser))\n .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));\n } else if (sbOptions.chat.useUserIdForNicknameEnabled) {\n await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));\n }\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');\n await registerPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);\n });\n }\n\n await Promise.all([\n initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')),\n initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure')),\n ]);\n\n Logger.debug('[useConnection]', 'connected! (online)');\n setCurrentUser(user);\n\n return user;\n } catch (e) {\n const error = e as unknown as SendbirdError;\n\n if (sdk.isCacheEnabled) {\n if (isCacheRestrictedError(error)) {\n Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);\n Logger.warn('[useConnection]', 'clear cached-data');\n await sdk.clearCachedData().catch((e) => Logger.warn('[useConnection]', 'clear cached-data failure', e));\n } else if (sdk.currentUser) {\n await Promise.all([\n initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')),\n initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure')),\n ]);\n\n Logger.debug('[useConnection]', 'connected! (offline)');\n setCurrentUser(sdk.currentUser);\n return sdk.currentUser;\n }\n }\n\n Logger.warn('[useConnection]', 'connect failure', error.message, error.code);\n throw error;\n }\n },\n [sdk, registerPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled],\n );\n\n const disconnect = useCallback(async () => {\n Logger.debug('[useConnection]', 'disconnect start');\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');\n await unregisterPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);\n });\n }\n\n await sdk.disconnect().then(() => setCurrentUser(undefined));\n Logger.debug('[useConnection]', 'disconnected!');\n }, [sdk, unregisterPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);\n\n return { connect, disconnect, reconnect: () => sdk.reconnect() };\n};\n\nexport default useConnection;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","LocalizationContext","PlatformServiceContext","ReactionContext","SBUHandlersContext","SendbirdChatContext","UserProfileContext","useSBUHandlers","value","Error","useLocalization","usePlatformService","useSendbirdChat","useUserProfile","useReaction"],"sources":["useContext.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { PlatformServiceContext } from '../contexts/PlatformServiceCtx';\nimport { ReactionContext } from '../contexts/ReactionCtx';\nimport { SBUHandlersContext } from '../contexts/SBUHandlersCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\nexport const useSBUHandlers = () => {\n const value = useContext(SBUHandlersContext);\n if (!value) throw new Error('SBUHandlersContext is not provided');\n return value;\n};\n\nexport const useLocalization = () => {\n const value = useContext(LocalizationContext);\n if (!value) throw new Error('LocalizationContext is not provided');\n return value;\n};\n\nexport const usePlatformService = () => {\n const value = useContext(PlatformServiceContext);\n if (!value) throw new Error('PlatformServiceContext is not provided');\n return value;\n};\n\nexport const useSendbirdChat = () => {\n const value = useContext(SendbirdChatContext);\n if (!value) throw new Error('SendbirdChatContext is not provided');\n return value;\n};\n\nexport const useUserProfile = () => {\n const value = useContext(UserProfileContext);\n if (!value) throw new Error('UserProfileContext is not provided');\n return value;\n};\n\nexport const useReaction = () => {\n const value = useContext(ReactionContext);\n if (!value) throw new Error('ReactionContext is not provided');\n return value;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,kBAAkB,QAAQ,4BAA4B;AAE/D,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,KAAK,GAAGR,UAAU,CAACI,kBAAkB,CAAC;EAC5C,IAAI,CAACI,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;EACjE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMF,KAAK,GAAGR,UAAU,CAACC,mBAAmB,CAAC;EAC7C,IAAI,CAACO,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EAClE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMH,KAAK,GAAGR,UAAU,CAACE,sBAAsB,CAAC;EAChD,IAAI,CAACM,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,wCAAwC,CAAC;EACrE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMI,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMJ,KAAK,GAAGR,UAAU,CAACK,mBAAmB,CAAC;EAC7C,IAAI,CAACG,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EAClE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMK,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAML,KAAK,GAAGR,UAAU,CAACM,kBAAkB,CAAC;EAC5C,IAAI,CAACE,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;EACjE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMM,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMN,KAAK,GAAGR,UAAU,CAACG,eAAe,CAAC;EACzC,IAAI,CAACK,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EAC9D,OAAOD,KAAK;AACd,CAAC"}
1
+ {"version":3,"names":["useContext","LocalizationContext","PlatformServiceContext","ReactionContext","SBUHandlersContext","SendbirdChatContext","UserProfileContext","useSBUHandlers","value","Error","useLocalization","usePlatformService","useSendbirdChat","useUserProfile","useReaction"],"sources":["useContext.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { PlatformServiceContext } from '../contexts/PlatformServiceCtx';\nimport { ReactionContext } from '../contexts/ReactionCtx';\nimport { SBUHandlersContext } from '../contexts/SBUHandlersCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\nexport const useSBUHandlers = () => {\n const value = useContext(SBUHandlersContext);\n if (!value) throw new Error('SBUHandlersContext is not provided');\n return value;\n};\n\nexport const useLocalization = () => {\n const value = useContext(LocalizationContext);\n if (!value) throw new Error('LocalizationContext is not provided');\n return value;\n};\n\nexport const usePlatformService = () => {\n const value = useContext(PlatformServiceContext);\n if (!value) throw new Error('PlatformServiceContext is not provided');\n return value;\n};\n\nexport const useSendbirdChat = () => {\n const value = useContext(SendbirdChatContext);\n if (!value) throw new Error('SendbirdChatContext is not provided');\n return value;\n};\n\nexport const useUserProfile = () => {\n const value = useContext(UserProfileContext);\n if (!value) throw new Error('UserProfileContext is not provided');\n return value;\n};\n\nexport const useReaction = () => {\n const value = useContext(ReactionContext);\n if (!value) throw new Error('ReactionContext is not provided');\n return value;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,kBAAkB,QAAQ,4BAA4B;AAE/D,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,KAAK,GAAGR,UAAU,CAACI,kBAAkB,CAAC;EAC5C,IAAI,CAACI,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;EACjE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMF,KAAK,GAAGR,UAAU,CAACC,mBAAmB,CAAC;EAC7C,IAAI,CAACO,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EAClE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMH,KAAK,GAAGR,UAAU,CAACE,sBAAsB,CAAC;EAChD,IAAI,CAACM,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,wCAAwC,CAAC;EACrE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMI,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMJ,KAAK,GAAGR,UAAU,CAACK,mBAAmB,CAAC;EAC7C,IAAI,CAACG,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EAClE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMK,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAML,KAAK,GAAGR,UAAU,CAACM,kBAAkB,CAAC;EAC5C,IAAI,CAACE,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;EACjE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMM,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMN,KAAK,GAAGR,UAAU,CAACG,eAAe,CAAC;EACzC,IAAI,CAACK,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EAC9D,OAAOD,KAAK;AACd,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","Keyboard","LayoutAnimation","Platform","useSafeAreaInsets","NOOP","isLayoutAnimationConfigured","configureNextLayoutAnimation","event","config","create","duration","easing","Properties","scaleY","onEnd","configureNext","showEvent","hideEvent","select","android","default","useKeyboardStatus","keyboardStatus","setKeyboardStatus","visible","height","bottomSpace","bottom","bottomInset","subscriptions","addListener","endCoordinates","ios","nextLayoutAnimation","forEach","it","remove"],"sources":["useKeyboardStatus.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Keyboard, KeyboardEvent, KeyboardEventName, LayoutAnimation, Platform } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\ntype KeyboardEvents = {\n showEvent: KeyboardEventName;\n hideEvent: KeyboardEventName;\n};\n\nlet isLayoutAnimationConfigured = false;\n\nconst configureNextLayoutAnimation = (event: KeyboardEvent) => {\n if (isLayoutAnimationConfigured) return;\n const config = LayoutAnimation.create(event.duration, event.easing, LayoutAnimation.Properties.scaleY);\n isLayoutAnimationConfigured = true;\n const onEnd = () => (isLayoutAnimationConfigured = false);\n LayoutAnimation.configureNext(config, onEnd, onEnd);\n};\n\nconst { showEvent, hideEvent } = Platform.select<KeyboardEvents>({\n android: { showEvent: 'keyboardDidShow', hideEvent: 'keyboardDidHide' },\n default: { showEvent: 'keyboardWillShow', hideEvent: 'keyboardWillHide' },\n});\n\nconst useKeyboardStatus = () => {\n const [keyboardStatus, setKeyboardStatus] = useState({ visible: false, height: 0, bottomSpace: 0 });\n const { bottom: bottomInset } = useSafeAreaInsets();\n\n useEffect(() => {\n const subscriptions = [\n Keyboard.addListener(showEvent, (event) => {\n const height = event.endCoordinates.height;\n const bottomSpace = Platform.select({ ios: height - bottomInset, default: 0 });\n const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n nextLayoutAnimation(event);\n setKeyboardStatus({ visible: true, height, bottomSpace });\n }),\n\n Keyboard.addListener(hideEvent, () => {\n const height = 0;\n const bottomSpace = Platform.select({ default: height });\n // const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n // nextLayoutAnimation(event);\n setKeyboardStatus({ visible: false, height, bottomSpace });\n }),\n ];\n return () => {\n subscriptions.forEach((it) => it.remove());\n };\n }, []);\n\n return keyboardStatus;\n};\n\nexport default useKeyboardStatus;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,EAAoCC,eAAe,EAAEC,QAAQ,QAAQ,cAAc;AACpG,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,IAAI,QAAQ,uBAAuB;AAO5C,IAAIC,2BAA2B,GAAG,KAAK;AAEvC,MAAMC,4BAA4B,GAAIC,KAAoB,IAAK;EAC7D,IAAIF,2BAA2B,EAAE;EACjC,MAAMG,MAAM,GAAGP,eAAe,CAACQ,MAAM,CAACF,KAAK,CAACG,QAAQ,EAAEH,KAAK,CAACI,MAAM,EAAEV,eAAe,CAACW,UAAU,CAACC,MAAM,CAAC;EACtGR,2BAA2B,GAAG,IAAI;EAClC,MAAMS,KAAK,GAAGA,CAAA,KAAOT,2BAA2B,GAAG,KAAM;EACzDJ,eAAe,CAACc,aAAa,CAACP,MAAM,EAAEM,KAAK,EAAEA,KAAK,CAAC;AACrD,CAAC;AAED,MAAM;EAAEE,SAAS;EAAEC;AAAU,CAAC,GAAGf,QAAQ,CAACgB,MAAM,CAAiB;EAC/DC,OAAO,EAAE;IAAEH,SAAS,EAAE,iBAAiB;IAAEC,SAAS,EAAE;EAAkB,CAAC;EACvEG,OAAO,EAAE;IAAEJ,SAAS,EAAE,kBAAkB;IAAEC,SAAS,EAAE;EAAmB;AAC1E,CAAC,CAAC;AAEF,MAAMI,iBAAiB,GAAGA,CAAA,KAAM;EAC9B,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGxB,QAAQ,CAAC;IAAEyB,OAAO,EAAE,KAAK;IAAEC,MAAM,EAAE,CAAC;IAAEC,WAAW,EAAE;EAAE,CAAC,CAAC;EACnG,MAAM;IAAEC,MAAM,EAAEC;EAAY,CAAC,GAAGzB,iBAAiB,EAAE;EAEnDL,SAAS,CAAC,MAAM;IACd,MAAM+B,aAAa,GAAG,CACpB7B,QAAQ,CAAC8B,WAAW,CAACd,SAAS,EAAGT,KAAK,IAAK;MACzC,MAAMkB,MAAM,GAAGlB,KAAK,CAACwB,cAAc,CAACN,MAAM;MAC1C,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAM,CAAC;QAAEc,GAAG,EAAEP,MAAM,GAAGG,WAAW;QAAER,OAAO,EAAE;MAAE,CAAC,CAAC;MAC9E,MAAMa,mBAAmB,GAAG/B,QAAQ,CAACgB,MAAM,CAAC;QAAEc,GAAG,EAAE1B,4BAA4B;QAAEc,OAAO,EAAEhB;MAAK,CAAC,CAAC;MAEjG6B,mBAAmB,CAAC1B,KAAK,CAAC;MAC1BgB,iBAAiB,CAAC;QAAEC,OAAO,EAAE,IAAI;QAAEC,MAAM;QAAEC;MAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,EAEF1B,QAAQ,CAAC8B,WAAW,CAACb,SAAS,EAAE,MAAM;MACpC,MAAMQ,MAAM,GAAG,CAAC;MAChB,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAM,CAAC;QAAEE,OAAO,EAAEK;MAAO,CAAC,CAAC;MACxD;;MAEA;MACAF,iBAAiB,CAAC;QAAEC,OAAO,EAAE,KAAK;QAAEC,MAAM;QAAEC;MAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH;IACD,OAAO,MAAM;MACXG,aAAa,CAACK,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAACC,MAAM,EAAE,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOd,cAAc;AACvB,CAAC;AAED,eAAeD,iBAAiB"}
1
+ {"version":3,"names":["useEffect","useState","Keyboard","LayoutAnimation","Platform","useSafeAreaInsets","NOOP","isLayoutAnimationConfigured","configureNextLayoutAnimation","event","config","create","duration","easing","Properties","scaleY","onEnd","configureNext","showEvent","hideEvent","select","android","default","useKeyboardStatus","keyboardStatus","setKeyboardStatus","visible","height","bottomSpace","bottom","bottomInset","subscriptions","addListener","endCoordinates","ios","nextLayoutAnimation","forEach","it","remove"],"sources":["useKeyboardStatus.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Keyboard, KeyboardEvent, KeyboardEventName, LayoutAnimation, Platform } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\ntype KeyboardEvents = {\n showEvent: KeyboardEventName;\n hideEvent: KeyboardEventName;\n};\n\nlet isLayoutAnimationConfigured = false;\n\nconst configureNextLayoutAnimation = (event: KeyboardEvent) => {\n if (isLayoutAnimationConfigured) return;\n const config = LayoutAnimation.create(event.duration, event.easing, LayoutAnimation.Properties.scaleY);\n isLayoutAnimationConfigured = true;\n const onEnd = () => (isLayoutAnimationConfigured = false);\n LayoutAnimation.configureNext(config, onEnd, onEnd);\n};\n\nconst { showEvent, hideEvent } = Platform.select<KeyboardEvents>({\n android: { showEvent: 'keyboardDidShow', hideEvent: 'keyboardDidHide' },\n default: { showEvent: 'keyboardWillShow', hideEvent: 'keyboardWillHide' },\n});\n\nconst useKeyboardStatus = () => {\n const [keyboardStatus, setKeyboardStatus] = useState({ visible: false, height: 0, bottomSpace: 0 });\n const { bottom: bottomInset } = useSafeAreaInsets();\n\n useEffect(() => {\n const subscriptions = [\n Keyboard.addListener(showEvent, (event) => {\n const height = event.endCoordinates.height;\n const bottomSpace = Platform.select({ ios: height - bottomInset, default: 0 });\n const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n nextLayoutAnimation(event);\n setKeyboardStatus({ visible: true, height, bottomSpace });\n }),\n\n Keyboard.addListener(hideEvent, () => {\n const height = 0;\n const bottomSpace = Platform.select({ default: height });\n // const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n // nextLayoutAnimation(event);\n setKeyboardStatus({ visible: false, height, bottomSpace });\n }),\n ];\n return () => {\n subscriptions.forEach((it) => it.remove());\n };\n }, []);\n\n return keyboardStatus;\n};\n\nexport default useKeyboardStatus;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,EAAoCC,eAAe,EAAEC,QAAQ,QAAQ,cAAc;AACpG,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,IAAI,QAAQ,uBAAuB;AAO5C,IAAIC,2BAA2B,GAAG,KAAK;AAEvC,MAAMC,4BAA4B,GAAIC,KAAoB,IAAK;EAC7D,IAAIF,2BAA2B,EAAE;EACjC,MAAMG,MAAM,GAAGP,eAAe,CAACQ,MAAM,CAACF,KAAK,CAACG,QAAQ,EAAEH,KAAK,CAACI,MAAM,EAAEV,eAAe,CAACW,UAAU,CAACC,MAAM,CAAC;EACtGR,2BAA2B,GAAG,IAAI;EAClC,MAAMS,KAAK,GAAGA,CAAA,KAAOT,2BAA2B,GAAG,KAAM;EACzDJ,eAAe,CAACc,aAAa,CAACP,MAAM,EAAEM,KAAK,EAAEA,KAAK,CAAC;AACrD,CAAC;AAED,MAAM;EAAEE,SAAS;EAAEC;AAAU,CAAC,GAAGf,QAAQ,CAACgB,MAAM,CAAiB;EAC/DC,OAAO,EAAE;IAAEH,SAAS,EAAE,iBAAiB;IAAEC,SAAS,EAAE;EAAkB,CAAC;EACvEG,OAAO,EAAE;IAAEJ,SAAS,EAAE,kBAAkB;IAAEC,SAAS,EAAE;EAAmB;AAC1E,CAAC,CAAC;AAEF,MAAMI,iBAAiB,GAAGA,CAAA,KAAM;EAC9B,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGxB,QAAQ,CAAC;IAAEyB,OAAO,EAAE,KAAK;IAAEC,MAAM,EAAE,CAAC;IAAEC,WAAW,EAAE;EAAE,CAAC,CAAC;EACnG,MAAM;IAAEC,MAAM,EAAEC;EAAY,CAAC,GAAGzB,iBAAiB,CAAC,CAAC;EAEnDL,SAAS,CAAC,MAAM;IACd,MAAM+B,aAAa,GAAG,CACpB7B,QAAQ,CAAC8B,WAAW,CAACd,SAAS,EAAGT,KAAK,IAAK;MACzC,MAAMkB,MAAM,GAAGlB,KAAK,CAACwB,cAAc,CAACN,MAAM;MAC1C,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAM,CAAC;QAAEc,GAAG,EAAEP,MAAM,GAAGG,WAAW;QAAER,OAAO,EAAE;MAAE,CAAC,CAAC;MAC9E,MAAMa,mBAAmB,GAAG/B,QAAQ,CAACgB,MAAM,CAAC;QAAEc,GAAG,EAAE1B,4BAA4B;QAAEc,OAAO,EAAEhB;MAAK,CAAC,CAAC;MAEjG6B,mBAAmB,CAAC1B,KAAK,CAAC;MAC1BgB,iBAAiB,CAAC;QAAEC,OAAO,EAAE,IAAI;QAAEC,MAAM;QAAEC;MAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,EAEF1B,QAAQ,CAAC8B,WAAW,CAACb,SAAS,EAAE,MAAM;MACpC,MAAMQ,MAAM,GAAG,CAAC;MAChB,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAM,CAAC;QAAEE,OAAO,EAAEK;MAAO,CAAC,CAAC;MACxD;;MAEA;MACAF,iBAAiB,CAAC;QAAEC,OAAO,EAAE,KAAK;QAAEC,MAAM;QAAEC;MAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH;IACD,OAAO,MAAM;MACXG,aAAa,CAACK,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAACC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOd,cAAc;AACvB,CAAC;AAED,eAAeD,iBAAiB","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useRef, useState } from 'react';
2
- import { useChannelHandler } from '@sendbird/uikit-chat-hooks';
3
- import { isDifferentChannel, useAsyncEffect, useDebounceEffect, useUniqHandlerId } from '@sendbird/uikit-utils';
2
+ import { useGroupChannelHandler } from '@sendbird/uikit-tools';
3
+ import { isDifferentChannel, useAsyncEffect, useDebounceEffect } from '@sendbird/uikit-utils';
4
4
  import { useSendbirdChat } from '../hooks/useContext';
5
5
  const useMentionSuggestion = params => {
6
6
  const {
@@ -13,8 +13,7 @@ const useMentionSuggestion = params => {
13
13
  useAsyncEffect(async () => {
14
14
  setFreshChannel(await channel.refresh());
15
15
  }, [channel.url]);
16
- const id = useUniqHandlerId('useMentionSuggestion');
17
- useChannelHandler(params.sdk, id, {
16
+ useGroupChannelHandler(params.sdk, {
18
17
  onUserJoined(eventChannel) {
19
18
  if (isDifferentChannel(eventChannel, channel)) return;
20
19
  setFreshChannel(eventChannel);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useRef","useState","useChannelHandler","isDifferentChannel","useAsyncEffect","useDebounceEffect","useUniqHandlerId","useSendbirdChat","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","refresh","url","id","sdk","onUserJoined","eventChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","members","setMembers","searchStringRangeRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","slice","sort","a","b","_a$nickname","nickname","toLowerCase","localeCompare","_member$nickname","startsWith","isActive","catch","debounceMills","reset","searchStringRange","searchLimited"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { isDifferentChannel, useAsyncEffect, useDebounceEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n sdk: SendbirdChatSDK;\n channel: SendbirdGroupChannel;\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const id = useUniqHandlerId('useMentionSuggestion');\n\n useChannelHandler(params.sdk, id, {\n onUserJoined(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserLeft(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserBanned(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n if (!eventChannel.isGroupChannel()) return;\n setFreshChannel(eventChannel);\n },\n });\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId))\n .then((members) => members.slice(0, mentionManager.config.suggestionLimit));\n } else {\n return (\n freshChannel.members\n // NOTE: When using 'org.webkit:android-jsc', there is a problem with sorting lists that include words starting with uppercase and lowercase letters.\n // To ensure consistent sorting regardless of the JSC, we compare the words in lowercase.\n .sort((a, b) => a.nickname?.toLowerCase().localeCompare(b.nickname.toLowerCase()))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId &&\n member.isActive,\n )\n .slice(0, mentionManager.config.suggestionLimit)\n );\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","useRef","useState","useGroupChannelHandler","isDifferentChannel","useAsyncEffect","useDebounceEffect","useSendbirdChat","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","refresh","url","sdk","onUserJoined","eventChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","members","setMembers","searchStringRangeRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","slice","sort","a","b","_a$nickname","nickname","toLowerCase","localeCompare","_member$nickname","startsWith","isActive","catch","debounceMills","reset","searchStringRange","searchLimited"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { isDifferentChannel, useAsyncEffect, useDebounceEffect } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n sdk: SendbirdChatSDK;\n channel: SendbirdGroupChannel;\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n useGroupChannelHandler(params.sdk, {\n onUserJoined(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserLeft(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserBanned(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n if (!eventChannel.isGroupChannel()) return;\n setFreshChannel(eventChannel);\n },\n });\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId))\n .then((members) => members.slice(0, mentionManager.config.suggestionLimit));\n } else {\n return (\n freshChannel.members\n // NOTE: When using 'org.webkit:android-jsc', there is a problem with sorting lists that include words starting with uppercase and lowercase letters.\n // To ensure consistent sorting regardless of the JSC, we compare the words in lowercase.\n .sort((a, b) => a.nickname?.toLowerCase().localeCompare(b.nickname.toLowerCase()))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId &&\n member.isActive,\n )\n .slice(0, mentionManager.config.suggestionLimit)\n );\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,8 @@ import { useEffect, useRef, useState } from 'react';
2
2
  import { Platform } from 'react-native';
3
3
  import { replace, useFreshCallback } from '@sendbird/uikit-utils';
4
4
  import { useSendbirdChat } from './useContext';
5
+
6
+ // Note: The selection change with the keyboard cursor might not work properly with RTL languages
5
7
  const useMentionTextInput = params => {
6
8
  const {
7
9
  mentionManager,
@@ -98,7 +100,7 @@ const useMentionTextInput = params => {
98
100
  start: mentionedUser.range.start,
99
101
  end: mentionedUser.range.end
100
102
  };
101
- (_textInputRef$current = textInputRef.current) === null || _textInputRef$current === void 0 ? void 0 : _textInputRef$current.setNativeProps({
103
+ (_textInputRef$current = textInputRef.current) === null || _textInputRef$current === void 0 || _textInputRef$current.setNativeProps({
102
104
  selection: selectionBlock
103
105
  });
104
106
  // BUG: setNativeProps called again when invoked onChangeText
@@ -106,7 +108,7 @@ const useMentionTextInput = params => {
106
108
  if (Platform.OS === 'android') {
107
109
  setTimeout(() => {
108
110
  var _textInputRef$current2;
109
- (_textInputRef$current2 = textInputRef.current) === null || _textInputRef$current2 === void 0 ? void 0 : _textInputRef$current2.setNativeProps({
111
+ (_textInputRef$current2 = textInputRef.current) === null || _textInputRef$current2 === void 0 || _textInputRef$current2.setNativeProps({
110
112
  selection: {
111
113
  start: 0
112
114
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Platform","replace","useFreshCallback","useSendbirdChat","useMentionTextInput","params","mentionManager","sbOptions","mentionedUsersRef","textInputRef","text","setText","selection","setSelection","start","end","shouldUseMentionedMessageTemplate","messageToEdit","uikit","groupChannel","channel","enableMention","_params$messageToEdit","_params$messageToEdit2","result","templateToTextAndMentionedUsers","mentionedMessageTemplate","mentionedUsers","current","mentionedText","_params$messageToEdit3","isUserMessage","message","onChangeText","_nextText","addedMentionedUser","prevText","nextText","offset","length","push","reconcileRangeOfMentionedUsers","filtered","lastSelection","removeMentionedUsersInSelection","Math","max","foundIndex","findIndex","it","rangeHelpers","overlaps","range","remainderLength","splice","onSelectionChange","e","nativeSelection","nativeEvent","setTimeout","mentionedUser","find","_textInputRef$current","selectionBlock","setNativeProps","OS","_textInputRef$current2"],"sources":["useMentionTextInput.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native';\nimport { Platform } from 'react-native';\n\nimport { SendbirdFileMessage, SendbirdUserMessage, replace, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser } from '../types';\nimport { useSendbirdChat } from './useContext';\n\nconst useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | SendbirdFileMessage }) => {\n const { mentionManager, sbOptions } = useSendbirdChat();\n\n const mentionedUsersRef = useRef<MentionedUser[]>([]);\n const textInputRef = useRef<TextInput>();\n\n const [text, setText] = useState('');\n const [selection, setSelection] = useState({ start: 0, end: 0 });\n\n // TODO: Refactor text edit logic more clearly\n useEffect(() => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(\n params.messageToEdit,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )\n ) {\n const result = mentionManager.templateToTextAndMentionedUsers(\n params.messageToEdit?.mentionedMessageTemplate ?? '',\n params.messageToEdit?.mentionedUsers ?? [],\n );\n\n mentionedUsersRef.current = result.mentionedUsers;\n setText(result.mentionedText);\n } else {\n mentionedUsersRef.current = [];\n if (params.messageToEdit?.isUserMessage()) {\n setText(params.messageToEdit.message);\n }\n }\n }, [params.messageToEdit]);\n\n const onChangeText = useFreshCallback((_nextText: string, addedMentionedUser?: MentionedUser) => {\n const prevText = text;\n let nextText = _nextText;\n let offset = nextText.length - prevText.length;\n\n // Text clear\n if (nextText === '') {\n mentionedUsersRef.current = [];\n }\n // Text add\n else if (offset > 0) {\n /** Add mentioned user **/\n if (addedMentionedUser) mentionedUsersRef.current.push(addedMentionedUser);\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n // Text remove\n else if (offset < 0) {\n // Ranged remove\n if (selection.start !== selection.end) {\n /** Filter mentioned users in selection range **/\n const { filtered, lastSelection } = mentionManager.removeMentionedUsersInSelection(\n selection,\n mentionedUsersRef.current,\n );\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n Math.max(selection.end, lastSelection),\n filtered,\n );\n }\n // Single remove\n else {\n /** Find mentioned user who ranges in removed selection **/\n const foundIndex = mentionedUsersRef.current.findIndex((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n /** If found, remove from the mentioned user list and remove remainder text **/\n if (foundIndex > -1) {\n const it = mentionedUsersRef.current[foundIndex];\n const remainderLength = it.range.end - it.range.start + offset;\n\n offset = -remainderLength + offset;\n nextText = replace(nextText, it.range.start, it.range.start + remainderLength, '');\n\n mentionedUsersRef.current.splice(foundIndex, 1);\n }\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n }\n\n setText(nextText);\n });\n\n return {\n textInputRef,\n selection,\n onSelectionChange: useFreshCallback((e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => {\n const nativeSelection = { ...e.nativeEvent.selection };\n\n // NOTE: To synchronize call onSelectionChange after onChangeText called on each platform.\n setTimeout(() => {\n const mentionedUser = mentionedUsersRef.current.find((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, nativeSelection),\n );\n\n // Selection should be blocked if changed into mentioned area\n if (mentionedUser) {\n const selectionBlock = { start: mentionedUser.range.start, end: mentionedUser.range.end };\n textInputRef.current?.setNativeProps({ selection: selectionBlock });\n // BUG: setNativeProps called again when invoked onChangeText\n // https://github.com/facebook/react-native/issues/33520\n if (Platform.OS === 'android') {\n setTimeout(() => {\n textInputRef.current?.setNativeProps({ selection: { start: 0 } });\n }, 250);\n }\n setSelection(selectionBlock);\n } else {\n setSelection(nativeSelection);\n }\n }, 10);\n }),\n text,\n onChangeText,\n mentionedUsers: mentionedUsersRef.current,\n };\n};\n\nexport default useMentionTextInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useRef","useState","Platform","replace","useFreshCallback","useSendbirdChat","useMentionTextInput","params","mentionManager","sbOptions","mentionedUsersRef","textInputRef","text","setText","selection","setSelection","start","end","shouldUseMentionedMessageTemplate","messageToEdit","uikit","groupChannel","channel","enableMention","_params$messageToEdit","_params$messageToEdit2","result","templateToTextAndMentionedUsers","mentionedMessageTemplate","mentionedUsers","current","mentionedText","_params$messageToEdit3","isUserMessage","message","onChangeText","_nextText","addedMentionedUser","prevText","nextText","offset","length","push","reconcileRangeOfMentionedUsers","filtered","lastSelection","removeMentionedUsersInSelection","Math","max","foundIndex","findIndex","it","rangeHelpers","overlaps","range","remainderLength","splice","onSelectionChange","e","nativeSelection","nativeEvent","setTimeout","mentionedUser","find","_textInputRef$current","selectionBlock","setNativeProps","OS","_textInputRef$current2"],"sources":["useMentionTextInput.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native';\nimport { Platform } from 'react-native';\n\nimport { SendbirdFileMessage, SendbirdUserMessage, replace, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser } from '../types';\nimport { useSendbirdChat } from './useContext';\n\n// Note: The selection change with the keyboard cursor might not work properly with RTL languages\nconst useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | SendbirdFileMessage }) => {\n const { mentionManager, sbOptions } = useSendbirdChat();\n\n const mentionedUsersRef = useRef<MentionedUser[]>([]);\n const textInputRef = useRef<TextInput>();\n\n const [text, setText] = useState('');\n const [selection, setSelection] = useState({ start: 0, end: 0 });\n\n // TODO: Refactor text edit logic more clearly\n useEffect(() => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(\n params.messageToEdit,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )\n ) {\n const result = mentionManager.templateToTextAndMentionedUsers(\n params.messageToEdit?.mentionedMessageTemplate ?? '',\n params.messageToEdit?.mentionedUsers ?? [],\n );\n\n mentionedUsersRef.current = result.mentionedUsers;\n setText(result.mentionedText);\n } else {\n mentionedUsersRef.current = [];\n if (params.messageToEdit?.isUserMessage()) {\n setText(params.messageToEdit.message);\n }\n }\n }, [params.messageToEdit]);\n\n const onChangeText = useFreshCallback((_nextText: string, addedMentionedUser?: MentionedUser) => {\n const prevText = text;\n let nextText = _nextText;\n let offset = nextText.length - prevText.length;\n\n // Text clear\n if (nextText === '') {\n mentionedUsersRef.current = [];\n }\n // Text add\n else if (offset > 0) {\n /** Add mentioned user **/\n if (addedMentionedUser) mentionedUsersRef.current.push(addedMentionedUser);\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n // Text remove\n else if (offset < 0) {\n // Ranged remove\n if (selection.start !== selection.end) {\n /** Filter mentioned users in selection range **/\n const { filtered, lastSelection } = mentionManager.removeMentionedUsersInSelection(\n selection,\n mentionedUsersRef.current,\n );\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n Math.max(selection.end, lastSelection),\n filtered,\n );\n }\n // Single remove\n else {\n /** Find mentioned user who ranges in removed selection **/\n const foundIndex = mentionedUsersRef.current.findIndex((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n /** If found, remove from the mentioned user list and remove remainder text **/\n if (foundIndex > -1) {\n const it = mentionedUsersRef.current[foundIndex];\n const remainderLength = it.range.end - it.range.start + offset;\n\n offset = -remainderLength + offset;\n nextText = replace(nextText, it.range.start, it.range.start + remainderLength, '');\n\n mentionedUsersRef.current.splice(foundIndex, 1);\n }\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n }\n\n setText(nextText);\n });\n\n return {\n textInputRef,\n selection,\n onSelectionChange: useFreshCallback((e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => {\n const nativeSelection = { ...e.nativeEvent.selection };\n\n // NOTE: To synchronize call onSelectionChange after onChangeText called on each platform.\n setTimeout(() => {\n const mentionedUser = mentionedUsersRef.current.find((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, nativeSelection),\n );\n\n // Selection should be blocked if changed into mentioned area\n if (mentionedUser) {\n const selectionBlock = { start: mentionedUser.range.start, end: mentionedUser.range.end };\n textInputRef.current?.setNativeProps({ selection: selectionBlock });\n // BUG: setNativeProps called again when invoked onChangeText\n // https://github.com/facebook/react-native/issues/33520\n if (Platform.OS === 'android') {\n setTimeout(() => {\n textInputRef.current?.setNativeProps({ selection: { start: 0 } });\n }, 250);\n }\n setSelection(selectionBlock);\n } else {\n setSelection(nativeSelection);\n }\n }, 10);\n }),\n text,\n onChangeText,\n mentionedUsers: mentionedUsersRef.current,\n };\n};\n\nexport default useMentionTextInput;\n"],"mappings":"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","ignoreList":[]}
@@ -60,7 +60,7 @@ const usePushTokenRegistration = () => {
60
60
  const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {
61
61
  var _refreshListener$curr;
62
62
  // Unregister token refresh listener
63
- (_refreshListener$curr = refreshListener.current) === null || _refreshListener$curr === void 0 ? void 0 : _refreshListener$curr.call(refreshListener);
63
+ (_refreshListener$curr = refreshListener.current) === null || _refreshListener$curr === void 0 || _refreshListener$curr.call(refreshListener);
64
64
 
65
65
  // Unregister token
66
66
  const token = await getToken();
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","Platform","Logger","useFreshCallback","useIIFE","usePlatformService","useSendbirdChat","usePushTokenRegistration","sdk","notificationService","refreshListener","registerToken","unregisterToken","getToken","select","ios","token","registerAPNSPushTokenForCurrentUser","default","registerFCMPushTokenForCurrentUser","unregisterAPNSPushTokenForCurrentUser","unregisterFCMPushTokenForCurrentUser","getAPNSToken","getFCMToken","registerPushTokenForCurrentUser","hasPermission","hasPushPermission","pushPermission","requestPushPermission","warn","current","onTokenRefresh","log","error","unregisterPushTokenForCurrentUser","_refreshListener$curr","call"],"sources":["usePushTokenRegistration.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { Platform } from 'react-native';\n\nimport { Logger, useFreshCallback, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService, useSendbirdChat } from './useContext';\n\nconst usePushTokenRegistration = () => {\n const { sdk } = useSendbirdChat();\n const { notificationService } = usePlatformService();\n\n const refreshListener = useRef<() => void>();\n const [registerToken, unregisterToken, getToken] = useIIFE(() => {\n return [\n Platform.select({\n ios: (token: string) => sdk.registerAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.registerFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: (token: string) => sdk.unregisterAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.unregisterFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: () => notificationService.getAPNSToken(),\n default: () => notificationService.getFCMToken(),\n }),\n ];\n });\n\n const registerPushTokenForCurrentUser = useFreshCallback(async () => {\n // Check and request push permission\n const hasPermission = await notificationService.hasPushPermission();\n if (!hasPermission) {\n const pushPermission = await notificationService.requestPushPermission();\n if (!pushPermission) {\n Logger.warn('[usePushTokenRegistration]', 'Not granted push permission');\n return;\n }\n }\n\n // Register token refresh listener\n refreshListener.current = notificationService.onTokenRefresh(registerToken);\n\n // Register token\n const token = await getToken();\n if (token) {\n try {\n await registerToken(token);\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);\n }\n }\n\n // Remove listener\n refreshListener.current = notificationService.onTokenRefresh(async (token) => {\n try {\n await registerToken(token);\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);\n }\n });\n });\n\n const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {\n // Unregister token refresh listener\n refreshListener.current?.();\n\n // Unregister token\n const token = await getToken();\n if (token) {\n try {\n await unregisterToken(token);\n Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to unregister token:', error);\n }\n }\n });\n\n return { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser };\n};\n\nexport default usePushTokenRegistration;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useRef","Platform","Logger","useFreshCallback","useIIFE","usePlatformService","useSendbirdChat","usePushTokenRegistration","sdk","notificationService","refreshListener","registerToken","unregisterToken","getToken","select","ios","token","registerAPNSPushTokenForCurrentUser","default","registerFCMPushTokenForCurrentUser","unregisterAPNSPushTokenForCurrentUser","unregisterFCMPushTokenForCurrentUser","getAPNSToken","getFCMToken","registerPushTokenForCurrentUser","hasPermission","hasPushPermission","pushPermission","requestPushPermission","warn","current","onTokenRefresh","log","error","unregisterPushTokenForCurrentUser","_refreshListener$curr","call"],"sources":["usePushTokenRegistration.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { Platform } from 'react-native';\n\nimport { Logger, useFreshCallback, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService, useSendbirdChat } from './useContext';\n\nconst usePushTokenRegistration = () => {\n const { sdk } = useSendbirdChat();\n const { notificationService } = usePlatformService();\n\n const refreshListener = useRef<() => void>();\n const [registerToken, unregisterToken, getToken] = useIIFE(() => {\n return [\n Platform.select({\n ios: (token: string) => sdk.registerAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.registerFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: (token: string) => sdk.unregisterAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.unregisterFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: () => notificationService.getAPNSToken(),\n default: () => notificationService.getFCMToken(),\n }),\n ];\n });\n\n const registerPushTokenForCurrentUser = useFreshCallback(async () => {\n // Check and request push permission\n const hasPermission = await notificationService.hasPushPermission();\n if (!hasPermission) {\n const pushPermission = await notificationService.requestPushPermission();\n if (!pushPermission) {\n Logger.warn('[usePushTokenRegistration]', 'Not granted push permission');\n return;\n }\n }\n\n // Register token refresh listener\n refreshListener.current = notificationService.onTokenRefresh(registerToken);\n\n // Register token\n const token = await getToken();\n if (token) {\n try {\n await registerToken(token);\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);\n }\n }\n\n // Remove listener\n refreshListener.current = notificationService.onTokenRefresh(async (token) => {\n try {\n await registerToken(token);\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);\n }\n });\n });\n\n const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {\n // Unregister token refresh listener\n refreshListener.current?.();\n\n // Unregister token\n const token = await getToken();\n if (token) {\n try {\n await unregisterToken(token);\n Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to unregister token:', error);\n }\n }\n });\n\n return { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser };\n};\n\nexport default usePushTokenRegistration;\n"],"mappings":"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","ignoreList":[]}
@@ -3,11 +3,10 @@ import { useAlert } from '@sendbird/uikit-react-native-foundation';
3
3
  import { Logger, getVoiceMessageFileObject, matchesOneOf } from '@sendbird/uikit-utils';
4
4
  import SBUUtils from '../libs/SBUUtils';
5
5
  import { useLocalization, usePlatformService } from './useContext';
6
- const useVoiceMessageInput = _ref => {
7
- let {
8
- onSend,
9
- onClose
10
- } = _ref;
6
+ const useVoiceMessageInput = ({
7
+ onSend,
8
+ onClose
9
+ }) => {
11
10
  const {
12
11
  alert
13
12
  } = useAlert();
@@ -82,10 +81,9 @@ const useVoiceMessageInput = _ref => {
82
81
  if (playerService.state !== 'idle') {
83
82
  await playerService.reset();
84
83
  }
85
- const unsubscribeRecording = recorderService.addRecordingListener(_ref2 => {
86
- let {
87
- currentTime
88
- } = _ref2;
84
+ const unsubscribeRecording = recorderService.addRecordingListener(({
85
+ currentTime
86
+ }) => {
89
87
  setRecordingTime({
90
88
  currentTime,
91
89
  maxDuration: recorderService.options.maxDuration,
@@ -142,11 +140,10 @@ const useVoiceMessageInput = _ref => {
142
140
  return;
143
141
  }
144
142
  if (matchesOneOf(status, ['recording_completed', 'playing_paused'])) {
145
- const unsubscribePlayback = playerService.addPlaybackListener(_ref3 => {
146
- let {
147
- currentTime,
148
- duration
149
- } = _ref3;
143
+ const unsubscribePlayback = playerService.addPlaybackListener(({
144
+ currentTime,
145
+ duration
146
+ }) => {
150
147
  setPlayingTime({
151
148
  currentTime,
152
149
  duration
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useState","useAlert","Logger","getVoiceMessageFileObject","matchesOneOf","SBUUtils","useLocalization","usePlatformService","useVoiceMessageInput","_ref","onSend","onClose","alert","STRINGS","recorderService","playerService","fileService","status","setStatus","recordingTime","setRecordingTime","currentTime","minDuration","options","maxDuration","playingTime","setPlayingTime","duration","recordingPath","getVoiceMessageRecordingPath","current","Error","setVoiceMessageRecordingPath","path","clear","undefined","reset","state","actions","cancel","startRecording","granted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","message","ALERT_PERMISSIONS_MESSAGE","LABELS","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","text","ALERT_PERMISSIONS_OK","onPress","openSettings","error","unsubscribeRecording","addRecordingListener","_ref2","prev","unsubscribeState","addStateListener","isExpo","record","uri","recordFilePath","createRecordFilePath","extension","stopRecording","stop","playPlayer","PERMISSION_DEVICE_STORAGE","unsubscribePlayback","addPlaybackListener","_ref3","play","pausePlayer","pause","send","voiceFile","Math","floor"],"sources":["useVoiceMessageInput.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { useAlert } from '@sendbird/uikit-react-native-foundation';\nimport { Logger, getVoiceMessageFileObject, matchesOneOf } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport { FileType } from '../platform/types';\nimport { useLocalization, usePlatformService } from './useContext';\n\ntype State = {\n /**\n * Status\n *\n * idle:\n * - cancel(): idle\n * - startRecording(): recording\n * recording:\n * - cancel(): idle\n * - stopRecording(): recording_completed\n * - send(): recording_completed > idle\n * recording_completed:\n * - cancel(): idle\n * - playPlayer(): playing\n * - send(): idle\n * playing:\n * - cancel(): idle\n * - pausePlayer(): playing_paused\n * - send(): idle\n * playing_paused:\n * - cancel(): idle\n * - playPlayer(): playing\n * - send(): idle\n * */\n status: 'idle' | 'recording' | 'recording_completed' | 'playing' | 'playing_paused';\n recordingTime: {\n currentTime: number;\n minDuration: number;\n maxDuration: number;\n };\n playingTime: {\n currentTime: number;\n duration: number;\n };\n};\n\nexport interface VoiceMessageInputResult {\n actions: {\n cancel: () => Promise<void>;\n startRecording: () => Promise<void>;\n stopRecording: () => Promise<void>;\n playPlayer: () => Promise<void>;\n pausePlayer: () => Promise<void>;\n send: () => Promise<void>;\n };\n state: State;\n}\n\ntype Props = {\n onClose: () => Promise<void>;\n onSend: (voiceFile: FileType, duration: number) => void;\n};\n\nconst useVoiceMessageInput = ({ onSend, onClose }: Props): VoiceMessageInputResult => {\n const { alert } = useAlert();\n const { STRINGS } = useLocalization();\n const { recorderService, playerService, fileService } = usePlatformService();\n const [status, setStatus] = useState<State['status']>('idle');\n\n const [recordingTime, setRecordingTime] = useState({\n currentTime: 0,\n minDuration: recorderService.options.minDuration,\n maxDuration: recorderService.options.maxDuration,\n });\n const [playingTime, setPlayingTime] = useState({\n currentTime: 0,\n duration: 0,\n });\n\n const recordingPath = useRef<{ recordFilePath: string; uri: string }>();\n const getVoiceMessageRecordingPath = () => {\n if (!recordingPath.current) throw new Error('No recording path');\n return recordingPath.current;\n };\n const setVoiceMessageRecordingPath = (path: { recordFilePath: string; uri: string }) => {\n recordingPath.current = path;\n };\n\n const clear = async () => {\n recordingPath.current = undefined;\n await playerService.reset();\n await recorderService.reset();\n setRecordingTime({\n currentTime: 0,\n minDuration: recorderService.options.minDuration,\n maxDuration: recorderService.options.maxDuration,\n });\n setPlayingTime({\n currentTime: 0,\n duration: 0,\n });\n setStatus('idle');\n };\n\n return {\n state: {\n status,\n recordingTime,\n playingTime,\n },\n actions: {\n async cancel() {\n await clear();\n },\n async startRecording() {\n const granted = await recorderService.requestPermission();\n if (!granted) {\n await onClose();\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n if (matchesOneOf(status, ['idle'])) {\n // Before start recording, if player is not idle, reset it.\n if (playerService.state !== 'idle') {\n await playerService.reset();\n }\n\n const unsubscribeRecording = recorderService.addRecordingListener(({ currentTime }) => {\n setRecordingTime({\n currentTime,\n maxDuration: recorderService.options.maxDuration,\n minDuration: recorderService.options.minDuration,\n });\n setPlayingTime((prev) => ({ ...prev, duration: currentTime }));\n });\n\n const unsubscribeState = recorderService.addStateListener((state) => {\n switch (state) {\n case 'recording':\n setStatus('recording');\n break;\n case 'completed':\n setStatus('recording_completed');\n unsubscribeRecording();\n unsubscribeState();\n break;\n }\n });\n\n if (SBUUtils.isExpo()) {\n await recorderService.record();\n if (recorderService.uri) {\n setVoiceMessageRecordingPath({ recordFilePath: recorderService.uri, uri: recorderService.uri });\n }\n } else {\n setVoiceMessageRecordingPath(fileService.createRecordFilePath(recorderService.options.extension));\n await recorderService.record(getVoiceMessageRecordingPath().recordFilePath);\n }\n }\n },\n async stopRecording() {\n if (matchesOneOf(status, ['recording'])) {\n await recorderService.stop();\n }\n },\n async playPlayer() {\n const granted = await playerService.requestPermission();\n if (!granted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n if (matchesOneOf(status, ['recording_completed', 'playing_paused'])) {\n const unsubscribePlayback = playerService.addPlaybackListener(({ currentTime, duration }) => {\n setPlayingTime({ currentTime, duration });\n });\n\n const unsubscribeState = playerService.addStateListener((state) => {\n switch (state) {\n case 'playing':\n setStatus('playing');\n break;\n case 'paused': {\n setStatus('playing_paused');\n unsubscribeState();\n unsubscribePlayback();\n break;\n }\n case 'stopped': {\n setStatus('playing_paused');\n unsubscribeState();\n unsubscribePlayback();\n setPlayingTime((prev) => ({ ...prev, currentTime: 0 }));\n break;\n }\n }\n });\n\n await playerService.play(getVoiceMessageRecordingPath().recordFilePath);\n }\n },\n async pausePlayer() {\n if (matchesOneOf(status, ['playing'])) {\n await playerService.pause();\n }\n },\n async send() {\n if (\n matchesOneOf(status, ['recording', 'recording_completed', 'playing', 'playing_paused']) &&\n recordingPath.current\n ) {\n const voiceFile = getVoiceMessageFileObject(recordingPath.current.uri, recorderService.options.extension);\n onSend(voiceFile, Math.floor(recordingTime.currentTime));\n await clear();\n }\n },\n },\n };\n};\n\nexport default useVoiceMessageInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useRef","useState","useAlert","Logger","getVoiceMessageFileObject","matchesOneOf","SBUUtils","useLocalization","usePlatformService","useVoiceMessageInput","onSend","onClose","alert","STRINGS","recorderService","playerService","fileService","status","setStatus","recordingTime","setRecordingTime","currentTime","minDuration","options","maxDuration","playingTime","setPlayingTime","duration","recordingPath","getVoiceMessageRecordingPath","current","Error","setVoiceMessageRecordingPath","path","clear","undefined","reset","state","actions","cancel","startRecording","granted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","message","ALERT_PERMISSIONS_MESSAGE","LABELS","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","text","ALERT_PERMISSIONS_OK","onPress","openSettings","error","unsubscribeRecording","addRecordingListener","prev","unsubscribeState","addStateListener","isExpo","record","uri","recordFilePath","createRecordFilePath","extension","stopRecording","stop","playPlayer","PERMISSION_DEVICE_STORAGE","unsubscribePlayback","addPlaybackListener","play","pausePlayer","pause","send","voiceFile","Math","floor"],"sources":["useVoiceMessageInput.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { useAlert } from '@sendbird/uikit-react-native-foundation';\nimport { Logger, getVoiceMessageFileObject, matchesOneOf } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport { FileType } from '../platform/types';\nimport { useLocalization, usePlatformService } from './useContext';\n\ntype State = {\n /**\n * Status\n *\n * idle:\n * - cancel(): idle\n * - startRecording(): recording\n * recording:\n * - cancel(): idle\n * - stopRecording(): recording_completed\n * - send(): recording_completed > idle\n * recording_completed:\n * - cancel(): idle\n * - playPlayer(): playing\n * - send(): idle\n * playing:\n * - cancel(): idle\n * - pausePlayer(): playing_paused\n * - send(): idle\n * playing_paused:\n * - cancel(): idle\n * - playPlayer(): playing\n * - send(): idle\n * */\n status: 'idle' | 'recording' | 'recording_completed' | 'playing' | 'playing_paused';\n recordingTime: {\n currentTime: number;\n minDuration: number;\n maxDuration: number;\n };\n playingTime: {\n currentTime: number;\n duration: number;\n };\n};\n\nexport interface VoiceMessageInputResult {\n actions: {\n cancel: () => Promise<void>;\n startRecording: () => Promise<void>;\n stopRecording: () => Promise<void>;\n playPlayer: () => Promise<void>;\n pausePlayer: () => Promise<void>;\n send: () => Promise<void>;\n };\n state: State;\n}\n\ntype Props = {\n onClose: () => Promise<void>;\n onSend: (voiceFile: FileType, duration: number) => void;\n};\n\nconst useVoiceMessageInput = ({ onSend, onClose }: Props): VoiceMessageInputResult => {\n const { alert } = useAlert();\n const { STRINGS } = useLocalization();\n const { recorderService, playerService, fileService } = usePlatformService();\n const [status, setStatus] = useState<State['status']>('idle');\n\n const [recordingTime, setRecordingTime] = useState({\n currentTime: 0,\n minDuration: recorderService.options.minDuration,\n maxDuration: recorderService.options.maxDuration,\n });\n const [playingTime, setPlayingTime] = useState({\n currentTime: 0,\n duration: 0,\n });\n\n const recordingPath = useRef<{ recordFilePath: string; uri: string }>();\n const getVoiceMessageRecordingPath = () => {\n if (!recordingPath.current) throw new Error('No recording path');\n return recordingPath.current;\n };\n const setVoiceMessageRecordingPath = (path: { recordFilePath: string; uri: string }) => {\n recordingPath.current = path;\n };\n\n const clear = async () => {\n recordingPath.current = undefined;\n await playerService.reset();\n await recorderService.reset();\n setRecordingTime({\n currentTime: 0,\n minDuration: recorderService.options.minDuration,\n maxDuration: recorderService.options.maxDuration,\n });\n setPlayingTime({\n currentTime: 0,\n duration: 0,\n });\n setStatus('idle');\n };\n\n return {\n state: {\n status,\n recordingTime,\n playingTime,\n },\n actions: {\n async cancel() {\n await clear();\n },\n async startRecording() {\n const granted = await recorderService.requestPermission();\n if (!granted) {\n await onClose();\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n if (matchesOneOf(status, ['idle'])) {\n // Before start recording, if player is not idle, reset it.\n if (playerService.state !== 'idle') {\n await playerService.reset();\n }\n\n const unsubscribeRecording = recorderService.addRecordingListener(({ currentTime }) => {\n setRecordingTime({\n currentTime,\n maxDuration: recorderService.options.maxDuration,\n minDuration: recorderService.options.minDuration,\n });\n setPlayingTime((prev) => ({ ...prev, duration: currentTime }));\n });\n\n const unsubscribeState = recorderService.addStateListener((state) => {\n switch (state) {\n case 'recording':\n setStatus('recording');\n break;\n case 'completed':\n setStatus('recording_completed');\n unsubscribeRecording();\n unsubscribeState();\n break;\n }\n });\n\n if (SBUUtils.isExpo()) {\n await recorderService.record();\n if (recorderService.uri) {\n setVoiceMessageRecordingPath({ recordFilePath: recorderService.uri, uri: recorderService.uri });\n }\n } else {\n setVoiceMessageRecordingPath(fileService.createRecordFilePath(recorderService.options.extension));\n await recorderService.record(getVoiceMessageRecordingPath().recordFilePath);\n }\n }\n },\n async stopRecording() {\n if (matchesOneOf(status, ['recording'])) {\n await recorderService.stop();\n }\n },\n async playPlayer() {\n const granted = await playerService.requestPermission();\n if (!granted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n if (matchesOneOf(status, ['recording_completed', 'playing_paused'])) {\n const unsubscribePlayback = playerService.addPlaybackListener(({ currentTime, duration }) => {\n setPlayingTime({ currentTime, duration });\n });\n\n const unsubscribeState = playerService.addStateListener((state) => {\n switch (state) {\n case 'playing':\n setStatus('playing');\n break;\n case 'paused': {\n setStatus('playing_paused');\n unsubscribeState();\n unsubscribePlayback();\n break;\n }\n case 'stopped': {\n setStatus('playing_paused');\n unsubscribeState();\n unsubscribePlayback();\n setPlayingTime((prev) => ({ ...prev, currentTime: 0 }));\n break;\n }\n }\n });\n\n await playerService.play(getVoiceMessageRecordingPath().recordFilePath);\n }\n },\n async pausePlayer() {\n if (matchesOneOf(status, ['playing'])) {\n await playerService.pause();\n }\n },\n async send() {\n if (\n matchesOneOf(status, ['recording', 'recording_completed', 'playing', 'playing_paused']) &&\n recordingPath.current\n ) {\n const voiceFile = getVoiceMessageFileObject(recordingPath.current.uri, recorderService.options.extension);\n onSend(voiceFile, Math.floor(recordingTime.currentTime));\n await clear();\n }\n },\n },\n };\n};\n\nexport default useVoiceMessageInput;\n"],"mappings":"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","ignoreList":[]}