@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.
- package/README.md +3 -2
- package/lib/commonjs/components/ChannelCover.js +9 -11
- package/lib/commonjs/components/ChannelCover.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/AttachmentsButton.js +7 -9
- package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/EditInput.js +18 -18
- package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +37 -50
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/SendInput.js +44 -49
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +12 -14
- package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/index.js +22 -27
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +59 -75
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChannelThreadMessageList/index.js +54 -70
- package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChatFlatList/FlatListInternal.js +1 -2
- package/lib/commonjs/components/ChatFlatList/FlatListInternal.js.map +1 -1
- package/lib/commonjs/components/ChatFlatList/index.js +13 -15
- package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
- package/lib/commonjs/components/FileViewer/FileViewerContent.js +18 -21
- package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -1
- package/lib/commonjs/components/FileViewer/FileViewerFooter.js +14 -19
- package/lib/commonjs/components/FileViewer/FileViewerFooter.js.map +1 -1
- package/lib/commonjs/components/FileViewer/FileViewerHeader.js +14 -20
- package/lib/commonjs/components/FileViewer/FileViewerHeader.js.map +1 -1
- package/lib/commonjs/components/FileViewer/index.js +15 -17
- package/lib/commonjs/components/FileViewer/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +6 -8
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +3 -4
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +7 -9
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +18 -21
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +13 -15
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +36 -39
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/MessageSearchResultItem.js +20 -18
- package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
- package/lib/commonjs/components/NewMessagesButton.js +7 -9
- package/lib/commonjs/components/NewMessagesButton.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +6 -8
- package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +13 -15
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ProviderLayout.js +5 -7
- package/lib/commonjs/components/ProviderLayout.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +28 -42
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +27 -40
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +12 -15
- package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/index.js +2 -3
- package/lib/commonjs/components/ReactionAddons/index.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +28 -39
- package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +44 -48
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/index.js +2 -3
- package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
- package/lib/commonjs/components/ScrollToBottomButton.js +6 -8
- package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/components/StatusComposition.js +9 -11
- package/lib/commonjs/components/StatusComposition.js.map +1 -1
- package/lib/commonjs/components/ThreadChatFlatList/index.js +13 -15
- package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +2 -3
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +3 -4
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +2 -3
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +8 -8
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +20 -14
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +24 -18
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +23 -22
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/TypedPlaceholder.js +6 -8
- package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
- package/lib/commonjs/components/UserActionBar.js +20 -20
- package/lib/commonjs/components/UserActionBar.js.map +1 -1
- package/lib/commonjs/components/UserSelectableBar.js +14 -14
- package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
- package/lib/commonjs/constants.js +6 -12
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +12 -14
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/InternalErrorBoundaryContainer.js +8 -9
- package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +17 -20
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/LocalizationCtx.js +6 -8
- package/lib/commonjs/contexts/LocalizationCtx.js.map +1 -1
- package/lib/commonjs/contexts/PlatformServiceCtx.js +8 -10
- package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/commonjs/contexts/ReactionCtx.js +14 -19
- package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
- package/lib/commonjs/contexts/SBUHandlersCtx.js +7 -9
- package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +16 -18
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/contexts/UserProfileCtx.js +13 -24
- package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -18
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +9 -11
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +12 -16
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +2 -3
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +2 -3
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +24 -33
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/index.js +1 -1
- package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +12 -14
- package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +19 -22
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +6 -8
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +15 -25
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +2 -3
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +5 -7
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +2 -3
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/index.js +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +11 -13
- package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +3 -4
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +20 -32
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +2 -3
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +2 -3
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +13 -17
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/index.js +1 -1
- package/lib/commonjs/domain/groupChannelList/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +11 -13
- package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +7 -9
- package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +6 -8
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +9 -11
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/index.js +1 -1
- package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +8 -10
- package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +6 -8
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +15 -25
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +2 -3
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +5 -7
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +2 -3
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/index.js +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +11 -13
- package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +6 -8
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +19 -18
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/index.js +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +8 -10
- package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +7 -9
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +15 -25
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +2 -3
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +5 -7
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +2 -3
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/index.js +1 -1
- package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +11 -13
- package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +6 -8
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +4 -5
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +12 -14
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/index.js +1 -1
- package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +9 -11
- package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +10 -13
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +11 -15
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +9 -11
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +12 -16
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +34 -37
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +2 -3
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +2 -3
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +23 -32
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/index.js +1 -1
- package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +13 -15
- package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +12 -14
- package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +18 -18
- package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +13 -16
- package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +2 -3
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +5 -7
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +2 -3
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/index.js +1 -1
- package/lib/commonjs/domain/messageSearch/index.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +11 -13
- package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/module/moduleContext.js +7 -9
- package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/types.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js +10 -12
- package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +9 -11
- package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +10 -13
- package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js +2 -3
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js +2 -3
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/openChannel/index.js +1 -1
- package/lib/commonjs/domain/openChannel/index.js.map +1 -1
- package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js +11 -13
- package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
- package/lib/commonjs/domain/openChannel/module/moduleContext.js +10 -12
- package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannel/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +6 -8
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +15 -25
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js +2 -3
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +5 -7
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js +2 -3
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/index.js +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +11 -13
- package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js +8 -10
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +14 -16
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js +2 -3
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/index.js +1 -1
- package/lib/commonjs/domain/openChannelCreate/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js +9 -11
- package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js +7 -9
- package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js +6 -8
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +20 -32
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js +2 -3
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js +5 -7
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js +2 -3
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/index.js +1 -1
- package/lib/commonjs/domain/openChannelList/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js +11 -13
- package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/module/moduleContext.js +7 -9
- package/lib/commonjs/domain/openChannelList/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js +6 -8
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js +8 -10
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/index.js +1 -1
- package/lib/commonjs/domain/openChannelModeration/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js +8 -10
- package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +6 -8
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +15 -25
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js +2 -3
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +5 -7
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js +2 -3
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/index.js +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +11 -13
- package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +7 -9
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js +15 -25
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js +2 -3
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +5 -7
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js +2 -3
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/index.js +1 -1
- package/lib/commonjs/domain/openChannelOperators/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +11 -13
- package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js +8 -10
- package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +6 -8
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +4 -5
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +9 -11
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/index.js +1 -1
- package/lib/commonjs/domain/openChannelSettings/index.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +9 -11
- package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js +9 -11
- package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelUserList/types.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListHeader.js +10 -12
- package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListList.js +16 -26
- package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +2 -3
- package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListStatusError.js +5 -7
- package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +2 -3
- package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -1
- package/lib/commonjs/domain/userList/index.js +1 -1
- package/lib/commonjs/domain/userList/index.js.map +1 -1
- package/lib/commonjs/domain/userList/module/createUserListModule.js +11 -13
- package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
- package/lib/commonjs/domain/userList/module/moduleContext.js +9 -11
- package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/userList/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +10 -12
- package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +12 -15
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +28 -30
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +13 -16
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +12 -14
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +16 -18
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +13 -19
- package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +12 -14
- package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +6 -8
- package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +13 -15
- package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +15 -18
- package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +15 -21
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +25 -27
- package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js +15 -18
- package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js +10 -12
- package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelCreateFragment.js +8 -10
- package/lib/commonjs/fragments/createOpenChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelFragment.js +24 -26
- package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelListFragment.js +9 -11
- package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelModerationFragment.js +13 -19
- package/lib/commonjs/fragments/createOpenChannelModerationFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js +10 -12
- package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js +11 -13
- package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js +13 -15
- package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js +15 -18
- package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js +14 -20
- package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js.map +1 -1
- package/lib/commonjs/hooks/useChannelInputItems.js +1 -1
- package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -1
- package/lib/commonjs/hooks/useConnection.js +2 -3
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useContext.js.map +1 -1
- package/lib/commonjs/hooks/useKeyboardStatus.js +1 -2
- package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -1
- package/lib/commonjs/hooks/useMentionSuggestion.js +3 -5
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/hooks/useMentionTextInput.js +4 -4
- package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
- package/lib/commonjs/hooks/usePushTokenRegistration.js +2 -3
- package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
- package/lib/commonjs/hooks/useVoiceMessageInput.js +13 -17
- package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -1
- package/lib/commonjs/index.js +3 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/EmojiManager.js +6 -8
- package/lib/commonjs/libs/EmojiManager.js.map +1 -1
- package/lib/commonjs/libs/ImageCompressionConfig.js +4 -5
- package/lib/commonjs/libs/ImageCompressionConfig.js.map +1 -1
- package/lib/commonjs/libs/InternalLocalCacheStorage.js +5 -11
- package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
- package/lib/commonjs/libs/MentionConfig.js +4 -5
- package/lib/commonjs/libs/MentionConfig.js.map +1 -1
- package/lib/commonjs/libs/MentionManager.js +45 -31
- package/lib/commonjs/libs/MentionManager.js.map +1 -1
- package/lib/commonjs/libs/SBUError.js +3 -3
- package/lib/commonjs/libs/SBUError.js.map +1 -1
- package/lib/commonjs/libs/SBUUtils.js.map +1 -1
- package/lib/commonjs/libs/VoiceMessageConfig.js +4 -5
- package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -1
- package/lib/commonjs/libs/VoiceMessageStatusManager.js +9 -10
- package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -1
- package/lib/commonjs/localization/StringSet.en.js +1 -2
- package/lib/commonjs/localization/StringSet.en.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +25 -30
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/platform/createClipboardService.expo.js +1 -2
- package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -1
- package/lib/commonjs/platform/createClipboardService.native.js +1 -2
- package/lib/commonjs/platform/createClipboardService.native.js.map +1 -1
- package/lib/commonjs/platform/createFileService.expo.js +12 -15
- package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
- package/lib/commonjs/platform/createFileService.native.js +30 -36
- package/lib/commonjs/platform/createFileService.native.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.expo.js +26 -31
- package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.native.js +24 -29
- package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
- package/lib/commonjs/platform/createNotificationService.expo.js +4 -8
- package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
- package/lib/commonjs/platform/createNotificationService.native.js +5 -7
- package/lib/commonjs/platform/createNotificationService.native.js.map +1 -1
- package/lib/commonjs/platform/createPlayerService.expo.js +8 -10
- package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -1
- package/lib/commonjs/platform/createPlayerService.native.js +8 -10
- package/lib/commonjs/platform/createPlayerService.native.js.map +1 -1
- package/lib/commonjs/platform/createRecorderService.expo.js +8 -10
- package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -1
- package/lib/commonjs/platform/createRecorderService.native.js +10 -12
- package/lib/commonjs/platform/createRecorderService.native.js.map +1 -1
- package/lib/commonjs/platform/dynamicModule.js +2 -4
- package/lib/commonjs/platform/dynamicModule.js.map +1 -1
- package/lib/commonjs/platform/types.js.map +1 -1
- package/lib/commonjs/types.js +1 -2
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/expoBackwardUtils.js +24 -31
- package/lib/commonjs/utils/expoBackwardUtils.js.map +1 -1
- package/lib/commonjs/utils/expoPermissionGranted.js +2 -3
- package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -1
- package/lib/commonjs/utils/nativePermissionGranted.js +2 -3
- package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -1
- package/lib/commonjs/utils/normalizeFile.js +7 -9
- package/lib/commonjs/utils/normalizeFile.js.map +1 -1
- package/lib/commonjs/utils/promise.js +1 -2
- package/lib/commonjs/utils/promise.js.map +1 -1
- package/lib/commonjs/utils/pubsub.js +1 -2
- package/lib/commonjs/utils/pubsub.js.map +1 -1
- package/lib/commonjs/version.js +2 -3
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelCover.js +7 -8
- package/lib/module/components/ChannelCover.js.map +1 -1
- package/lib/module/components/ChannelInput/AttachmentsButton.js +5 -6
- package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -1
- package/lib/module/components/ChannelInput/EditInput.js +15 -14
- package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/module/components/ChannelInput/MessageToReplyPreview.js +36 -49
- package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -1
- package/lib/module/components/ChannelInput/SendInput.js +40 -44
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/VoiceMessageInput.js +8 -9
- package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js +19 -23
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +58 -73
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChannelThreadMessageList/index.js +53 -68
- package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
- package/lib/module/components/ChatFlatList/FlatListInternal.js.map +1 -1
- package/lib/module/components/ChatFlatList/index.js +9 -10
- package/lib/module/components/ChatFlatList/index.js.map +1 -1
- package/lib/module/components/FileViewer/FileViewerContent.js +14 -16
- package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -1
- package/lib/module/components/FileViewer/FileViewerFooter.js +12 -16
- package/lib/module/components/FileViewer/FileViewerFooter.js.map +1 -1
- package/lib/module/components/FileViewer/FileViewerHeader.js +13 -18
- package/lib/module/components/FileViewer/FileViewerHeader.js.map +1 -1
- package/lib/module/components/FileViewer/index.js +11 -12
- package/lib/module/components/FileViewer/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +4 -5
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +5 -6
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +15 -17
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +11 -12
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/index.js +32 -34
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/MessageSearchResultItem.js +18 -15
- package/lib/module/components/MessageSearchResultItem.js.map +1 -1
- package/lib/module/components/NewMessagesButton.js +5 -6
- package/lib/module/components/NewMessagesButton.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +4 -5
- package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/index.js +11 -12
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ProviderLayout.js +3 -4
- package/lib/module/components/ProviderLayout.js.map +1 -1
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +27 -40
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js +26 -38
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +10 -12
- package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
- package/lib/module/components/ReactionAddons/index.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +27 -37
- package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +43 -46
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
- package/lib/module/components/ScrollToBottomButton.js +4 -5
- package/lib/module/components/ScrollToBottomButton.js.map +1 -1
- package/lib/module/components/StatusComposition.js +7 -8
- package/lib/module/components/StatusComposition.js.map +1 -1
- package/lib/module/components/ThreadChatFlatList/index.js +9 -10
- package/lib/module/components/ThreadChatFlatList/index.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +5 -4
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +19 -12
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +22 -15
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/index.js +19 -17
- package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
- package/lib/module/components/TypedPlaceholder.js +4 -5
- package/lib/module/components/TypedPlaceholder.js.map +1 -1
- package/lib/module/components/UserActionBar.js +19 -18
- package/lib/module/components/UserActionBar.js.map +1 -1
- package/lib/module/components/UserSelectableBar.js +13 -12
- package/lib/module/components/UserSelectableBar.js.map +1 -1
- package/lib/module/constants.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +10 -11
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/InternalErrorBoundaryContainer.js +6 -6
- package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +12 -13
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/LocalizationCtx.js +4 -5
- package/lib/module/contexts/LocalizationCtx.js.map +1 -1
- package/lib/module/contexts/PlatformServiceCtx.js +5 -6
- package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/module/contexts/ReactionCtx.js +11 -15
- package/lib/module/contexts/ReactionCtx.js.map +1 -1
- package/lib/module/contexts/SBUHandlersCtx.js +5 -6
- package/lib/module/contexts/SBUHandlersCtx.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +12 -13
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/contexts/UserProfileCtx.js +11 -21
- package/lib/module/contexts/UserProfileCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +11 -14
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js +5 -6
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +9 -13
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +22 -30
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
- package/lib/module/domain/groupChannel/index.js.map +1 -1
- package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +10 -11
- package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +16 -18
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +3 -4
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +14 -23
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +3 -4
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +9 -10
- package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +4 -5
- package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +19 -30
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +10 -13
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
- package/lib/module/domain/groupChannelList/index.js.map +1 -1
- package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +9 -10
- package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -1
- package/lib/module/domain/groupChannelList/module/moduleContext.js +3 -4
- package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelList/types.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +3 -4
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +6 -7
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/index.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +6 -7
- package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/module/moduleContext.js +4 -5
- package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/types.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +3 -4
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +14 -23
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +3 -4
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +9 -10
- package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +4 -5
- package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +3 -4
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +18 -16
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/index.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +6 -7
- package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +4 -5
- package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/types.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +4 -5
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +14 -23
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +3 -4
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/index.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +9 -10
- package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/module/moduleContext.js +4 -5
- package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/types.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +3 -4
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +9 -10
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/index.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +7 -8
- package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js +7 -9
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +9 -12
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +5 -6
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +9 -12
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +31 -33
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +20 -28
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
- package/lib/module/domain/groupChannelThread/index.js.map +1 -1
- package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +11 -12
- package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -1
- package/lib/module/domain/groupChannelThread/module/moduleContext.js +8 -9
- package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelThread/types.js.map +1 -1
- package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +16 -15
- package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
- package/lib/module/domain/messageSearch/component/MessageSearchList.js +11 -13
- package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -1
- package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -1
- package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +3 -4
- package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -1
- package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -1
- package/lib/module/domain/messageSearch/index.js.map +1 -1
- package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +9 -10
- package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -1
- package/lib/module/domain/messageSearch/module/moduleContext.js +3 -4
- package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -1
- package/lib/module/domain/messageSearch/types.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelHeader.js +6 -7
- package/lib/module/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelInput.js +5 -6
- package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +6 -8
- package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -1
- package/lib/module/domain/openChannel/index.js.map +1 -1
- package/lib/module/domain/openChannel/module/createOpenChannelModule.js +9 -10
- package/lib/module/domain/openChannel/module/createOpenChannelModule.js.map +1 -1
- package/lib/module/domain/openChannel/module/moduleContext.js +6 -7
- package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannel/types.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +3 -4
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +14 -23
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +3 -4
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/index.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +9 -10
- package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js +4 -5
- package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/types.js.map +1 -1
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js +5 -6
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +12 -13
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -1
- package/lib/module/domain/openChannelCreate/index.js.map +1 -1
- package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js +7 -8
- package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -1
- package/lib/module/domain/openChannelCreate/module/moduleContext.js +3 -4
- package/lib/module/domain/openChannelCreate/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelCreate/types.js.map +1 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js +3 -4
- package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListList.js +19 -30
- package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js +3 -4
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -1
- package/lib/module/domain/openChannelList/index.js.map +1 -1
- package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js +9 -10
- package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -1
- package/lib/module/domain/openChannelList/module/moduleContext.js +3 -4
- package/lib/module/domain/openChannelList/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelList/types.js.map +1 -1
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js +3 -4
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js +6 -7
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -1
- package/lib/module/domain/openChannelModeration/index.js.map +1 -1
- package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js +6 -7
- package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -1
- package/lib/module/domain/openChannelModeration/module/moduleContext.js +4 -5
- package/lib/module/domain/openChannelModeration/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelModeration/types.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +3 -4
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +14 -23
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +3 -4
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/index.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +9 -10
- package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js +4 -5
- package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/types.js.map +1 -1
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +4 -5
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js +14 -23
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -1
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -1
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +3 -4
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -1
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -1
- package/lib/module/domain/openChannelOperators/index.js.map +1 -1
- package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +9 -10
- package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -1
- package/lib/module/domain/openChannelOperators/module/moduleContext.js +4 -5
- package/lib/module/domain/openChannelOperators/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelOperators/types.js.map +1 -1
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +3 -4
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +6 -7
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
- package/lib/module/domain/openChannelSettings/index.js.map +1 -1
- package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +7 -8
- package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -1
- package/lib/module/domain/openChannelSettings/module/moduleContext.js +5 -6
- package/lib/module/domain/openChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannelSettings/types.js.map +1 -1
- package/lib/module/domain/openChannelUserList/types.js.map +1 -1
- package/lib/module/domain/userList/component/UserListHeader.js +7 -8
- package/lib/module/domain/userList/component/UserListHeader.js.map +1 -1
- package/lib/module/domain/userList/component/UserListList.js +14 -23
- package/lib/module/domain/userList/component/UserListList.js.map +1 -1
- package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -1
- package/lib/module/domain/userList/component/UserListStatusError.js +3 -4
- package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
- package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -1
- package/lib/module/domain/userList/index.js.map +1 -1
- package/lib/module/domain/userList/module/createUserListModule.js +9 -10
- package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
- package/lib/module/domain/userList/module/moduleContext.js +5 -6
- package/lib/module/domain/userList/module/moduleContext.js.map +1 -1
- package/lib/module/domain/userList/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +8 -9
- package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -12
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +24 -25
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelInviteFragment.js +9 -11
- package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelListFragment.js +10 -11
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelMembersFragment.js +14 -15
- package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelModerationFragment.js +12 -17
- package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +12 -13
- package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelNotificationsFragment.js +4 -5
- package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelOperatorsFragment.js +13 -14
- package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +11 -13
- package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelSettingsFragment.js +14 -19
- package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelThreadFragment.js +21 -22
- package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js +11 -13
- package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelBannedUsersFragment.js +8 -9
- package/lib/module/fragments/createOpenChannelBannedUsersFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelCreateFragment.js +5 -6
- package/lib/module/fragments/createOpenChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelFragment.js +20 -21
- package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelListFragment.js +7 -8
- package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelModerationFragment.js +12 -17
- package/lib/module/fragments/createOpenChannelModerationFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js +8 -9
- package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelOperatorsFragment.js +9 -10
- package/lib/module/fragments/createOpenChannelOperatorsFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelParticipantsFragment.js +9 -10
- package/lib/module/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js +11 -13
- package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelSettingsFragment.js +13 -18
- package/lib/module/fragments/createOpenChannelSettingsFragment.js.map +1 -1
- package/lib/module/hooks/useChannelInputItems.js.map +1 -1
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useContext.js.map +1 -1
- package/lib/module/hooks/useKeyboardStatus.js.map +1 -1
- package/lib/module/hooks/useMentionSuggestion.js +3 -4
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/hooks/useMentionTextInput.js +4 -2
- package/lib/module/hooks/useMentionTextInput.js.map +1 -1
- package/lib/module/hooks/usePushTokenRegistration.js +1 -1
- package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
- package/lib/module/hooks/useVoiceMessageInput.js +11 -14
- package/lib/module/hooks/useVoiceMessageInput.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/EmojiManager.js +4 -5
- package/lib/module/libs/EmojiManager.js.map +1 -1
- package/lib/module/libs/ImageCompressionConfig.js +3 -3
- package/lib/module/libs/ImageCompressionConfig.js.map +1 -1
- package/lib/module/libs/InternalLocalCacheStorage.js +5 -11
- package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
- package/lib/module/libs/MentionConfig.js +3 -3
- package/lib/module/libs/MentionConfig.js.map +1 -1
- package/lib/module/libs/MentionManager.js +44 -29
- package/lib/module/libs/MentionManager.js.map +1 -1
- package/lib/module/libs/SBUError.js +3 -3
- package/lib/module/libs/SBUError.js.map +1 -1
- package/lib/module/libs/SBUUtils.js.map +1 -1
- package/lib/module/libs/VoiceMessageConfig.js +3 -3
- package/lib/module/libs/VoiceMessageConfig.js.map +1 -1
- package/lib/module/libs/VoiceMessageStatusManager.js +8 -8
- package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -1
- package/lib/module/localization/StringSet.en.js.map +1 -1
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +25 -30
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/platform/createClipboardService.expo.js.map +1 -1
- package/lib/module/platform/createClipboardService.native.js.map +1 -1
- package/lib/module/platform/createFileService.expo.js +10 -12
- package/lib/module/platform/createFileService.expo.js.map +1 -1
- package/lib/module/platform/createFileService.native.js +28 -33
- package/lib/module/platform/createFileService.native.js.map +1 -1
- package/lib/module/platform/createMediaService.expo.js +24 -28
- package/lib/module/platform/createMediaService.expo.js.map +1 -1
- package/lib/module/platform/createMediaService.native.js +22 -26
- package/lib/module/platform/createMediaService.native.js.map +1 -1
- package/lib/module/platform/createNotificationService.expo.js +3 -6
- package/lib/module/platform/createNotificationService.expo.js.map +1 -1
- package/lib/module/platform/createNotificationService.native.js +4 -5
- package/lib/module/platform/createNotificationService.native.js.map +1 -1
- package/lib/module/platform/createPlayerService.expo.js +6 -7
- package/lib/module/platform/createPlayerService.expo.js.map +1 -1
- package/lib/module/platform/createPlayerService.native.js +7 -8
- package/lib/module/platform/createPlayerService.native.js.map +1 -1
- package/lib/module/platform/createRecorderService.expo.js +6 -7
- package/lib/module/platform/createRecorderService.expo.js.map +1 -1
- package/lib/module/platform/createRecorderService.native.js +8 -9
- package/lib/module/platform/createRecorderService.native.js.map +1 -1
- package/lib/module/platform/dynamicModule.js +1 -2
- package/lib/module/platform/dynamicModule.js.map +1 -1
- package/lib/module/platform/types.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/expoBackwardUtils.js +22 -28
- package/lib/module/utils/expoBackwardUtils.js.map +1 -1
- package/lib/module/utils/expoPermissionGranted.js +1 -1
- package/lib/module/utils/expoPermissionGranted.js.map +1 -1
- package/lib/module/utils/nativePermissionGranted.js +1 -1
- package/lib/module/utils/nativePermissionGranted.js.map +1 -1
- package/lib/module/utils/normalizeFile.js +6 -7
- package/lib/module/utils/normalizeFile.js.map +1 -1
- package/lib/module/utils/promise.js.map +1 -1
- package/lib/module/utils/pubsub.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +1 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -1
- package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +2 -2
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +1 -0
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +4 -4
- package/lib/typescript/src/contexts/UserProfileCtx.d.ts +3 -3
- package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
- package/lib/typescript/src/libs/MentionManager.d.ts +1 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +5 -2
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/ChannelInput/AttachmentsButton.tsx +1 -1
- package/src/components/ChannelInput/EditInput.tsx +2 -0
- package/src/components/ChannelInput/MessageToReplyPreview.tsx +29 -33
- package/src/components/ChannelInput/SendInput.tsx +3 -1
- package/src/components/ChannelInput/VoiceMessageInput.tsx +4 -4
- package/src/components/ChannelInput/index.tsx +19 -11
- package/src/components/ChannelMessageList/index.tsx +5 -7
- package/src/components/ChannelThreadMessageList/index.tsx +5 -7
- package/src/components/FileViewer/FileViewerFooter.tsx +6 -6
- package/src/components/FileViewer/FileViewerHeader.tsx +6 -7
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +4 -4
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +5 -5
- package/src/components/GroupChannelMessageRenderer/index.tsx +3 -2
- package/src/components/MessageSearchResultItem.tsx +17 -15
- package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +5 -7
- package/src/components/ReactionAddons/MessageReactionAddon.tsx +8 -14
- package/src/components/ReactionAddons/ReactionRoundedButton.tsx +1 -1
- package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +7 -8
- package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +33 -26
- package/src/components/ReactionBottomSheets/index.tsx +2 -2
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +1 -1
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +4 -2
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +15 -6
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +37 -31
- package/src/components/ThreadParentMessageRenderer/index.tsx +12 -2
- package/src/components/UserActionBar.tsx +11 -10
- package/src/components/UserSelectableBar.tsx +8 -7
- package/src/containers/GroupChannelPreviewContainer.tsx +4 -5
- package/src/containers/SendbirdUIKitContainer.tsx +3 -2
- package/src/contexts/ReactionCtx.tsx +0 -3
- package/src/contexts/UserProfileCtx.tsx +14 -13
- package/src/domain/groupChannel/component/GroupChannelHeader.tsx +6 -7
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +9 -5
- package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +15 -15
- package/src/domain/groupChannel/module/moduleContext.tsx +2 -4
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -4
- package/src/domain/groupChannelList/component/GroupChannelListList.tsx +10 -4
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +3 -4
- package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +26 -11
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +3 -5
- package/src/domain/groupChannelSettings/module/moduleContext.tsx +2 -4
- package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +12 -6
- package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +3 -4
- package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +11 -10
- package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +12 -13
- package/src/domain/messageSearch/component/MessageSearchHeader.tsx +9 -6
- package/src/domain/openChannel/component/OpenChannelHeader.tsx +1 -1
- package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.tsx +3 -4
- package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +6 -6
- package/src/domain/openChannelList/component/OpenChannelListList.tsx +3 -4
- package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.tsx +3 -4
- package/src/domain/openChannelOperators/component/OpenChannelOperatorsList.tsx +3 -4
- package/src/domain/userList/component/UserListList.tsx +3 -5
- package/src/fragments/createGroupChannelFragment.tsx +1 -1
- package/src/fragments/createGroupChannelMembersFragment.tsx +4 -5
- package/src/fragments/createGroupChannelModerationFragment.tsx +4 -5
- package/src/fragments/createGroupChannelMutedMembersFragment.tsx +4 -5
- package/src/fragments/createGroupChannelOperatorsFragment.tsx +4 -5
- package/src/fragments/createGroupChannelSettingsFragment.tsx +4 -5
- package/src/fragments/createOpenChannelModerationFragment.tsx +4 -5
- package/src/fragments/createOpenChannelSettingsFragment.tsx +4 -5
- package/src/hooks/useMentionSuggestion.ts +3 -5
- package/src/hooks/useMentionTextInput.ts +1 -0
- package/src/libs/MentionManager.tsx +29 -3
- package/src/localization/StringSet.type.ts +5 -1
- package/src/localization/createBaseStringSet.ts +3 -0
- package/src/platform/createFileService.native.ts +1 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Logger","matchesOneOf","sleep","createNativePlayerService","
|
|
1
|
+
{"version":3,"names":["Platform","Logger","matchesOneOf","sleep","createNativePlayerService","audioRecorderModule","permissionModule","module","default","VoicePlayer","constructor","_defineProperty","Set","state","stateSubscribers","forEach","callback","addPlayBackListener","data","stopped","currentPosition","duration","stop","catch","error","warn","playbackSubscribers","currentTime","removePlayBackListener","OS","Version","READ_EXTERNAL_STORAGE","PERMISSIONS","ANDROID","status","check","request","add","delete","uri","setState","setListener","startPlayer","e","undefined","removeListener","resumePlayer","pausePlayer","stopPlayer","clear","time","seekToPlayer","setSubscriptionDuration"],"sources":["createPlayerService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport type * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport type { PlayerServiceInterface, Unsubscribe } from './types';\n\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\ntype PlaybackListener = Parameters<PlayerServiceInterface['addPlaybackListener']>[number];\ntype StateListener = Parameters<PlayerServiceInterface['addStateListener']>[number];\nconst createNativePlayerService = ({ audioRecorderModule, permissionModule }: Modules): PlayerServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoicePlayer implements PlayerServiceInterface {\n uri?: string;\n state: PlayerServiceInterface['state'] = 'idle';\n\n private readonly playbackSubscribers = new Set<PlaybackListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[PlayerService.Native] Failed to set subscription duration', error);\n });\n }\n\n private setState = (state: PlayerServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n private setListener = () => {\n module.addPlayBackListener(async (data) => {\n const stopped = data.currentPosition >= data.duration;\n\n if (stopped) {\n this.stop().catch((error) => {\n Logger.warn('[PlayerService.Native] Failed to stop in PlayBackListener', error);\n });\n }\n if (this.state === 'playing') {\n this.playbackSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, duration: data.duration, stopped });\n });\n }\n });\n };\n\n private removeListener = () => {\n module.removePlayBackListener();\n };\n\n public requestPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n if (Platform.Version > 32) return true;\n\n const { READ_EXTERNAL_STORAGE } = permissionModule.PERMISSIONS.ANDROID;\n\n const status = await permissionModule.check(READ_EXTERNAL_STORAGE);\n if (status === 'granted') {\n return true;\n } else {\n const status = await permissionModule.request(READ_EXTERNAL_STORAGE);\n return status === 'granted';\n }\n } else {\n return true;\n }\n };\n\n public addPlaybackListener = (callback: PlaybackListener): Unsubscribe => {\n this.playbackSubscribers.add(callback);\n return () => {\n this.playbackSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public play = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'stopped'])) {\n try {\n this.setState('preparing');\n this.uri = uri;\n this.setListener();\n\n // FIXME: Workaround, `module.startPlayer()` caused a significant frame-drop and prevented the 'preparing' UI transition.\n await sleep(0);\n await module.startPlayer(uri);\n\n this.setState('playing');\n } catch (e) {\n this.setState('idle');\n this.uri = undefined;\n this.removeListener();\n throw e;\n }\n } else if (matchesOneOf(this.state, ['paused']) && this.uri === uri) {\n try {\n this.setListener();\n await module.resumePlayer();\n this.setState('playing');\n } catch (e) {\n this.removeListener();\n throw e;\n }\n }\n };\n\n public pause = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['playing'])) {\n await module.pausePlayer();\n this.removeListener();\n this.setState('paused');\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['preparing', 'playing', 'paused'])) {\n await module.stopPlayer();\n this.removeListener();\n this.setState('stopped');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.setState('idle');\n this.uri = undefined;\n this.playbackSubscribers.clear();\n this.stateSubscribers.clear();\n };\n\n public seek = async (time: number): Promise<void> => {\n if (matchesOneOf(this.state, ['playing', 'paused'])) {\n await module.seekToPlayer(time);\n }\n };\n }\n\n return new VoicePlayer();\n};\n\nexport default createNativePlayerService;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
function _toPropertyKey(
|
|
3
|
-
function _toPrimitive(
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import { matchesOneOf, sleep } from '@sendbird/uikit-utils';
|
|
6
6
|
import VoiceMessageConfig from '../libs/VoiceMessageConfig';
|
|
7
7
|
import expoPermissionGranted from '../utils/expoPermissionGranted';
|
|
8
|
-
const createExpoRecorderService =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} = _ref;
|
|
8
|
+
const createExpoRecorderService = ({
|
|
9
|
+
avModule
|
|
10
|
+
}) => {
|
|
12
11
|
class VoiceRecorder {
|
|
13
12
|
constructor() {
|
|
14
13
|
_defineProperty(this, "uri", undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","matchesOneOf","sleep","VoiceMessageConfig","expoPermissionGranted","createExpoRecorderService","_ref","avModule","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Audio","Recording","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","numberOfChannels","CHANNELS","android","_audioSettings","options","audioEncoder","AndroidAudioEncoder","AAC","outputFormat","AndroidOutputFormat","MPEG_4","ios","IOSOutputFormat","MPEG4AAC","audioQuality","IOSAudioQuality","HIGH","web","setState","OS","setAudioModeAsync","allowsRecordingIOS","playsInSilentModeIOS","_recorder","_isDoneRecording","setProgressUpdateInterval","setOnRecordingStatusUpdate","status","completed","durationMillis","stop","isRecording","_recordingSubscribers","forEach","callback","currentTime","prepareToRecordAsync","_audioOptions","state","_stateSubscribers","getPermissionsAsync","requestPermissionsAsync","add","delete","prepare","startAsync","uri","getURI","e","buffer","_getRecorderStopSafeBuffer","stopAndUnloadAsync","clear"],"sources":["createRecorderService.expo.tsx"],"sourcesContent":["import * as ExpoAV from 'expo-av';\nimport type { RecordingOptions } from 'expo-av/build/Audio/Recording.types';\nimport { Platform } from 'react-native';\n\nimport { matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n avModule: typeof ExpoAV;\n};\nconst createExpoRecorderService = ({ avModule }: Modules): RecorderServiceInterface => {\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private _recorder = new avModule.Audio.Recording();\n private readonly _recordingSubscribers = new Set<RecordingListener>();\n private readonly _stateSubscribers = new Set<StateListener>();\n private readonly _audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n numberOfChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly _audioOptions: RecordingOptions = {\n android: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n audioEncoder: avModule.Audio.AndroidAudioEncoder.AAC,\n outputFormat: avModule.Audio.AndroidOutputFormat.MPEG_4,\n },\n ios: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n outputFormat: avModule.Audio.IOSOutputFormat.MPEG4AAC,\n audioQuality: avModule.Audio.IOSAudioQuality.HIGH,\n },\n web: {},\n };\n\n private prepare = async () => {\n this.setState('preparing');\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true });\n }\n\n if (this._recorder._isDoneRecording) {\n this._recorder = new avModule.Audio.Recording();\n }\n this._recorder.setProgressUpdateInterval(100);\n this._recorder.setOnRecordingStatusUpdate((status) => {\n const completed = status.durationMillis >= this.options.maxDuration;\n if (completed) this.stop();\n if (status.isRecording) {\n this._recordingSubscribers.forEach((callback) => {\n callback({ currentTime: status.durationMillis, completed: completed });\n });\n }\n });\n await this._recorder.prepareToRecordAsync(this._audioOptions);\n };\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this._stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const status = await avModule.Audio.getPermissionsAsync();\n if (expoPermissionGranted([status])) {\n return true;\n } else {\n const status = await avModule.Audio.requestPermissionsAsync();\n return expoPermissionGranted([status]);\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this._recordingSubscribers.add(callback);\n return () => {\n this._recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this._stateSubscribers.add(callback);\n return () => {\n this._stateSubscribers.delete(callback);\n };\n };\n\n public record = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n await this.prepare();\n await this._recorder.startAsync();\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n const uri = this._recorder.getURI();\n if (uri) this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await this._recorder.stopAndUnloadAsync();\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: false, playsInSilentModeIOS: false });\n }\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this._recordingSubscribers.clear();\n this._recorder = new avModule.Audio.Recording();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createExpoRecorderService;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","matchesOneOf","sleep","VoiceMessageConfig","expoPermissionGranted","createExpoRecorderService","avModule","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Audio","Recording","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","numberOfChannels","CHANNELS","android","_audioSettings","options","audioEncoder","AndroidAudioEncoder","AAC","outputFormat","AndroidOutputFormat","MPEG_4","ios","IOSOutputFormat","MPEG4AAC","audioQuality","IOSAudioQuality","HIGH","web","setState","OS","setAudioModeAsync","allowsRecordingIOS","playsInSilentModeIOS","_recorder","_isDoneRecording","setProgressUpdateInterval","setOnRecordingStatusUpdate","status","completed","durationMillis","stop","isRecording","_recordingSubscribers","forEach","callback","currentTime","prepareToRecordAsync","_audioOptions","state","_stateSubscribers","getPermissionsAsync","requestPermissionsAsync","add","delete","prepare","startAsync","uri","getURI","e","buffer","_getRecorderStopSafeBuffer","stopAndUnloadAsync","clear"],"sources":["createRecorderService.expo.tsx"],"sourcesContent":["import * as ExpoAV from 'expo-av';\nimport type { RecordingOptions } from 'expo-av/build/Audio/Recording.types';\nimport { Platform } from 'react-native';\n\nimport { matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n avModule: typeof ExpoAV;\n};\nconst createExpoRecorderService = ({ avModule }: Modules): RecorderServiceInterface => {\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private _recorder = new avModule.Audio.Recording();\n private readonly _recordingSubscribers = new Set<RecordingListener>();\n private readonly _stateSubscribers = new Set<StateListener>();\n private readonly _audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n numberOfChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly _audioOptions: RecordingOptions = {\n android: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n audioEncoder: avModule.Audio.AndroidAudioEncoder.AAC,\n outputFormat: avModule.Audio.AndroidOutputFormat.MPEG_4,\n },\n ios: {\n ...this._audioSettings,\n extension: `.${this.options.extension}`,\n outputFormat: avModule.Audio.IOSOutputFormat.MPEG4AAC,\n audioQuality: avModule.Audio.IOSAudioQuality.HIGH,\n },\n web: {},\n };\n\n private prepare = async () => {\n this.setState('preparing');\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true });\n }\n\n if (this._recorder._isDoneRecording) {\n this._recorder = new avModule.Audio.Recording();\n }\n this._recorder.setProgressUpdateInterval(100);\n this._recorder.setOnRecordingStatusUpdate((status) => {\n const completed = status.durationMillis >= this.options.maxDuration;\n if (completed) this.stop();\n if (status.isRecording) {\n this._recordingSubscribers.forEach((callback) => {\n callback({ currentTime: status.durationMillis, completed: completed });\n });\n }\n });\n await this._recorder.prepareToRecordAsync(this._audioOptions);\n };\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this._stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const status = await avModule.Audio.getPermissionsAsync();\n if (expoPermissionGranted([status])) {\n return true;\n } else {\n const status = await avModule.Audio.requestPermissionsAsync();\n return expoPermissionGranted([status]);\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this._recordingSubscribers.add(callback);\n return () => {\n this._recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this._stateSubscribers.add(callback);\n return () => {\n this._stateSubscribers.delete(callback);\n };\n };\n\n public record = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n await this.prepare();\n await this._recorder.startAsync();\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n const uri = this._recorder.getURI();\n if (uri) this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await this._recorder.stopAndUnloadAsync();\n if (Platform.OS === 'ios') {\n await avModule.Audio.setAudioModeAsync({ allowsRecordingIOS: false, playsInSilentModeIOS: false });\n }\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this._recordingSubscribers.clear();\n this._recorder = new avModule.Audio.Recording();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createExpoRecorderService;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
function _toPropertyKey(
|
|
3
|
-
function _toPrimitive(
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';
|
|
6
6
|
import VoiceMessageConfig from '../libs/VoiceMessageConfig';
|
|
7
7
|
import nativePermissionGranted from '../utils/nativePermissionGranted';
|
|
8
|
-
const createNativeRecorderService =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
} = _ref;
|
|
8
|
+
const createNativeRecorderService = ({
|
|
9
|
+
audioRecorderModule,
|
|
10
|
+
permissionModule
|
|
11
|
+
}) => {
|
|
13
12
|
const module = new audioRecorderModule.default();
|
|
14
13
|
class VoiceRecorder {
|
|
15
14
|
constructor() {
|
|
@@ -68,7 +67,7 @@ const createNativeRecorderService = _ref => {
|
|
|
68
67
|
default: undefined
|
|
69
68
|
});
|
|
70
69
|
if (Platform.OS === 'android' && Platform.Version <= 28) {
|
|
71
|
-
permission === null || permission === void 0
|
|
70
|
+
permission === null || permission === void 0 || permission.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
|
|
72
71
|
}
|
|
73
72
|
if (permission) {
|
|
74
73
|
const status = await permissionModule.checkMultiple(permission);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Logger","matchesOneOf","sleep","VoiceMessageConfig","nativePermissionGranted","createNativeRecorderService","_ref","audioRecorderModule","permissionModule","module","default","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","audioChannels","CHANNELS","select","android","AudioEncodingBitRateAndroid","audioSettings","AudioChannelsAndroid","AudioSamplingRateAndroid","AudioEncoderAndroid","AudioEncoderAndroidType","AAC","OutputFormatAndroid","OutputFormatAndroidType","MPEG_4","AudioSourceAndroid","AudioSourceAndroidType","VOICE_RECOGNITION","ios","AVEncoderBitRateKeyIOS","AVNumberOfChannelsKeyIOS","AVSampleRateKeyIOS","AVFormatIDKeyIOS","AVEncodingOption","mp4","AVEncoderAudioQualityKeyIOS","AVEncoderAudioQualityIOSType","high","state","stateSubscribers","forEach","callback","permission","PERMISSIONS","ANDROID","RECORD_AUDIO","IOS","MICROPHONE","windows","WINDOWS","OS","Version","push","WRITE_EXTERNAL_STORAGE","status","checkMultiple","requestMultiple","recordingSubscribers","add","delete","uri","setState","startRecorder","audioOptions","e","buffer","_getRecorderStopSafeBuffer","stopRecorder","stop","clear","setSubscriptionDuration","catch","error","warn","addRecordBackListener","data","completed","currentPosition","options","currentTime"],"sources":["createRecorderService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\nimport { Permission } from 'react-native-permissions/src/types';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport nativePermissionGranted from '../utils/nativePermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\nconst createNativeRecorderService = ({ audioRecorderModule, permissionModule }: Modules): RecorderServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private readonly recordingSubscribers = new Set<RecordingListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n private readonly audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n audioChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly audioOptions = Platform.select({\n android: {\n AudioEncodingBitRateAndroid: this.audioSettings.bitRate,\n AudioChannelsAndroid: this.audioSettings.audioChannels,\n AudioSamplingRateAndroid: this.audioSettings.sampleRate,\n AudioEncoderAndroid: audioRecorderModule.AudioEncoderAndroidType.AAC,\n OutputFormatAndroid: audioRecorderModule.OutputFormatAndroidType.MPEG_4,\n AudioSourceAndroid: audioRecorderModule.AudioSourceAndroidType.VOICE_RECOGNITION,\n },\n ios: {\n AVEncoderBitRateKeyIOS: this.audioSettings.bitRate,\n AVNumberOfChannelsKeyIOS: this.audioSettings.audioChannels,\n AVSampleRateKeyIOS: this.audioSettings.sampleRate,\n AVFormatIDKeyIOS: audioRecorderModule.AVEncodingOption.mp4, // same with aac\n AVEncoderAudioQualityKeyIOS: audioRecorderModule.AVEncoderAudioQualityIOSType.high,\n },\n default: {},\n });\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to set subscription duration', error);\n });\n module.addRecordBackListener((data) => {\n const completed = data.currentPosition >= this.options.maxDuration;\n\n if (completed) {\n this.stop().catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to stop in RecordBackListener', error);\n });\n }\n if (this.state === 'recording') {\n this.recordingSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, completed });\n });\n }\n });\n }\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const permission: Permission[] | undefined = Platform.select({\n android: [permissionModule.PERMISSIONS.ANDROID.RECORD_AUDIO],\n ios: [permissionModule.PERMISSIONS.IOS.MICROPHONE],\n windows: [permissionModule.PERMISSIONS.WINDOWS.MICROPHONE],\n default: undefined,\n });\n\n if (Platform.OS === 'android' && Platform.Version <= 28) {\n permission?.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);\n }\n\n if (permission) {\n const status = await permissionModule.checkMultiple(permission);\n if (nativePermissionGranted(status)) {\n return true;\n } else {\n const status = await permissionModule.requestMultiple(permission);\n return nativePermissionGranted(status);\n }\n } else {\n return true;\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this.recordingSubscribers.add(callback);\n return () => {\n this.recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public record = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n this.setState('preparing');\n await module.startRecorder(uri, {\n ...this.audioOptions,\n });\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await module.stopRecorder();\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this.recordingSubscribers.clear();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createNativeRecorderService;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","Logger","matchesOneOf","sleep","VoiceMessageConfig","nativePermissionGranted","createNativeRecorderService","audioRecorderModule","permissionModule","module","default","VoiceRecorder","constructor","_defineProperty","undefined","minDuration","DEFAULT","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","extension","EXTENSION","minWaitingTime","elapsedTime","Date","now","_recordStartedAt","Set","sampleRate","SAMPLE_RATE","bitRate","BIT_RATE","audioChannels","CHANNELS","select","android","AudioEncodingBitRateAndroid","audioSettings","AudioChannelsAndroid","AudioSamplingRateAndroid","AudioEncoderAndroid","AudioEncoderAndroidType","AAC","OutputFormatAndroid","OutputFormatAndroidType","MPEG_4","AudioSourceAndroid","AudioSourceAndroidType","VOICE_RECOGNITION","ios","AVEncoderBitRateKeyIOS","AVNumberOfChannelsKeyIOS","AVSampleRateKeyIOS","AVFormatIDKeyIOS","AVEncodingOption","mp4","AVEncoderAudioQualityKeyIOS","AVEncoderAudioQualityIOSType","high","state","stateSubscribers","forEach","callback","permission","PERMISSIONS","ANDROID","RECORD_AUDIO","IOS","MICROPHONE","windows","WINDOWS","OS","Version","push","WRITE_EXTERNAL_STORAGE","status","checkMultiple","requestMultiple","recordingSubscribers","add","delete","uri","setState","startRecorder","audioOptions","e","buffer","_getRecorderStopSafeBuffer","stopRecorder","stop","clear","setSubscriptionDuration","catch","error","warn","addRecordBackListener","data","completed","currentPosition","options","currentTime"],"sources":["createRecorderService.native.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport * as RNAudioRecorder from 'react-native-audio-recorder-player';\nimport * as Permissions from 'react-native-permissions';\nimport { Permission } from 'react-native-permissions/src/types';\n\nimport { Logger, matchesOneOf, sleep } from '@sendbird/uikit-utils';\n\nimport VoiceMessageConfig from '../libs/VoiceMessageConfig';\nimport nativePermissionGranted from '../utils/nativePermissionGranted';\nimport type { RecorderServiceInterface, Unsubscribe } from './types';\n\ntype RecordingListener = Parameters<RecorderServiceInterface['addRecordingListener']>[number];\ntype StateListener = Parameters<RecorderServiceInterface['addStateListener']>[number];\ntype Modules = {\n audioRecorderModule: typeof RNAudioRecorder;\n permissionModule: typeof Permissions;\n};\nconst createNativeRecorderService = ({ audioRecorderModule, permissionModule }: Modules): RecorderServiceInterface => {\n const module = new audioRecorderModule.default();\n\n class VoiceRecorder implements RecorderServiceInterface {\n public uri: RecorderServiceInterface['uri'] = undefined;\n public state: RecorderServiceInterface['state'] = 'idle';\n public options: RecorderServiceInterface['options'] = {\n minDuration: VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n extension: VoiceMessageConfig.DEFAULT.RECORDER.EXTENSION,\n };\n\n // NOTE: In Android, even when startRecorder() is awaited, if stop() is executed immediately afterward, an error occurs\n private _recordStartedAt = 0;\n private _getRecorderStopSafeBuffer = () => {\n const minWaitingTime = 500;\n const elapsedTime = Date.now() - this._recordStartedAt;\n if (elapsedTime > minWaitingTime) return 0;\n else return minWaitingTime - elapsedTime;\n };\n\n private readonly recordingSubscribers = new Set<RecordingListener>();\n private readonly stateSubscribers = new Set<StateListener>();\n private readonly audioSettings = {\n sampleRate: VoiceMessageConfig.DEFAULT.RECORDER.SAMPLE_RATE,\n bitRate: VoiceMessageConfig.DEFAULT.RECORDER.BIT_RATE,\n audioChannels: VoiceMessageConfig.DEFAULT.RECORDER.CHANNELS,\n // encoding: mpeg4_aac\n };\n private readonly audioOptions = Platform.select({\n android: {\n AudioEncodingBitRateAndroid: this.audioSettings.bitRate,\n AudioChannelsAndroid: this.audioSettings.audioChannels,\n AudioSamplingRateAndroid: this.audioSettings.sampleRate,\n AudioEncoderAndroid: audioRecorderModule.AudioEncoderAndroidType.AAC,\n OutputFormatAndroid: audioRecorderModule.OutputFormatAndroidType.MPEG_4,\n AudioSourceAndroid: audioRecorderModule.AudioSourceAndroidType.VOICE_RECOGNITION,\n },\n ios: {\n AVEncoderBitRateKeyIOS: this.audioSettings.bitRate,\n AVNumberOfChannelsKeyIOS: this.audioSettings.audioChannels,\n AVSampleRateKeyIOS: this.audioSettings.sampleRate,\n AVFormatIDKeyIOS: audioRecorderModule.AVEncodingOption.mp4, // same with aac\n AVEncoderAudioQualityKeyIOS: audioRecorderModule.AVEncoderAudioQualityIOSType.high,\n },\n default: {},\n });\n\n constructor() {\n module.setSubscriptionDuration(0.1).catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to set subscription duration', error);\n });\n module.addRecordBackListener((data) => {\n const completed = data.currentPosition >= this.options.maxDuration;\n\n if (completed) {\n this.stop().catch((error) => {\n Logger.warn('[RecorderService.Native] Failed to stop in RecordBackListener', error);\n });\n }\n if (this.state === 'recording') {\n this.recordingSubscribers.forEach((callback) => {\n callback({ currentTime: data.currentPosition, completed });\n });\n }\n });\n }\n\n private setState = (state: RecorderServiceInterface['state']) => {\n this.state = state;\n this.stateSubscribers.forEach((callback) => {\n callback(state);\n });\n };\n\n public requestPermission = async (): Promise<boolean> => {\n const permission: Permission[] | undefined = Platform.select({\n android: [permissionModule.PERMISSIONS.ANDROID.RECORD_AUDIO],\n ios: [permissionModule.PERMISSIONS.IOS.MICROPHONE],\n windows: [permissionModule.PERMISSIONS.WINDOWS.MICROPHONE],\n default: undefined,\n });\n\n if (Platform.OS === 'android' && Platform.Version <= 28) {\n permission?.push(permissionModule.PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);\n }\n\n if (permission) {\n const status = await permissionModule.checkMultiple(permission);\n if (nativePermissionGranted(status)) {\n return true;\n } else {\n const status = await permissionModule.requestMultiple(permission);\n return nativePermissionGranted(status);\n }\n } else {\n return true;\n }\n };\n\n public addRecordingListener = (callback: RecordingListener): Unsubscribe => {\n this.recordingSubscribers.add(callback);\n return () => {\n this.recordingSubscribers.delete(callback);\n };\n };\n\n public addStateListener = (callback: StateListener): Unsubscribe => {\n this.stateSubscribers.add(callback);\n return () => {\n this.stateSubscribers.delete(callback);\n };\n };\n\n public record = async (uri: string): Promise<void> => {\n if (matchesOneOf(this.state, ['idle', 'completed'])) {\n try {\n this.setState('preparing');\n await module.startRecorder(uri, {\n ...this.audioOptions,\n });\n\n if (Platform.OS === 'android') {\n this._recordStartedAt = Date.now();\n }\n\n this.uri = uri;\n this.setState('recording');\n } catch (e) {\n this.setState('idle');\n throw e;\n }\n }\n };\n\n public stop = async (): Promise<void> => {\n if (matchesOneOf(this.state, ['recording'])) {\n if (Platform.OS === 'android') {\n const buffer = this._getRecorderStopSafeBuffer();\n if (buffer > 0) await sleep(buffer);\n }\n\n await module.stopRecorder();\n this.setState('completed');\n }\n };\n\n public reset = async (): Promise<void> => {\n await this.stop();\n this.uri = undefined;\n this.recordingSubscribers.clear();\n this.setState('idle');\n };\n }\n\n return new VoiceRecorder();\n};\n\nexport default createNativeRecorderService;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,8 +38,7 @@ const SBUDynamicModule = {
|
|
|
38
38
|
getInfo(name) {
|
|
39
39
|
return SBUDynamicModuleRegistry[name] ?? null;
|
|
40
40
|
},
|
|
41
|
-
get(name) {
|
|
42
|
-
let logLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'error';
|
|
41
|
+
get(name, logLevel = 'error') {
|
|
43
42
|
const dmi = this.getInfo(name);
|
|
44
43
|
if (!dmi) Logger.warn(`${name} doesn't exist in the dynamic module`);
|
|
45
44
|
return dmi === null || dmi === void 0 ? void 0 : dmi.getPackage(logLevel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","UIManager","Logger","checkLink","dmi","logLevel","nativeModule","isComponent","getViewManagerConfig","nativeModuleNamespace","message","packageName","url","console","error","warn","SBUDynamicModuleRegistry","getPackage","require","e","SBUDynamicModule","register","mdi","getInfo","name","get"
|
|
1
|
+
{"version":3,"names":["NativeModules","UIManager","Logger","checkLink","dmi","logLevel","nativeModule","isComponent","getViewManagerConfig","nativeModuleNamespace","message","packageName","url","console","error","warn","SBUDynamicModuleRegistry","getPackage","require","e","SBUDynamicModule","register","mdi","getInfo","name","get"],"sources":["dynamicModule.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type * as RNCNetInfo from '@react-native-community/netinfo';\nimport { NativeModules, UIManager } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport type SBUNativeModule = keyof DynamicModules;\n\ninterface SBUDynamicModuleInfo {\n packageName: SBUNativeModule;\n nativeModuleNamespace: string;\n getPackage: <T>(logLevel: 'error' | 'warn' | 'none') => T;\n url: string;\n isComponent?: boolean;\n}\n\nfunction checkLink(dmi: SBUDynamicModuleInfo, logLevel: 'error' | 'warn' | 'none') {\n const nativeModule = (() => {\n if (dmi.isComponent) {\n return UIManager.getViewManagerConfig(dmi.nativeModuleNamespace);\n } else {\n return NativeModules[dmi.nativeModuleNamespace];\n }\n })();\n\n if (!nativeModule) {\n const message = `[UIKit] Cannot use native module, you should install and link ${dmi.packageName} (${dmi.url})`;\n if (logLevel === 'error') console.error(message);\n if (logLevel === 'warn') console.warn(message);\n }\n}\n\nexport interface DynamicModules {\n '@react-native-community/netinfo': typeof RNCNetInfo;\n}\n\nconst SBUDynamicModuleRegistry: Record<SBUNativeModule, SBUDynamicModuleInfo> = {\n '@react-native-community/netinfo': {\n packageName: '@react-native-community/netinfo',\n nativeModuleNamespace: 'RNCNetInfo',\n url: 'https://github.com/react-native-netinfo/react-native-netinfo',\n getPackage(logLevel) {\n checkLink(this, logLevel);\n\n try {\n return require('@react-native-community/netinfo');\n } catch (e) {\n return null;\n }\n },\n },\n};\n\nconst SBUDynamicModule = {\n register(mdi: SBUDynamicModuleInfo) {\n SBUDynamicModuleRegistry[mdi.nativeModuleNamespace as SBUNativeModule] = mdi;\n },\n getInfo(name: SBUNativeModule) {\n return SBUDynamicModuleRegistry[name] ?? null;\n },\n get<K extends SBUNativeModule, T extends DynamicModules[K]>(name: K, logLevel: 'error' | 'warn' | 'none' = 'error') {\n const dmi = this.getInfo(name);\n if (!dmi) Logger.warn(`${name} doesn't exist in the dynamic module`);\n return dmi?.getPackage<T>(logLevel);\n },\n};\n\nexport default SBUDynamicModule;\n"],"mappings":"AAAA;;AAEA,SAASA,aAAa,EAAEC,SAAS,QAAQ,cAAc;AAEvD,SAASC,MAAM,QAAQ,uBAAuB;AAY9C,SAASC,SAASA,CAACC,GAAyB,EAAEC,QAAmC,EAAE;EACjF,MAAMC,YAAY,GAAG,CAAC,MAAM;IAC1B,IAAIF,GAAG,CAACG,WAAW,EAAE;MACnB,OAAON,SAAS,CAACO,oBAAoB,CAACJ,GAAG,CAACK,qBAAqB,CAAC;IAClE,CAAC,MAAM;MACL,OAAOT,aAAa,CAACI,GAAG,CAACK,qBAAqB,CAAC;IACjD;EACF,CAAC,EAAE,CAAC;EAEJ,IAAI,CAACH,YAAY,EAAE;IACjB,MAAMI,OAAO,GAAG,iEAAiEN,GAAG,CAACO,WAAW,KAAKP,GAAG,CAACQ,GAAG,GAAG;IAC/G,IAAIP,QAAQ,KAAK,OAAO,EAAEQ,OAAO,CAACC,KAAK,CAACJ,OAAO,CAAC;IAChD,IAAIL,QAAQ,KAAK,MAAM,EAAEQ,OAAO,CAACE,IAAI,CAACL,OAAO,CAAC;EAChD;AACF;AAMA,MAAMM,wBAAuE,GAAG;EAC9E,iCAAiC,EAAE;IACjCL,WAAW,EAAE,iCAAiC;IAC9CF,qBAAqB,EAAE,YAAY;IACnCG,GAAG,EAAE,8DAA8D;IACnEK,UAAUA,CAACZ,QAAQ,EAAE;MACnBF,SAAS,CAAC,IAAI,EAAEE,QAAQ,CAAC;MAEzB,IAAI;QACF,OAAOa,OAAO,CAAC,iCAAiC,CAAC;MACnD,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV,OAAO,IAAI;MACb;IACF;EACF;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAG;EACvBC,QAAQA,CAACC,GAAyB,EAAE;IAClCN,wBAAwB,CAACM,GAAG,CAACb,qBAAqB,CAAoB,GAAGa,GAAG;EAC9E,CAAC;EACDC,OAAOA,CAACC,IAAqB,EAAE;IAC7B,OAAOR,wBAAwB,CAACQ,IAAI,CAAC,IAAI,IAAI;EAC/C,CAAC;EACDC,GAAGA,CAAyDD,IAAO,EAAEnB,QAAmC,GAAG,OAAO,EAAE;IAClH,MAAMD,GAAG,GAAG,IAAI,CAACmB,OAAO,CAACC,IAAI,CAAC;IAC9B,IAAI,CAACpB,GAAG,EAAEF,MAAM,CAACa,IAAI,CAAC,GAAGS,IAAI,sCAAsC,CAAC;IACpE,OAAOpB,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEa,UAAU,CAAIZ,QAAQ,CAAC;EACrC;AACF,CAAC;AAED,eAAee,gBAAgB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport type SBUError from '../libs/SBUError';\n\nexport type Unsubscribe = () => void | undefined;\nexport type DownloadedPath = string;\nexport type FilePickerResponse = FileType | null;\n\n/**\n * We are following the file format of react-native FormData\n * @see https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/FormData.js#L37-L41\n * */\nexport type FileType = { name: string; uri: string; size: number; type: string };\n\n// ---------- NotificationService ---------- //\nexport interface NotificationServiceInterface {\n hasPushPermission(): Promise<boolean>;\n requestPushPermission(): Promise<boolean>;\n\n getAPNSToken(): Promise<string | null>;\n getFCMToken(): Promise<string | null>;\n onTokenRefresh(handler: (token: string) => void): Unsubscribe;\n}\n\n// ---------- ClipboardService ---------- //\nexport interface ClipboardServiceInterface {\n setString(text: string): void;\n getString(): Promise<string>;\n}\n\n// ---------- FileService ---------- //\nexport interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}\n\nexport interface OpenResultListener {\n onOpenFailure?: (error: SBUError, originError?: unknown) => void;\n}\nexport interface OpenMediaLibraryOptions extends OpenResultListener {\n selectionLimit?: number;\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport interface OpenCameraOptions extends OpenResultListener {\n cameraType?: 'front' | 'back';\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport type OpenDocumentOptions = OpenResultListener;\nexport interface SaveOptions {\n fileUrl: string;\n fileName: string;\n fileType?: string | null;\n}\n\nexport interface FilePickerServiceInterface {\n openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<null | FilePickerResponse[]>;\n openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse>;\n openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse>;\n}\n\nexport interface FileSystemServiceInterface {\n // NOTE: On iOS, You can access the downloaded files by providing options below to info.plist\n // - Supports opening documents in place\n // - Application supports iTunes file sharing\n save(options?: SaveOptions): Promise<DownloadedPath | null>;\n createRecordFilePath(customExtension?: string): { recordFilePath: string; uri: string };\n}\n\n// ---------- MediaService ---------- //\nexport type VideoProps = {\n source: { uri: string } | number;\n resizeMode?: 'cover' | 'contain' | 'stretch';\n onLoad?: () => void;\n};\n\nexport type GetVideoThumbnailOptions = {\n url: string;\n timeMills?: number;\n quality?: number;\n};\nexport type GetVideoThumbnailResult = Promise<{ path: string } | null>;\n\nexport type CompressImageOptions = {\n /**\n * A uri of image file to compress\n * */\n uri: string;\n\n /**\n * A resize width, apply only to downscale\n * */\n maxWidth?: number;\n\n /**\n * A resize height, apply only to downscale\n * */\n maxHeight?: number;\n\n /**\n * A value in range 0.0 - 1.0 specifying compression level of the result image.\n * 1 means highest quality and 0 the lowest quality.\n * */\n compressionRate?: number;\n};\nexport type CompressImageResult = Promise<{ uri: string; size: number } | null>;\n\nexport interface MediaServiceInterface {\n VideoComponent<Props = {}>(props: VideoProps & Props): ReactNode;\n getVideoThumbnail(options: GetVideoThumbnailOptions): GetVideoThumbnailResult;\n compressImage(options: CompressImageOptions): CompressImageResult;\n}\n\n// ---------- PlayerService ---------- //\nexport interface PlayerServiceInterface {\n uri?: string;\n state: 'idle' | 'preparing' | 'playing' | 'paused' | 'stopped';\n\n /**\n * Check and request permission for the player.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add a playback listener.\n * */\n addPlaybackListener(\n callback: (params: { currentTime: number; duration: number; stopped: boolean }) => void,\n ): Unsubscribe;\n\n /**\n * Add a state listener.\n * */\n addStateListener(callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, stopped] to [playing] - start from the beginning\n * [paused] to [playing] - resume\n * */\n play(uri: string): Promise<void>;\n\n /**\n * State transition:\n * [playing] to [paused]\n * */\n pause(): Promise<void>;\n\n /**\n * State transition:\n * [preparing, playing, paused] to [stop]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n\n /**\n * Seek time, only available when the state is [playing, paused].\n * */\n seek(time: number): Promise<void>;\n}\n\n// ---------- RecorderService ---------- //\nexport interface RecorderOptions {\n /**\n * Minimum recording duration (milliseconds).\n * */\n minDuration: number;\n\n /**\n * Maximum recording duration (milliseconds).\n * */\n maxDuration: number;\n\n /**\n * File extension for recorded audio file\n * */\n extension: string;\n}\n\nexport interface RecorderServiceInterface {\n uri?: string;\n options: RecorderOptions;\n state: 'idle' | 'preparing' | 'recording' | 'completed';\n\n /**\n * Check and request permission for the recorder.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add recording listener.\n * */\n addRecordingListener(callback: (params: { currentTime: number; completed: boolean }) => void): Unsubscribe;\n\n /**\n * Add state listener.\n * */\n addStateListener(callback: (state: RecorderServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, completed] to [recording]\n * */\n record(uri?: string): Promise<void>;\n\n /**\n * State transition:\n * [recording] to [completed]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport type SBUError from '../libs/SBUError';\n\nexport type Unsubscribe = () => void | undefined;\nexport type DownloadedPath = string;\nexport type FilePickerResponse = FileType | null;\n\n/**\n * We are following the file format of react-native FormData\n * @see https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/FormData.js#L37-L41\n * */\nexport type FileType = { name: string; uri: string; size: number; type: string };\n\n// ---------- NotificationService ---------- //\nexport interface NotificationServiceInterface {\n hasPushPermission(): Promise<boolean>;\n requestPushPermission(): Promise<boolean>;\n\n getAPNSToken(): Promise<string | null>;\n getFCMToken(): Promise<string | null>;\n onTokenRefresh(handler: (token: string) => void): Unsubscribe;\n}\n\n// ---------- ClipboardService ---------- //\nexport interface ClipboardServiceInterface {\n setString(text: string): void;\n getString(): Promise<string>;\n}\n\n// ---------- FileService ---------- //\nexport interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}\n\nexport interface OpenResultListener {\n onOpenFailure?: (error: SBUError, originError?: unknown) => void;\n}\nexport interface OpenMediaLibraryOptions extends OpenResultListener {\n selectionLimit?: number;\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport interface OpenCameraOptions extends OpenResultListener {\n cameraType?: 'front' | 'back';\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport type OpenDocumentOptions = OpenResultListener;\nexport interface SaveOptions {\n fileUrl: string;\n fileName: string;\n fileType?: string | null;\n}\n\nexport interface FilePickerServiceInterface {\n openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<null | FilePickerResponse[]>;\n openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse>;\n openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse>;\n}\n\nexport interface FileSystemServiceInterface {\n // NOTE: On iOS, You can access the downloaded files by providing options below to info.plist\n // - Supports opening documents in place\n // - Application supports iTunes file sharing\n save(options?: SaveOptions): Promise<DownloadedPath | null>;\n createRecordFilePath(customExtension?: string): { recordFilePath: string; uri: string };\n}\n\n// ---------- MediaService ---------- //\nexport type VideoProps = {\n source: { uri: string } | number;\n resizeMode?: 'cover' | 'contain' | 'stretch';\n onLoad?: () => void;\n};\n\nexport type GetVideoThumbnailOptions = {\n url: string;\n timeMills?: number;\n quality?: number;\n};\nexport type GetVideoThumbnailResult = Promise<{ path: string } | null>;\n\nexport type CompressImageOptions = {\n /**\n * A uri of image file to compress\n * */\n uri: string;\n\n /**\n * A resize width, apply only to downscale\n * */\n maxWidth?: number;\n\n /**\n * A resize height, apply only to downscale\n * */\n maxHeight?: number;\n\n /**\n * A value in range 0.0 - 1.0 specifying compression level of the result image.\n * 1 means highest quality and 0 the lowest quality.\n * */\n compressionRate?: number;\n};\nexport type CompressImageResult = Promise<{ uri: string; size: number } | null>;\n\nexport interface MediaServiceInterface {\n VideoComponent<Props = {}>(props: VideoProps & Props): ReactNode;\n getVideoThumbnail(options: GetVideoThumbnailOptions): GetVideoThumbnailResult;\n compressImage(options: CompressImageOptions): CompressImageResult;\n}\n\n// ---------- PlayerService ---------- //\nexport interface PlayerServiceInterface {\n uri?: string;\n state: 'idle' | 'preparing' | 'playing' | 'paused' | 'stopped';\n\n /**\n * Check and request permission for the player.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add a playback listener.\n * */\n addPlaybackListener(\n callback: (params: { currentTime: number; duration: number; stopped: boolean }) => void,\n ): Unsubscribe;\n\n /**\n * Add a state listener.\n * */\n addStateListener(callback: (state: PlayerServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, stopped] to [playing] - start from the beginning\n * [paused] to [playing] - resume\n * */\n play(uri: string): Promise<void>;\n\n /**\n * State transition:\n * [playing] to [paused]\n * */\n pause(): Promise<void>;\n\n /**\n * State transition:\n * [preparing, playing, paused] to [stop]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n\n /**\n * Seek time, only available when the state is [playing, paused].\n * */\n seek(time: number): Promise<void>;\n}\n\n// ---------- RecorderService ---------- //\nexport interface RecorderOptions {\n /**\n * Minimum recording duration (milliseconds).\n * */\n minDuration: number;\n\n /**\n * Maximum recording duration (milliseconds).\n * */\n maxDuration: number;\n\n /**\n * File extension for recorded audio file\n * */\n extension: string;\n}\n\nexport interface RecorderServiceInterface {\n uri?: string;\n options: RecorderOptions;\n state: 'idle' | 'preparing' | 'recording' | 'completed';\n\n /**\n * Check and request permission for the recorder.\n * */\n requestPermission(): Promise<boolean>;\n\n /**\n * Add recording listener.\n * */\n addRecordingListener(callback: (params: { currentTime: number; completed: boolean }) => void): Unsubscribe;\n\n /**\n * Add state listener.\n * */\n addStateListener(callback: (state: RecorderServiceInterface['state']) => void): Unsubscribe;\n\n /**\n * State transition:\n * [idle, completed] to [recording]\n * */\n record(uri?: string): Promise<void>;\n\n /**\n * State transition:\n * [recording] to [completed]\n * */\n stop(): Promise<void>;\n\n /**\n * State transition:\n * [*] to [idle]\n * */\n reset(): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypingIndicatorType"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\nimport type { MMKV } from 'react-native-mmkv';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type LocalCacheStorage = AsyncLocalCacheStorage | MMKVLocalCacheStorage;\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface AsyncLocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type MMKVLocalCacheStorage = Pick<MMKV, 'getString' | 'set' | 'delete' | 'getAllKeys'>;\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> = ComponentType<P & { children?: ReactNode | undefined }>;\n\nexport type MentionedUser = {\n range: Range;\n user: SendbirdUser;\n};\n\nexport type Range = {\n start: number;\n end: number;\n};\n\nexport enum TypingIndicatorType {\n Text = 'text',\n Bubble = 'bubble',\n}\n"],"mappings":"AAoCA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA"}
|
|
1
|
+
{"version":3,"names":["TypingIndicatorType"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\nimport type { MMKV } from 'react-native-mmkv';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type LocalCacheStorage = AsyncLocalCacheStorage | MMKVLocalCacheStorage;\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface AsyncLocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type MMKVLocalCacheStorage = Pick<MMKV, 'getString' | 'set' | 'delete' | 'getAllKeys'>;\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> = ComponentType<P & { children?: ReactNode | undefined }>;\n\nexport type MentionedUser = {\n range: Range;\n user: SendbirdUser;\n};\n\nexport type Range = {\n start: number;\n end: number;\n};\n\nexport enum TypingIndicatorType {\n Text = 'text',\n Bubble = 'bubble',\n}\n"],"mappings":"AAoCA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
|
|
@@ -8,20 +8,17 @@ const expoBackwardUtils = {
|
|
|
8
8
|
async toFilePickerResponses(result, fsModule) {
|
|
9
9
|
if (result.assets) {
|
|
10
10
|
const assets = result.assets || [];
|
|
11
|
-
const promises = assets.map(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
type
|
|
23
|
-
});
|
|
24
|
-
});
|
|
11
|
+
const promises = assets.map(({
|
|
12
|
+
fileName: name,
|
|
13
|
+
fileSize: size,
|
|
14
|
+
type,
|
|
15
|
+
uri
|
|
16
|
+
}) => normalizeFile({
|
|
17
|
+
uri,
|
|
18
|
+
size,
|
|
19
|
+
name,
|
|
20
|
+
type
|
|
21
|
+
}));
|
|
25
22
|
return Promise.all(promises);
|
|
26
23
|
} else if ('uri' in result && typeof result.uri === 'string') {
|
|
27
24
|
const fileInfo = await fsModule.getInfoAsync(result.uri);
|
|
@@ -43,20 +40,17 @@ const expoBackwardUtils = {
|
|
|
43
40
|
async toFilePickerResponses(result) {
|
|
44
41
|
if (result.assets) {
|
|
45
42
|
const assets = result.assets || [];
|
|
46
|
-
const promises = assets.map(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
type: mimeType
|
|
58
|
-
});
|
|
59
|
-
});
|
|
43
|
+
const promises = assets.map(({
|
|
44
|
+
name,
|
|
45
|
+
size,
|
|
46
|
+
mimeType,
|
|
47
|
+
uri
|
|
48
|
+
}) => normalizeFile({
|
|
49
|
+
uri,
|
|
50
|
+
size,
|
|
51
|
+
name,
|
|
52
|
+
type: mimeType
|
|
53
|
+
}));
|
|
60
54
|
return Promise.all(promises);
|
|
61
55
|
} else if ('uri' in result && typeof result.uri === 'string') {
|
|
62
56
|
// @ts-expect-error backward compatibility
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeFile","expoBackwardUtils","imagePicker","isCanceled","result","canceled","cancelled","toFilePickerResponses","fsModule","assets","promises","map","
|
|
1
|
+
{"version":3,"names":["normalizeFile","expoBackwardUtils","imagePicker","isCanceled","result","canceled","cancelled","toFilePickerResponses","fsModule","assets","promises","map","fileName","name","fileSize","size","type","uri","Promise","all","fileInfo","getInfoAsync","response","toFileSize","documentPicker","mimeType","info"],"sources":["expoBackwardUtils.ts"],"sourcesContent":["import type * as ExpoDocumentPicker from 'expo-document-picker';\nimport type * as ExpoFs from 'expo-file-system';\nimport type * as ExpoImagePicker from 'expo-image-picker';\n\nimport type { FilePickerResponse } from '../platform/types';\nimport normalizeFile from './normalizeFile';\n\nconst expoBackwardUtils = {\n imagePicker: {\n isCanceled(result: ExpoImagePicker.ImagePickerResult) {\n // @ts-expect-error backward compatibility\n return result.canceled ?? result.cancelled;\n },\n async toFilePickerResponses(\n result: ExpoImagePicker.ImagePickerResult,\n fsModule: typeof ExpoFs,\n ): Promise<FilePickerResponse[]> {\n if (result.assets) {\n const assets = result.assets || [];\n const promises = assets.map(({ fileName: name, fileSize: size, type, uri }) =>\n normalizeFile({ uri, size, name, type }),\n );\n\n return Promise.all(promises);\n } else if ('uri' in result && typeof result.uri === 'string') {\n const fileInfo = await fsModule.getInfoAsync(result.uri);\n const response = await normalizeFile({ uri: result.uri, size: expoBackwardUtils.toFileSize(fileInfo) });\n return [response];\n } else {\n return [];\n }\n },\n },\n documentPicker: {\n isCanceled(result: ExpoDocumentPicker.DocumentPickerResult) {\n // @ts-expect-error backward compatibility\n return result.canceled ?? result.type === 'cancel';\n },\n async toFilePickerResponses(result: ExpoDocumentPicker.DocumentPickerResult): Promise<FilePickerResponse[]> {\n if (result.assets) {\n const assets = result.assets || [];\n const promises = assets.map(({ name, size, mimeType, uri }) =>\n normalizeFile({ uri, size, name, type: mimeType }),\n );\n\n return Promise.all(promises);\n } else if ('uri' in result && typeof result.uri === 'string') {\n // @ts-expect-error backward compatibility\n const { mimeType, uri, size, name } = result;\n const response = await normalizeFile({ uri, size, name, type: mimeType });\n\n return [response];\n } else {\n return [];\n }\n },\n },\n toFileSize(info: ExpoFs.FileInfo) {\n if ('size' in info) {\n return info.size;\n } else {\n return 0;\n }\n },\n};\n\nexport default expoBackwardUtils;\n"],"mappings":"AAKA,OAAOA,aAAa,MAAM,iBAAiB;AAE3C,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAE;IACXC,UAAUA,CAACC,MAAyC,EAAE;MACpD;MACA,OAAOA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACE,SAAS;IAC5C,CAAC;IACD,MAAMC,qBAAqBA,CACzBH,MAAyC,EACzCI,QAAuB,EACQ;MAC/B,IAAIJ,MAAM,CAACK,MAAM,EAAE;QACjB,MAAMA,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAI,EAAE;QAClC,MAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,CAAC,CAAC;UAAEC,QAAQ,EAAEC,IAAI;UAAEC,QAAQ,EAAEC,IAAI;UAAEC,IAAI;UAAEC;QAAI,CAAC,KACxEjB,aAAa,CAAC;UAAEiB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG;QAAK,CAAC,CACzC,CAAC;QAED,OAAOE,OAAO,CAACC,GAAG,CAACT,QAAQ,CAAC;MAC9B,CAAC,MAAM,IAAI,KAAK,IAAIN,MAAM,IAAI,OAAOA,MAAM,CAACa,GAAG,KAAK,QAAQ,EAAE;QAC5D,MAAMG,QAAQ,GAAG,MAAMZ,QAAQ,CAACa,YAAY,CAACjB,MAAM,CAACa,GAAG,CAAC;QACxD,MAAMK,QAAQ,GAAG,MAAMtB,aAAa,CAAC;UAAEiB,GAAG,EAAEb,MAAM,CAACa,GAAG;UAAEF,IAAI,EAAEd,iBAAiB,CAACsB,UAAU,CAACH,QAAQ;QAAE,CAAC,CAAC;QACvG,OAAO,CAACE,QAAQ,CAAC;MACnB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDE,cAAc,EAAE;IACdrB,UAAUA,CAACC,MAA+C,EAAE;MAC1D;MACA,OAAOA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACY,IAAI,KAAK,QAAQ;IACpD,CAAC;IACD,MAAMT,qBAAqBA,CAACH,MAA+C,EAAiC;MAC1G,IAAIA,MAAM,CAACK,MAAM,EAAE;QACjB,MAAMA,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAI,EAAE;QAClC,MAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,CAAC,CAAC;UAAEE,IAAI;UAAEE,IAAI;UAAEU,QAAQ;UAAER;QAAI,CAAC,KACxDjB,aAAa,CAAC;UAAEiB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG,IAAI,EAAES;QAAS,CAAC,CACnD,CAAC;QAED,OAAOP,OAAO,CAACC,GAAG,CAACT,QAAQ,CAAC;MAC9B,CAAC,MAAM,IAAI,KAAK,IAAIN,MAAM,IAAI,OAAOA,MAAM,CAACa,GAAG,KAAK,QAAQ,EAAE;QAC5D;QACA,MAAM;UAAEQ,QAAQ;UAAER,GAAG;UAAEF,IAAI;UAAEF;QAAK,CAAC,GAAGT,MAAM;QAC5C,MAAMkB,QAAQ,GAAG,MAAMtB,aAAa,CAAC;UAAEiB,GAAG;UAAEF,IAAI;UAAEF,IAAI;UAAEG,IAAI,EAAES;QAAS,CAAC,CAAC;QAEzE,OAAO,CAACH,QAAQ,CAAC;MACnB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF;EACF,CAAC;EACDC,UAAUA,CAACG,IAAqB,EAAE;IAChC,IAAI,MAAM,IAAIA,IAAI,EAAE;MAClB,OAAOA,IAAI,CAACX,IAAI;IAClB,CAAC,MAAM;MACL,OAAO,CAAC;IACV;EACF;AACF,CAAC;AAED,eAAed,iBAAiB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const expoPermissionGranted = (stats, limitedCallback) => {
|
|
2
2
|
return stats.every(res => {
|
|
3
3
|
if ('accessPrivileges' in res) {
|
|
4
|
-
if (res.accessPrivileges === 'limited') limitedCallback === null || limitedCallback === void 0
|
|
4
|
+
if (res.accessPrivileges === 'limited') limitedCallback === null || limitedCallback === void 0 || limitedCallback();
|
|
5
5
|
return res.granted || res.status === 'granted' || res.accessPrivileges === 'all' || res.accessPrivileges === 'limited';
|
|
6
6
|
}
|
|
7
7
|
if ('ios' in res) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["expoPermissionGranted","stats","limitedCallback","every","res","accessPrivileges","granted","status","_res$ios","ios"],"sources":["expoPermissionGranted.ts"],"sourcesContent":["import type { NotificationPermissionsStatus } from 'expo-notifications';\n\nexport interface ExpoPermissionResponse {\n canAskAgain: boolean;\n granted: boolean;\n status: 'denied' | 'granted' | 'undetermined';\n}\n\nexport interface ExpoMediaLibraryPermissionResponse extends ExpoPermissionResponse {\n accessPrivileges?: 'all' | 'limited' | 'none';\n}\nexport interface ExpoPushPermissionResponse extends ExpoPermissionResponse, NotificationPermissionsStatus {}\n\nconst expoPermissionGranted = (\n stats: Array<ExpoMediaLibraryPermissionResponse | ExpoPushPermissionResponse | ExpoPermissionResponse>,\n limitedCallback?: () => void,\n) => {\n return stats.every((res) => {\n if ('accessPrivileges' in res) {\n if (res.accessPrivileges === 'limited') limitedCallback?.();\n return (\n res.granted || res.status === 'granted' || res.accessPrivileges === 'all' || res.accessPrivileges === 'limited'\n );\n }\n if ('ios' in res) {\n // NOT_DETERMINED = 0,\n // DENIED = 1,\n // AUTHORIZED = 2,\n // PROVISIONAL = 3,\n // EPHEMERAL = 4,\n return (\n res.granted || res.status === 'granted' || (res.ios?.status && (res.ios.status === 2 || res.ios.status === 3))\n );\n }\n return res.granted || res.status === 'granted';\n });\n};\n\nexport default expoPermissionGranted;\n"],"mappings":"AAaA,MAAMA,qBAAqB,GAAGA,CAC5BC,KAAsG,EACtGC,eAA4B,KACzB;EACH,OAAOD,KAAK,CAACE,KAAK,CAAEC,GAAG,IAAK;IAC1B,IAAI,kBAAkB,IAAIA,GAAG,EAAE;MAC7B,IAAIA,GAAG,CAACC,gBAAgB,KAAK,SAAS,EAAEH,eAAe,aAAfA,eAAe,
|
|
1
|
+
{"version":3,"names":["expoPermissionGranted","stats","limitedCallback","every","res","accessPrivileges","granted","status","_res$ios","ios"],"sources":["expoPermissionGranted.ts"],"sourcesContent":["import type { NotificationPermissionsStatus } from 'expo-notifications';\n\nexport interface ExpoPermissionResponse {\n canAskAgain: boolean;\n granted: boolean;\n status: 'denied' | 'granted' | 'undetermined';\n}\n\nexport interface ExpoMediaLibraryPermissionResponse extends ExpoPermissionResponse {\n accessPrivileges?: 'all' | 'limited' | 'none';\n}\nexport interface ExpoPushPermissionResponse extends ExpoPermissionResponse, NotificationPermissionsStatus {}\n\nconst expoPermissionGranted = (\n stats: Array<ExpoMediaLibraryPermissionResponse | ExpoPushPermissionResponse | ExpoPermissionResponse>,\n limitedCallback?: () => void,\n) => {\n return stats.every((res) => {\n if ('accessPrivileges' in res) {\n if (res.accessPrivileges === 'limited') limitedCallback?.();\n return (\n res.granted || res.status === 'granted' || res.accessPrivileges === 'all' || res.accessPrivileges === 'limited'\n );\n }\n if ('ios' in res) {\n // NOT_DETERMINED = 0,\n // DENIED = 1,\n // AUTHORIZED = 2,\n // PROVISIONAL = 3,\n // EPHEMERAL = 4,\n return (\n res.granted || res.status === 'granted' || (res.ios?.status && (res.ios.status === 2 || res.ios.status === 3))\n );\n }\n return res.granted || res.status === 'granted';\n });\n};\n\nexport default expoPermissionGranted;\n"],"mappings":"AAaA,MAAMA,qBAAqB,GAAGA,CAC5BC,KAAsG,EACtGC,eAA4B,KACzB;EACH,OAAOD,KAAK,CAACE,KAAK,CAAEC,GAAG,IAAK;IAC1B,IAAI,kBAAkB,IAAIA,GAAG,EAAE;MAC7B,IAAIA,GAAG,CAACC,gBAAgB,KAAK,SAAS,EAAEH,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAG,CAAC;MAC3D,OACEE,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS,IAAIH,GAAG,CAACC,gBAAgB,KAAK,KAAK,IAAID,GAAG,CAACC,gBAAgB,KAAK,SAAS;IAEnH;IACA,IAAI,KAAK,IAAID,GAAG,EAAE;MAAA,IAAAI,QAAA;MAChB;MACA;MACA;MACA;MACA;MACA,OACEJ,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS,IAAK,EAAAC,QAAA,GAAAJ,GAAG,CAACK,GAAG,cAAAD,QAAA,uBAAPA,QAAA,CAASD,MAAM,MAAKH,GAAG,CAACK,GAAG,CAACF,MAAM,KAAK,CAAC,IAAIH,GAAG,CAACK,GAAG,CAACF,MAAM,KAAK,CAAC,CAAE;IAElH;IACA,OAAOH,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACG,MAAM,KAAK,SAAS;EAChD,CAAC,CAAC;AACJ,CAAC;AAED,eAAeP,qBAAqB","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ const nativePermissionGranted = (stats, limitedCallback) => {
|
|
|
2
2
|
return Object.values(stats).every(result => {
|
|
3
3
|
if (result === 'granted') return true;
|
|
4
4
|
if (result === 'limited') {
|
|
5
|
-
limitedCallback === null || limitedCallback === void 0
|
|
5
|
+
limitedCallback === null || limitedCallback === void 0 || limitedCallback();
|
|
6
6
|
return true;
|
|
7
7
|
}
|
|
8
8
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nativePermissionGranted","stats","limitedCallback","Object","values","every","result"],"sources":["nativePermissionGranted.ts"],"sourcesContent":["import type { Permission, PermissionStatus } from 'react-native-permissions';\n\nconst nativePermissionGranted = (stats: Record<Permission, PermissionStatus>, limitedCallback?: () => void) => {\n return Object.values(stats).every((result) => {\n if (result === 'granted') return true;\n if (result === 'limited') {\n limitedCallback?.();\n return true;\n }\n return false;\n });\n};\n\nexport default nativePermissionGranted;\n"],"mappings":"AAEA,MAAMA,uBAAuB,GAAGA,CAACC,KAA2C,EAAEC,eAA4B,KAAK;EAC7G,OAAOC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,KAAK,CAAEC,MAAM,IAAK;IAC5C,IAAIA,MAAM,KAAK,SAAS,EAAE,OAAO,IAAI;IACrC,IAAIA,MAAM,KAAK,SAAS,EAAE;MACxBJ,eAAe,aAAfA,eAAe,
|
|
1
|
+
{"version":3,"names":["nativePermissionGranted","stats","limitedCallback","Object","values","every","result"],"sources":["nativePermissionGranted.ts"],"sourcesContent":["import type { Permission, PermissionStatus } from 'react-native-permissions';\n\nconst nativePermissionGranted = (stats: Record<Permission, PermissionStatus>, limitedCallback?: () => void) => {\n return Object.values(stats).every((result) => {\n if (result === 'granted') return true;\n if (result === 'limited') {\n limitedCallback?.();\n return true;\n }\n return false;\n });\n};\n\nexport default nativePermissionGranted;\n"],"mappings":"AAEA,MAAMA,uBAAuB,GAAGA,CAACC,KAA2C,EAAEC,eAA4B,KAAK;EAC7G,OAAOC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,KAAK,CAAEC,MAAM,IAAK;IAC5C,IAAIA,MAAM,KAAK,SAAS,EAAE,OAAO,IAAI;IACrC,IAAIA,MAAM,KAAK,SAAS,EAAE;MACxBJ,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAG,CAAC;MACnB,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC,CAAC;AACJ,CAAC;AAED,eAAeF,uBAAuB","ignoreList":[]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { getFileExtension, getFileExtensionFromMime, getFileExtensionFromUri, getMimeFromFileExtension, normalizeFileName } from '@sendbird/uikit-utils';
|
|
2
|
-
const normalizeFile = async
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} = _ref;
|
|
2
|
+
const normalizeFile = async ({
|
|
3
|
+
uri,
|
|
4
|
+
size,
|
|
5
|
+
name,
|
|
6
|
+
type
|
|
7
|
+
}) => {
|
|
9
8
|
// URI is required property
|
|
10
9
|
if (!uri) return null;
|
|
11
10
|
let filename = name || String(Date.now());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getFileExtension","getFileExtensionFromMime","getFileExtensionFromUri","getMimeFromFileExtension","normalizeFileName","normalizeFile","
|
|
1
|
+
{"version":3,"names":["getFileExtension","getFileExtensionFromMime","getFileExtensionFromUri","getMimeFromFileExtension","normalizeFileName","normalizeFile","uri","size","name","type","filename","String","Date","now","filetype","extension","isNotMimeType","str","indexOf"],"sources":["normalizeFile.ts"],"sourcesContent":["import type { PartialNullable } from '@sendbird/uikit-utils';\nimport {\n getFileExtension,\n getFileExtensionFromMime,\n getFileExtensionFromUri,\n getMimeFromFileExtension,\n normalizeFileName,\n} from '@sendbird/uikit-utils';\n\nimport type { FilePickerResponse, FileType } from '../platform/types';\n\nconst normalizeFile = async ({ uri, size, name, type }: PartialNullable<FileType>): Promise<FilePickerResponse> => {\n // URI is required property\n if (!uri) return null;\n\n let filename = name || String(Date.now());\n let filetype = type || '';\n\n const extension =\n getFileExtension(filename) || getFileExtensionFromMime(filetype) || (await getFileExtensionFromUri(uri));\n\n if (extension) {\n filename = normalizeFileName(filename, extension);\n if (!filetype || isNotMimeType(filetype)) {\n filetype = getMimeFromFileExtension(extension);\n }\n }\n\n return { uri, name: filename, type: filetype, size: size ?? 0 };\n};\n\nfunction isNotMimeType(str: string) {\n return str.indexOf('/') === -1;\n}\n\nexport default normalizeFile;\n"],"mappings":"AACA,SACEA,gBAAgB,EAChBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,iBAAiB,QACZ,uBAAuB;AAI9B,MAAMC,aAAa,GAAG,MAAAA,CAAO;EAAEC,GAAG;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAgC,CAAC,KAAkC;EACjH;EACA,IAAI,CAACH,GAAG,EAAE,OAAO,IAAI;EAErB,IAAII,QAAQ,GAAGF,IAAI,IAAIG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;EACzC,IAAIC,QAAQ,GAAGL,IAAI,IAAI,EAAE;EAEzB,MAAMM,SAAS,GACbf,gBAAgB,CAACU,QAAQ,CAAC,IAAIT,wBAAwB,CAACa,QAAQ,CAAC,KAAK,MAAMZ,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAE1G,IAAIS,SAAS,EAAE;IACbL,QAAQ,GAAGN,iBAAiB,CAACM,QAAQ,EAAEK,SAAS,CAAC;IACjD,IAAI,CAACD,QAAQ,IAAIE,aAAa,CAACF,QAAQ,CAAC,EAAE;MACxCA,QAAQ,GAAGX,wBAAwB,CAACY,SAAS,CAAC;IAChD;EACF;EAEA,OAAO;IAAET,GAAG;IAAEE,IAAI,EAAEE,QAAQ;IAAED,IAAI,EAAEK,QAAQ;IAAEP,IAAI,EAAEA,IAAI,IAAI;EAAE,CAAC;AACjE,CAAC;AAED,SAASS,aAAaA,CAACC,GAAW,EAAE;EAClC,OAAOA,GAAG,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC;AAEA,eAAeb,aAAa","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["iterableToArray","iterable","Array","from","x","prototype","slice","call","onSettledFulfill","value","status","onSettledReject","reason","mapAllSettled","item","Promise","then","bind","getAggregateError","errors","AggregateError","error","Error","name","PromisePolyfill","allSettled","values","all","map","race","resolve","reject","forEach","any","promises","hasResolved","rejectionReasons","resolveOnce","rejectionCheck","push","length","apply","global"],"sources":["promise.ts"],"sourcesContent":["import 'react-native';\n\n/**\n * This file contains subcomponents with separate copyright notices and license terms.\n * Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses.\n *\n * MIT License: https://github.com/then/promise\n *\n * Copyright (c) 2014 Forbes Lindesay\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Original code: https://github.com/then/promise/blob/master/src/es6-extensions.js\n * */\nlet iterableToArray = function <T>(iterable: Iterable<T | PromiseLike<T>>): (T | PromiseLike<T>)[] {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) {\n return Array.prototype.slice.call(x);\n };\n return Array.prototype.slice.call(iterable);\n};\n\nfunction onSettledFulfill<T>(value: T) {\n return { status: 'fulfilled', value: value } as const;\n}\n\nfunction onSettledReject<T>(reason: T) {\n return { status: 'rejected', reason: reason } as const;\n}\n\nfunction mapAllSettled<T>(item: T | PromiseLike<T>): PromiseLike<PromiseSettledResult<T>> | PromiseSettledResult<T> {\n if (item && (typeof item === 'object' || typeof item === 'function')) {\n if (item instanceof Promise && item.then === Promise.prototype.then) {\n return item.then(onSettledFulfill, onSettledReject);\n }\n // @ts-expect-error\n const then = item.then;\n if (typeof then === 'function') {\n return new Promise<T>(then.bind(item)).then(onSettledFulfill, onSettledReject);\n }\n }\n\n // @ts-expect-error\n return onSettledFulfill(item);\n}\n\nfunction getAggregateError(errors: unknown[]) {\n if (typeof AggregateError === 'function') {\n return new AggregateError(errors, 'All promises were rejected');\n }\n\n const error = new Error('All promises were rejected') as Error & { errors: unknown[] };\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nexport const PromisePolyfill = {\n allSettled<T extends readonly unknown[] | []>(values: T) {\n return Promise.all(iterableToArray(values).map(mapAllSettled)) as Promise<{\n -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>;\n }>;\n },\n race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function (value) {\n Promise.resolve(value).then(resolve, reject);\n });\n });\n },\n any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise<Awaited<T>>(function (resolve, reject) {\n const promises = iterableToArray(values);\n let hasResolved = false;\n const rejectionReasons: unknown[] = [];\n\n function resolveOnce(value: Awaited<T>) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason: unknown) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if (promises.length === 0) {\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function (value) {\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n },\n apply() {\n // https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Utilities/PolyfillFunctions.js\n if (typeof global !== 'undefined' && 'Promise' in global) {\n if (!global.Promise.allSettled) {\n global.Promise.allSettled = this.allSettled;\n }\n if (!global.Promise.any) {\n global.Promise.any = this.any;\n }\n if (!global.Promise.race) {\n global.Promise.race = this.race;\n }\n }\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["iterableToArray","iterable","Array","from","x","prototype","slice","call","onSettledFulfill","value","status","onSettledReject","reason","mapAllSettled","item","Promise","then","bind","getAggregateError","errors","AggregateError","error","Error","name","PromisePolyfill","allSettled","values","all","map","race","resolve","reject","forEach","any","promises","hasResolved","rejectionReasons","resolveOnce","rejectionCheck","push","length","apply","global"],"sources":["promise.ts"],"sourcesContent":["import 'react-native';\n\n/**\n * This file contains subcomponents with separate copyright notices and license terms.\n * Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses.\n *\n * MIT License: https://github.com/then/promise\n *\n * Copyright (c) 2014 Forbes Lindesay\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Original code: https://github.com/then/promise/blob/master/src/es6-extensions.js\n * */\nlet iterableToArray = function <T>(iterable: Iterable<T | PromiseLike<T>>): (T | PromiseLike<T>)[] {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) {\n return Array.prototype.slice.call(x);\n };\n return Array.prototype.slice.call(iterable);\n};\n\nfunction onSettledFulfill<T>(value: T) {\n return { status: 'fulfilled', value: value } as const;\n}\n\nfunction onSettledReject<T>(reason: T) {\n return { status: 'rejected', reason: reason } as const;\n}\n\nfunction mapAllSettled<T>(item: T | PromiseLike<T>): PromiseLike<PromiseSettledResult<T>> | PromiseSettledResult<T> {\n if (item && (typeof item === 'object' || typeof item === 'function')) {\n if (item instanceof Promise && item.then === Promise.prototype.then) {\n return item.then(onSettledFulfill, onSettledReject);\n }\n // @ts-expect-error\n const then = item.then;\n if (typeof then === 'function') {\n return new Promise<T>(then.bind(item)).then(onSettledFulfill, onSettledReject);\n }\n }\n\n // @ts-expect-error\n return onSettledFulfill(item);\n}\n\nfunction getAggregateError(errors: unknown[]) {\n if (typeof AggregateError === 'function') {\n return new AggregateError(errors, 'All promises were rejected');\n }\n\n const error = new Error('All promises were rejected') as Error & { errors: unknown[] };\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nexport const PromisePolyfill = {\n allSettled<T extends readonly unknown[] | []>(values: T) {\n return Promise.all(iterableToArray(values).map(mapAllSettled)) as Promise<{\n -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>;\n }>;\n },\n race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function (value) {\n Promise.resolve(value).then(resolve, reject);\n });\n });\n },\n any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>> {\n return new Promise<Awaited<T>>(function (resolve, reject) {\n const promises = iterableToArray(values);\n let hasResolved = false;\n const rejectionReasons: unknown[] = [];\n\n function resolveOnce(value: Awaited<T>) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason: unknown) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if (promises.length === 0) {\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function (value) {\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n },\n apply() {\n // https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Utilities/PolyfillFunctions.js\n if (typeof global !== 'undefined' && 'Promise' in global) {\n if (!global.Promise.allSettled) {\n global.Promise.allSettled = this.allSettled;\n }\n if (!global.Promise.any) {\n global.Promise.any = this.any;\n }\n if (!global.Promise.race) {\n global.Promise.race = this.race;\n }\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pubsub","subscribers","Set","publish","data","forEach","subscriber","setTimeout","subscribe","add","delete"],"sources":["pubsub.ts"],"sourcesContent":["export type PubSub<T> = {\n publish: (data: T) => void;\n subscribe: (subscriber: (data: T) => void) => () => void;\n};\n\nconst pubsub = <T>(): PubSub<T> => {\n const subscribers = new Set<Function>();\n\n return {\n publish: (data: unknown) => {\n subscribers.forEach((subscriber) => {\n setTimeout(() => subscriber(data), 0);\n });\n },\n subscribe: (subscriber: Function) => {\n subscribers.add(subscriber);\n return () => subscribers.delete(subscriber);\n },\n };\n};\n\nexport default pubsub;\n"],"mappings":"AAKA,MAAMA,MAAM,GAAGA,CAAA,KAAoB;EACjC,MAAMC,WAAW,GAAG,IAAIC,GAAG,
|
|
1
|
+
{"version":3,"names":["pubsub","subscribers","Set","publish","data","forEach","subscriber","setTimeout","subscribe","add","delete"],"sources":["pubsub.ts"],"sourcesContent":["export type PubSub<T> = {\n publish: (data: T) => void;\n subscribe: (subscriber: (data: T) => void) => () => void;\n};\n\nconst pubsub = <T>(): PubSub<T> => {\n const subscribers = new Set<Function>();\n\n return {\n publish: (data: unknown) => {\n subscribers.forEach((subscriber) => {\n setTimeout(() => subscriber(data), 0);\n });\n },\n subscribe: (subscriber: Function) => {\n subscribers.add(subscriber);\n return () => subscribers.delete(subscriber);\n },\n };\n};\n\nexport default pubsub;\n"],"mappings":"AAKA,MAAMA,MAAM,GAAGA,CAAA,KAAoB;EACjC,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEvC,OAAO;IACLC,OAAO,EAAGC,IAAa,IAAK;MAC1BH,WAAW,CAACI,OAAO,CAAEC,UAAU,IAAK;QAClCC,UAAU,CAAC,MAAMD,UAAU,CAACF,IAAI,CAAC,EAAE,CAAC,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC;IACDI,SAAS,EAAGF,UAAoB,IAAK;MACnCL,WAAW,CAACQ,GAAG,CAACH,UAAU,CAAC;MAC3B,OAAO,MAAML,WAAW,CAACS,MAAM,CAACJ,UAAU,CAAC;IAC7C;EACF,CAAC;AACH,CAAC;AAED,eAAeN,MAAM","ignoreList":[]}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.0';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ declare const _default: React.MemoExoticComponent<(props: {
|
|
|
10
10
|
onLongPress?: (() => void) | undefined;
|
|
11
11
|
onPressParentMessage?: ((parentMessage: SendbirdMessage, childMessage: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => void) | undefined;
|
|
12
12
|
onReplyInThreadMessage?: ((message: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => void) | undefined;
|
|
13
|
-
onShowUserProfile?: ((user: import("@sendbird/chat/groupChannel").Member | import("@sendbird/chat").User, options?: {
|
|
13
|
+
onShowUserProfile?: ((user: import("@sendbird/chat/groupChannel").Member | import("@sendbird/chat").User | import("@sendbird/chat/message").ReactedUserInfo, options?: {
|
|
14
14
|
hideMessageButton?: boolean | undefined;
|
|
15
15
|
} | undefined) => void) | undefined;
|
|
16
16
|
channel: import("@sendbird/chat/groupChannel").GroupChannel;
|