@sendbird/uikit-react-native 3.1.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -42
- package/lib/commonjs/components/ChannelInput/EditInput.js +2 -11
- package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +145 -0
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
- package/lib/commonjs/components/ChannelInput/SendInput.js +149 -323
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +238 -0
- package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -0
- package/lib/commonjs/components/ChannelInput/index.js +34 -3
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +148 -116
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +24 -13
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +134 -6
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/MessageSearchResultItem.js +1 -0
- package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +1 -0
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +2 -2
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
- package/lib/commonjs/components/StatusComposition.js.map +1 -1
- package/lib/commonjs/constants.js +5 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +1 -0
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +72 -34
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/PlatformServiceCtx.js +16 -12
- package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/commonjs/contexts/ReactionCtx.js +3 -2
- package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +2 -0
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -4
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +28 -42
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +109 -5
- 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/userList/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +34 -7
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/commonjs/hooks/useChannelInputItems.js +211 -0
- package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -0
- package/lib/commonjs/hooks/useConnection.js +1 -1
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useVoiceMessageInput.js +207 -0
- package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -0
- package/lib/commonjs/index.js +36 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/MentionManager.js.map +1 -1
- package/lib/commonjs/libs/SBUUtils.js +4 -0
- package/lib/commonjs/libs/SBUUtils.js.map +1 -1
- package/lib/commonjs/libs/VoiceMessageConfig.js +30 -0
- package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +24 -9
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/platform/createFileService.expo.js +10 -0
- package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
- package/lib/commonjs/platform/createFileService.native.js +19 -0
- package/lib/commonjs/platform/createFileService.native.js.map +1 -1
- package/lib/commonjs/platform/createPlayerService.expo.js +137 -0
- package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -0
- package/lib/commonjs/platform/createPlayerService.native.js +139 -0
- package/lib/commonjs/platform/createPlayerService.native.js.map +1 -0
- package/lib/commonjs/platform/createRecorderService.expo.js +158 -0
- package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -0
- package/lib/commonjs/platform/createRecorderService.native.js +157 -0
- package/lib/commonjs/platform/createRecorderService.native.js.map +1 -0
- package/lib/commonjs/platform/types.js.map +1 -1
- package/lib/commonjs/types.js +7 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/promise.js +138 -0
- package/lib/commonjs/utils/promise.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/EditInput.js +3 -12
- package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/module/components/ChannelInput/MessageToReplyPreview.js +137 -0
- package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
- package/lib/module/components/ChannelInput/SendInput.js +152 -326
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/VoiceMessageInput.js +228 -0
- package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -0
- package/lib/module/components/ChannelInput/index.js +36 -5
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +149 -117
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +24 -13
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/index.js +132 -7
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/MessageSearchResultItem.js +2 -1
- package/lib/module/components/MessageSearchResultItem.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/index.js +1 -0
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +2 -2
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
- package/lib/module/components/StatusComposition.js.map +1 -1
- package/lib/module/constants.js +2 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +2 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +74 -36
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/PlatformServiceCtx.js +14 -11
- package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/module/contexts/ReactionCtx.js +3 -2
- package/lib/module/contexts/ReactionCtx.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +2 -0
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +15 -5
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +29 -43
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +111 -7
- 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/userList/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +36 -9
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/module/hooks/useChannelInputItems.js +203 -0
- package/lib/module/hooks/useChannelInputItems.js.map +1 -0
- package/lib/module/hooks/useConnection.js +1 -1
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useVoiceMessageInput.js +199 -0
- package/lib/module/hooks/useVoiceMessageInput.js.map +1 -0
- package/lib/module/index.js +8 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/MentionManager.js.map +1 -1
- package/lib/module/libs/SBUUtils.js +4 -0
- package/lib/module/libs/SBUUtils.js.map +1 -1
- package/lib/module/libs/VoiceMessageConfig.js +23 -0
- package/lib/module/libs/VoiceMessageConfig.js.map +1 -0
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +25 -10
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/platform/createFileService.expo.js +10 -0
- package/lib/module/platform/createFileService.expo.js.map +1 -1
- package/lib/module/platform/createFileService.native.js +19 -0
- package/lib/module/platform/createFileService.native.js.map +1 -1
- package/lib/module/platform/createPlayerService.expo.js +129 -0
- package/lib/module/platform/createPlayerService.expo.js.map +1 -0
- package/lib/module/platform/createPlayerService.native.js +132 -0
- package/lib/module/platform/createPlayerService.native.js.map +1 -0
- package/lib/module/platform/createRecorderService.expo.js +150 -0
- package/lib/module/platform/createRecorderService.expo.js.map +1 -0
- package/lib/module/platform/createRecorderService.native.js +149 -0
- package/lib/module/platform/createRecorderService.native.js.map +1 -0
- package/lib/module/platform/types.js.map +1 -1
- package/lib/module/types.js +5 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/promise.js +132 -0
- package/lib/module/utils/promise.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelCover.d.ts +2 -1
- package/lib/typescript/src/components/ChannelInput/AttachmentsButton.d.ts +2 -1
- package/lib/typescript/src/components/ChannelInput/MessageToReplyPreview.d.ts +7 -0
- package/lib/typescript/src/components/ChannelInput/VoiceMessageInput.d.ts +11 -0
- package/lib/typescript/src/components/ChannelInput/index.d.ts +9 -3
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +4 -1
- package/lib/typescript/src/components/FileViewer.d.ts +2 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +2 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.d.ts +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.d.ts +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +4 -2
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -0
- package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.d.ts +2 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +2 -0
- package/lib/typescript/src/components/ProviderLayout.d.ts +1 -1
- package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +2 -1
- package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +2 -1
- package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +3 -2
- package/lib/typescript/src/components/ReactionAddons/index.d.ts +3 -2
- package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +2 -1
- package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +2 -1
- package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +4 -4
- package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
- package/lib/typescript/src/components/StatusComposition.d.ts +4 -4
- package/lib/typescript/src/components/TypedPlaceholder.d.ts +2 -1
- package/lib/typescript/src/components/UserActionBar.d.ts +2 -1
- package/lib/typescript/src/components/UserSelectableBar.d.ts +2 -1
- package/lib/typescript/src/constants.d.ts +2 -0
- package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +2 -1
- package/lib/typescript/src/containers/InternalErrorBoundaryContainer.d.ts +3 -3
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +19 -8
- package/lib/typescript/src/contexts/LocalizationCtx.d.ts +1 -1
- package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +8 -8
- package/lib/typescript/src/contexts/ReactionCtx.d.ts +5 -2
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +6 -3
- package/lib/typescript/src/contexts/UserProfileCtx.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +48 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +2 -2
- package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationMenu.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsInfo.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsMenu.d.ts +2 -1
- package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +3 -3
- package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
- package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/userList/types.d.ts +2 -2
- package/lib/typescript/src/hooks/useChannelInputItems.d.ts +10 -0
- package/lib/typescript/src/hooks/useVoiceMessageInput.d.ts +53 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/libs/MentionManager.d.ts +2 -1
- package/lib/typescript/src/libs/SBUUtils.d.ts +1 -0
- package/lib/typescript/src/libs/VoiceMessageConfig.d.ts +25 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +7 -0
- package/lib/typescript/src/platform/createPlayerService.expo.d.ts +7 -0
- package/lib/typescript/src/platform/createPlayerService.native.d.ts +9 -0
- package/lib/typescript/src/platform/createRecorderService.expo.d.ts +7 -0
- package/lib/typescript/src/platform/createRecorderService.native.d.ts +9 -0
- package/lib/typescript/src/platform/types.d.ts +100 -1
- package/lib/typescript/src/types.d.ts +5 -1
- package/lib/typescript/src/utils/promise.d.ts +7 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +10 -12
- package/src/components/ChannelInput/EditInput.tsx +3 -15
- package/src/components/ChannelInput/MessageToReplyPreview.tsx +133 -0
- package/src/components/ChannelInput/SendInput.tsx +131 -329
- package/src/components/ChannelInput/VoiceMessageInput.tsx +206 -0
- package/src/components/ChannelInput/index.tsx +37 -6
- package/src/components/ChannelMessageList/index.tsx +145 -113
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +24 -11
- package/src/components/GroupChannelMessageRenderer/index.tsx +113 -4
- package/src/components/MessageSearchResultItem.tsx +2 -1
- package/src/components/OpenChannelMessageRenderer/index.tsx +1 -0
- package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +2 -2
- package/src/components/ReactionBottomSheets/index.tsx +3 -2
- package/src/components/StatusComposition.tsx +3 -3
- package/src/constants.ts +2 -0
- package/src/containers/GroupChannelPreviewContainer.tsx +2 -0
- package/src/containers/InternalErrorBoundaryContainer.tsx +1 -1
- package/src/containers/SendbirdUIKitContainer.tsx +103 -59
- package/src/contexts/PlatformServiceCtx.tsx +22 -20
- package/src/contexts/ReactionCtx.tsx +7 -5
- package/src/contexts/SendbirdChatCtx.tsx +10 -2
- package/src/domain/groupChannel/component/GroupChannelHeader.tsx +14 -3
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +30 -43
- package/src/domain/groupChannel/module/moduleContext.tsx +119 -7
- package/src/domain/groupChannel/types.ts +45 -0
- package/src/domain/userList/types.ts +2 -2
- package/src/fragments/createGroupChannelFragment.tsx +43 -8
- package/src/fragments/createMessageSearchFragment.tsx +1 -1
- package/src/hooks/useChannelInputItems.ts +215 -0
- package/src/hooks/useConnection.ts +1 -1
- package/src/hooks/useVoiceMessageInput.ts +237 -0
- package/src/index.ts +9 -1
- package/src/libs/MentionManager.tsx +1 -1
- package/src/libs/SBUUtils.ts +5 -0
- package/src/libs/VoiceMessageConfig.ts +28 -0
- package/src/localization/StringSet.type.ts +8 -0
- package/src/localization/createBaseStringSet.ts +27 -11
- package/src/platform/createFileService.expo.ts +10 -0
- package/src/platform/createFileService.native.ts +19 -0
- package/src/platform/createPlayerService.expo.tsx +142 -0
- package/src/platform/createPlayerService.native.tsx +148 -0
- package/src/platform/createRecorderService.expo.tsx +160 -0
- package/src/platform/createRecorderService.native.tsx +170 -0
- package/src/platform/types.ts +114 -1
- package/src/types.ts +6 -1
- package/src/utils/promise.ts +139 -0
- package/src/version.ts +1 -1
|
@@ -3,18 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
6
|
+
exports.default = exports.GroupChannelTypingIndicatorBubble = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
9
9
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
10
|
+
var _constants = require("../../constants");
|
|
11
|
+
var _moduleContext = require("../../domain/groupChannel/module/moduleContext");
|
|
10
12
|
var _useContext = require("../../hooks/useContext");
|
|
11
13
|
var _SBUUtils = _interopRequireDefault(require("../../libs/SBUUtils"));
|
|
14
|
+
var _types = require("../../types");
|
|
12
15
|
var _ReactionAddons = require("../ReactionAddons");
|
|
13
16
|
var _GroupChannelMessageDateSeparator = _interopRequireDefault(require("./GroupChannelMessageDateSeparator"));
|
|
14
17
|
var _GroupChannelMessageFocusAnimation = _interopRequireDefault(require("./GroupChannelMessageFocusAnimation"));
|
|
15
18
|
var _GroupChannelMessageOutgoingStatus = _interopRequireDefault(require("./GroupChannelMessageOutgoingStatus"));
|
|
16
19
|
var _GroupChannelMessageParentMessage = _interopRequireDefault(require("./GroupChannelMessageParentMessage"));
|
|
17
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
23
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
24
|
const GroupChannelMessageRenderer = _ref => {
|
|
20
25
|
let {
|
|
@@ -29,6 +34,7 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
29
34
|
prevMessage,
|
|
30
35
|
nextMessage
|
|
31
36
|
} = _ref;
|
|
37
|
+
const playerUnsubscribes = (0, _react.useRef)([]);
|
|
32
38
|
const {
|
|
33
39
|
palette
|
|
34
40
|
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
@@ -41,7 +47,8 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
41
47
|
STRINGS
|
|
42
48
|
} = (0, _useContext.useLocalization)();
|
|
43
49
|
const {
|
|
44
|
-
mediaService
|
|
50
|
+
mediaService,
|
|
51
|
+
playerService
|
|
45
52
|
} = (0, _useContext.usePlatformService)();
|
|
46
53
|
const {
|
|
47
54
|
groupWithPrev,
|
|
@@ -56,6 +63,15 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
56
63
|
}
|
|
57
64
|
return null;
|
|
58
65
|
});
|
|
66
|
+
const resetPlayer = async () => {
|
|
67
|
+
playerUnsubscribes.current.forEach(unsubscribe => {
|
|
68
|
+
try {
|
|
69
|
+
unsubscribe();
|
|
70
|
+
} catch {}
|
|
71
|
+
});
|
|
72
|
+
playerUnsubscribes.current.length = 0;
|
|
73
|
+
await playerService.reset();
|
|
74
|
+
};
|
|
59
75
|
const variant = (0, _uikitUtils.isMyMessage)(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? 'outgoing' : 'incoming';
|
|
60
76
|
const messageProps = {
|
|
61
77
|
channel,
|
|
@@ -69,6 +85,74 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
69
85
|
onPressMentionedUser: mentionedUser => {
|
|
70
86
|
if (mentionedUser) onShowUserProfile === null || onShowUserProfile === void 0 ? void 0 : onShowUserProfile(mentionedUser);
|
|
71
87
|
},
|
|
88
|
+
onToggleVoiceMessage: async (state, setState) => {
|
|
89
|
+
if ((0, _uikitUtils.isVoiceMessage)(message) && message.sendingStatus === 'succeeded') {
|
|
90
|
+
if (playerService.uri === message.url) {
|
|
91
|
+
if (playerService.state === 'playing') {
|
|
92
|
+
await playerService.pause();
|
|
93
|
+
} else {
|
|
94
|
+
await playerService.play(message.url);
|
|
95
|
+
}
|
|
96
|
+
} else {
|
|
97
|
+
if (playerService.state !== 'idle') {
|
|
98
|
+
await resetPlayer();
|
|
99
|
+
}
|
|
100
|
+
const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;
|
|
101
|
+
let seekFinished = !shouldSeekToTime;
|
|
102
|
+
const forPlayback = playerService.addPlaybackListener(_ref2 => {
|
|
103
|
+
let {
|
|
104
|
+
stopped,
|
|
105
|
+
currentTime,
|
|
106
|
+
duration
|
|
107
|
+
} = _ref2;
|
|
108
|
+
if (seekFinished) {
|
|
109
|
+
setState(prevState => ({
|
|
110
|
+
...prevState,
|
|
111
|
+
currentTime: stopped ? 0 : currentTime,
|
|
112
|
+
duration
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const forState = playerService.addStateListener(state => {
|
|
117
|
+
switch (state) {
|
|
118
|
+
case 'preparing':
|
|
119
|
+
setState(prevState => ({
|
|
120
|
+
...prevState,
|
|
121
|
+
status: 'preparing'
|
|
122
|
+
}));
|
|
123
|
+
break;
|
|
124
|
+
case 'playing':
|
|
125
|
+
setState(prevState => ({
|
|
126
|
+
...prevState,
|
|
127
|
+
status: 'playing'
|
|
128
|
+
}));
|
|
129
|
+
break;
|
|
130
|
+
case 'idle':
|
|
131
|
+
case 'paused':
|
|
132
|
+
{
|
|
133
|
+
setState(prevState => ({
|
|
134
|
+
...prevState,
|
|
135
|
+
status: 'paused'
|
|
136
|
+
}));
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
case 'stopped':
|
|
140
|
+
setState(prevState => ({
|
|
141
|
+
...prevState,
|
|
142
|
+
status: 'paused'
|
|
143
|
+
}));
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
playerUnsubscribes.current.push(forPlayback, forState);
|
|
148
|
+
await playerService.play(message.url);
|
|
149
|
+
if (shouldSeekToTime) {
|
|
150
|
+
await playerService.seek(state.currentTime);
|
|
151
|
+
seekFinished = true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
},
|
|
72
156
|
groupedWithPrev: groupWithPrev,
|
|
73
157
|
groupedWithNext: groupWithNext,
|
|
74
158
|
children: reactionChildren,
|
|
@@ -77,9 +161,10 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
77
161
|
message: message
|
|
78
162
|
}) : null,
|
|
79
163
|
parentMessage: (0, _uikitUtils.shouldRenderParentMessage)(message) ? /*#__PURE__*/_react.default.createElement(_GroupChannelMessageParentMessage.default, {
|
|
164
|
+
channel: channel,
|
|
165
|
+
message: message.parentMessage,
|
|
80
166
|
variant: variant,
|
|
81
167
|
childMessage: message,
|
|
82
|
-
message: message.parentMessage,
|
|
83
168
|
onPress: onPressParentMessage
|
|
84
169
|
}) : null,
|
|
85
170
|
strings: {
|
|
@@ -101,7 +186,7 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
101
186
|
},
|
|
102
187
|
regexTextPatterns: [{
|
|
103
188
|
regex: mentionManager.templateRegex,
|
|
104
|
-
replacer(
|
|
189
|
+
replacer(_ref3) {
|
|
105
190
|
var _message$mentionedUse;
|
|
106
191
|
let {
|
|
107
192
|
match,
|
|
@@ -109,7 +194,7 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
109
194
|
parentProps,
|
|
110
195
|
index,
|
|
111
196
|
keyPrefix
|
|
112
|
-
} =
|
|
197
|
+
} = _ref3;
|
|
113
198
|
const user = (_message$mentionedUse = message.mentionedUsers) === null || _message$mentionedUse === void 0 ? void 0 : _message$mentionedUse.find(it => it.userId === groups[2]);
|
|
114
199
|
if (user) {
|
|
115
200
|
const mentionColor = !(0, _uikitUtils.isMyMessage)(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) && user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? palette.onBackgroundLight01 : parentProps === null || parentProps === void 0 ? void 0 : parentProps.color;
|
|
@@ -176,6 +261,18 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
176
261
|
})
|
|
177
262
|
}, messageProps));
|
|
178
263
|
}
|
|
264
|
+
case 'file.voice':
|
|
265
|
+
{
|
|
266
|
+
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.GroupChannelMessage.VoiceFile, _extends({
|
|
267
|
+
message: message,
|
|
268
|
+
durationMetaArrayKey: _constants.VOICE_MESSAGE_META_ARRAY_DURATION_KEY,
|
|
269
|
+
onUnmount: () => {
|
|
270
|
+
if ((0, _uikitUtils.isVoiceMessage)(message) && playerService.uri === message.url) {
|
|
271
|
+
resetPlayer();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}, messageProps));
|
|
275
|
+
}
|
|
179
276
|
case 'unknown':
|
|
180
277
|
default:
|
|
181
278
|
{
|
|
@@ -210,6 +307,37 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
210
307
|
focused: focused
|
|
211
308
|
}, renderMessage()));
|
|
212
309
|
};
|
|
310
|
+
const GroupChannelTypingIndicatorBubble = () => {
|
|
311
|
+
const {
|
|
312
|
+
sbOptions
|
|
313
|
+
} = (0, _useContext.useSendbirdChat)();
|
|
314
|
+
const {
|
|
315
|
+
publish
|
|
316
|
+
} = (0, _react.useContext)(_moduleContext.GroupChannelContexts.PubSub);
|
|
317
|
+
const {
|
|
318
|
+
typingUsers
|
|
319
|
+
} = (0, _react.useContext)(_moduleContext.GroupChannelContexts.TypingIndicator);
|
|
320
|
+
const shouldRenderBubble = (0, _uikitUtils.useIIFE)(() => {
|
|
321
|
+
if (typingUsers.length === 0) return false;
|
|
322
|
+
if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;
|
|
323
|
+
if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(_types.TypingIndicatorType.Bubble)) return false;
|
|
324
|
+
return true;
|
|
325
|
+
});
|
|
326
|
+
(0, _react.useEffect)(() => {
|
|
327
|
+
if (shouldRenderBubble) publish({
|
|
328
|
+
type: 'TYPING_BUBBLE_RENDERED'
|
|
329
|
+
});
|
|
330
|
+
}, [shouldRenderBubble]);
|
|
331
|
+
if (!shouldRenderBubble) return null;
|
|
332
|
+
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
333
|
+
paddingHorizontal: 16,
|
|
334
|
+
marginTop: 4,
|
|
335
|
+
marginBottom: 16
|
|
336
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.TypingIndicatorBubble, {
|
|
337
|
+
typingUsers: typingUsers
|
|
338
|
+
}));
|
|
339
|
+
};
|
|
340
|
+
exports.GroupChannelTypingIndicatorBubble = GroupChannelTypingIndicatorBubble;
|
|
213
341
|
var _default = /*#__PURE__*/_react.default.memo(GroupChannelMessageRenderer);
|
|
214
342
|
exports.default = _default;
|
|
215
343
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_ReactionAddons","_GroupChannelMessageDateSeparator","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","enableMessageGrouping","focused","prevMessage","nextMessage","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","useSendbirdChat","STRINGS","useLocalization","mediaService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","reactionChildren","useIIFE","shouldRenderReaction","uikitWithAppInfo","groupChannel","enableReactions","reactions","createElement","ReactionAddons","Message","variant","isMyMessage","userId","messageProps","onPressURL","url","SBUUtils","openURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","groupedWithPrev","groupedWithNext","children","sendingStatus","parentMessage","shouldRenderParentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","uikit","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref2","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","_messageProps$onPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","messageGap","isAdminMessage","Box","paddingHorizontal","marginBottom","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport { Box, GroupChannelMessage, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n}) => {\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n );\n\n const reactionChildren = useIIFE(() => {\n if (\n shouldRenderReaction(channel, sbOptions.uikitWithAppInfo.groupChannel.channel.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message) ? (\n <GroupChannelMessageParentMessage\n variant={variant}\n childMessage={message}\n message={message.parentMessage}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_SBUUtils","_interopRequireDefault","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","enableMessageGrouping","focused","prevMessage","nextMessage","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","reactionChildren","useIIFE","shouldRenderReaction","uikitWithAppInfo","groupChannel","enableReactions","reactions","createElement","ReactionAddons","Message","resetPlayer","current","forEach","unsubscribe","reset","variant","isMyMessage","userId","messageProps","onPressURL","url","SBUUtils","openURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref2","stopped","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","shouldRenderParentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","uikit","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref3","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","_messageProps$onPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","onUnmount","Unknown","messageGap","isAdminMessage","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n}) => {\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n );\n\n const reactionChildren = useIIFE(() => {\n if (\n shouldRenderReaction(channel, sbOptions.uikitWithAppInfo.groupChannel.channel.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer();\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ const MessageSearchResultItem = _ref => {
|
|
|
24
24
|
} = (0, _useContext.useLocalization)();
|
|
25
25
|
const fileIcon = (0, _uikitUtils.useIIFE)(() => {
|
|
26
26
|
if (!(message !== null && message !== void 0 && message.isFileMessage())) return undefined;
|
|
27
|
+
if ((0, _uikitUtils.isVoiceMessage)(message)) return undefined;
|
|
27
28
|
return (0, _uikitUtils.getFileIconFromMessage)(message);
|
|
28
29
|
});
|
|
29
30
|
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","obj","__esModule","default","MessageSearchResultItem","_ref","onPress","message","colors","select","palette","useUIKitTheme","STRINGS","useLocalization","fileIcon","useIIFE","isFileMessage","undefined","getFileIconFromMessage","createElement","PressBox","Box","style","styles","container","Avatar","size","avatarSize","width","uri","getSenderProfile","containerStyle","avatar","flex","paddingRight","titleLine","marginRight","justifyContent","Text","subtitle2","color","onBackground01","numberOfLines","MESSAGE_SEARCH","SEARCH_RESULT_ITEM_TITLE","paddingTop","caption2","onBackground02","SEARCH_RESULT_ITEM_TITLE_CAPTION","alignItems","flexDirection","Icon","icon","bodyIcon","backgroundColor","light","background100","dark","background500","body3","ellipsizeMode","bodyText","onBackground03","SEARCH_RESULT_ITEM_BODY","separator","onBackground04","isUserMessage","sender","profileUrl","createStyleSheet","height","marginHorizontal","marginTop","marginBottom","borderRadius","lineHeight","position","left","right","bottom","_default","exports"],"sources":["MessageSearchResultItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Avatar,\n Box,\n Icon,\n PressBox,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { getFileIconFromMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { MessageSearchProps } from '../domain/messageSearch/types';\nimport { useLocalization } from '../hooks/useContext';\n\nconst MessageSearchResultItem: MessageSearchProps['List']['renderSearchResultItem'] = ({ onPress, message }) => {\n const { colors, select, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n\n const fileIcon = useIIFE(() => {\n if (!message?.isFileMessage()) return undefined;\n return getFileIconFromMessage(message);\n });\n\n return (\n <PressBox onPress={onPress}>\n <Box style={styles.container}>\n <Avatar size={styles.avatarSize.width} uri={getSenderProfile(message)} containerStyle={styles.avatar} />\n\n <Box flex={1} paddingRight={16}>\n <Box style={styles.titleLine}>\n <Box flex={1} marginRight={4} justifyContent={'center'}>\n <Text subtitle2 color={colors.onBackground01} numberOfLines={1}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE(message)}\n </Text>\n </Box>\n <Box paddingTop={2}>\n <Text caption2 color={colors.onBackground02}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE_CAPTION(message)}\n </Text>\n </Box>\n </Box>\n\n <Box flex={1}>\n <Box alignItems={'center'} flexDirection={'row'}>\n {fileIcon && (\n <Icon\n icon={fileIcon}\n size={18}\n color={colors.onBackground02}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: select({ light: palette.background100, dark: palette.background500 }) },\n ]}\n />\n )}\n\n <Text\n body3\n numberOfLines={fileIcon ? 1 : 2}\n ellipsizeMode={fileIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={colors.onBackground03}\n >\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_BODY(message)}\n </Text>\n </Box>\n </Box>\n\n <Box style={styles.separator} backgroundColor={colors.onBackground04} />\n </Box>\n </Box>\n </PressBox>\n );\n};\n\nfunction getSenderProfile(message: SendbirdBaseMessage) {\n if (message.isUserMessage() || message.isFileMessage()) {\n return message.sender.profileUrl;\n } else {\n return undefined;\n }\n}\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n avatar: {\n marginHorizontal: 16,\n },\n avatarSize: {\n width: 56,\n },\n titleLine: {\n flexDirection: 'row',\n marginTop: 10,\n marginBottom: 4,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n bodyText: {\n flex: 1,\n lineHeight: 16,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default MessageSearchResultItem;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AAUA,IAAAE,WAAA,GAAAF,OAAA;AAGA,IAAAG,WAAA,GAAAH,OAAA;AAAsD,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtD,MAAMG,uBAA6E,GAAGC,IAAA,IAA0B;EAAA,IAAzB;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAAF,IAAA;EACzG,MAAM;IAAEG,MAAM;IAAEC,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,yCAAa,GAAE;EACnD,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,2BAAe,GAAE;EAErC,MAAMC,QAAQ,GAAG,IAAAC,mBAAO,EAAC,MAAM;IAC7B,IAAI,EAACR,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAES,aAAa,EAAE,GAAE,OAAOC,SAAS;IAC/C,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","obj","__esModule","default","MessageSearchResultItem","_ref","onPress","message","colors","select","palette","useUIKitTheme","STRINGS","useLocalization","fileIcon","useIIFE","isFileMessage","undefined","isVoiceMessage","getFileIconFromMessage","createElement","PressBox","Box","style","styles","container","Avatar","size","avatarSize","width","uri","getSenderProfile","containerStyle","avatar","flex","paddingRight","titleLine","marginRight","justifyContent","Text","subtitle2","color","onBackground01","numberOfLines","MESSAGE_SEARCH","SEARCH_RESULT_ITEM_TITLE","paddingTop","caption2","onBackground02","SEARCH_RESULT_ITEM_TITLE_CAPTION","alignItems","flexDirection","Icon","icon","bodyIcon","backgroundColor","light","background100","dark","background500","body3","ellipsizeMode","bodyText","onBackground03","SEARCH_RESULT_ITEM_BODY","separator","onBackground04","isUserMessage","sender","profileUrl","createStyleSheet","height","marginHorizontal","marginTop","marginBottom","borderRadius","lineHeight","position","left","right","bottom","_default","exports"],"sources":["MessageSearchResultItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Avatar,\n Box,\n Icon,\n PressBox,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { getFileIconFromMessage, isVoiceMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { MessageSearchProps } from '../domain/messageSearch/types';\nimport { useLocalization } from '../hooks/useContext';\n\nconst MessageSearchResultItem: MessageSearchProps['List']['renderSearchResultItem'] = ({ onPress, message }) => {\n const { colors, select, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n\n const fileIcon = useIIFE(() => {\n if (!message?.isFileMessage()) return undefined;\n if (isVoiceMessage(message)) return undefined;\n return getFileIconFromMessage(message);\n });\n\n return (\n <PressBox onPress={onPress}>\n <Box style={styles.container}>\n <Avatar size={styles.avatarSize.width} uri={getSenderProfile(message)} containerStyle={styles.avatar} />\n\n <Box flex={1} paddingRight={16}>\n <Box style={styles.titleLine}>\n <Box flex={1} marginRight={4} justifyContent={'center'}>\n <Text subtitle2 color={colors.onBackground01} numberOfLines={1}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE(message)}\n </Text>\n </Box>\n <Box paddingTop={2}>\n <Text caption2 color={colors.onBackground02}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE_CAPTION(message)}\n </Text>\n </Box>\n </Box>\n\n <Box flex={1}>\n <Box alignItems={'center'} flexDirection={'row'}>\n {fileIcon && (\n <Icon\n icon={fileIcon}\n size={18}\n color={colors.onBackground02}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: select({ light: palette.background100, dark: palette.background500 }) },\n ]}\n />\n )}\n\n <Text\n body3\n numberOfLines={fileIcon ? 1 : 2}\n ellipsizeMode={fileIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={colors.onBackground03}\n >\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_BODY(message)}\n </Text>\n </Box>\n </Box>\n\n <Box style={styles.separator} backgroundColor={colors.onBackground04} />\n </Box>\n </Box>\n </PressBox>\n );\n};\n\nfunction getSenderProfile(message: SendbirdBaseMessage) {\n if (message.isUserMessage() || message.isFileMessage()) {\n return message.sender.profileUrl;\n } else {\n return undefined;\n }\n}\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n avatar: {\n marginHorizontal: 16,\n },\n avatarSize: {\n width: 56,\n },\n titleLine: {\n flexDirection: 'row',\n marginTop: 10,\n marginBottom: 4,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n bodyText: {\n flex: 1,\n lineHeight: 16,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default MessageSearchResultItem;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_OpenChannelMessageDateSeparator","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","OpenChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onShowUserProfile","enableMessageGrouping","prevMessage","nextMessage","sbOptions","useSendbirdChat","STRINGS","useLocalization","mediaService","usePlatformService","groupWithPrev","calcMessageGrouping","Boolean","messageProps","onPressURL","url","SBUUtils","openURL","onPressAvatar","sender","hideMessageButton","grouped","strings","edited","OPEN_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","renderMessage","getMessageType","createElement","OpenChannelMessage","Admin","User","uikitWithAppInfo","openChannel","enableOgtag","OpenGraphUser","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","Box","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { OpenChannelMessageProps } from '@sendbird/uikit-react-native-foundation';\nimport { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n} from '@sendbird/uikit-utils';\n\nimport type { OpenChannelProps } from '../../domain/openChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';\n\nconst OpenChannelMessageRenderer: OpenChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onShowUserProfile,\n enableMessageGrouping,\n prevMessage,\n nextMessage,\n}) => {\n const { sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);\n\n const messageProps: Omit<OpenChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(url),\n onPressAvatar: () => 'sender' in message && onShowUserProfile?.(message.sender, { hideMessageButton: true }),\n grouped: groupWithPrev,\n strings: {\n edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <OpenChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user': {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'user.opengraph': {\n if (sbOptions.uikitWithAppInfo.openChannel.channel.enableOgtag) {\n return <OpenChannelMessage.OpenGraphUser message={message as SendbirdUserMessage} {...messageProps} />;\n } else {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n }\n case 'file':\n case 'file.audio': {\n return <OpenChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <OpenChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <OpenChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <OpenChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n return (\n <Box>\n <OpenChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n {renderMessage()}\n </Box>\n );\n};\n\nexport default React.memo(OpenChannelMessageRenderer);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_OpenChannelMessageDateSeparator","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","OpenChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onShowUserProfile","enableMessageGrouping","prevMessage","nextMessage","sbOptions","useSendbirdChat","STRINGS","useLocalization","mediaService","usePlatformService","groupWithPrev","calcMessageGrouping","Boolean","messageProps","onPressURL","url","SBUUtils","openURL","onPressAvatar","sender","hideMessageButton","grouped","strings","edited","OPEN_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","renderMessage","getMessageType","createElement","OpenChannelMessage","Admin","User","uikitWithAppInfo","openChannel","enableOgtag","OpenGraphUser","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","Box","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { OpenChannelMessageProps } from '@sendbird/uikit-react-native-foundation';\nimport { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n} from '@sendbird/uikit-utils';\n\nimport type { OpenChannelProps } from '../../domain/openChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';\n\nconst OpenChannelMessageRenderer: OpenChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onShowUserProfile,\n enableMessageGrouping,\n prevMessage,\n nextMessage,\n}) => {\n const { sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);\n\n const messageProps: Omit<OpenChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(url),\n onPressAvatar: () => 'sender' in message && onShowUserProfile?.(message.sender, { hideMessageButton: true }),\n grouped: groupWithPrev,\n strings: {\n edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <OpenChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user': {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'user.opengraph': {\n if (sbOptions.uikitWithAppInfo.openChannel.channel.enableOgtag) {\n return <OpenChannelMessage.OpenGraphUser message={message as SendbirdUserMessage} {...messageProps} />;\n } else {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n }\n case 'file':\n case 'file.voice':\n case 'file.audio': {\n return <OpenChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <OpenChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <OpenChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <OpenChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n return (\n <Box>\n <OpenChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n {renderMessage()}\n </Box>\n );\n};\n\nexport default React.memo(OpenChannelMessageRenderer);\n"],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ const ReactionUserListBottomSheet = _ref => {
|
|
|
19
19
|
reactionCtx,
|
|
20
20
|
chatCtx,
|
|
21
21
|
localizationCtx,
|
|
22
|
-
|
|
22
|
+
onPressUserProfile
|
|
23
23
|
} = _ref;
|
|
24
24
|
const {
|
|
25
25
|
width
|
|
@@ -147,7 +147,7 @@ const ReactionUserListBottomSheet = _ref => {
|
|
|
147
147
|
onPress: async () => {
|
|
148
148
|
if (user) {
|
|
149
149
|
await onClose();
|
|
150
|
-
|
|
150
|
+
onPressUserProfile(user);
|
|
151
151
|
}
|
|
152
152
|
},
|
|
153
153
|
style: styles.pageItem
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ReactionUserListBottomSheet","_ref","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","userProfileCtx","width","useWindowDimensions","bottom","left","right","useSafeAreaInsets","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingLeft","styles","layout","paddingHorizontal","paddingRight","focusTab","index","animated","arguments","length","undefined","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","every","Boolean","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","isLastItem","emoji","allEmojiMap","tabItem","marginRight","onPress","onLayout","e","nativeEvent","Image","source","uri","url","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","Fragment","userIds","userId","isGroupChannel","user","members","find","show","pageItem","Avatar","size","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopLeftRadius","borderTopRightRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdReaction, getReactionCount, truncatedCount } from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n userProfileCtx,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingLeft: left + styles.layout.paddingHorizontal,\n paddingRight: right + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.length === reactions.length && tabIndicatorValue.current.every(Boolean);\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key];\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginRight: styles.layout.marginRight }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n tabIndicatorValue.current[index] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={{ uri: emoji.url }} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n left: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n return (\n <>\n {focusedReaction?.userIds.map((userId) => {\n if (channel?.isGroupChannel()) {\n const user = channel.members.find((x) => x.userId === userId);\n return (\n <Pressable\n key={userId}\n onPress={async () => {\n if (user) {\n await onClose();\n userProfileCtx.show(user);\n }\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={user?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {user?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: bottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginRight: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginRight: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginRight: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginRight: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ReactionUserListBottomSheet","_ref","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","bottom","left","right","useSafeAreaInsets","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingLeft","styles","layout","paddingHorizontal","paddingRight","focusTab","index","animated","arguments","length","undefined","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","every","Boolean","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","isLastItem","emoji","allEmojiMap","tabItem","marginRight","onPress","onLayout","e","nativeEvent","Image","source","uri","url","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","Fragment","userIds","userId","isGroupChannel","user","members","find","pageItem","Avatar","size","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopLeftRadius","borderTopRightRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdReaction, getReactionCount, truncatedCount } from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingLeft: left + styles.layout.paddingHorizontal,\n paddingRight: right + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.length === reactions.length && tabIndicatorValue.current.every(Boolean);\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key];\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginRight: styles.layout.marginRight }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n tabIndicatorValue.current[index] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={{ uri: emoji.url }} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n left: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n return (\n <>\n {focusedReaction?.userIds.map((userId) => {\n if (channel?.isGroupChannel()) {\n const user = channel.members.find((x) => x.userId === userId);\n return (\n <Pressable\n key={userId}\n onPress={async () => {\n if (user) {\n await onClose();\n onPressUserProfile(user);\n }\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={user?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {user?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: bottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginRight: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginRight: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginRight: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginRight: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ReactionListBottomSheet","_interopRequireDefault","require","_ReactionUserListBottomSheet","obj","__esModule","default","ReactionBottomSheets","ReactionList","UserList","exports"],"sources":["index.tsx"],"sourcesContent":["import type React from 'react';\n\nimport type {
|
|
1
|
+
{"version":3,"names":["_ReactionListBottomSheet","_interopRequireDefault","require","_ReactionUserListBottomSheet","obj","__esModule","default","ReactionBottomSheets","ReactionList","UserList","exports"],"sources":["index.tsx"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type { LocalizationContext } from '../../contexts/LocalizationCtx';\nimport type { ReactionContext } from '../../contexts/ReactionCtx';\nimport type { SendbirdChatContext } from '../../contexts/SendbirdChatCtx';\nimport ReactionList from './ReactionListBottomSheet';\nimport UserList from './ReactionUserListBottomSheet';\n\ntype GetFromContext<T> = T extends React.Context<infer Value> ? NonNullable<Value> : never;\nexport type ReactionBottomSheetProps = {\n visible: boolean;\n onDismiss: () => void;\n onClose: () => Promise<void>;\n onPressUserProfile: (user: SendbirdUser | SendbirdMember) => void;\n chatCtx: GetFromContext<typeof SendbirdChatContext>;\n reactionCtx: GetFromContext<typeof ReactionContext>;\n localizationCtx: GetFromContext<typeof LocalizationContext>;\n};\n\nexport const ReactionBottomSheets = {\n ReactionList,\n UserList,\n};\n"],"mappings":";;;;;;AAOA,IAAAA,wBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAqD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAa9C,MAAMG,oBAAoB,GAAG;EAClCC,YAAY,EAAZA,gCAAY;EACZC,QAAQ,EAARA;AACF,CAAC;AAACC,OAAA,CAAAH,oBAAA,GAAAA,oBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","obj","__esModule","default","StatusComposition","_ref","children","error","ErrorComponent","LoadingComponent","loading","createElement","Fragment","_default","exports"],"sources":["StatusComposition.tsx"],"sourcesContent":["import React from 'react';\n\ntype Props = {\n loading?: boolean;\n LoadingComponent?:
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","obj","__esModule","default","StatusComposition","_ref","children","error","ErrorComponent","LoadingComponent","loading","createElement","Fragment","_default","exports"],"sources":["StatusComposition.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\n\ntype Props = {\n loading?: boolean;\n LoadingComponent?: ReactNode;\n error?: boolean;\n ErrorComponent?: ReactNode;\n children: React.ReactNode;\n};\nconst StatusComposition = ({ children, error, ErrorComponent, LoadingComponent, loading }: Props) => {\n if (loading && LoadingComponent) return <>{LoadingComponent}</>;\n if (error && ErrorComponent) return <>{ErrorComponent}</>;\n return <>{children}</>;\n};\n\nexport default StatusComposition;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AASzC,MAAMG,iBAAiB,GAAGC,IAAA,IAA2E;EAAA,IAA1E;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,cAAc;IAAEC,gBAAgB;IAAEC;EAAe,CAAC,GAAAL,IAAA;EAC9F,IAAIK,OAAO,IAAID,gBAAgB,EAAE,oBAAOX,MAAA,CAAAK,OAAA,CAAAQ,aAAA,CAAAb,MAAA,CAAAK,OAAA,CAAAS,QAAA,QAAGH,gBAAgB,CAAI;EAC/D,IAAIF,KAAK,IAAIC,cAAc,EAAE,oBAAOV,MAAA,CAAAK,OAAA,CAAAQ,aAAA,CAAAb,MAAA,CAAAK,OAAA,CAAAS,QAAA,QAAGJ,cAAc,CAAI;EACzD,oBAAOV,MAAA,CAAAK,OAAA,CAAAQ,aAAA,CAAAb,MAAA,CAAAK,OAAA,CAAAS,QAAA,QAAGN,QAAQ,CAAI;AACxB,CAAC;AAAC,IAAAO,QAAA,GAEaT,iBAAiB;AAAAU,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.UNKNOWN_USER_ID = exports.MESSAGE_SEARCH_SAFE_SCROLL_DELAY = exports.MESSAGE_FOCUS_ANIMATION_DELAY = exports.DEFAULT_LONG_PRESS_DELAY = void 0;
|
|
6
|
+
exports.VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY = exports.VOICE_MESSAGE_META_ARRAY_DURATION_KEY = exports.UNKNOWN_USER_ID = exports.MESSAGE_SEARCH_SAFE_SCROLL_DELAY = exports.MESSAGE_FOCUS_ANIMATION_DELAY = exports.DEFAULT_LONG_PRESS_DELAY = void 0;
|
|
7
7
|
const DEFAULT_LONG_PRESS_DELAY = 350;
|
|
8
8
|
exports.DEFAULT_LONG_PRESS_DELAY = DEFAULT_LONG_PRESS_DELAY;
|
|
9
9
|
const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;
|
|
@@ -12,4 +12,8 @@ const MESSAGE_FOCUS_ANIMATION_DELAY = 250;
|
|
|
12
12
|
exports.MESSAGE_FOCUS_ANIMATION_DELAY = MESSAGE_FOCUS_ANIMATION_DELAY;
|
|
13
13
|
const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';
|
|
14
14
|
exports.UNKNOWN_USER_ID = UNKNOWN_USER_ID;
|
|
15
|
+
const VOICE_MESSAGE_META_ARRAY_DURATION_KEY = 'KEY_VOICE_MESSAGE_DURATION';
|
|
16
|
+
exports.VOICE_MESSAGE_META_ARRAY_DURATION_KEY = VOICE_MESSAGE_META_ARRAY_DURATION_KEY;
|
|
17
|
+
const VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY = 'KEY_INTERNAL_MESSAGE_TYPE';
|
|
18
|
+
exports.VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY = VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY;
|
|
15
19
|
//# sourceMappingURL=constants.js.map
|