@sendbird/uikit-react-native 3.1.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -42
- package/lib/commonjs/components/ChannelInput/EditInput.js +2 -11
- package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js +145 -0
- package/lib/commonjs/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
- package/lib/commonjs/components/ChannelInput/SendInput.js +149 -323
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +238 -0
- package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -0
- package/lib/commonjs/components/ChannelInput/index.js +34 -3
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +148 -116
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +24 -13
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +134 -6
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/MessageSearchResultItem.js +1 -0
- package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +1 -0
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +2 -2
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -1
- package/lib/commonjs/components/StatusComposition.js.map +1 -1
- package/lib/commonjs/constants.js +5 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +1 -0
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/InternalErrorBoundaryContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +72 -34
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/PlatformServiceCtx.js +16 -12
- package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/commonjs/contexts/ReactionCtx.js +3 -2
- package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +2 -0
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -4
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +28 -42
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +109 -5
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/userList/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +34 -7
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/commonjs/hooks/useChannelInputItems.js +211 -0
- package/lib/commonjs/hooks/useChannelInputItems.js.map +1 -0
- package/lib/commonjs/hooks/useConnection.js +1 -1
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useVoiceMessageInput.js +207 -0
- package/lib/commonjs/hooks/useVoiceMessageInput.js.map +1 -0
- package/lib/commonjs/index.js +36 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/MentionManager.js.map +1 -1
- package/lib/commonjs/libs/SBUUtils.js +4 -0
- package/lib/commonjs/libs/SBUUtils.js.map +1 -1
- package/lib/commonjs/libs/VoiceMessageConfig.js +30 -0
- package/lib/commonjs/libs/VoiceMessageConfig.js.map +1 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +24 -9
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/platform/createFileService.expo.js +10 -0
- package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
- package/lib/commonjs/platform/createFileService.native.js +19 -0
- package/lib/commonjs/platform/createFileService.native.js.map +1 -1
- package/lib/commonjs/platform/createPlayerService.expo.js +137 -0
- package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -0
- package/lib/commonjs/platform/createPlayerService.native.js +139 -0
- package/lib/commonjs/platform/createPlayerService.native.js.map +1 -0
- package/lib/commonjs/platform/createRecorderService.expo.js +158 -0
- package/lib/commonjs/platform/createRecorderService.expo.js.map +1 -0
- package/lib/commonjs/platform/createRecorderService.native.js +157 -0
- package/lib/commonjs/platform/createRecorderService.native.js.map +1 -0
- package/lib/commonjs/platform/types.js.map +1 -1
- package/lib/commonjs/types.js +7 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/promise.js +138 -0
- package/lib/commonjs/utils/promise.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/EditInput.js +3 -12
- package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/module/components/ChannelInput/MessageToReplyPreview.js +137 -0
- package/lib/module/components/ChannelInput/MessageToReplyPreview.js.map +1 -0
- package/lib/module/components/ChannelInput/SendInput.js +152 -326
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/VoiceMessageInput.js +228 -0
- package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -0
- package/lib/module/components/ChannelInput/index.js +36 -5
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +149 -117
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +24 -13
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/index.js +132 -7
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/MessageSearchResultItem.js +2 -1
- package/lib/module/components/MessageSearchResultItem.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/index.js +1 -0
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +2 -2
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/index.js.map +1 -1
- package/lib/module/components/StatusComposition.js.map +1 -1
- package/lib/module/constants.js +2 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +2 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/InternalErrorBoundaryContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +74 -36
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/PlatformServiceCtx.js +14 -11
- package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/module/contexts/ReactionCtx.js +3 -2
- package/lib/module/contexts/ReactionCtx.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +2 -0
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +15 -5
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +29 -43
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +111 -7
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/userList/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +36 -9
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/module/hooks/useChannelInputItems.js +203 -0
- package/lib/module/hooks/useChannelInputItems.js.map +1 -0
- package/lib/module/hooks/useConnection.js +1 -1
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useVoiceMessageInput.js +199 -0
- package/lib/module/hooks/useVoiceMessageInput.js.map +1 -0
- package/lib/module/index.js +8 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/MentionManager.js.map +1 -1
- package/lib/module/libs/SBUUtils.js +4 -0
- package/lib/module/libs/SBUUtils.js.map +1 -1
- package/lib/module/libs/VoiceMessageConfig.js +23 -0
- package/lib/module/libs/VoiceMessageConfig.js.map +1 -0
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +25 -10
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/platform/createFileService.expo.js +10 -0
- package/lib/module/platform/createFileService.expo.js.map +1 -1
- package/lib/module/platform/createFileService.native.js +19 -0
- package/lib/module/platform/createFileService.native.js.map +1 -1
- package/lib/module/platform/createPlayerService.expo.js +129 -0
- package/lib/module/platform/createPlayerService.expo.js.map +1 -0
- package/lib/module/platform/createPlayerService.native.js +132 -0
- package/lib/module/platform/createPlayerService.native.js.map +1 -0
- package/lib/module/platform/createRecorderService.expo.js +150 -0
- package/lib/module/platform/createRecorderService.expo.js.map +1 -0
- package/lib/module/platform/createRecorderService.native.js +149 -0
- package/lib/module/platform/createRecorderService.native.js.map +1 -0
- package/lib/module/platform/types.js.map +1 -1
- package/lib/module/types.js +5 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/promise.js +132 -0
- package/lib/module/utils/promise.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelCover.d.ts +2 -1
- package/lib/typescript/src/components/ChannelInput/AttachmentsButton.d.ts +2 -1
- package/lib/typescript/src/components/ChannelInput/MessageToReplyPreview.d.ts +7 -0
- package/lib/typescript/src/components/ChannelInput/VoiceMessageInput.d.ts +11 -0
- package/lib/typescript/src/components/ChannelInput/index.d.ts +9 -3
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +4 -1
- package/lib/typescript/src/components/FileViewer.d.ts +2 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +2 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.d.ts +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.d.ts +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +4 -2
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -0
- package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.d.ts +2 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +2 -0
- package/lib/typescript/src/components/ProviderLayout.d.ts +1 -1
- package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +2 -1
- package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +2 -1
- package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +3 -2
- package/lib/typescript/src/components/ReactionAddons/index.d.ts +3 -2
- package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +2 -1
- package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +2 -1
- package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +4 -4
- package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
- package/lib/typescript/src/components/StatusComposition.d.ts +4 -4
- package/lib/typescript/src/components/TypedPlaceholder.d.ts +2 -1
- package/lib/typescript/src/components/UserActionBar.d.ts +2 -1
- package/lib/typescript/src/components/UserSelectableBar.d.ts +2 -1
- package/lib/typescript/src/constants.d.ts +2 -0
- package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +2 -1
- package/lib/typescript/src/containers/InternalErrorBoundaryContainer.d.ts +3 -3
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +19 -8
- package/lib/typescript/src/contexts/LocalizationCtx.d.ts +1 -1
- package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +8 -8
- package/lib/typescript/src/contexts/ReactionCtx.d.ts +5 -2
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +6 -3
- package/lib/typescript/src/contexts/UserProfileCtx.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +48 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +2 -2
- package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationMenu.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsList.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsHeader.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsInfo.d.ts +2 -1
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsMenu.d.ts +2 -1
- package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +3 -3
- package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -1
- package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +2 -1
- package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +2 -1
- package/lib/typescript/src/domain/userList/types.d.ts +2 -2
- package/lib/typescript/src/hooks/useChannelInputItems.d.ts +10 -0
- package/lib/typescript/src/hooks/useVoiceMessageInput.d.ts +53 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/libs/MentionManager.d.ts +2 -1
- package/lib/typescript/src/libs/SBUUtils.d.ts +1 -0
- package/lib/typescript/src/libs/VoiceMessageConfig.d.ts +25 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +7 -0
- package/lib/typescript/src/platform/createPlayerService.expo.d.ts +7 -0
- package/lib/typescript/src/platform/createPlayerService.native.d.ts +9 -0
- package/lib/typescript/src/platform/createRecorderService.expo.d.ts +7 -0
- package/lib/typescript/src/platform/createRecorderService.native.d.ts +9 -0
- package/lib/typescript/src/platform/types.d.ts +100 -1
- package/lib/typescript/src/types.d.ts +5 -1
- package/lib/typescript/src/utils/promise.d.ts +7 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +10 -12
- package/src/components/ChannelInput/EditInput.tsx +3 -15
- package/src/components/ChannelInput/MessageToReplyPreview.tsx +133 -0
- package/src/components/ChannelInput/SendInput.tsx +131 -329
- package/src/components/ChannelInput/VoiceMessageInput.tsx +206 -0
- package/src/components/ChannelInput/index.tsx +37 -6
- package/src/components/ChannelMessageList/index.tsx +145 -113
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +24 -11
- package/src/components/GroupChannelMessageRenderer/index.tsx +113 -4
- package/src/components/MessageSearchResultItem.tsx +2 -1
- package/src/components/OpenChannelMessageRenderer/index.tsx +1 -0
- package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +2 -2
- package/src/components/ReactionBottomSheets/index.tsx +3 -2
- package/src/components/StatusComposition.tsx +3 -3
- package/src/constants.ts +2 -0
- package/src/containers/GroupChannelPreviewContainer.tsx +2 -0
- package/src/containers/InternalErrorBoundaryContainer.tsx +1 -1
- package/src/containers/SendbirdUIKitContainer.tsx +103 -59
- package/src/contexts/PlatformServiceCtx.tsx +22 -20
- package/src/contexts/ReactionCtx.tsx +7 -5
- package/src/contexts/SendbirdChatCtx.tsx +10 -2
- package/src/domain/groupChannel/component/GroupChannelHeader.tsx +14 -3
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +30 -43
- package/src/domain/groupChannel/module/moduleContext.tsx +119 -7
- package/src/domain/groupChannel/types.ts +45 -0
- package/src/domain/userList/types.ts +2 -2
- package/src/fragments/createGroupChannelFragment.tsx +43 -8
- package/src/fragments/createMessageSearchFragment.tsx +1 -1
- package/src/hooks/useChannelInputItems.ts +215 -0
- package/src/hooks/useConnection.ts +1 -1
- package/src/hooks/useVoiceMessageInput.ts +237 -0
- package/src/index.ts +9 -1
- package/src/libs/MentionManager.tsx +1 -1
- package/src/libs/SBUUtils.ts +5 -0
- package/src/libs/VoiceMessageConfig.ts +28 -0
- package/src/localization/StringSet.type.ts +8 -0
- package/src/localization/createBaseStringSet.ts +27 -11
- package/src/platform/createFileService.expo.ts +10 -0
- package/src/platform/createFileService.native.ts +19 -0
- package/src/platform/createPlayerService.expo.tsx +142 -0
- package/src/platform/createPlayerService.native.tsx +148 -0
- package/src/platform/createRecorderService.expo.tsx +160 -0
- package/src/platform/createRecorderService.native.tsx +170 -0
- package/src/platform/types.ts +114 -1
- package/src/types.ts +6 -1
- package/src/utils/promise.ts +139 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { useRef, useState } from 'react';
|
|
2
|
+
import { useAlert } from '@sendbird/uikit-react-native-foundation';
|
|
3
|
+
import { Logger, getVoiceMessageFileObject, matchesOneOf } from '@sendbird/uikit-utils';
|
|
4
|
+
import SBUUtils from '../libs/SBUUtils';
|
|
5
|
+
import { useLocalization, usePlatformService } from './useContext';
|
|
6
|
+
const useVoiceMessageInput = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
onSend,
|
|
9
|
+
onClose
|
|
10
|
+
} = _ref;
|
|
11
|
+
const {
|
|
12
|
+
alert
|
|
13
|
+
} = useAlert();
|
|
14
|
+
const {
|
|
15
|
+
STRINGS
|
|
16
|
+
} = useLocalization();
|
|
17
|
+
const {
|
|
18
|
+
recorderService,
|
|
19
|
+
playerService,
|
|
20
|
+
fileService
|
|
21
|
+
} = usePlatformService();
|
|
22
|
+
const [status, setStatus] = useState('idle');
|
|
23
|
+
const [recordingTime, setRecordingTime] = useState({
|
|
24
|
+
currentTime: 0,
|
|
25
|
+
minDuration: recorderService.options.minDuration,
|
|
26
|
+
maxDuration: recorderService.options.maxDuration
|
|
27
|
+
});
|
|
28
|
+
const [playingTime, setPlayingTime] = useState({
|
|
29
|
+
currentTime: 0,
|
|
30
|
+
duration: 0
|
|
31
|
+
});
|
|
32
|
+
const recordingPath = useRef();
|
|
33
|
+
const getVoiceMessageRecordingPath = () => {
|
|
34
|
+
if (!recordingPath.current) throw new Error('No recording path');
|
|
35
|
+
return recordingPath.current;
|
|
36
|
+
};
|
|
37
|
+
const setVoiceMessageRecordingPath = path => {
|
|
38
|
+
recordingPath.current = path;
|
|
39
|
+
};
|
|
40
|
+
const clear = async () => {
|
|
41
|
+
recordingPath.current = undefined;
|
|
42
|
+
await playerService.reset();
|
|
43
|
+
await recorderService.reset();
|
|
44
|
+
setRecordingTime({
|
|
45
|
+
currentTime: 0,
|
|
46
|
+
minDuration: recorderService.options.minDuration,
|
|
47
|
+
maxDuration: recorderService.options.maxDuration
|
|
48
|
+
});
|
|
49
|
+
setPlayingTime({
|
|
50
|
+
currentTime: 0,
|
|
51
|
+
duration: 0
|
|
52
|
+
});
|
|
53
|
+
setStatus('idle');
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
state: {
|
|
57
|
+
status,
|
|
58
|
+
recordingTime,
|
|
59
|
+
playingTime
|
|
60
|
+
},
|
|
61
|
+
actions: {
|
|
62
|
+
async cancel() {
|
|
63
|
+
await clear();
|
|
64
|
+
},
|
|
65
|
+
async startRecording() {
|
|
66
|
+
const granted = await recorderService.requestPermission();
|
|
67
|
+
if (!granted) {
|
|
68
|
+
await onClose();
|
|
69
|
+
alert({
|
|
70
|
+
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
71
|
+
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_MICROPHONE, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
72
|
+
buttons: [{
|
|
73
|
+
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
74
|
+
onPress: () => SBUUtils.openSettings()
|
|
75
|
+
}]
|
|
76
|
+
});
|
|
77
|
+
Logger.error('Failed to request permission for recorder');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (matchesOneOf(status, ['idle'])) {
|
|
81
|
+
// Before start recording, if player is not idle, reset it.
|
|
82
|
+
if (playerService.state !== 'idle') {
|
|
83
|
+
await playerService.reset();
|
|
84
|
+
}
|
|
85
|
+
const unsubscribeRecording = recorderService.addRecordingListener(_ref2 => {
|
|
86
|
+
let {
|
|
87
|
+
currentTime
|
|
88
|
+
} = _ref2;
|
|
89
|
+
setRecordingTime({
|
|
90
|
+
currentTime,
|
|
91
|
+
maxDuration: recorderService.options.maxDuration,
|
|
92
|
+
minDuration: recorderService.options.minDuration
|
|
93
|
+
});
|
|
94
|
+
setPlayingTime(prev => ({
|
|
95
|
+
...prev,
|
|
96
|
+
duration: currentTime
|
|
97
|
+
}));
|
|
98
|
+
});
|
|
99
|
+
const unsubscribeState = recorderService.addStateListener(state => {
|
|
100
|
+
switch (state) {
|
|
101
|
+
case 'recording':
|
|
102
|
+
setStatus('recording');
|
|
103
|
+
break;
|
|
104
|
+
case 'completed':
|
|
105
|
+
setStatus('recording_completed');
|
|
106
|
+
unsubscribeRecording();
|
|
107
|
+
unsubscribeState();
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
if (SBUUtils.isExpo()) {
|
|
112
|
+
await recorderService.record();
|
|
113
|
+
if (recorderService.uri) {
|
|
114
|
+
setVoiceMessageRecordingPath({
|
|
115
|
+
recordFilePath: recorderService.uri,
|
|
116
|
+
uri: recorderService.uri
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
} else {
|
|
120
|
+
setVoiceMessageRecordingPath(fileService.createRecordFilePath(recorderService.options.extension));
|
|
121
|
+
await recorderService.record(getVoiceMessageRecordingPath().recordFilePath);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
async stopRecording() {
|
|
126
|
+
if (matchesOneOf(status, ['recording'])) {
|
|
127
|
+
await recorderService.stop();
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
async playPlayer() {
|
|
131
|
+
const granted = await playerService.requestPermission();
|
|
132
|
+
if (!granted) {
|
|
133
|
+
alert({
|
|
134
|
+
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
135
|
+
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_DEVICE_STORAGE, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
136
|
+
buttons: [{
|
|
137
|
+
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
138
|
+
onPress: () => SBUUtils.openSettings()
|
|
139
|
+
}]
|
|
140
|
+
});
|
|
141
|
+
Logger.error('Failed to request permission for player');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (matchesOneOf(status, ['recording_completed', 'playing_paused'])) {
|
|
145
|
+
const unsubscribePlayback = playerService.addPlaybackListener(_ref3 => {
|
|
146
|
+
let {
|
|
147
|
+
currentTime,
|
|
148
|
+
duration
|
|
149
|
+
} = _ref3;
|
|
150
|
+
setPlayingTime({
|
|
151
|
+
currentTime,
|
|
152
|
+
duration
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
const unsubscribeState = playerService.addStateListener(state => {
|
|
156
|
+
switch (state) {
|
|
157
|
+
case 'playing':
|
|
158
|
+
setStatus('playing');
|
|
159
|
+
break;
|
|
160
|
+
case 'paused':
|
|
161
|
+
{
|
|
162
|
+
setStatus('playing_paused');
|
|
163
|
+
unsubscribeState();
|
|
164
|
+
unsubscribePlayback();
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'stopped':
|
|
168
|
+
{
|
|
169
|
+
setStatus('playing_paused');
|
|
170
|
+
unsubscribeState();
|
|
171
|
+
unsubscribePlayback();
|
|
172
|
+
setPlayingTime(prev => ({
|
|
173
|
+
...prev,
|
|
174
|
+
currentTime: 0
|
|
175
|
+
}));
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
await playerService.play(getVoiceMessageRecordingPath().recordFilePath);
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
async pausePlayer() {
|
|
184
|
+
if (matchesOneOf(status, ['playing'])) {
|
|
185
|
+
await playerService.pause();
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
async send() {
|
|
189
|
+
if (matchesOneOf(status, ['recording', 'recording_completed', 'playing', 'playing_paused']) && recordingPath.current) {
|
|
190
|
+
const voiceFile = getVoiceMessageFileObject(recordingPath.current.uri, recorderService.options.extension);
|
|
191
|
+
onSend(voiceFile, Math.floor(recordingTime.currentTime));
|
|
192
|
+
await clear();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
export default useVoiceMessageInput;
|
|
199
|
+
//# sourceMappingURL=useVoiceMessageInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useState","useAlert","Logger","getVoiceMessageFileObject","matchesOneOf","SBUUtils","useLocalization","usePlatformService","useVoiceMessageInput","_ref","onSend","onClose","alert","STRINGS","recorderService","playerService","fileService","status","setStatus","recordingTime","setRecordingTime","currentTime","minDuration","options","maxDuration","playingTime","setPlayingTime","duration","recordingPath","getVoiceMessageRecordingPath","current","Error","setVoiceMessageRecordingPath","path","clear","undefined","reset","state","actions","cancel","startRecording","granted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","message","ALERT_PERMISSIONS_MESSAGE","LABELS","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","text","ALERT_PERMISSIONS_OK","onPress","openSettings","error","unsubscribeRecording","addRecordingListener","_ref2","prev","unsubscribeState","addStateListener","isExpo","record","uri","recordFilePath","createRecordFilePath","extension","stopRecording","stop","playPlayer","PERMISSION_DEVICE_STORAGE","unsubscribePlayback","addPlaybackListener","_ref3","play","pausePlayer","pause","send","voiceFile","Math","floor"],"sources":["useVoiceMessageInput.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { useAlert } from '@sendbird/uikit-react-native-foundation';\nimport { Logger, getVoiceMessageFileObject, matchesOneOf } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport { FileType } from '../platform/types';\nimport { useLocalization, usePlatformService } from './useContext';\n\ntype State = {\n /**\n * Status\n *\n * idle:\n * - cancel(): idle\n * - startRecording(): recording\n * recording:\n * - cancel(): idle\n * - stopRecording(): recording_completed\n * - send(): recording_completed > idle\n * recording_completed:\n * - cancel(): idle\n * - playPlayer(): playing\n * - send(): idle\n * playing:\n * - cancel(): idle\n * - pausePlayer(): playing_paused\n * - send(): idle\n * playing_paused:\n * - cancel(): idle\n * - playPlayer(): playing\n * - send(): idle\n * */\n status: 'idle' | 'recording' | 'recording_completed' | 'playing' | 'playing_paused';\n recordingTime: {\n currentTime: number;\n minDuration: number;\n maxDuration: number;\n };\n playingTime: {\n currentTime: number;\n duration: number;\n };\n};\n\nexport interface VoiceMessageInputResult {\n actions: {\n cancel: () => Promise<void>;\n startRecording: () => Promise<void>;\n stopRecording: () => Promise<void>;\n playPlayer: () => Promise<void>;\n pausePlayer: () => Promise<void>;\n send: () => Promise<void>;\n };\n state: State;\n}\n\ntype Props = {\n onClose: () => Promise<void>;\n onSend: (voiceFile: FileType, duration: number) => void;\n};\n\nconst useVoiceMessageInput = ({ onSend, onClose }: Props): VoiceMessageInputResult => {\n const { alert } = useAlert();\n const { STRINGS } = useLocalization();\n const { recorderService, playerService, fileService } = usePlatformService();\n const [status, setStatus] = useState<State['status']>('idle');\n\n const [recordingTime, setRecordingTime] = useState({\n currentTime: 0,\n minDuration: recorderService.options.minDuration,\n maxDuration: recorderService.options.maxDuration,\n });\n const [playingTime, setPlayingTime] = useState({\n currentTime: 0,\n duration: 0,\n });\n\n const recordingPath = useRef<{ recordFilePath: string; uri: string }>();\n const getVoiceMessageRecordingPath = () => {\n if (!recordingPath.current) throw new Error('No recording path');\n return recordingPath.current;\n };\n const setVoiceMessageRecordingPath = (path: { recordFilePath: string; uri: string }) => {\n recordingPath.current = path;\n };\n\n const clear = async () => {\n recordingPath.current = undefined;\n await playerService.reset();\n await recorderService.reset();\n setRecordingTime({\n currentTime: 0,\n minDuration: recorderService.options.minDuration,\n maxDuration: recorderService.options.maxDuration,\n });\n setPlayingTime({\n currentTime: 0,\n duration: 0,\n });\n setStatus('idle');\n };\n\n return {\n state: {\n status,\n recordingTime,\n playingTime,\n },\n actions: {\n async cancel() {\n await clear();\n },\n async startRecording() {\n const granted = await recorderService.requestPermission();\n if (!granted) {\n await onClose();\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n if (matchesOneOf(status, ['idle'])) {\n // Before start recording, if player is not idle, reset it.\n if (playerService.state !== 'idle') {\n await playerService.reset();\n }\n\n const unsubscribeRecording = recorderService.addRecordingListener(({ currentTime }) => {\n setRecordingTime({\n currentTime,\n maxDuration: recorderService.options.maxDuration,\n minDuration: recorderService.options.minDuration,\n });\n setPlayingTime((prev) => ({ ...prev, duration: currentTime }));\n });\n\n const unsubscribeState = recorderService.addStateListener((state) => {\n switch (state) {\n case 'recording':\n setStatus('recording');\n break;\n case 'completed':\n setStatus('recording_completed');\n unsubscribeRecording();\n unsubscribeState();\n break;\n }\n });\n\n if (SBUUtils.isExpo()) {\n await recorderService.record();\n if (recorderService.uri) {\n setVoiceMessageRecordingPath({ recordFilePath: recorderService.uri, uri: recorderService.uri });\n }\n } else {\n setVoiceMessageRecordingPath(fileService.createRecordFilePath(recorderService.options.extension));\n await recorderService.record(getVoiceMessageRecordingPath().recordFilePath);\n }\n }\n },\n async stopRecording() {\n if (matchesOneOf(status, ['recording'])) {\n await recorderService.stop();\n }\n },\n async playPlayer() {\n const granted = await playerService.requestPermission();\n if (!granted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n if (matchesOneOf(status, ['recording_completed', 'playing_paused'])) {\n const unsubscribePlayback = playerService.addPlaybackListener(({ currentTime, duration }) => {\n setPlayingTime({ currentTime, duration });\n });\n\n const unsubscribeState = playerService.addStateListener((state) => {\n switch (state) {\n case 'playing':\n setStatus('playing');\n break;\n case 'paused': {\n setStatus('playing_paused');\n unsubscribeState();\n unsubscribePlayback();\n break;\n }\n case 'stopped': {\n setStatus('playing_paused');\n unsubscribeState();\n unsubscribePlayback();\n setPlayingTime((prev) => ({ ...prev, currentTime: 0 }));\n break;\n }\n }\n });\n\n await playerService.play(getVoiceMessageRecordingPath().recordFilePath);\n }\n },\n async pausePlayer() {\n if (matchesOneOf(status, ['playing'])) {\n await playerService.pause();\n }\n },\n async send() {\n if (\n matchesOneOf(status, ['recording', 'recording_completed', 'playing', 'playing_paused']) &&\n recordingPath.current\n ) {\n const voiceFile = getVoiceMessageFileObject(recordingPath.current.uri, recorderService.options.extension);\n onSend(voiceFile, Math.floor(recordingTime.currentTime));\n await clear();\n }\n },\n },\n };\n};\n\nexport default useVoiceMessageInput;\n"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
2
|
import { Logger } from '@sendbird/uikit-utils';
|
|
3
|
+
import { PromisePolyfill } from './utils/promise';
|
|
3
4
|
|
|
4
5
|
/** Components **/
|
|
5
6
|
export { default as ChannelInput } from './components/ChannelInput';
|
|
@@ -68,10 +69,14 @@ export { default as createNativeFileService } from './platform/createFileService
|
|
|
68
69
|
export { default as createNativeClipboardService } from './platform/createClipboardService.native';
|
|
69
70
|
export { default as createNativeNotificationService } from './platform/createNotificationService.native';
|
|
70
71
|
export { default as createNativeMediaService } from './platform/createMediaService.native';
|
|
72
|
+
export { default as createNativePlayerService } from './platform/createPlayerService.native';
|
|
73
|
+
export { default as createNativeRecorderService } from './platform/createRecorderService.native';
|
|
71
74
|
export { default as createExpoFileService } from './platform/createFileService.expo';
|
|
72
75
|
export { default as createExpoClipboardService } from './platform/createClipboardService.expo';
|
|
73
76
|
export { default as createExpoNotificationService } from './platform/createNotificationService.expo';
|
|
74
77
|
export { default as createExpoMediaService } from './platform/createMediaService.expo';
|
|
78
|
+
export { default as createExpoPlayerService } from './platform/createPlayerService.expo';
|
|
79
|
+
export { default as createExpoRecorderService } from './platform/createRecorderService.expo';
|
|
75
80
|
export * from './platform/types';
|
|
76
81
|
|
|
77
82
|
/** Feature - shared **/
|
|
@@ -116,4 +121,7 @@ export { default as SBUUtils } from './libs/SBUUtils';
|
|
|
116
121
|
export * from './types';
|
|
117
122
|
Logger.setLogLevel(__DEV__ ? 'warn' : 'none');
|
|
118
123
|
Logger.setTitle(`[UIKIT_${Platform.OS}]`);
|
|
124
|
+
|
|
125
|
+
// NOTE: In Hermes, not all implementations of Promise are included
|
|
126
|
+
PromisePolyfill.apply();
|
|
119
127
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Logger","default","ChannelInput","ChannelMessageList","GroupChannelMessageRenderer","OpenChannelMessageRenderer","ReactionAddons","ReactionBottomSheets","ChannelCover","ChatFlatList","FileViewer","MessageSearchResultItem","NewMessagesButton","ProviderLayout","ScrollToBottomButton","StatusComposition","TypedPlaceholder","UserActionBar","UserSelectableBar","createGroupChannelCreateFragment","createGroupChannelFragment","createGroupChannelSettingsFragment","createGroupChannelInviteFragment","createGroupChannelListFragment","createGroupChannelMembersFragment","createGroupChannelModerationFragment","createGroupChannelOperatorsFragment","createGroupChannelRegisterOperatorFragment","createGroupChannelMutedMembersFragment","createGroupChannelBannedUsersFragment","createGroupChannelNotificationsFragment","createMessageSearchFragment","createOpenChannelFragment","createOpenChannelParticipantsFragment","createOpenChannelSettingsFragment","createOpenChannelListFragment","createOpenChannelCreateFragment","createOpenChannelModerationFragment","createOpenChannelBannedUsersFragment","createOpenChannelMutedParticipantsFragment","createOpenChannelOperatorsFragment","createOpenChannelRegisterOperatorFragment","SendbirdChatContext","SendbirdChatProvider","PlatformServiceContext","PlatformServiceProvider","UserProfileContext","UserProfileProvider","LocalizationContext","LocalizationProvider","useConnection","usePushTokenRegistration","createBaseStringSet","StringSetEn","createNativeFileService","createNativeClipboardService","createNativeNotificationService","createNativeMediaService","createExpoFileService","createExpoClipboardService","createExpoNotificationService","createExpoMediaService","SendbirdUIKitContainer","SendbirdUIKit","SBUError","SBUUtils","setLogLevel","__DEV__","setTitle","OS"],"sources":["index.ts"],"sourcesContent":["import { Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\n/** Components **/\nexport { default as ChannelInput } from './components/ChannelInput';\nexport { default as ChannelMessageList } from './components/ChannelMessageList';\nexport { default as GroupChannelMessageRenderer } from './components/GroupChannelMessageRenderer';\nexport { default as OpenChannelMessageRenderer } from './components/OpenChannelMessageRenderer';\nexport { ReactionAddons } from './components/ReactionAddons';\nexport { ReactionBottomSheets } from './components/ReactionBottomSheets';\nexport { default as ChannelCover } from './components/ChannelCover';\nexport { default as ChatFlatList } from './components/ChatFlatList';\nexport { default as FileViewer } from './components/FileViewer';\nexport { default as MessageSearchResultItem } from './components/MessageSearchResultItem';\nexport { default as NewMessagesButton } from './components/NewMessagesButton';\nexport { default as ProviderLayout } from './components/ProviderLayout';\nexport { default as ScrollToBottomButton } from './components/ScrollToBottomButton';\nexport { default as StatusComposition } from './components/StatusComposition';\nexport { default as TypedPlaceholder } from './components/TypedPlaceholder';\nexport { default as UserActionBar } from './components/UserActionBar';\nexport { default as UserSelectableBar } from './components/UserSelectableBar';\n\n/** Fragments - group channels **/\nexport { default as createGroupChannelCreateFragment } from './fragments/createGroupChannelCreateFragment';\nexport { default as createGroupChannelFragment } from './fragments/createGroupChannelFragment';\nexport { default as createGroupChannelSettingsFragment } from './fragments/createGroupChannelSettingsFragment';\nexport { default as createGroupChannelInviteFragment } from './fragments/createGroupChannelInviteFragment';\nexport { default as createGroupChannelListFragment } from './fragments/createGroupChannelListFragment';\nexport { default as createGroupChannelMembersFragment } from './fragments/createGroupChannelMembersFragment';\nexport { default as createGroupChannelModerationFragment } from './fragments/createGroupChannelModerationFragment';\nexport { default as createGroupChannelOperatorsFragment } from './fragments/createGroupChannelOperatorsFragment';\nexport { default as createGroupChannelRegisterOperatorFragment } from './fragments/createGroupChannelRegisterOperatorFragment';\nexport { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';\nexport { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';\nexport { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';\nexport { default as createMessageSearchFragment } from './fragments/createMessageSearchFragment';\n\n/** Fragments - open channels **/\nexport { default as createOpenChannelFragment } from './fragments/createOpenChannelFragment';\nexport { default as createOpenChannelParticipantsFragment } from './fragments/createOpenChannelParticipantsFragment';\nexport { default as createOpenChannelSettingsFragment } from './fragments/createOpenChannelSettingsFragment';\nexport { default as createOpenChannelListFragment } from './fragments/createOpenChannelListFragment';\nexport { default as createOpenChannelCreateFragment } from './fragments/createOpenChannelCreateFragment';\nexport { default as createOpenChannelModerationFragment } from './fragments/createOpenChannelModerationFragment';\nexport { default as createOpenChannelBannedUsersFragment } from './fragments/createOpenChannelBannedUsersFragment';\nexport { default as createOpenChannelMutedParticipantsFragment } from './fragments/createOpenChannelMutedParticipantsFragment';\nexport { default as createOpenChannelOperatorsFragment } from './fragments/createOpenChannelOperatorsFragment';\nexport { default as createOpenChannelRegisterOperatorFragment } from './fragments/createOpenChannelRegisterOperatorFragment';\n\n/** Context **/\nexport { SendbirdChatContext, SendbirdChatProvider } from './contexts/SendbirdChatCtx';\nexport { PlatformServiceContext, PlatformServiceProvider } from './contexts/PlatformServiceCtx';\nexport { UserProfileContext, UserProfileProvider } from './contexts/UserProfileCtx';\nexport { LocalizationContext, LocalizationProvider } from './contexts/LocalizationCtx';\n\n/** Hooks **/\nexport { default as useConnection } from './hooks/useConnection';\nexport { default as usePushTokenRegistration } from './hooks/usePushTokenRegistration';\nexport * from './hooks/useContext';\n\n/** Localization **/\nexport { createBaseStringSet } from './localization/createBaseStringSet';\nexport { default as StringSetEn } from './localization/StringSet.en';\nexport * from './localization/StringSet.type';\n\n/** Platform API **/\nexport { default as createNativeFileService } from './platform/createFileService.native';\nexport { default as createNativeClipboardService } from './platform/createClipboardService.native';\nexport { default as createNativeNotificationService } from './platform/createNotificationService.native';\nexport { default as createNativeMediaService } from './platform/createMediaService.native';\nexport { default as createExpoFileService } from './platform/createFileService.expo';\nexport { default as createExpoClipboardService } from './platform/createClipboardService.expo';\nexport { default as createExpoNotificationService } from './platform/createNotificationService.expo';\nexport { default as createExpoMediaService } from './platform/createMediaService.expo';\nexport * from './platform/types';\n\n/** Feature - shared **/\nexport * from './domain/userList';\nexport * from './domain/userList/types';\n\n/** Feature - group channels **/\nexport * from './domain/groupChannel';\nexport * from './domain/groupChannel/types';\n\nexport * from './domain/groupChannelSettings';\nexport * from './domain/groupChannelSettings/types';\n\nexport * from './domain/groupChannelList';\nexport * from './domain/groupChannelList/types';\n\nexport * from './domain/groupChannelNotifications';\nexport * from './domain/groupChannelNotifications/types';\n\nexport * from './domain/groupChannelUserList/types';\n\nexport * from './domain/messageSearch/types';\n\n/** Feature - open channels **/\nexport * from './domain/openChannel';\nexport * from './domain/openChannel/types';\n\nexport * from './domain/openChannelSettings';\nexport * from './domain/openChannelSettings/types';\n\nexport * from './domain/openChannelList';\nexport * from './domain/openChannelList/types';\n\nexport * from './domain/openChannelCreate';\nexport * from './domain/openChannelCreate/types';\n\nexport * from './domain/openChannelModeration';\nexport * from './domain/openChannelModeration/types';\n\nexport * from './domain/openChannelBannedUsers';\nexport * from './domain/openChannelBannedUsers/types';\n\nexport * from './domain/openChannelMutedParticipants';\nexport * from './domain/openChannelMutedParticipants/types';\n\nexport * from './domain/openChannelOperators';\nexport * from './domain/openChannelOperators/types';\n\nexport * from './domain/openChannelUserList/types';\n\n/** UIKit **/\nexport { default as SendbirdUIKitContainer, SendbirdUIKit } from './containers/SendbirdUIKitContainer';\nexport type { SendbirdUIKitContainerProps } from './containers/SendbirdUIKitContainer';\nexport { default as SBUError } from './libs/SBUError';\nexport { default as SBUUtils } from './libs/SBUUtils';\n\nexport * from './types';\n\nLogger.setLogLevel(__DEV__ ? 'warn' : 'none');\nLogger.setTitle(`[UIKIT_${Platform.OS}]`);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","Logger","PromisePolyfill","default","ChannelInput","ChannelMessageList","GroupChannelMessageRenderer","OpenChannelMessageRenderer","ReactionAddons","ReactionBottomSheets","ChannelCover","ChatFlatList","FileViewer","MessageSearchResultItem","NewMessagesButton","ProviderLayout","ScrollToBottomButton","StatusComposition","TypedPlaceholder","UserActionBar","UserSelectableBar","createGroupChannelCreateFragment","createGroupChannelFragment","createGroupChannelSettingsFragment","createGroupChannelInviteFragment","createGroupChannelListFragment","createGroupChannelMembersFragment","createGroupChannelModerationFragment","createGroupChannelOperatorsFragment","createGroupChannelRegisterOperatorFragment","createGroupChannelMutedMembersFragment","createGroupChannelBannedUsersFragment","createGroupChannelNotificationsFragment","createMessageSearchFragment","createOpenChannelFragment","createOpenChannelParticipantsFragment","createOpenChannelSettingsFragment","createOpenChannelListFragment","createOpenChannelCreateFragment","createOpenChannelModerationFragment","createOpenChannelBannedUsersFragment","createOpenChannelMutedParticipantsFragment","createOpenChannelOperatorsFragment","createOpenChannelRegisterOperatorFragment","SendbirdChatContext","SendbirdChatProvider","PlatformServiceContext","PlatformServiceProvider","UserProfileContext","UserProfileProvider","LocalizationContext","LocalizationProvider","useConnection","usePushTokenRegistration","createBaseStringSet","StringSetEn","createNativeFileService","createNativeClipboardService","createNativeNotificationService","createNativeMediaService","createNativePlayerService","createNativeRecorderService","createExpoFileService","createExpoClipboardService","createExpoNotificationService","createExpoMediaService","createExpoPlayerService","createExpoRecorderService","SendbirdUIKitContainer","SendbirdUIKit","SBUError","SBUUtils","setLogLevel","__DEV__","setTitle","OS","apply"],"sources":["index.ts"],"sourcesContent":["import { Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nimport { PromisePolyfill } from './utils/promise';\n\n/** Components **/\nexport { default as ChannelInput } from './components/ChannelInput';\nexport { default as ChannelMessageList } from './components/ChannelMessageList';\nexport { default as GroupChannelMessageRenderer } from './components/GroupChannelMessageRenderer';\nexport { default as OpenChannelMessageRenderer } from './components/OpenChannelMessageRenderer';\nexport { ReactionAddons } from './components/ReactionAddons';\nexport { ReactionBottomSheets } from './components/ReactionBottomSheets';\nexport { default as ChannelCover } from './components/ChannelCover';\nexport { default as ChatFlatList } from './components/ChatFlatList';\nexport { default as FileViewer } from './components/FileViewer';\nexport { default as MessageSearchResultItem } from './components/MessageSearchResultItem';\nexport { default as NewMessagesButton } from './components/NewMessagesButton';\nexport { default as ProviderLayout } from './components/ProviderLayout';\nexport { default as ScrollToBottomButton } from './components/ScrollToBottomButton';\nexport { default as StatusComposition } from './components/StatusComposition';\nexport { default as TypedPlaceholder } from './components/TypedPlaceholder';\nexport { default as UserActionBar } from './components/UserActionBar';\nexport { default as UserSelectableBar } from './components/UserSelectableBar';\n\n/** Fragments - group channels **/\nexport { default as createGroupChannelCreateFragment } from './fragments/createGroupChannelCreateFragment';\nexport { default as createGroupChannelFragment } from './fragments/createGroupChannelFragment';\nexport { default as createGroupChannelSettingsFragment } from './fragments/createGroupChannelSettingsFragment';\nexport { default as createGroupChannelInviteFragment } from './fragments/createGroupChannelInviteFragment';\nexport { default as createGroupChannelListFragment } from './fragments/createGroupChannelListFragment';\nexport { default as createGroupChannelMembersFragment } from './fragments/createGroupChannelMembersFragment';\nexport { default as createGroupChannelModerationFragment } from './fragments/createGroupChannelModerationFragment';\nexport { default as createGroupChannelOperatorsFragment } from './fragments/createGroupChannelOperatorsFragment';\nexport { default as createGroupChannelRegisterOperatorFragment } from './fragments/createGroupChannelRegisterOperatorFragment';\nexport { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';\nexport { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';\nexport { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';\nexport { default as createMessageSearchFragment } from './fragments/createMessageSearchFragment';\n\n/** Fragments - open channels **/\nexport { default as createOpenChannelFragment } from './fragments/createOpenChannelFragment';\nexport { default as createOpenChannelParticipantsFragment } from './fragments/createOpenChannelParticipantsFragment';\nexport { default as createOpenChannelSettingsFragment } from './fragments/createOpenChannelSettingsFragment';\nexport { default as createOpenChannelListFragment } from './fragments/createOpenChannelListFragment';\nexport { default as createOpenChannelCreateFragment } from './fragments/createOpenChannelCreateFragment';\nexport { default as createOpenChannelModerationFragment } from './fragments/createOpenChannelModerationFragment';\nexport { default as createOpenChannelBannedUsersFragment } from './fragments/createOpenChannelBannedUsersFragment';\nexport { default as createOpenChannelMutedParticipantsFragment } from './fragments/createOpenChannelMutedParticipantsFragment';\nexport { default as createOpenChannelOperatorsFragment } from './fragments/createOpenChannelOperatorsFragment';\nexport { default as createOpenChannelRegisterOperatorFragment } from './fragments/createOpenChannelRegisterOperatorFragment';\n\n/** Context **/\nexport { SendbirdChatContext, SendbirdChatProvider } from './contexts/SendbirdChatCtx';\nexport { PlatformServiceContext, PlatformServiceProvider } from './contexts/PlatformServiceCtx';\nexport { UserProfileContext, UserProfileProvider } from './contexts/UserProfileCtx';\nexport { LocalizationContext, LocalizationProvider } from './contexts/LocalizationCtx';\n\n/** Hooks **/\nexport { default as useConnection } from './hooks/useConnection';\nexport { default as usePushTokenRegistration } from './hooks/usePushTokenRegistration';\nexport * from './hooks/useContext';\n\n/** Localization **/\nexport { createBaseStringSet } from './localization/createBaseStringSet';\nexport { default as StringSetEn } from './localization/StringSet.en';\nexport * from './localization/StringSet.type';\n\n/** Platform API **/\nexport { default as createNativeFileService } from './platform/createFileService.native';\nexport { default as createNativeClipboardService } from './platform/createClipboardService.native';\nexport { default as createNativeNotificationService } from './platform/createNotificationService.native';\nexport { default as createNativeMediaService } from './platform/createMediaService.native';\nexport { default as createNativePlayerService } from './platform/createPlayerService.native';\nexport { default as createNativeRecorderService } from './platform/createRecorderService.native';\nexport { default as createExpoFileService } from './platform/createFileService.expo';\nexport { default as createExpoClipboardService } from './platform/createClipboardService.expo';\nexport { default as createExpoNotificationService } from './platform/createNotificationService.expo';\nexport { default as createExpoMediaService } from './platform/createMediaService.expo';\nexport { default as createExpoPlayerService } from './platform/createPlayerService.expo';\nexport { default as createExpoRecorderService } from './platform/createRecorderService.expo';\nexport * from './platform/types';\n\n/** Feature - shared **/\nexport * from './domain/userList';\nexport * from './domain/userList/types';\n\n/** Feature - group channels **/\nexport * from './domain/groupChannel';\nexport * from './domain/groupChannel/types';\n\nexport * from './domain/groupChannelSettings';\nexport * from './domain/groupChannelSettings/types';\n\nexport * from './domain/groupChannelList';\nexport * from './domain/groupChannelList/types';\n\nexport * from './domain/groupChannelNotifications';\nexport * from './domain/groupChannelNotifications/types';\n\nexport * from './domain/groupChannelUserList/types';\n\nexport * from './domain/messageSearch/types';\n\n/** Feature - open channels **/\nexport * from './domain/openChannel';\nexport * from './domain/openChannel/types';\n\nexport * from './domain/openChannelSettings';\nexport * from './domain/openChannelSettings/types';\n\nexport * from './domain/openChannelList';\nexport * from './domain/openChannelList/types';\n\nexport * from './domain/openChannelCreate';\nexport * from './domain/openChannelCreate/types';\n\nexport * from './domain/openChannelModeration';\nexport * from './domain/openChannelModeration/types';\n\nexport * from './domain/openChannelBannedUsers';\nexport * from './domain/openChannelBannedUsers/types';\n\nexport * from './domain/openChannelMutedParticipants';\nexport * from './domain/openChannelMutedParticipants/types';\n\nexport * from './domain/openChannelOperators';\nexport * from './domain/openChannelOperators/types';\n\nexport * from './domain/openChannelUserList/types';\n\n/** UIKit **/\nexport { default as SendbirdUIKitContainer, SendbirdUIKit } from './containers/SendbirdUIKitContainer';\nexport type { SendbirdUIKitContainerProps } from './containers/SendbirdUIKitContainer';\nexport { default as SBUError } from './libs/SBUError';\nexport { default as SBUUtils } from './libs/SBUUtils';\nexport * from './types';\n\nLogger.setLogLevel(__DEV__ ? 'warn' : 'none');\nLogger.setTitle(`[UIKIT_${Platform.OS}]`);\n\n// NOTE: In Hermes, not all implementations of Promise are included\nPromisePolyfill.apply();\n"],"mappings":"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"}
|
|
@@ -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":""}
|