@sendbird/uikit-react-native 3.1.2 → 3.2.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/MessageToReplyPreview.js +145 -0
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
- package/lib/commonjs/components/ChannelInput/SendInput.js +147 -312
- 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 +5 -1
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +1 -1
- 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 +100 -5
- 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/GroupChannelMessageList.js +27 -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 +30 -4
- 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 +32 -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.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.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 +149 -314
- 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 +5 -1
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +2 -2
- 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 +99 -6
- 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/GroupChannelMessageList.js +28 -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 +32 -6
- 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 +4 -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.map +1 -1
- 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 +7 -3
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +1 -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/NewMessagesButton.d.ts +1 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.d.ts +2 -1
- 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 +45 -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 +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +9 -11
- package/src/components/ChannelInput/MessageToReplyPreview.tsx +133 -0
- package/src/components/ChannelInput/SendInput.tsx +129 -320
- package/src/components/ChannelInput/VoiceMessageInput.tsx +206 -0
- package/src/components/ChannelInput/index.tsx +12 -4
- package/src/components/ChannelMessageList/index.tsx +3 -1
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +24 -11
- package/src/components/GroupChannelMessageRenderer/index.tsx +80 -3
- 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/GroupChannelMessageList.tsx +29 -43
- package/src/domain/groupChannel/module/moduleContext.tsx +119 -7
- package/src/domain/groupChannel/types.ts +41 -0
- package/src/domain/userList/types.ts +2 -2
- package/src/fragments/createGroupChannelFragment.tsx +32 -5
- 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 +4 -0
- 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 +1 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","createStyleSheet","createMentionTemplateRegex","replaceWithRegex","MentionManager","constructor","config","_this","_defineProperty","inRangeUnderOver","start","num","end","inRangeUnderMore","inRangeLessOver","inRangeLessMore","overlaps","a","b","compare","arguments","length","undefined","inRange","underOver","underMore","lessOver","lessMore","text","selectionIndex","lastSpan","slice","split","delimiter","pop","triggerIdx","indexOf","trigger","mentionSpan","searchString","isTriggered","startsWith","isValidSearchString","_invalidStartsKeywords","every","it","offset","mentionedUsers","map","range","selection","lastSelection","removedOffset","filtered","filter","shouldRemove","rangeHelpers","Math","max","user","userId","nickname","mentionEnabled","leftText","components","sort","reduce","_ref","curr","currentIndex","leftSpan","rightSpan","createElement","key","style","styles","mentionedText","strings","_ref2","templateSpan","asMentionedMessageTemplate","join","template","actualMentionedUsers","offsetToMove","templateRegex","_ref3","match","matchIndex","groups","find","userIdSpan","userNicknameSpan","asMentionedMessageText","offsetAfterConverted","originalRange","convertedRange","push","message","Boolean","mentionedMessageTemplate","_templateRegex","fontWeight"],"sources":["MentionManager.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUser, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { createMentionTemplateRegex, replaceWithRegex } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser, Range } from '../types';\nimport type { MentionConfigInterface } from './MentionConfig';\n\nclass MentionManager {\n private _invalidStartsKeywords: string[];\n private _templateRegex: RegExp;\n\n constructor(public config: MentionConfigInterface) {\n this._invalidStartsKeywords = [this.config.trigger, this.config.delimiter];\n this._templateRegex = createMentionTemplateRegex(this.config.trigger);\n }\n\n public rangeHelpers = {\n inRangeUnderOver(start: number, num: number, end: number) {\n return start < num && num < end;\n },\n inRangeUnderMore(start: number, num: number, end: number) {\n return start < num && num <= end;\n },\n inRangeLessOver(start: number, num: number, end: number) {\n return start <= num && num < end;\n },\n inRangeLessMore(start: number, num: number, end: number) {\n return start <= num && num <= end;\n },\n overlaps(a: Range, b: Range, compare: 'underOver' | 'underMore' | 'lessOver' | 'lessMore' = 'underOver') {\n const inRange = {\n underOver: this.inRangeUnderOver,\n underMore: this.inRangeUnderMore,\n lessOver: this.inRangeLessOver,\n lessMore: this.inRangeLessMore,\n }[compare];\n\n return inRange(a.start, b.start, a.end) || inRange(a.start, b.end, a.end);\n },\n };\n\n public get templateRegex() {\n return this._templateRegex;\n }\n\n public getSearchString = (text: string, selectionIndex: number) => {\n const lastSpan = text.slice(0, selectionIndex).split(this.config.delimiter).pop() ?? '';\n const triggerIdx = lastSpan.indexOf(this.config.trigger);\n const mentionSpan = triggerIdx === -1 ? lastSpan : lastSpan.slice(triggerIdx);\n const searchString = mentionSpan.slice(this.config.trigger.length);\n\n return {\n searchString,\n isTriggered: () => mentionSpan.startsWith(this.config.trigger),\n isValidSearchString: () => this._invalidStartsKeywords.every((it) => !searchString.startsWith(it)),\n };\n };\n\n /**\n * @description Reconcile the range by offset in the mentioned users\n * */\n public reconcileRangeOfMentionedUsers = (offset: number, selectionIndex: number, mentionedUsers: MentionedUser[]) => {\n return mentionedUsers.map((it) => {\n // Changes only on the right text of selection.\n if (selectionIndex <= it.range.start) {\n return {\n ...it,\n range: {\n start: it.range.start + offset,\n end: it.range.end + offset,\n },\n };\n }\n\n return it;\n });\n };\n\n /**\n * @description Remove users who in a range\n * */\n public removeMentionedUsersInSelection = (selection: Range, mentionedUsers: MentionedUser[]) => {\n let lastSelection = 0;\n let removedOffset = 0;\n const filtered = mentionedUsers.filter((it) => {\n const shouldRemove = this.rangeHelpers.overlaps(selection, it.range, 'lessMore');\n if (shouldRemove) {\n lastSelection = Math.max(lastSelection, it.range.end);\n removedOffset -= it.range.end - it.range.start;\n }\n return !shouldRemove;\n });\n\n return { filtered, lastSelection, removedOffset };\n };\n\n public getSearchStringRangeInText = (selectionIndex: number, searchString: string): Range => {\n return {\n start: selectionIndex - searchString.length - this.config.trigger.length,\n end: selectionIndex,\n };\n };\n\n /**\n * @description User to @{user.id} template format\n * */\n public asMentionedMessageTemplate = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}{${user.userId}}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description User to @user.nickname text format\n * */\n public asMentionedMessageText = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}${user.nickname}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description Bold @user.nickname\n * */\n public textToMentionedComponents = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled || mentionedUsers.length === 0) return text;\n\n const { leftText, components } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, components }, curr, currentIndex) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const mentionSpan = leftText.slice(curr.range.start, curr.range.end);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n components: [\n <Text key={mentionSpan + currentIndex} style={styles.mentionedText}>\n {mentionSpan}\n </Text>,\n rightSpan,\n ...components,\n ],\n };\n },\n { leftText: text, components: [] as (string | JSX.Element)[] },\n );\n\n return [leftText, ...components];\n };\n\n public textToMentionedMessageTemplate = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled) return text;\n\n const { leftText, strings } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, strings }, curr) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const templateSpan = this.asMentionedMessageTemplate(curr.user);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n strings: [templateSpan, rightSpan, ...strings],\n };\n },\n { leftText: text, strings: [] as string[] },\n );\n\n return [leftText, ...strings].join('');\n };\n\n /**\n * @description Convert @{user.id} template to @user.nickname text and MentionedUser[] array.\n * */\n public templateToTextAndMentionedUsers = (template: string, mentionedUsers: SendbirdUser[]) => {\n const actualMentionedUsers: MentionedUser[] = [];\n\n let offsetToMove = 0;\n const mentionedText = replaceWithRegex(\n template,\n this.templateRegex,\n ({ match, matchIndex, groups }) => {\n const user = mentionedUsers.find((it) => it.userId === groups[2]);\n if (user && typeof matchIndex === 'number') {\n const userIdSpan = match;\n const userNicknameSpan = this.asMentionedMessageText(user);\n\n const offsetAfterConverted = userNicknameSpan.length - userIdSpan.length;\n\n const originalRange: Range = {\n start: matchIndex,\n end: matchIndex + userIdSpan.length,\n };\n\n const convertedRange: Range = {\n start: Math.max(0, originalRange.start + offsetToMove),\n end: originalRange.end + offsetToMove + offsetAfterConverted,\n };\n\n offsetToMove += offsetAfterConverted;\n\n actualMentionedUsers.push({ range: convertedRange, user });\n return userNicknameSpan;\n }\n return match;\n },\n '',\n ).join('');\n\n return {\n mentionedText,\n mentionedUsers: actualMentionedUsers,\n };\n };\n\n public shouldUseMentionedMessageTemplate = (\n message?: SendbirdUserMessage | SendbirdFileMessage,\n mentionEnabled?: boolean,\n ): boolean => {\n return Boolean(\n mentionEnabled &&\n message?.mentionedMessageTemplate &&\n message?.mentionedUsers &&\n message?.mentionedUsers.length > 0,\n );\n };\n}\n\nconst styles = createStyleSheet({\n mentionedText: { fontWeight: '700' },\n});\n\nexport default MentionManager;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","Text","createStyleSheet","createMentionTemplateRegex","replaceWithRegex","MentionManager","constructor","config","_this","_defineProperty","inRangeUnderOver","start","num","end","inRangeUnderMore","inRangeLessOver","inRangeLessMore","overlaps","a","b","compare","arguments","length","undefined","inRange","underOver","underMore","lessOver","lessMore","text","selectionIndex","lastSpan","slice","split","delimiter","pop","triggerIdx","indexOf","trigger","mentionSpan","searchString","isTriggered","startsWith","isValidSearchString","_invalidStartsKeywords","every","it","offset","mentionedUsers","map","range","selection","lastSelection","removedOffset","filtered","filter","shouldRemove","rangeHelpers","Math","max","user","userId","nickname","mentionEnabled","leftText","components","sort","reduce","_ref","curr","currentIndex","leftSpan","rightSpan","createElement","key","style","styles","mentionedText","strings","_ref2","templateSpan","asMentionedMessageTemplate","join","template","actualMentionedUsers","offsetToMove","templateRegex","_ref3","match","matchIndex","groups","find","userIdSpan","userNicknameSpan","asMentionedMessageText","offsetAfterConverted","originalRange","convertedRange","push","message","Boolean","mentionedMessageTemplate","_templateRegex","fontWeight"],"sources":["MentionManager.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUser, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { createMentionTemplateRegex, replaceWithRegex } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser, Range } from '../types';\nimport type { MentionConfigInterface } from './MentionConfig';\n\nclass MentionManager {\n private _invalidStartsKeywords: string[];\n private _templateRegex: RegExp;\n\n constructor(public config: MentionConfigInterface) {\n this._invalidStartsKeywords = [this.config.trigger, this.config.delimiter];\n this._templateRegex = createMentionTemplateRegex(this.config.trigger);\n }\n\n public rangeHelpers = {\n inRangeUnderOver(start: number, num: number, end: number) {\n return start < num && num < end;\n },\n inRangeUnderMore(start: number, num: number, end: number) {\n return start < num && num <= end;\n },\n inRangeLessOver(start: number, num: number, end: number) {\n return start <= num && num < end;\n },\n inRangeLessMore(start: number, num: number, end: number) {\n return start <= num && num <= end;\n },\n overlaps(a: Range, b: Range, compare: 'underOver' | 'underMore' | 'lessOver' | 'lessMore' = 'underOver') {\n const inRange = {\n underOver: this.inRangeUnderOver,\n underMore: this.inRangeUnderMore,\n lessOver: this.inRangeLessOver,\n lessMore: this.inRangeLessMore,\n }[compare];\n\n return inRange(a.start, b.start, a.end) || inRange(a.start, b.end, a.end);\n },\n };\n\n public get templateRegex() {\n return this._templateRegex;\n }\n\n public getSearchString = (text: string, selectionIndex: number) => {\n const lastSpan = text.slice(0, selectionIndex).split(this.config.delimiter).pop() ?? '';\n const triggerIdx = lastSpan.indexOf(this.config.trigger);\n const mentionSpan = triggerIdx === -1 ? lastSpan : lastSpan.slice(triggerIdx);\n const searchString = mentionSpan.slice(this.config.trigger.length);\n\n return {\n searchString,\n isTriggered: () => mentionSpan.startsWith(this.config.trigger),\n isValidSearchString: () => this._invalidStartsKeywords.every((it) => !searchString.startsWith(it)),\n };\n };\n\n /**\n * @description Reconcile the range by offset in the mentioned users\n * */\n public reconcileRangeOfMentionedUsers = (offset: number, selectionIndex: number, mentionedUsers: MentionedUser[]) => {\n return mentionedUsers.map((it) => {\n // Changes only on the right text of selection.\n if (selectionIndex <= it.range.start) {\n return {\n ...it,\n range: {\n start: it.range.start + offset,\n end: it.range.end + offset,\n },\n };\n }\n\n return it;\n });\n };\n\n /**\n * @description Remove users who in a range\n * */\n public removeMentionedUsersInSelection = (selection: Range, mentionedUsers: MentionedUser[]) => {\n let lastSelection = 0;\n let removedOffset = 0;\n const filtered = mentionedUsers.filter((it) => {\n const shouldRemove = this.rangeHelpers.overlaps(selection, it.range, 'lessMore');\n if (shouldRemove) {\n lastSelection = Math.max(lastSelection, it.range.end);\n removedOffset -= it.range.end - it.range.start;\n }\n return !shouldRemove;\n });\n\n return { filtered, lastSelection, removedOffset };\n };\n\n public getSearchStringRangeInText = (selectionIndex: number, searchString: string): Range => {\n return {\n start: selectionIndex - searchString.length - this.config.trigger.length,\n end: selectionIndex,\n };\n };\n\n /**\n * @description User to @{user.id} template format\n * */\n public asMentionedMessageTemplate = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}{${user.userId}}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description User to @user.nickname text format\n * */\n public asMentionedMessageText = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}${user.nickname}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description Bold @user.nickname\n * */\n public textToMentionedComponents = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled || mentionedUsers.length === 0) return text;\n\n const { leftText, components } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, components }, curr, currentIndex) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const mentionSpan = leftText.slice(curr.range.start, curr.range.end);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n components: [\n <Text key={mentionSpan + currentIndex} style={styles.mentionedText}>\n {mentionSpan}\n </Text>,\n rightSpan,\n ...components,\n ],\n };\n },\n { leftText: text, components: [] as (string | React.ReactNode)[] },\n );\n\n return [leftText, ...components];\n };\n\n public textToMentionedMessageTemplate = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled) return text;\n\n const { leftText, strings } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, strings }, curr) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const templateSpan = this.asMentionedMessageTemplate(curr.user);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n strings: [templateSpan, rightSpan, ...strings],\n };\n },\n { leftText: text, strings: [] as string[] },\n );\n\n return [leftText, ...strings].join('');\n };\n\n /**\n * @description Convert @{user.id} template to @user.nickname text and MentionedUser[] array.\n * */\n public templateToTextAndMentionedUsers = (template: string, mentionedUsers: SendbirdUser[]) => {\n const actualMentionedUsers: MentionedUser[] = [];\n\n let offsetToMove = 0;\n const mentionedText = replaceWithRegex(\n template,\n this.templateRegex,\n ({ match, matchIndex, groups }) => {\n const user = mentionedUsers.find((it) => it.userId === groups[2]);\n if (user && typeof matchIndex === 'number') {\n const userIdSpan = match;\n const userNicknameSpan = this.asMentionedMessageText(user);\n\n const offsetAfterConverted = userNicknameSpan.length - userIdSpan.length;\n\n const originalRange: Range = {\n start: matchIndex,\n end: matchIndex + userIdSpan.length,\n };\n\n const convertedRange: Range = {\n start: Math.max(0, originalRange.start + offsetToMove),\n end: originalRange.end + offsetToMove + offsetAfterConverted,\n };\n\n offsetToMove += offsetAfterConverted;\n\n actualMentionedUsers.push({ range: convertedRange, user });\n return userNicknameSpan;\n }\n return match;\n },\n '',\n ).join('');\n\n return {\n mentionedText,\n mentionedUsers: actualMentionedUsers,\n };\n };\n\n public shouldUseMentionedMessageTemplate = (\n message?: SendbirdUserMessage | SendbirdFileMessage,\n mentionEnabled?: boolean,\n ): boolean => {\n return Boolean(\n mentionEnabled &&\n message?.mentionedMessageTemplate &&\n message?.mentionedUsers &&\n message?.mentionedUsers.length > 0,\n );\n };\n}\n\nconst styles = createStyleSheet({\n mentionedText: { fontWeight: '700' },\n});\n\nexport default MentionManager;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Image","Linking","Platform","Logger","SBUUtils","openSettings","catch","OS","openURL","url","targetUrl","startsWith","e","warn","getImageSize","uri","Promise","resolve","reject","getSize","width","height","error","safeRun","callback"],"sources":["SBUUtils.ts"],"sourcesContent":["import { Image, Linking, Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport default class SBUUtils {\n static openSettings() {\n Linking.openSettings().catch(() => {\n if (Platform.OS === 'ios') Linking.openURL('App-Prefs:root');\n });\n }\n\n static async openURL(url: string) {\n try {\n const targetUrl = url.startsWith('http') ? url : 'https://' + url;\n await Linking.openURL(targetUrl);\n } catch (e) {\n Logger.warn('Cannot open url', e);\n }\n }\n\n static getImageSize(uri: string): Promise<{ width: number; height: number }> {\n return new Promise((resolve, reject) => {\n Image.getSize(\n uri,\n (width, height) => {\n resolve({ width, height });\n },\n (error) => {\n reject(error);\n },\n );\n });\n }\n\n static async safeRun(callback: () => Promise<void>) {\n try {\n await callback();\n } catch (e) {}\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAEvD,SAASC,MAAM,QAAQ,uBAAuB;AAE9C,eAAe,MAAMC,QAAQ,CAAC;EAC5B,OAAOC,YAAYA,CAAA,EAAG;IACpBJ,OAAO,CAACI,YAAY,EAAE,CAACC,KAAK,CAAC,MAAM;MACjC,IAAIJ,QAAQ,CAACK,EAAE,KAAK,KAAK,EAAEN,OAAO,CAACO,OAAO,CAAC,gBAAgB,CAAC;IAC9D,CAAC,CAAC;EACJ;EAEA,aAAaA,OAAOA,CAACC,GAAW,EAAE;IAChC,IAAI;MACF,MAAMC,SAAS,GAAGD,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAG,UAAU,GAAGA,GAAG;MACjE,MAAMR,OAAO,CAACO,OAAO,CAACE,SAAS,CAAC;IAClC,CAAC,CAAC,OAAOE,CAAC,EAAE;MACVT,MAAM,CAACU,IAAI,CAAC,iBAAiB,EAAED,CAAC,CAAC;IACnC;EACF;EAEA,OAAOE,YAAYA,CAACC,GAAW,EAA8C;IAC3E,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtClB,KAAK,CAACmB,OAAO,CACXJ,GAAG,EACH,CAACK,KAAK,EAAEC,MAAM,KAAK;QACjBJ,OAAO,CAAC;UAAEG,KAAK;UAAEC;QAAO,CAAC,CAAC;MAC5B,CAAC,EACAC,KAAK,IAAK;QACTJ,MAAM,CAACI,KAAK,CAAC;MACf,CAAC,CACF;IACH,CAAC,CAAC;EACJ;EAEA,aAAaC,OAAOA,CAACC,QAA6B,EAAE;IAClD,IAAI;MACF,MAAMA,QAAQ,EAAE;IAClB,CAAC,CAAC,OAAOZ,CAAC,EAAE,CAAC;EACf;AACF"}
|
|
1
|
+
{"version":3,"names":["Image","Linking","Platform","Logger","SBUUtils","openSettings","catch","OS","openURL","url","targetUrl","startsWith","e","warn","getImageSize","uri","Promise","resolve","reject","getSize","width","height","error","safeRun","callback","isExpo","_g","global","window"],"sources":["SBUUtils.ts"],"sourcesContent":["import { Image, Linking, Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport default class SBUUtils {\n static openSettings() {\n Linking.openSettings().catch(() => {\n if (Platform.OS === 'ios') Linking.openURL('App-Prefs:root');\n });\n }\n\n static async openURL(url: string) {\n try {\n const targetUrl = url.startsWith('http') ? url : 'https://' + url;\n await Linking.openURL(targetUrl);\n } catch (e) {\n Logger.warn('Cannot open url', e);\n }\n }\n\n static getImageSize(uri: string): Promise<{ width: number; height: number }> {\n return new Promise((resolve, reject) => {\n Image.getSize(\n uri,\n (width, height) => {\n resolve({ width, height });\n },\n (error) => {\n reject(error);\n },\n );\n });\n }\n\n static async safeRun(callback: () => Promise<void>) {\n try {\n await callback();\n } catch (e) {}\n }\n\n static isExpo() {\n const _g = global ?? window;\n return typeof _g === 'object' && 'expo' in _g;\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAEvD,SAASC,MAAM,QAAQ,uBAAuB;AAE9C,eAAe,MAAMC,QAAQ,CAAC;EAC5B,OAAOC,YAAYA,CAAA,EAAG;IACpBJ,OAAO,CAACI,YAAY,EAAE,CAACC,KAAK,CAAC,MAAM;MACjC,IAAIJ,QAAQ,CAACK,EAAE,KAAK,KAAK,EAAEN,OAAO,CAACO,OAAO,CAAC,gBAAgB,CAAC;IAC9D,CAAC,CAAC;EACJ;EAEA,aAAaA,OAAOA,CAACC,GAAW,EAAE;IAChC,IAAI;MACF,MAAMC,SAAS,GAAGD,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAG,UAAU,GAAGA,GAAG;MACjE,MAAMR,OAAO,CAACO,OAAO,CAACE,SAAS,CAAC;IAClC,CAAC,CAAC,OAAOE,CAAC,EAAE;MACVT,MAAM,CAACU,IAAI,CAAC,iBAAiB,EAAED,CAAC,CAAC;IACnC;EACF;EAEA,OAAOE,YAAYA,CAACC,GAAW,EAA8C;IAC3E,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtClB,KAAK,CAACmB,OAAO,CACXJ,GAAG,EACH,CAACK,KAAK,EAAEC,MAAM,KAAK;QACjBJ,OAAO,CAAC;UAAEG,KAAK;UAAEC;QAAO,CAAC,CAAC;MAC5B,CAAC,EACAC,KAAK,IAAK;QACTJ,MAAM,CAACI,KAAK,CAAC;MACf,CAAC,CACF;IACH,CAAC,CAAC;EACJ;EAEA,aAAaC,OAAOA,CAACC,QAA6B,EAAE;IAClD,IAAI;MACF,MAAMA,QAAQ,EAAE;IAClB,CAAC,CAAC,OAAOZ,CAAC,EAAE,CAAC;EACf;EAEA,OAAOa,MAAMA,CAAA,EAAG;IACd,MAAMC,EAAE,GAAGC,MAAM,IAAIC,MAAM;IAC3B,OAAO,OAAOF,EAAE,KAAK,QAAQ,IAAI,MAAM,IAAIA,EAAE;EAC/C;AACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
+
class VoiceMessageConfig {
|
|
5
|
+
constructor(_config) {
|
|
6
|
+
this._config = _config;
|
|
7
|
+
}
|
|
8
|
+
get recorder() {
|
|
9
|
+
return this._config.recorder;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
_defineProperty(VoiceMessageConfig, "DEFAULT", {
|
|
13
|
+
RECORDER: {
|
|
14
|
+
MIN_DURATION: 1000,
|
|
15
|
+
MAX_DURATION: 600 * 1000,
|
|
16
|
+
EXTENSION: 'm4a',
|
|
17
|
+
BIT_RATE: 12000,
|
|
18
|
+
SAMPLE_RATE: 11025,
|
|
19
|
+
CHANNELS: 1
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export default VoiceMessageConfig;
|
|
23
|
+
//# sourceMappingURL=VoiceMessageConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["VoiceMessageConfig","constructor","_config","recorder","_defineProperty","RECORDER","MIN_DURATION","MAX_DURATION","EXTENSION","BIT_RATE","SAMPLE_RATE","CHANNELS"],"sources":["VoiceMessageConfig.ts"],"sourcesContent":["export interface VoiceMessageConfigInterface {\n recorder: {\n minDuration: number;\n maxDuration: number;\n };\n}\n\nclass VoiceMessageConfig {\n static DEFAULT = {\n RECORDER: {\n MIN_DURATION: 1000,\n MAX_DURATION: 600 * 1000,\n EXTENSION: 'm4a',\n\n BIT_RATE: 12000,\n SAMPLE_RATE: 11025,\n CHANNELS: 1,\n },\n };\n\n constructor(private _config: VoiceMessageConfigInterface) {}\n\n get recorder() {\n return this._config.recorder;\n }\n}\n\nexport default VoiceMessageConfig;\n"],"mappings":";;;AAOA,MAAMA,kBAAkB,CAAC;EAavBC,WAAWA,CAASC,OAAoC,EAAE;IAAA,KAAtCA,OAAoC,GAApCA,OAAoC;EAAG;EAE3D,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACD,OAAO,CAACC,QAAQ;EAC9B;AACF;AAACC,eAAA,CAlBKJ,kBAAkB,aACL;EACfK,QAAQ,EAAE;IACRC,YAAY,EAAE,IAAI;IAClBC,YAAY,EAAE,GAAG,GAAG,IAAI;IACxBC,SAAS,EAAE,KAAK;IAEhBC,QAAQ,EAAE,KAAK;IACfC,WAAW,EAAE,KAAK;IAClBC,QAAQ,EAAE;EACZ;AACF,CAAC;AASH,eAAeX,kBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["StringSet.type.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdParticipant,\n SendbirdUser,\n SendbirdUserMessage,\n} from '@sendbird/uikit-utils';\n\n/**\n * StringSet interface\n * Do not configure over 3 depths (for overrides easy)\n * */\nexport interface StringSet {\n OPEN_CHANNEL: {\n /** OpenChannel > Header */\n HEADER_TITLE: (channel: SendbirdOpenChannel) => string;\n HEADER_SUBTITLE: (channel: SendbirdOpenChannel) => string;\n\n /** OpenChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n\n /** OpenChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n };\n OPEN_CHANNEL_PARTICIPANTS: {\n /** OpenChannelParticipants > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_SETTINGS: {\n /** OpenChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelSettings > Info */\n INFO_URL: string;\n\n /** OpenChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_PARTICIPANTS: string;\n MENU_DELETE_CHANNEL: string;\n\n /** OpenChannelSettings > Dialog */\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: string;\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_LIST: {\n /** OpenChannelList > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (channel: SendbirdOpenChannel) => string;\n };\n OPEN_CHANNEL_CREATE: {\n /** OpenChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelCreate > ProfileInput */\n PLACEHOLDER: string;\n\n /** OpenChannelCreate > Dialog */\n DIALOG_IMAGE_MENU_REMOVE: string;\n DIALOG_IMAGE_MENU_CAMERA: string;\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_MODERATION: {\n /** OpenChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_PARTICIPANTS: string;\n MENU_BANNED_USERS: string;\n };\n OPEN_CHANNEL_BANNED_USERS: {\n /** OpenChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n /** OpenChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_OPERATORS: {\n /** OpenChannelOperators > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n /** OpenChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdParticipant> }) => string;\n };\n GROUP_CHANNEL: {\n /** GroupChannel > Header */\n HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n\n /** GroupChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;\n\n /** GroupChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n\n /** GroupChannel > Suggested mention list */\n MENTION_LIMITED: (mentionLimit: number) => string;\n };\n GROUP_CHANNEL_SETTINGS: {\n /** GroupChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** GroupChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_MEMBERS: string;\n MENU_SEARCH: string;\n MENU_LEAVE_CHANNEL: string;\n MENU_NOTIFICATION: string;\n MENU_NOTIFICATION_LABEL_ON: string;\n MENU_NOTIFICATION_LABEL_OFF: string;\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;\n\n /** GroupChannelSettings > Dialog */\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n GROUP_CHANNEL_NOTIFICATIONS: {\n /** GroupChannelNotifications > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelNotifications > Menu */\n MENU_NOTIFICATIONS: string;\n MENU_NOTIFICATIONS_DESC: string;\n MENU_NOTIFICATIONS_OPTION_ALL: string;\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;\n };\n GROUP_CHANNEL_MODERATION: {\n /** GroupChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_MEMBERS: string;\n MENU_BANNED_USERS: string;\n MENU_FREEZE_CHANNEL: string;\n };\n GROUP_CHANNEL_OPERATORS: {\n /** GroupChannelOperators > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n /** GroupChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdMember> }) => string;\n };\n GROUP_CHANNEL_MUTED_MEMBERS: {\n /** GroupChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_BANNED_USERS: {\n /** GroupChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_LIST: {\n /** GroupChannelList > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel: SendbirdGroupChannel, locale?: Locale) => string;\n CHANNEL_PREVIEW_BODY: (channel: SendbirdGroupChannel) => string;\n\n /** GroupChannelList > TypeSelector > Header */\n TYPE_SELECTOR_HEADER_TITLE: string;\n /** GroupChannelList > TypeSelector > Type string */\n TYPE_SELECTOR_GROUP: string;\n TYPE_SELECTOR_SUPER_GROUP: string;\n TYPE_SELECTOR_BROADCAST: string;\n\n /** GroupChannelList > Dialog > Channel */\n DIALOG_CHANNEL_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_NOTIFICATION: (channel?: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_LEAVE: string;\n };\n GROUP_CHANNEL_MEMBERS: {\n /** GroupChannelMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_INVITE: {\n /** GroupChannelInvite > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n GROUP_CHANNEL_CREATE: {\n /** GroupChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n MESSAGE_SEARCH: {\n /** MessageSearch > Header */\n HEADER_INPUT_PLACEHOLDER: string;\n HEADER_RIGHT: string;\n\n /** MessageSearch > Search result item */\n SEARCH_RESULT_ITEM_TITLE: (message: SendbirdBaseMessage) => string;\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message: SendbirdBaseMessage, locale?: Locale) => string;\n SEARCH_RESULT_ITEM_BODY: (message: SendbirdBaseMessage) => string;\n };\n // UI\n LABELS: {\n PERMISSION_APP_NAME: string;\n PERMISSION_CAMERA: string;\n PERMISSION_DEVICE_STORAGE: string;\n\n USER_NO_NAME: string;\n CHANNEL_NO_MEMBERS: string;\n TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;\n REPLY_FROM_SENDER_TO_RECEIVER: (\n replyMessage: SendbirdUserMessage | SendbirdFileMessage,\n parentMessage: SendbirdUserMessage | SendbirdFileMessage,\n currentUserId?: string,\n ) => string;\n\n USER_BAR_ME_POSTFIX: string;\n USER_BAR_OPERATOR: string;\n\n REGISTER_AS_OPERATOR: string;\n UNREGISTER_OPERATOR: string;\n MUTE: string;\n UNMUTE: string;\n BAN: string;\n UNBAN: string;\n\n /** ChannelMessageList **/\n CHANNEL_MESSAGE_LIST_FROZEN: string;\n\n /** ChannelInput **/\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: string;\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: string;\n CHANNEL_INPUT_PLACEHOLDER_MUTED: string;\n CHANNEL_INPUT_PLACEHOLDER_REPLY: string;\n CHANNEL_INPUT_EDIT_OK: string;\n CHANNEL_INPUT_EDIT_CANCEL: string;\n /** ChannelInput > Attachments **/\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: string;\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: string;\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: string;\n CHANNEL_INPUT_ATTACHMENT_FILES: string;\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user: SendbirdUser) => string;\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message: SendbirdUserMessage | SendbirdFileMessage) => string;\n\n /** Channel > Message **/\n CHANNEL_MESSAGE_COPY: string;\n CHANNEL_MESSAGE_EDIT: string;\n CHANNEL_MESSAGE_SAVE: string;\n CHANNEL_MESSAGE_DELETE: string;\n CHANNEL_MESSAGE_REPLY: string;\n /** Channel > Message > Delete confirm **/\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: string;\n /** Channel > Message > Failed **/\n CHANNEL_MESSAGE_FAILED_RETRY: string;\n CHANNEL_MESSAGE_FAILED_REMOVE: string;\n };\n FILE_VIEWER: {\n TITLE: (message: SendbirdFileMessage) => string;\n SUBTITLE: (message: SendbirdFileMessage) => string;\n };\n PLACEHOLDER: {\n NO_BANNED_USERS: string;\n NO_USERS: string;\n NO_CHANNELS: string;\n NO_MESSAGES: string;\n NO_MUTED_MEMBERS: string;\n NO_MUTED_PARTICIPANTS: string;\n NO_RESULTS_FOUND: string;\n ERROR: {\n MESSAGE: string;\n RETRY_LABEL: string;\n };\n };\n DIALOG: {\n ALERT_DEFAULT_OK: string;\n\n ALERT_PERMISSIONS_TITLE: string;\n ALERT_PERMISSIONS_MESSAGE: (permission: string, appName: string) => string;\n ALERT_PERMISSIONS_OK: string;\n\n PROMPT_DEFAULT_OK: string;\n PROMPT_DEFAULT_CANCEL: string;\n PROMPT_DEFAULT_PLACEHOLDER: string;\n };\n TOAST: {\n COPY_OK: string;\n DOWNLOAD_START: string;\n DOWNLOAD_OK: string;\n DOWNLOAD_ERROR: string;\n OPEN_CAMERA_ERROR: string;\n OPEN_PHOTO_LIBRARY_ERROR: string;\n OPEN_FILES_ERROR: string;\n RESEND_MSG_ERROR: string;\n DELETE_MSG_ERROR: string;\n SEND_MSG_ERROR: string;\n UPDATE_MSG_ERROR: string;\n TURN_ON_NOTIFICATIONS_ERROR: string;\n TURN_OFF_NOTIFICATIONS_ERROR: string;\n LEAVE_CHANNEL_ERROR: string;\n UNKNOWN_ERROR: string;\n GET_CHANNEL_ERROR: string;\n FIND_PARENT_MSG_ERROR: string;\n };\n PROFILE_CARD: {\n BUTTON_MESSAGE: string;\n BODY_LABEL: string;\n BODY: (user: SendbirdUser | SendbirdMember) => string;\n };\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["StringSet.type.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdParticipant,\n SendbirdUser,\n SendbirdUserMessage,\n} from '@sendbird/uikit-utils';\n\n/**\n * StringSet interface\n * Do not configure over 3 depths (for overrides easy)\n * */\nexport interface StringSet {\n OPEN_CHANNEL: {\n /** OpenChannel > Header */\n HEADER_TITLE: (channel: SendbirdOpenChannel) => string;\n HEADER_SUBTITLE: (channel: SendbirdOpenChannel) => string;\n\n /** OpenChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n\n /** OpenChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n };\n OPEN_CHANNEL_PARTICIPANTS: {\n /** OpenChannelParticipants > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_SETTINGS: {\n /** OpenChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelSettings > Info */\n INFO_URL: string;\n\n /** OpenChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_PARTICIPANTS: string;\n MENU_DELETE_CHANNEL: string;\n\n /** OpenChannelSettings > Dialog */\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: string;\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_LIST: {\n /** OpenChannelList > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (channel: SendbirdOpenChannel) => string;\n };\n OPEN_CHANNEL_CREATE: {\n /** OpenChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelCreate > ProfileInput */\n PLACEHOLDER: string;\n\n /** OpenChannelCreate > Dialog */\n DIALOG_IMAGE_MENU_REMOVE: string;\n DIALOG_IMAGE_MENU_CAMERA: string;\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_MODERATION: {\n /** OpenChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_PARTICIPANTS: string;\n MENU_BANNED_USERS: string;\n };\n OPEN_CHANNEL_BANNED_USERS: {\n /** OpenChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n /** OpenChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_OPERATORS: {\n /** OpenChannelOperators > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n /** OpenChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdParticipant> }) => string;\n };\n GROUP_CHANNEL: {\n /** GroupChannel > Header */\n HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n\n /** GroupChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;\n\n /** GroupChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n\n /** GroupChannel > Suggested mention list */\n MENTION_LIMITED: (mentionLimit: number) => string;\n };\n GROUP_CHANNEL_SETTINGS: {\n /** GroupChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** GroupChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_MEMBERS: string;\n MENU_SEARCH: string;\n MENU_LEAVE_CHANNEL: string;\n MENU_NOTIFICATION: string;\n MENU_NOTIFICATION_LABEL_ON: string;\n MENU_NOTIFICATION_LABEL_OFF: string;\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;\n\n /** GroupChannelSettings > Dialog */\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n GROUP_CHANNEL_NOTIFICATIONS: {\n /** GroupChannelNotifications > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelNotifications > Menu */\n MENU_NOTIFICATIONS: string;\n MENU_NOTIFICATIONS_DESC: string;\n MENU_NOTIFICATIONS_OPTION_ALL: string;\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;\n };\n GROUP_CHANNEL_MODERATION: {\n /** GroupChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_MEMBERS: string;\n MENU_BANNED_USERS: string;\n MENU_FREEZE_CHANNEL: string;\n };\n GROUP_CHANNEL_OPERATORS: {\n /** GroupChannelOperators > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n /** GroupChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdMember> }) => string;\n };\n GROUP_CHANNEL_MUTED_MEMBERS: {\n /** GroupChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_BANNED_USERS: {\n /** GroupChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_LIST: {\n /** GroupChannelList > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel: SendbirdGroupChannel, locale?: Locale) => string;\n CHANNEL_PREVIEW_BODY: (channel: SendbirdGroupChannel) => string;\n\n /** GroupChannelList > TypeSelector > Header */\n TYPE_SELECTOR_HEADER_TITLE: string;\n /** GroupChannelList > TypeSelector > Type string */\n TYPE_SELECTOR_GROUP: string;\n TYPE_SELECTOR_SUPER_GROUP: string;\n TYPE_SELECTOR_BROADCAST: string;\n\n /** GroupChannelList > Dialog > Channel */\n DIALOG_CHANNEL_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_NOTIFICATION: (channel?: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_LEAVE: string;\n };\n GROUP_CHANNEL_MEMBERS: {\n /** GroupChannelMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_INVITE: {\n /** GroupChannelInvite > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n GROUP_CHANNEL_CREATE: {\n /** GroupChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n MESSAGE_SEARCH: {\n /** MessageSearch > Header */\n HEADER_INPUT_PLACEHOLDER: string;\n HEADER_RIGHT: string;\n\n /** MessageSearch > Search result item */\n SEARCH_RESULT_ITEM_TITLE: (message: SendbirdBaseMessage) => string;\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message: SendbirdBaseMessage, locale?: Locale) => string;\n SEARCH_RESULT_ITEM_BODY: (message: SendbirdBaseMessage) => string;\n };\n // UI\n LABELS: {\n PERMISSION_APP_NAME: string;\n PERMISSION_CAMERA: string;\n PERMISSION_DEVICE_STORAGE: string;\n PERMISSION_MICROPHONE: string;\n\n USER_NO_NAME: string;\n CHANNEL_NO_MEMBERS: string;\n TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;\n REPLY_FROM_SENDER_TO_RECEIVER: (\n replyMessage: SendbirdUserMessage | SendbirdFileMessage,\n parentMessage: SendbirdUserMessage | SendbirdFileMessage,\n currentUserId?: string,\n ) => string;\n MESSAGE_UNAVAILABLE: string;\n\n USER_BAR_ME_POSTFIX: string;\n USER_BAR_OPERATOR: string;\n\n REGISTER_AS_OPERATOR: string;\n UNREGISTER_OPERATOR: string;\n MUTE: string;\n UNMUTE: string;\n BAN: string;\n UNBAN: string;\n\n /** ChannelMessageList **/\n CHANNEL_MESSAGE_LIST_FROZEN: string;\n\n /** ChannelInput **/\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: string;\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: string;\n CHANNEL_INPUT_PLACEHOLDER_MUTED: string;\n CHANNEL_INPUT_PLACEHOLDER_REPLY: string;\n CHANNEL_INPUT_EDIT_OK: string;\n CHANNEL_INPUT_EDIT_CANCEL: string;\n /** ChannelInput > Attachments **/\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: string;\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: string;\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: string;\n CHANNEL_INPUT_ATTACHMENT_FILES: string;\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user: SendbirdUser) => string;\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message: SendbirdUserMessage | SendbirdFileMessage) => string;\n\n /** Channel > Message **/\n CHANNEL_MESSAGE_COPY: string;\n CHANNEL_MESSAGE_EDIT: string;\n CHANNEL_MESSAGE_SAVE: string;\n CHANNEL_MESSAGE_DELETE: string;\n CHANNEL_MESSAGE_REPLY: string;\n /** Channel > Message > Delete confirm **/\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: string;\n /** Channel > Message > Failed **/\n CHANNEL_MESSAGE_FAILED_RETRY: string;\n CHANNEL_MESSAGE_FAILED_REMOVE: string;\n\n /** Voice message **/\n VOICE_MESSAGE: string;\n VOICE_MESSAGE_INPUT_CANCEL: string;\n };\n FILE_VIEWER: {\n TITLE: (message: SendbirdFileMessage) => string;\n SUBTITLE: (message: SendbirdFileMessage) => string;\n };\n PLACEHOLDER: {\n NO_BANNED_USERS: string;\n NO_USERS: string;\n NO_CHANNELS: string;\n NO_MESSAGES: string;\n NO_MUTED_MEMBERS: string;\n NO_MUTED_PARTICIPANTS: string;\n NO_RESULTS_FOUND: string;\n ERROR: {\n MESSAGE: string;\n RETRY_LABEL: string;\n };\n };\n DIALOG: {\n ALERT_DEFAULT_OK: string;\n\n ALERT_PERMISSIONS_TITLE: string;\n ALERT_PERMISSIONS_MESSAGE: (permission: string, appName: string) => string;\n ALERT_PERMISSIONS_OK: string;\n\n PROMPT_DEFAULT_OK: string;\n PROMPT_DEFAULT_CANCEL: string;\n PROMPT_DEFAULT_PLACEHOLDER: string;\n };\n TOAST: {\n COPY_OK: string;\n DOWNLOAD_START: string;\n DOWNLOAD_OK: string;\n DOWNLOAD_ERROR: string;\n OPEN_CAMERA_ERROR: string;\n OPEN_PHOTO_LIBRARY_ERROR: string;\n OPEN_FILES_ERROR: string;\n RESEND_MSG_ERROR: string;\n DELETE_MSG_ERROR: string;\n SEND_MSG_ERROR: string;\n USER_MUTED_ERROR: string;\n CHANNEL_FROZEN_ERROR: string;\n UPDATE_MSG_ERROR: string;\n TURN_ON_NOTIFICATIONS_ERROR: string;\n TURN_OFF_NOTIFICATIONS_ERROR: string;\n LEAVE_CHANNEL_ERROR: string;\n UNKNOWN_ERROR: string;\n GET_CHANNEL_ERROR: string;\n FIND_PARENT_MSG_ERROR: string;\n };\n PROFILE_CARD: {\n BUTTON_MESSAGE: string;\n BODY_LABEL: string;\n BODY: (user: SendbirdUser | SendbirdMember) => string;\n };\n}\n"],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getDateSeparatorFormat,
|
|
1
|
+
import { getDateSeparatorFormat, getGroupChannelPreviewTime, getGroupChannelTitle, getMessagePreviewBody, getMessagePreviewTime, getMessagePreviewTitle, getMessageTimeFormat, getMessageType, getOpenChannelParticipants, getOpenChannelTitle, isVoiceMessage } from '@sendbird/uikit-utils';
|
|
2
2
|
import { UNKNOWN_USER_ID } from '../constants';
|
|
3
3
|
/**
|
|
4
4
|
* Create string set
|
|
@@ -175,7 +175,11 @@ export const createBaseStringSet = _ref => {
|
|
|
175
175
|
HEADER_TITLE: 'Channels',
|
|
176
176
|
CHANNEL_PREVIEW_TITLE: (currentUserId, channel) => getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),
|
|
177
177
|
CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),
|
|
178
|
-
CHANNEL_PREVIEW_BODY: channel =>
|
|
178
|
+
CHANNEL_PREVIEW_BODY: channel => {
|
|
179
|
+
if (!channel.lastMessage) return '';
|
|
180
|
+
if (isVoiceMessage(channel.lastMessage)) return 'Voice message';
|
|
181
|
+
return getMessagePreviewBody(channel.lastMessage);
|
|
182
|
+
},
|
|
179
183
|
TYPE_SELECTOR_HEADER_TITLE: 'Channel type',
|
|
180
184
|
TYPE_SELECTOR_GROUP: 'Group',
|
|
181
185
|
TYPE_SELECTOR_SUPER_GROUP: 'Super group',
|
|
@@ -221,7 +225,10 @@ export const createBaseStringSet = _ref => {
|
|
|
221
225
|
HEADER_INPUT_PLACEHOLDER: 'Search',
|
|
222
226
|
HEADER_RIGHT: 'Search',
|
|
223
227
|
SEARCH_RESULT_ITEM_TITLE: message => getMessagePreviewTitle(message),
|
|
224
|
-
SEARCH_RESULT_ITEM_BODY: message =>
|
|
228
|
+
SEARCH_RESULT_ITEM_BODY: message => {
|
|
229
|
+
if (isVoiceMessage(message)) return 'Voice message';
|
|
230
|
+
return getMessagePreviewBody(message);
|
|
231
|
+
},
|
|
225
232
|
SEARCH_RESULT_ITEM_TITLE_CAPTION: (message, locale) => {
|
|
226
233
|
return getMessagePreviewTime(message.createdAt, locale ?? dateLocale);
|
|
227
234
|
}
|
|
@@ -230,6 +237,7 @@ export const createBaseStringSet = _ref => {
|
|
|
230
237
|
PERMISSION_APP_NAME: 'Application',
|
|
231
238
|
PERMISSION_CAMERA: 'camera',
|
|
232
239
|
PERMISSION_DEVICE_STORAGE: 'device storage',
|
|
240
|
+
PERMISSION_MICROPHONE: 'microphone',
|
|
233
241
|
USER_NO_NAME,
|
|
234
242
|
CHANNEL_NO_MEMBERS,
|
|
235
243
|
TYPING_INDICATOR_TYPINGS: function (users) {
|
|
@@ -246,6 +254,7 @@ export const createBaseStringSet = _ref => {
|
|
|
246
254
|
const receiverNickname = parent.sender.nickname || USER_NO_NAME;
|
|
247
255
|
return `${reply.sender.userId !== currentUserId ? senderNickname : 'You'} replied to ${receiverNickname}`;
|
|
248
256
|
},
|
|
257
|
+
MESSAGE_UNAVAILABLE: 'Message unavailable',
|
|
249
258
|
USER_BAR_ME_POSTFIX: ' (You)',
|
|
250
259
|
USER_BAR_OPERATOR: 'Operator',
|
|
251
260
|
REGISTER_AS_OPERATOR: 'Register as operator',
|
|
@@ -278,22 +287,26 @@ export const createBaseStringSet = _ref => {
|
|
|
278
287
|
CHANNEL_INPUT_REPLY_PREVIEW_TITLE: user => `Reply to ${user.nickname || USER_NO_NAME}`,
|
|
279
288
|
CHANNEL_INPUT_REPLY_PREVIEW_BODY: message => {
|
|
280
289
|
if (message.isFileMessage()) {
|
|
281
|
-
const
|
|
282
|
-
switch (
|
|
283
|
-
case 'image':
|
|
290
|
+
const messageType = getMessageType(message);
|
|
291
|
+
switch (messageType) {
|
|
292
|
+
case 'file.image':
|
|
284
293
|
return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';
|
|
285
|
-
case 'video':
|
|
294
|
+
case 'file.video':
|
|
286
295
|
return 'Video';
|
|
287
|
-
case 'audio':
|
|
296
|
+
case 'file.audio':
|
|
288
297
|
return 'Audio';
|
|
298
|
+
case 'file.voice':
|
|
299
|
+
return 'Voice message';
|
|
289
300
|
default:
|
|
290
301
|
return message.name;
|
|
291
302
|
}
|
|
292
303
|
} else if (message.isUserMessage()) {
|
|
293
304
|
return message.message;
|
|
294
305
|
}
|
|
295
|
-
return 'Unknown message
|
|
306
|
+
return 'Unknown message';
|
|
296
307
|
},
|
|
308
|
+
VOICE_MESSAGE: 'Voice message',
|
|
309
|
+
VOICE_MESSAGE_INPUT_CANCEL: 'Cancel',
|
|
297
310
|
...(overrides === null || overrides === void 0 ? void 0 : overrides.LABELS)
|
|
298
311
|
},
|
|
299
312
|
FILE_VIEWER: {
|
|
@@ -323,7 +336,7 @@ export const createBaseStringSet = _ref => {
|
|
|
323
336
|
ALERT_PERMISSIONS_TITLE: 'Allow access?',
|
|
324
337
|
ALERT_PERMISSIONS_MESSAGE: function (permission) {
|
|
325
338
|
let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Application';
|
|
326
|
-
return `${appName}
|
|
339
|
+
return `${appName} needs permission to access your ${permission}.`;
|
|
327
340
|
},
|
|
328
341
|
ALERT_PERMISSIONS_OK: 'Go to settings',
|
|
329
342
|
PROMPT_DEFAULT_OK: 'Submit',
|
|
@@ -342,6 +355,8 @@ export const createBaseStringSet = _ref => {
|
|
|
342
355
|
DELETE_MSG_ERROR: "Couldn't delete message.",
|
|
343
356
|
RESEND_MSG_ERROR: "Couldn't send message.",
|
|
344
357
|
SEND_MSG_ERROR: "Couldn't send message.",
|
|
358
|
+
USER_MUTED_ERROR: "You're muted by the operator.",
|
|
359
|
+
CHANNEL_FROZEN_ERROR: 'Channel is frozen.',
|
|
345
360
|
UPDATE_MSG_ERROR: "Couldn't edit message.",
|
|
346
361
|
TURN_ON_NOTIFICATIONS_ERROR: "Couldn't turn on notifications.",
|
|
347
362
|
TURN_OFF_NOTIFICATIONS_ERROR: "Couldn't turn off notifications.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDateSeparatorFormat","getFileTypeFromMessage","getGroupChannelLastMessage","getGroupChannelPreviewTime","getGroupChannelTitle","getMessagePreviewBody","getMessagePreviewTime","getMessagePreviewTitle","getMessageTimeFormat","getOpenChannelParticipants","getOpenChannelTitle","UNKNOWN_USER_ID","createBaseStringSet","_ref","_overrides$LABELS","_overrides$LABELS2","_overrides$PLACEHOLDE","dateLocale","overrides","USER_NO_NAME","LABELS","CHANNEL_NO_MEMBERS","OPEN_CHANNEL","HEADER_TITLE","channel","HEADER_SUBTITLE","LIST_DATE_SEPARATOR","date","locale","MESSAGE_BUBBLE_TIME","message","Date","createdAt","MESSAGE_BUBBLE_FILE_TITLE","name","MESSAGE_BUBBLE_EDITED_POSTFIX","MESSAGE_BUBBLE_UNKNOWN_TITLE","MESSAGE_BUBBLE_UNKNOWN_DESC","OPEN_CHANNEL_PARTICIPANTS","OPEN_CHANNEL_SETTINGS","HEADER_RIGHT","INFO_URL","MENU_MODERATION","MENU_PARTICIPANTS","MENU_DELETE_CHANNEL","DIALOG_CHANNEL_DELETE_CONFIRM_TITLE","DIALOG_CHANNEL_DELETE_CONFIRM_OK","DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL","DIALOG_CHANGE_NAME","DIALOG_CHANGE_NAME_PROMPT_TITLE","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","DIALOG_CHANGE_NAME_PROMPT_OK","DIALOG_CHANGE_NAME_PROMPT_CANCEL","DIALOG_CHANGE_IMAGE","DIALOG_CHANGE_IMAGE_MENU_TITLE","DIALOG_CHANGE_IMAGE_MENU_CAMERA","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","OPEN_CHANNEL_CREATE","PLACEHOLDER","DIALOG_IMAGE_MENU_REMOVE","DIALOG_IMAGE_MENU_CAMERA","DIALOG_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_MODERATION","MENU_OPERATORS","MENU_MUTED_PARTICIPANTS","MENU_BANNED_USERS","OPEN_CHANNEL_BANNED_USERS","OPEN_CHANNEL_MUTED_PARTICIPANTS","OPEN_CHANNEL_OPERATORS","OPEN_CHANNEL_REGISTER_OPERATOR","_ref2","selectedUsers","len","length","GROUP_CHANNEL","uid","LIST_BUTTON_NEW_MSG","newMessages","MENTION_LIMITED","mentionLimit","GROUP_CHANNEL_SETTINGS","MENU_MEMBERS","MENU_SEARCH","MENU_LEAVE_CHANNEL","MENU_NOTIFICATION","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENU_NOTIFICATION_LABEL_MENTION_ONLY","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","GROUP_CHANNEL_MODERATION","MENU_MUTED_MEMBERS","MENU_FREEZE_CHANNEL","GROUP_CHANNEL_OPERATORS","GROUP_CHANNEL_REGISTER_OPERATOR","_ref3","GROUP_CHANNEL_MUTED_MEMBERS","GROUP_CHANNEL_BANNED_USERS","GROUP_CHANNEL_LIST","currentUserId","CHANNEL_PREVIEW_TITLE_CAPTION","CHANNEL_PREVIEW_BODY","TYPE_SELECTOR_HEADER_TITLE","TYPE_SELECTOR_GROUP","TYPE_SELECTOR_SUPER_GROUP","TYPE_SELECTOR_BROADCAST","DIALOG_CHANNEL_TITLE","DIALOG_CHANNEL_NOTIFICATION","myPushTriggerOption","DIALOG_CHANNEL_LEAVE","GROUP_CHANNEL_MEMBERS","GROUP_CHANNEL_CREATE","_ref4","GROUP_CHANNEL_INVITE","_ref5","MESSAGE_SEARCH","HEADER_INPUT_PLACEHOLDER","SEARCH_RESULT_ITEM_TITLE","SEARCH_RESULT_ITEM_BODY","SEARCH_RESULT_ITEM_TITLE_CAPTION","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","arguments","undefined","userNames","map","u","nickname","join","REPLY_FROM_SENDER_TO_RECEIVER","reply","parent","senderNickname","sender","receiverNickname","userId","USER_BAR_ME_POSTFIX","USER_BAR_OPERATOR","REGISTER_AS_OPERATOR","UNREGISTER_OPERATOR","MUTE","UNMUTE","BAN","UNBAN","CHANNEL_MESSAGE_LIST_FROZEN","CHANNEL_MESSAGE_COPY","CHANNEL_MESSAGE_EDIT","CHANNEL_MESSAGE_SAVE","CHANNEL_MESSAGE_DELETE","CHANNEL_MESSAGE_REPLY","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_FAILED_RETRY","CHANNEL_MESSAGE_FAILED_REMOVE","CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO","CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO","CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY","CHANNEL_INPUT_ATTACHMENT_FILES","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_EDIT_OK","CHANNEL_INPUT_EDIT_CANCEL","CHANNEL_INPUT_REPLY_PREVIEW_TITLE","user","CHANNEL_INPUT_REPLY_PREVIEW_BODY","isFileMessage","fileType","type","toLowerCase","includes","isUserMessage","FILE_VIEWER","TITLE","_message$sender","SUBTITLE","NO_BANNED_USERS","NO_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_MUTED_PARTICIPANTS","NO_RESULTS_FOUND","ERROR","MESSAGE","RETRY_LABEL","DIALOG","ALERT_DEFAULT_OK","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","permission","appName","ALERT_PERMISSIONS_OK","PROMPT_DEFAULT_OK","PROMPT_DEFAULT_CANCEL","PROMPT_DEFAULT_PLACEHOLDER","TOAST","COPY_OK","DOWNLOAD_START","DOWNLOAD_OK","DOWNLOAD_ERROR","OPEN_CAMERA_ERROR","OPEN_FILES_ERROR","OPEN_PHOTO_LIBRARY_ERROR","DELETE_MSG_ERROR","RESEND_MSG_ERROR","SEND_MSG_ERROR","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","UNKNOWN_ERROR","GET_CHANNEL_ERROR","FIND_PARENT_MSG_ERROR","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY"],"sources":["createBaseStringSet.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type { PartialDeep } from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getFileTypeFromMessage,\n getGroupChannelLastMessage,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessagePreviewBody,\n getMessagePreviewTime,\n getMessagePreviewTitle,\n getMessageTimeFormat,\n getOpenChannelParticipants,\n getOpenChannelTitle,\n} from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../constants';\nimport type { StringSet } from './StringSet.type';\n\ntype StringSetCreateOptions = {\n dateLocale: Locale;\n overrides?: PartialDeep<StringSet>;\n};\n\n/**\n * Create string set\n * You can create localized String set, you should provide locale for date and string as a parameters\n *\n * @param {StringSetCreateOptions.dateLocale} dateLocale Date locale (from date-fns)\n * @param {StringSetCreateOptions.overrides} [overrides] Localized strings\n * */\nexport const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOptions): StringSet => {\n const USER_NO_NAME = overrides?.LABELS?.USER_NO_NAME ?? '(No name)';\n const CHANNEL_NO_MEMBERS = overrides?.LABELS?.CHANNEL_NO_MEMBERS ?? '(No members)';\n return {\n OPEN_CHANNEL: {\n HEADER_TITLE: (channel) => getOpenChannelTitle(channel),\n HEADER_SUBTITLE: (channel) => getOpenChannelParticipants(channel),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n ...overrides?.OPEN_CHANNEL,\n },\n OPEN_CHANNEL_PARTICIPANTS: {\n HEADER_TITLE: 'Participants',\n ...overrides?.OPEN_CHANNEL_PARTICIPANTS,\n },\n OPEN_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n INFO_URL: 'URL',\n MENU_MODERATION: 'Moderation',\n MENU_PARTICIPANTS: 'Participants',\n MENU_DELETE_CHANNEL: 'Delete channel',\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: 'Delete channel?',\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: 'Delete',\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: 'Cancel',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_SETTINGS,\n },\n OPEN_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (channel) => getOpenChannelTitle(channel),\n ...overrides?.OPEN_CHANNEL_LIST,\n },\n OPEN_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: 'Create',\n PLACEHOLDER: 'Enter channel name',\n DIALOG_IMAGE_MENU_REMOVE: 'Remove photo',\n DIALOG_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_CREATE,\n },\n OPEN_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_PARTICIPANTS: 'Muted participants',\n MENU_BANNED_USERS: 'Banned users',\n ...overrides?.OPEN_CHANNEL_MODERATION,\n },\n OPEN_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.OPEN_CHANNEL_BANNED_USERS,\n },\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n HEADER_TITLE: 'Muted participants',\n ...overrides?.OPEN_CHANNEL_MUTED_PARTICIPANTS,\n },\n OPEN_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.OPEN_CHANNEL_OPERATORS,\n },\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.OPEN_CHANNEL_REGISTER_OPERATOR,\n },\n GROUP_CHANNEL: {\n HEADER_TITLE: (uid, channel) => getGroupChannelTitle(uid, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n ...overrides?.GROUP_CHANNEL,\n },\n GROUP_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n MENU_MODERATION: 'Moderation',\n MENU_MEMBERS: 'Members',\n MENU_SEARCH: 'Search in channel',\n MENU_LEAVE_CHANNEL: 'Leave channel',\n MENU_NOTIFICATION: 'Notifications',\n MENU_NOTIFICATION_LABEL_ON: 'On',\n MENU_NOTIFICATION_LABEL_OFF: 'Off',\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.GROUP_CHANNEL_SETTINGS,\n },\n GROUP_CHANNEL_NOTIFICATIONS: {\n HEADER_TITLE: 'Notifications',\n MENU_NOTIFICATIONS: 'Notifications',\n MENU_NOTIFICATIONS_DESC:\n 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',\n MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',\n ...overrides?.GROUP_CHANNEL_NOTIFICATIONS,\n },\n GROUP_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_MEMBERS: 'Muted members',\n MENU_BANNED_USERS: 'Banned users',\n MENU_FREEZE_CHANNEL: 'Freeze channel',\n ...overrides?.GROUP_CHANNEL_MODERATION,\n },\n GROUP_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_MUTED_MEMBERS: {\n HEADER_TITLE: 'Muted members',\n ...overrides?.GROUP_CHANNEL_MUTED_MEMBERS,\n },\n GROUP_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.GROUP_CHANNEL_BANNED_USERS,\n },\n GROUP_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),\n CHANNEL_PREVIEW_BODY: (channel) => getGroupChannelLastMessage(channel),\n TYPE_SELECTOR_HEADER_TITLE: 'Channel type',\n TYPE_SELECTOR_GROUP: 'Group',\n TYPE_SELECTOR_SUPER_GROUP: 'Super group',\n TYPE_SELECTOR_BROADCAST: 'Broadcast',\n DIALOG_CHANNEL_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n DIALOG_CHANNEL_NOTIFICATION: (channel) => {\n if (!channel) return '';\n if (channel.myPushTriggerOption === 'off') return 'Turn on notifications';\n return 'Turn off notifications';\n },\n DIALOG_CHANNEL_LEAVE: 'Leave channel',\n ...overrides?.GROUP_CHANNEL_LIST,\n },\n GROUP_CHANNEL_MEMBERS: {\n HEADER_TITLE: 'Members',\n ...overrides?.GROUP_CHANNEL_MEMBERS,\n },\n GROUP_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Create';\n return `Create (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_CREATE,\n },\n GROUP_CHANNEL_INVITE: {\n HEADER_TITLE: 'Invite users',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Invite';\n return `Invite (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_INVITE,\n },\n MESSAGE_SEARCH: {\n HEADER_INPUT_PLACEHOLDER: 'Search',\n HEADER_RIGHT: 'Search',\n SEARCH_RESULT_ITEM_TITLE: (message) => getMessagePreviewTitle(message),\n SEARCH_RESULT_ITEM_BODY: (message) => getMessagePreviewBody(message),\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message, locale) => {\n return getMessagePreviewTime(message.createdAt, locale ?? dateLocale);\n },\n },\n LABELS: {\n PERMISSION_APP_NAME: 'Application',\n PERMISSION_CAMERA: 'camera',\n PERMISSION_DEVICE_STORAGE: 'device storage',\n USER_NO_NAME,\n CHANNEL_NO_MEMBERS,\n TYPING_INDICATOR_TYPINGS: (users, NO_NAME = USER_NO_NAME) => {\n const userNames = users.map((u) => u.nickname || NO_NAME);\n if (userNames.length === 0) return;\n if (userNames.length === 1) return `${userNames[0]} is typing...`;\n if (users.length === 2) return `${userNames.join(' and ')} are typing...`;\n return 'Several people are typing...';\n },\n REPLY_FROM_SENDER_TO_RECEIVER: (reply, parent, currentUserId = UNKNOWN_USER_ID) => {\n const senderNickname = reply.sender.nickname || USER_NO_NAME;\n const receiverNickname = parent.sender.nickname || USER_NO_NAME;\n return `${reply.sender.userId !== currentUserId ? senderNickname : 'You'} replied to ${receiverNickname}`;\n },\n\n USER_BAR_ME_POSTFIX: ' (You)',\n USER_BAR_OPERATOR: 'Operator',\n REGISTER_AS_OPERATOR: 'Register as operator',\n UNREGISTER_OPERATOR: 'Unregister operator',\n MUTE: 'Mute',\n UNMUTE: 'Unmute',\n BAN: 'Ban',\n UNBAN: 'Unban',\n CHANNEL_MESSAGE_LIST_FROZEN: 'Channel is frozen',\n CHANNEL_MESSAGE_COPY: 'Copy',\n CHANNEL_MESSAGE_EDIT: 'Edit',\n CHANNEL_MESSAGE_SAVE: 'Save',\n CHANNEL_MESSAGE_DELETE: 'Delete',\n CHANNEL_MESSAGE_REPLY: 'Reply',\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: 'Delete',\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',\n CHANNEL_MESSAGE_FAILED_RETRY: 'Retry',\n CHANNEL_MESSAGE_FAILED_REMOVE: 'Remove',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: 'Take a photo',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: 'Take a video',\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: 'Photo library',\n CHANNEL_INPUT_ATTACHMENT_FILES: 'Files',\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: 'Enter message',\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',\n CHANNEL_INPUT_PLACEHOLDER_MUTED: \"You're muted by the operator.\",\n CHANNEL_INPUT_PLACEHOLDER_REPLY: 'Reply to message',\n CHANNEL_INPUT_EDIT_OK: 'Save',\n CHANNEL_INPUT_EDIT_CANCEL: 'Cancel',\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user) => `Reply to ${user.nickname || USER_NO_NAME}`,\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message) => {\n if (message.isFileMessage()) {\n const fileType = getFileTypeFromMessage(message);\n switch (fileType) {\n case 'image':\n return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';\n case 'video':\n return 'Video';\n case 'audio':\n return 'Audio';\n default:\n return message.name;\n }\n } else if (message.isUserMessage()) {\n return message.message;\n }\n return 'Unknown message type.';\n },\n ...overrides?.LABELS,\n },\n FILE_VIEWER: {\n TITLE: (message) => message.sender?.nickname || USER_NO_NAME,\n SUBTITLE: (message) => getMessageTimeFormat(new Date(message.createdAt), dateLocale),\n },\n PLACEHOLDER: {\n NO_BANNED_USERS: 'No banned users',\n NO_USERS: 'No users',\n NO_CHANNELS: 'No channels',\n NO_MESSAGES: 'No messages',\n NO_MUTED_MEMBERS: 'No muted members',\n NO_MUTED_PARTICIPANTS: 'No muted participants',\n NO_RESULTS_FOUND: 'No results found',\n ...overrides?.PLACEHOLDER,\n ERROR: {\n MESSAGE: 'Something went wrong',\n RETRY_LABEL: 'Retry',\n ...overrides?.PLACEHOLDER?.ERROR,\n },\n },\n DIALOG: {\n ALERT_DEFAULT_OK: 'OK',\n ALERT_PERMISSIONS_TITLE: 'Allow access?',\n ALERT_PERMISSIONS_MESSAGE: (permission, appName = 'Application') => {\n return `${appName} need permission to access your ${permission}.`;\n },\n ALERT_PERMISSIONS_OK: 'Go to settings',\n PROMPT_DEFAULT_OK: 'Submit',\n PROMPT_DEFAULT_CANCEL: 'Cancel',\n PROMPT_DEFAULT_PLACEHOLDER: 'Enter',\n ...overrides?.DIALOG,\n },\n TOAST: {\n COPY_OK: 'Copied',\n DOWNLOAD_START: 'Downloading...',\n DOWNLOAD_OK: 'File saved',\n DOWNLOAD_ERROR: \"Couldn't download file.\",\n OPEN_CAMERA_ERROR: \"Couldn't open camera.\",\n OPEN_FILES_ERROR: \"Couldn't open files.\",\n OPEN_PHOTO_LIBRARY_ERROR: \"Couldn't open photo library.\",\n DELETE_MSG_ERROR: \"Couldn't delete message.\",\n RESEND_MSG_ERROR: \"Couldn't send message.\",\n SEND_MSG_ERROR: \"Couldn't send message.\",\n UPDATE_MSG_ERROR: \"Couldn't edit message.\",\n TURN_ON_NOTIFICATIONS_ERROR: \"Couldn't turn on notifications.\",\n TURN_OFF_NOTIFICATIONS_ERROR: \"Couldn't turn off notifications.\",\n LEAVE_CHANNEL_ERROR: \"Couldn't leave channel.\",\n UNKNOWN_ERROR: 'Something went wrong.',\n GET_CHANNEL_ERROR: \"Couldn't retrieve channel.\",\n FIND_PARENT_MSG_ERROR: \"Couldn't find the original message for this reply.\",\n ...overrides?.TOAST,\n },\n PROFILE_CARD: {\n BUTTON_MESSAGE: 'Message',\n BODY_LABEL: 'User ID',\n BODY: (user) => user.userId,\n ...overrides?.PROFILE_CARD,\n },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getDateSeparatorFormat","getGroupChannelPreviewTime","getGroupChannelTitle","getMessagePreviewBody","getMessagePreviewTime","getMessagePreviewTitle","getMessageTimeFormat","getMessageType","getOpenChannelParticipants","getOpenChannelTitle","isVoiceMessage","UNKNOWN_USER_ID","createBaseStringSet","_ref","_overrides$LABELS","_overrides$LABELS2","_overrides$PLACEHOLDE","dateLocale","overrides","USER_NO_NAME","LABELS","CHANNEL_NO_MEMBERS","OPEN_CHANNEL","HEADER_TITLE","channel","HEADER_SUBTITLE","LIST_DATE_SEPARATOR","date","locale","MESSAGE_BUBBLE_TIME","message","Date","createdAt","MESSAGE_BUBBLE_FILE_TITLE","name","MESSAGE_BUBBLE_EDITED_POSTFIX","MESSAGE_BUBBLE_UNKNOWN_TITLE","MESSAGE_BUBBLE_UNKNOWN_DESC","OPEN_CHANNEL_PARTICIPANTS","OPEN_CHANNEL_SETTINGS","HEADER_RIGHT","INFO_URL","MENU_MODERATION","MENU_PARTICIPANTS","MENU_DELETE_CHANNEL","DIALOG_CHANNEL_DELETE_CONFIRM_TITLE","DIALOG_CHANNEL_DELETE_CONFIRM_OK","DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL","DIALOG_CHANGE_NAME","DIALOG_CHANGE_NAME_PROMPT_TITLE","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","DIALOG_CHANGE_NAME_PROMPT_OK","DIALOG_CHANGE_NAME_PROMPT_CANCEL","DIALOG_CHANGE_IMAGE","DIALOG_CHANGE_IMAGE_MENU_TITLE","DIALOG_CHANGE_IMAGE_MENU_CAMERA","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","OPEN_CHANNEL_CREATE","PLACEHOLDER","DIALOG_IMAGE_MENU_REMOVE","DIALOG_IMAGE_MENU_CAMERA","DIALOG_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_MODERATION","MENU_OPERATORS","MENU_MUTED_PARTICIPANTS","MENU_BANNED_USERS","OPEN_CHANNEL_BANNED_USERS","OPEN_CHANNEL_MUTED_PARTICIPANTS","OPEN_CHANNEL_OPERATORS","OPEN_CHANNEL_REGISTER_OPERATOR","_ref2","selectedUsers","len","length","GROUP_CHANNEL","uid","LIST_BUTTON_NEW_MSG","newMessages","MENTION_LIMITED","mentionLimit","GROUP_CHANNEL_SETTINGS","MENU_MEMBERS","MENU_SEARCH","MENU_LEAVE_CHANNEL","MENU_NOTIFICATION","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENU_NOTIFICATION_LABEL_MENTION_ONLY","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","GROUP_CHANNEL_MODERATION","MENU_MUTED_MEMBERS","MENU_FREEZE_CHANNEL","GROUP_CHANNEL_OPERATORS","GROUP_CHANNEL_REGISTER_OPERATOR","_ref3","GROUP_CHANNEL_MUTED_MEMBERS","GROUP_CHANNEL_BANNED_USERS","GROUP_CHANNEL_LIST","currentUserId","CHANNEL_PREVIEW_TITLE_CAPTION","CHANNEL_PREVIEW_BODY","lastMessage","TYPE_SELECTOR_HEADER_TITLE","TYPE_SELECTOR_GROUP","TYPE_SELECTOR_SUPER_GROUP","TYPE_SELECTOR_BROADCAST","DIALOG_CHANNEL_TITLE","DIALOG_CHANNEL_NOTIFICATION","myPushTriggerOption","DIALOG_CHANNEL_LEAVE","GROUP_CHANNEL_MEMBERS","GROUP_CHANNEL_CREATE","_ref4","GROUP_CHANNEL_INVITE","_ref5","MESSAGE_SEARCH","HEADER_INPUT_PLACEHOLDER","SEARCH_RESULT_ITEM_TITLE","SEARCH_RESULT_ITEM_BODY","SEARCH_RESULT_ITEM_TITLE_CAPTION","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","PERMISSION_MICROPHONE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","arguments","undefined","userNames","map","u","nickname","join","REPLY_FROM_SENDER_TO_RECEIVER","reply","parent","senderNickname","sender","receiverNickname","userId","MESSAGE_UNAVAILABLE","USER_BAR_ME_POSTFIX","USER_BAR_OPERATOR","REGISTER_AS_OPERATOR","UNREGISTER_OPERATOR","MUTE","UNMUTE","BAN","UNBAN","CHANNEL_MESSAGE_LIST_FROZEN","CHANNEL_MESSAGE_COPY","CHANNEL_MESSAGE_EDIT","CHANNEL_MESSAGE_SAVE","CHANNEL_MESSAGE_DELETE","CHANNEL_MESSAGE_REPLY","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_FAILED_RETRY","CHANNEL_MESSAGE_FAILED_REMOVE","CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO","CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO","CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY","CHANNEL_INPUT_ATTACHMENT_FILES","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_EDIT_OK","CHANNEL_INPUT_EDIT_CANCEL","CHANNEL_INPUT_REPLY_PREVIEW_TITLE","user","CHANNEL_INPUT_REPLY_PREVIEW_BODY","isFileMessage","messageType","type","toLowerCase","includes","isUserMessage","VOICE_MESSAGE","VOICE_MESSAGE_INPUT_CANCEL","FILE_VIEWER","TITLE","_message$sender","SUBTITLE","NO_BANNED_USERS","NO_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_MUTED_PARTICIPANTS","NO_RESULTS_FOUND","ERROR","MESSAGE","RETRY_LABEL","DIALOG","ALERT_DEFAULT_OK","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","permission","appName","ALERT_PERMISSIONS_OK","PROMPT_DEFAULT_OK","PROMPT_DEFAULT_CANCEL","PROMPT_DEFAULT_PLACEHOLDER","TOAST","COPY_OK","DOWNLOAD_START","DOWNLOAD_OK","DOWNLOAD_ERROR","OPEN_CAMERA_ERROR","OPEN_FILES_ERROR","OPEN_PHOTO_LIBRARY_ERROR","DELETE_MSG_ERROR","RESEND_MSG_ERROR","SEND_MSG_ERROR","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","UNKNOWN_ERROR","GET_CHANNEL_ERROR","FIND_PARENT_MSG_ERROR","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY"],"sources":["createBaseStringSet.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type { PartialDeep } from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessagePreviewBody,\n getMessagePreviewTime,\n getMessagePreviewTitle,\n getMessageTimeFormat,\n getMessageType,\n getOpenChannelParticipants,\n getOpenChannelTitle,\n isVoiceMessage,\n} from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../constants';\nimport type { StringSet } from './StringSet.type';\n\ntype StringSetCreateOptions = {\n dateLocale: Locale;\n overrides?: PartialDeep<StringSet>;\n};\n\n/**\n * Create string set\n * You can create localized String set, you should provide locale for date and string as a parameters\n *\n * @param {StringSetCreateOptions.dateLocale} dateLocale Date locale (from date-fns)\n * @param {StringSetCreateOptions.overrides} [overrides] Localized strings\n * */\nexport const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOptions): StringSet => {\n const USER_NO_NAME = overrides?.LABELS?.USER_NO_NAME ?? '(No name)';\n const CHANNEL_NO_MEMBERS = overrides?.LABELS?.CHANNEL_NO_MEMBERS ?? '(No members)';\n\n return {\n OPEN_CHANNEL: {\n HEADER_TITLE: (channel) => getOpenChannelTitle(channel),\n HEADER_SUBTITLE: (channel) => getOpenChannelParticipants(channel),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n ...overrides?.OPEN_CHANNEL,\n },\n OPEN_CHANNEL_PARTICIPANTS: {\n HEADER_TITLE: 'Participants',\n ...overrides?.OPEN_CHANNEL_PARTICIPANTS,\n },\n OPEN_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n INFO_URL: 'URL',\n MENU_MODERATION: 'Moderation',\n MENU_PARTICIPANTS: 'Participants',\n MENU_DELETE_CHANNEL: 'Delete channel',\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: 'Delete channel?',\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: 'Delete',\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: 'Cancel',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_SETTINGS,\n },\n OPEN_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (channel) => getOpenChannelTitle(channel),\n ...overrides?.OPEN_CHANNEL_LIST,\n },\n OPEN_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: 'Create',\n PLACEHOLDER: 'Enter channel name',\n DIALOG_IMAGE_MENU_REMOVE: 'Remove photo',\n DIALOG_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_CREATE,\n },\n OPEN_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_PARTICIPANTS: 'Muted participants',\n MENU_BANNED_USERS: 'Banned users',\n ...overrides?.OPEN_CHANNEL_MODERATION,\n },\n OPEN_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.OPEN_CHANNEL_BANNED_USERS,\n },\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n HEADER_TITLE: 'Muted participants',\n ...overrides?.OPEN_CHANNEL_MUTED_PARTICIPANTS,\n },\n OPEN_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.OPEN_CHANNEL_OPERATORS,\n },\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.OPEN_CHANNEL_REGISTER_OPERATOR,\n },\n GROUP_CHANNEL: {\n HEADER_TITLE: (uid, channel) => getGroupChannelTitle(uid, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n ...overrides?.GROUP_CHANNEL,\n },\n GROUP_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n MENU_MODERATION: 'Moderation',\n MENU_MEMBERS: 'Members',\n MENU_SEARCH: 'Search in channel',\n MENU_LEAVE_CHANNEL: 'Leave channel',\n MENU_NOTIFICATION: 'Notifications',\n MENU_NOTIFICATION_LABEL_ON: 'On',\n MENU_NOTIFICATION_LABEL_OFF: 'Off',\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.GROUP_CHANNEL_SETTINGS,\n },\n GROUP_CHANNEL_NOTIFICATIONS: {\n HEADER_TITLE: 'Notifications',\n MENU_NOTIFICATIONS: 'Notifications',\n MENU_NOTIFICATIONS_DESC:\n 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',\n MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',\n ...overrides?.GROUP_CHANNEL_NOTIFICATIONS,\n },\n GROUP_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_MEMBERS: 'Muted members',\n MENU_BANNED_USERS: 'Banned users',\n MENU_FREEZE_CHANNEL: 'Freeze channel',\n ...overrides?.GROUP_CHANNEL_MODERATION,\n },\n GROUP_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_MUTED_MEMBERS: {\n HEADER_TITLE: 'Muted members',\n ...overrides?.GROUP_CHANNEL_MUTED_MEMBERS,\n },\n GROUP_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.GROUP_CHANNEL_BANNED_USERS,\n },\n GROUP_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),\n CHANNEL_PREVIEW_BODY: (channel) => {\n if (!channel.lastMessage) return '';\n if (isVoiceMessage(channel.lastMessage)) return 'Voice message';\n return getMessagePreviewBody(channel.lastMessage);\n },\n TYPE_SELECTOR_HEADER_TITLE: 'Channel type',\n TYPE_SELECTOR_GROUP: 'Group',\n TYPE_SELECTOR_SUPER_GROUP: 'Super group',\n TYPE_SELECTOR_BROADCAST: 'Broadcast',\n DIALOG_CHANNEL_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n DIALOG_CHANNEL_NOTIFICATION: (channel) => {\n if (!channel) return '';\n if (channel.myPushTriggerOption === 'off') return 'Turn on notifications';\n return 'Turn off notifications';\n },\n DIALOG_CHANNEL_LEAVE: 'Leave channel',\n ...overrides?.GROUP_CHANNEL_LIST,\n },\n GROUP_CHANNEL_MEMBERS: {\n HEADER_TITLE: 'Members',\n ...overrides?.GROUP_CHANNEL_MEMBERS,\n },\n GROUP_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Create';\n return `Create (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_CREATE,\n },\n GROUP_CHANNEL_INVITE: {\n HEADER_TITLE: 'Invite users',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Invite';\n return `Invite (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_INVITE,\n },\n MESSAGE_SEARCH: {\n HEADER_INPUT_PLACEHOLDER: 'Search',\n HEADER_RIGHT: 'Search',\n SEARCH_RESULT_ITEM_TITLE: (message) => getMessagePreviewTitle(message),\n SEARCH_RESULT_ITEM_BODY: (message) => {\n if (isVoiceMessage(message)) return 'Voice message';\n return getMessagePreviewBody(message);\n },\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message, locale) => {\n return getMessagePreviewTime(message.createdAt, locale ?? dateLocale);\n },\n },\n LABELS: {\n PERMISSION_APP_NAME: 'Application',\n PERMISSION_CAMERA: 'camera',\n PERMISSION_DEVICE_STORAGE: 'device storage',\n PERMISSION_MICROPHONE: 'microphone',\n USER_NO_NAME,\n CHANNEL_NO_MEMBERS,\n TYPING_INDICATOR_TYPINGS: (users, NO_NAME = USER_NO_NAME) => {\n const userNames = users.map((u) => u.nickname || NO_NAME);\n if (userNames.length === 0) return;\n if (userNames.length === 1) return `${userNames[0]} is typing...`;\n if (users.length === 2) return `${userNames.join(' and ')} are typing...`;\n return 'Several people are typing...';\n },\n REPLY_FROM_SENDER_TO_RECEIVER: (reply, parent, currentUserId = UNKNOWN_USER_ID) => {\n const senderNickname = reply.sender.nickname || USER_NO_NAME;\n const receiverNickname = parent.sender.nickname || USER_NO_NAME;\n return `${reply.sender.userId !== currentUserId ? senderNickname : 'You'} replied to ${receiverNickname}`;\n },\n MESSAGE_UNAVAILABLE: 'Message unavailable',\n\n USER_BAR_ME_POSTFIX: ' (You)',\n USER_BAR_OPERATOR: 'Operator',\n REGISTER_AS_OPERATOR: 'Register as operator',\n UNREGISTER_OPERATOR: 'Unregister operator',\n MUTE: 'Mute',\n UNMUTE: 'Unmute',\n BAN: 'Ban',\n UNBAN: 'Unban',\n CHANNEL_MESSAGE_LIST_FROZEN: 'Channel is frozen',\n CHANNEL_MESSAGE_COPY: 'Copy',\n CHANNEL_MESSAGE_EDIT: 'Edit',\n CHANNEL_MESSAGE_SAVE: 'Save',\n CHANNEL_MESSAGE_DELETE: 'Delete',\n CHANNEL_MESSAGE_REPLY: 'Reply',\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: 'Delete',\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',\n CHANNEL_MESSAGE_FAILED_RETRY: 'Retry',\n CHANNEL_MESSAGE_FAILED_REMOVE: 'Remove',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: 'Take a photo',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: 'Take a video',\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: 'Photo library',\n CHANNEL_INPUT_ATTACHMENT_FILES: 'Files',\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: 'Enter message',\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',\n CHANNEL_INPUT_PLACEHOLDER_MUTED: \"You're muted by the operator.\",\n CHANNEL_INPUT_PLACEHOLDER_REPLY: 'Reply to message',\n CHANNEL_INPUT_EDIT_OK: 'Save',\n CHANNEL_INPUT_EDIT_CANCEL: 'Cancel',\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user) => `Reply to ${user.nickname || USER_NO_NAME}`,\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message) => {\n if (message.isFileMessage()) {\n const messageType = getMessageType(message);\n switch (messageType) {\n case 'file.image':\n return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';\n case 'file.video':\n return 'Video';\n case 'file.audio':\n return 'Audio';\n case 'file.voice':\n return 'Voice message';\n default:\n return message.name;\n }\n } else if (message.isUserMessage()) {\n return message.message;\n }\n return 'Unknown message';\n },\n VOICE_MESSAGE: 'Voice message',\n VOICE_MESSAGE_INPUT_CANCEL: 'Cancel',\n ...overrides?.LABELS,\n },\n FILE_VIEWER: {\n TITLE: (message) => message.sender?.nickname || USER_NO_NAME,\n SUBTITLE: (message) => getMessageTimeFormat(new Date(message.createdAt), dateLocale),\n },\n PLACEHOLDER: {\n NO_BANNED_USERS: 'No banned users',\n NO_USERS: 'No users',\n NO_CHANNELS: 'No channels',\n NO_MESSAGES: 'No messages',\n NO_MUTED_MEMBERS: 'No muted members',\n NO_MUTED_PARTICIPANTS: 'No muted participants',\n NO_RESULTS_FOUND: 'No results found',\n ...overrides?.PLACEHOLDER,\n ERROR: {\n MESSAGE: 'Something went wrong',\n RETRY_LABEL: 'Retry',\n ...overrides?.PLACEHOLDER?.ERROR,\n },\n },\n DIALOG: {\n ALERT_DEFAULT_OK: 'OK',\n ALERT_PERMISSIONS_TITLE: 'Allow access?',\n ALERT_PERMISSIONS_MESSAGE: (permission, appName = 'Application') => {\n return `${appName} needs permission to access your ${permission}.`;\n },\n ALERT_PERMISSIONS_OK: 'Go to settings',\n PROMPT_DEFAULT_OK: 'Submit',\n PROMPT_DEFAULT_CANCEL: 'Cancel',\n PROMPT_DEFAULT_PLACEHOLDER: 'Enter',\n ...overrides?.DIALOG,\n },\n TOAST: {\n COPY_OK: 'Copied',\n DOWNLOAD_START: 'Downloading...',\n DOWNLOAD_OK: 'File saved',\n DOWNLOAD_ERROR: \"Couldn't download file.\",\n OPEN_CAMERA_ERROR: \"Couldn't open camera.\",\n OPEN_FILES_ERROR: \"Couldn't open files.\",\n OPEN_PHOTO_LIBRARY_ERROR: \"Couldn't open photo library.\",\n DELETE_MSG_ERROR: \"Couldn't delete message.\",\n RESEND_MSG_ERROR: \"Couldn't send message.\",\n SEND_MSG_ERROR: \"Couldn't send message.\",\n USER_MUTED_ERROR: \"You're muted by the operator.\",\n CHANNEL_FROZEN_ERROR: 'Channel is frozen.',\n UPDATE_MSG_ERROR: \"Couldn't edit message.\",\n TURN_ON_NOTIFICATIONS_ERROR: \"Couldn't turn on notifications.\",\n TURN_OFF_NOTIFICATIONS_ERROR: \"Couldn't turn off notifications.\",\n LEAVE_CHANNEL_ERROR: \"Couldn't leave channel.\",\n UNKNOWN_ERROR: 'Something went wrong.',\n GET_CHANNEL_ERROR: \"Couldn't retrieve channel.\",\n FIND_PARENT_MSG_ERROR: \"Couldn't find the original message for this reply.\",\n ...overrides?.TOAST,\n },\n PROFILE_CARD: {\n BUTTON_MESSAGE: 'Message',\n BODY_LABEL: 'User ID',\n BODY: (user) => user.userId,\n ...overrides?.PROFILE_CARD,\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -112,6 +112,16 @@ const createExpoFileService = _ref => {
|
|
|
112
112
|
}
|
|
113
113
|
return response.uri;
|
|
114
114
|
}
|
|
115
|
+
createRecordFilePath() {
|
|
116
|
+
let customExtension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'm4a';
|
|
117
|
+
const basePath = fsModule.cacheDirectory;
|
|
118
|
+
if (!basePath) throw new Error('Cannot determine directory');
|
|
119
|
+
const filename = `record-${Date.now()}.${customExtension}`;
|
|
120
|
+
return {
|
|
121
|
+
uri: `${basePath}/${filename}`,
|
|
122
|
+
recordFilePath: `${basePath}/${filename}`
|
|
123
|
+
};
|
|
124
|
+
}
|
|
115
125
|
}
|
|
116
126
|
return new ExpoFileServiceInterface();
|
|
117
127
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getFileType","SBUError","expoBackwardUtils","expoPermissionGranted","createExpoFileService","_ref","imagePickerModule","documentPickerModule","mediaLibraryModule","fsModule","ExpoFileServiceInterface","hasCameraPermission","res","getCameraPermissionsAsync","requestCameraPermission","requestCameraPermissionsAsync","hasMediaLibraryPermission","type","perms","getPermissionsAsync","requestMediaLibraryPermission","requestPermissionsAsync","openCamera","options","hasPermission","granted","_options$onOpenFailur","onOpenFailure","call","PERMISSIONS_DENIED","response","launchCameraAsync","mediaTypes","mediaType","MediaTypeOptions","Images","Videos","All","imagePicker","isCanceled","file","toFilePickerResponses","openMediaLibrary","_options$onOpenFailur2","selectionLimit","launchImageLibraryAsync","openDocument","getDocumentAsync","documentPicker","e","_options$onOpenFailur3","UNKNOWN","save","Error","basePath","documentDirectory","cacheDirectory","downloadPath","fileName","downloadAsync","fileUrl","fileType","match","saveToLibraryAsync","uri"],"sources":["createFileService.expo.ts"],"sourcesContent":["import type * as ExpoDocumentPicker from 'expo-document-picker';\nimport type * as ExpoFs from 'expo-file-system';\nimport type * as ExpoImagePicker from 'expo-image-picker';\nimport type * as ExpoMediaLibrary from 'expo-media-library';\n\nimport { getFileType } from '@sendbird/uikit-utils';\n\nimport SBUError from '../libs/SBUError';\nimport expoBackwardUtils from '../utils/expoBackwardUtils';\nimport type { ExpoMediaLibraryPermissionResponse, ExpoPermissionResponse } from '../utils/expoPermissionGranted';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type {\n FilePickerResponse,\n FileServiceInterface,\n OpenCameraOptions,\n OpenDocumentOptions,\n OpenMediaLibraryOptions,\n SaveOptions,\n} from './types';\n\nconst createExpoFileService = ({\n imagePickerModule,\n documentPickerModule,\n mediaLibraryModule,\n fsModule,\n}: {\n imagePickerModule: typeof ExpoImagePicker;\n documentPickerModule: typeof ExpoDocumentPicker;\n mediaLibraryModule: typeof ExpoMediaLibrary;\n fsModule: typeof ExpoFs;\n}): FileServiceInterface => {\n class ExpoFileServiceInterface implements FileServiceInterface {\n async hasCameraPermission(): Promise<boolean> {\n const res = (await imagePickerModule.getCameraPermissionsAsync()) as ExpoPermissionResponse;\n return expoPermissionGranted([res]);\n }\n async requestCameraPermission(): Promise<boolean> {\n const res = (await imagePickerModule.requestCameraPermissionsAsync()) as ExpoPermissionResponse;\n return expoPermissionGranted([res]);\n }\n async hasMediaLibraryPermission(type: 'write' | 'read'): Promise<boolean> {\n const perms = (await mediaLibraryModule.getPermissionsAsync(\n type === 'write',\n )) as ExpoMediaLibraryPermissionResponse;\n return expoPermissionGranted([perms]);\n }\n async requestMediaLibraryPermission(type: 'write' | 'read'): Promise<boolean> {\n const perms = (await mediaLibraryModule.requestPermissionsAsync(\n type === 'write',\n )) as ExpoMediaLibraryPermissionResponse;\n return expoPermissionGranted([perms]);\n }\n\n async openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse> {\n const hasPermission = await this.hasCameraPermission();\n if (!hasPermission) {\n const granted = await this.requestCameraPermission();\n if (!granted) {\n options?.onOpenFailure?.(SBUError.PERMISSIONS_DENIED);\n return null;\n }\n }\n\n const response = await imagePickerModule.launchCameraAsync({\n mediaTypes: (() => {\n switch (options?.mediaType) {\n case 'photo':\n return imagePickerModule.MediaTypeOptions.Images;\n case 'video':\n return imagePickerModule.MediaTypeOptions.Videos;\n case 'all':\n return imagePickerModule.MediaTypeOptions.All;\n default:\n return imagePickerModule.MediaTypeOptions.Images;\n }\n })(),\n });\n\n if (expoBackwardUtils.imagePicker.isCanceled(response)) return null;\n\n const [file] = await expoBackwardUtils.imagePicker.toFilePickerResponses(response, fsModule);\n return file;\n }\n async openMediaLibrary(options: OpenMediaLibraryOptions) {\n const hasPermission = await this.hasMediaLibraryPermission('read');\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission('read');\n if (!granted) {\n options?.onOpenFailure?.(SBUError.PERMISSIONS_DENIED);\n return null;\n }\n }\n\n const selectionLimit = options?.selectionLimit || 1;\n const response = await imagePickerModule.launchImageLibraryAsync({\n selectionLimit,\n mediaTypes: (() => {\n switch (options?.mediaType) {\n case 'photo':\n return imagePickerModule.MediaTypeOptions.Images;\n case 'video':\n return imagePickerModule.MediaTypeOptions.Videos;\n case 'all':\n return imagePickerModule.MediaTypeOptions.All;\n default:\n return imagePickerModule.MediaTypeOptions.Images;\n }\n })(),\n });\n if (expoBackwardUtils.imagePicker.isCanceled(response)) return null;\n return expoBackwardUtils.imagePicker.toFilePickerResponses(response, fsModule);\n }\n\n async openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse> {\n try {\n const response = await documentPickerModule.getDocumentAsync({ type: '*/*' });\n if (expoBackwardUtils.documentPicker.isCanceled(response)) return null;\n\n const [file] = await expoBackwardUtils.documentPicker.toFilePickerResponses(response);\n return file;\n } catch (e) {\n options?.onOpenFailure?.(SBUError.UNKNOWN, e);\n return null;\n }\n }\n\n async save(options: SaveOptions): Promise<string> {\n const hasPermission = await this.hasMediaLibraryPermission('write');\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission('write');\n if (!granted) throw new Error('Permission not granted');\n }\n\n const basePath = fsModule.documentDirectory || fsModule.cacheDirectory;\n if (!basePath) throw new Error('Cannot determine directory');\n\n const downloadPath = `${basePath}/${options.fileName}`;\n\n const response = await fsModule.downloadAsync(options.fileUrl, downloadPath);\n if (getFileType(options.fileType || '').match(/video|image/)) {\n await mediaLibraryModule.saveToLibraryAsync(response.uri);\n }\n return response.uri;\n }\n }\n\n return new ExpoFileServiceInterface();\n};\n\nexport default createExpoFileService;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getFileType","SBUError","expoBackwardUtils","expoPermissionGranted","createExpoFileService","_ref","imagePickerModule","documentPickerModule","mediaLibraryModule","fsModule","ExpoFileServiceInterface","hasCameraPermission","res","getCameraPermissionsAsync","requestCameraPermission","requestCameraPermissionsAsync","hasMediaLibraryPermission","type","perms","getPermissionsAsync","requestMediaLibraryPermission","requestPermissionsAsync","openCamera","options","hasPermission","granted","_options$onOpenFailur","onOpenFailure","call","PERMISSIONS_DENIED","response","launchCameraAsync","mediaTypes","mediaType","MediaTypeOptions","Images","Videos","All","imagePicker","isCanceled","file","toFilePickerResponses","openMediaLibrary","_options$onOpenFailur2","selectionLimit","launchImageLibraryAsync","openDocument","getDocumentAsync","documentPicker","e","_options$onOpenFailur3","UNKNOWN","save","Error","basePath","documentDirectory","cacheDirectory","downloadPath","fileName","downloadAsync","fileUrl","fileType","match","saveToLibraryAsync","uri","createRecordFilePath","customExtension","arguments","length","undefined","filename","Date","now","recordFilePath"],"sources":["createFileService.expo.ts"],"sourcesContent":["import type * as ExpoDocumentPicker from 'expo-document-picker';\nimport type * as ExpoFs from 'expo-file-system';\nimport type * as ExpoImagePicker from 'expo-image-picker';\nimport type * as ExpoMediaLibrary from 'expo-media-library';\n\nimport { getFileType } from '@sendbird/uikit-utils';\n\nimport SBUError from '../libs/SBUError';\nimport expoBackwardUtils from '../utils/expoBackwardUtils';\nimport type { ExpoMediaLibraryPermissionResponse, ExpoPermissionResponse } from '../utils/expoPermissionGranted';\nimport expoPermissionGranted from '../utils/expoPermissionGranted';\nimport type {\n FilePickerResponse,\n FileServiceInterface,\n OpenCameraOptions,\n OpenDocumentOptions,\n OpenMediaLibraryOptions,\n SaveOptions,\n} from './types';\n\nconst createExpoFileService = ({\n imagePickerModule,\n documentPickerModule,\n mediaLibraryModule,\n fsModule,\n}: {\n imagePickerModule: typeof ExpoImagePicker;\n documentPickerModule: typeof ExpoDocumentPicker;\n mediaLibraryModule: typeof ExpoMediaLibrary;\n fsModule: typeof ExpoFs;\n}): FileServiceInterface => {\n class ExpoFileServiceInterface implements FileServiceInterface {\n async hasCameraPermission(): Promise<boolean> {\n const res = (await imagePickerModule.getCameraPermissionsAsync()) as ExpoPermissionResponse;\n return expoPermissionGranted([res]);\n }\n async requestCameraPermission(): Promise<boolean> {\n const res = (await imagePickerModule.requestCameraPermissionsAsync()) as ExpoPermissionResponse;\n return expoPermissionGranted([res]);\n }\n async hasMediaLibraryPermission(type: 'write' | 'read'): Promise<boolean> {\n const perms = (await mediaLibraryModule.getPermissionsAsync(\n type === 'write',\n )) as ExpoMediaLibraryPermissionResponse;\n return expoPermissionGranted([perms]);\n }\n async requestMediaLibraryPermission(type: 'write' | 'read'): Promise<boolean> {\n const perms = (await mediaLibraryModule.requestPermissionsAsync(\n type === 'write',\n )) as ExpoMediaLibraryPermissionResponse;\n return expoPermissionGranted([perms]);\n }\n\n async openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse> {\n const hasPermission = await this.hasCameraPermission();\n if (!hasPermission) {\n const granted = await this.requestCameraPermission();\n if (!granted) {\n options?.onOpenFailure?.(SBUError.PERMISSIONS_DENIED);\n return null;\n }\n }\n\n const response = await imagePickerModule.launchCameraAsync({\n mediaTypes: (() => {\n switch (options?.mediaType) {\n case 'photo':\n return imagePickerModule.MediaTypeOptions.Images;\n case 'video':\n return imagePickerModule.MediaTypeOptions.Videos;\n case 'all':\n return imagePickerModule.MediaTypeOptions.All;\n default:\n return imagePickerModule.MediaTypeOptions.Images;\n }\n })(),\n });\n\n if (expoBackwardUtils.imagePicker.isCanceled(response)) return null;\n\n const [file] = await expoBackwardUtils.imagePicker.toFilePickerResponses(response, fsModule);\n return file;\n }\n async openMediaLibrary(options: OpenMediaLibraryOptions) {\n const hasPermission = await this.hasMediaLibraryPermission('read');\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission('read');\n if (!granted) {\n options?.onOpenFailure?.(SBUError.PERMISSIONS_DENIED);\n return null;\n }\n }\n\n const selectionLimit = options?.selectionLimit || 1;\n const response = await imagePickerModule.launchImageLibraryAsync({\n selectionLimit,\n mediaTypes: (() => {\n switch (options?.mediaType) {\n case 'photo':\n return imagePickerModule.MediaTypeOptions.Images;\n case 'video':\n return imagePickerModule.MediaTypeOptions.Videos;\n case 'all':\n return imagePickerModule.MediaTypeOptions.All;\n default:\n return imagePickerModule.MediaTypeOptions.Images;\n }\n })(),\n });\n if (expoBackwardUtils.imagePicker.isCanceled(response)) return null;\n return expoBackwardUtils.imagePicker.toFilePickerResponses(response, fsModule);\n }\n\n async openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse> {\n try {\n const response = await documentPickerModule.getDocumentAsync({ type: '*/*' });\n if (expoBackwardUtils.documentPicker.isCanceled(response)) return null;\n\n const [file] = await expoBackwardUtils.documentPicker.toFilePickerResponses(response);\n return file;\n } catch (e) {\n options?.onOpenFailure?.(SBUError.UNKNOWN, e);\n return null;\n }\n }\n\n async save(options: SaveOptions): Promise<string> {\n const hasPermission = await this.hasMediaLibraryPermission('write');\n if (!hasPermission) {\n const granted = await this.requestMediaLibraryPermission('write');\n if (!granted) throw new Error('Permission not granted');\n }\n\n const basePath = fsModule.documentDirectory || fsModule.cacheDirectory;\n if (!basePath) throw new Error('Cannot determine directory');\n\n const downloadPath = `${basePath}/${options.fileName}`;\n\n const response = await fsModule.downloadAsync(options.fileUrl, downloadPath);\n if (getFileType(options.fileType || '').match(/video|image/)) {\n await mediaLibraryModule.saveToLibraryAsync(response.uri);\n }\n return response.uri;\n }\n createRecordFilePath(customExtension = 'm4a'): { recordFilePath: string; uri: string } {\n const basePath = fsModule.cacheDirectory;\n if (!basePath) throw new Error('Cannot determine directory');\n\n const filename = `record-${Date.now()}.${customExtension}`;\n return {\n uri: `${basePath}/${filename}`,\n recordFilePath: `${basePath}/${filename}`,\n };\n }\n }\n\n return new ExpoFileServiceInterface();\n};\n\nexport default createExpoFileService;\n"],"mappings":"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"}
|
|
@@ -245,6 +245,25 @@ const createNativeFileService = _ref => {
|
|
|
245
245
|
}
|
|
246
246
|
return downloadedPath;
|
|
247
247
|
}
|
|
248
|
+
createRecordFilePath() {
|
|
249
|
+
let customExtension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'm4a';
|
|
250
|
+
const filename = `record-${Date.now()}.${customExtension}`;
|
|
251
|
+
const path = `${fsModule.Dirs.CacheDir}/${filename}`;
|
|
252
|
+
return Platform.select({
|
|
253
|
+
ios: {
|
|
254
|
+
uri: path,
|
|
255
|
+
recordFilePath: filename
|
|
256
|
+
},
|
|
257
|
+
android: {
|
|
258
|
+
uri: path.startsWith('file://') ? path : 'file://' + path,
|
|
259
|
+
recordFilePath: path
|
|
260
|
+
},
|
|
261
|
+
default: {
|
|
262
|
+
uri: path,
|
|
263
|
+
recordFilePath: path
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
}
|
|
248
267
|
}
|
|
249
268
|
return new NativeFileService();
|
|
250
269
|
};
|