@sendbird/uikit-react-native 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ChatFlatList.js +2 -1
- package/lib/commonjs/components/ChatFlatList.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +25 -10
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -10
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +99 -14
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/index.js +22 -3
- package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +150 -0
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +135 -0
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
- package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +87 -0
- package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
- package/lib/commonjs/components/ReactionAddons/index.js +19 -0
- package/lib/commonjs/components/ReactionAddons/index.js.map +1 -0
- package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +150 -0
- package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +276 -0
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
- package/lib/commonjs/components/ReactionBottomSheets/index.js +19 -0
- package/lib/commonjs/components/ReactionBottomSheets/index.js.map +1 -0
- package/lib/commonjs/constants.js +3 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +4 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +118 -78
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/ReactionCtx.js +107 -0
- package/lib/commonjs/contexts/ReactionCtx.js.map +1 -0
- package/lib/commonjs/contexts/SendbirdChatCtx.js +18 -6
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/contexts/UserProfileCtx.js +9 -0
- package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +33 -37
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +28 -11
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +120 -31
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +31 -12
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +210 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/index.js +8 -0
- package/lib/commonjs/domain/groupChannel/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +4 -0
- package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +4 -4
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +3 -2
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +2 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +2 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +39 -0
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +140 -0
- package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
- package/lib/commonjs/domain/groupChannelNotifications/index.js +46 -0
- package/lib/commonjs/domain/groupChannelNotifications/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +33 -0
- package/lib/commonjs/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelNotifications/types.js +6 -0
- package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +2 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +49 -6
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +9 -14
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListList.js +4 -1
- package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
- package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +11 -4
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js +34 -0
- package/lib/commonjs/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +3 -1
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/commonjs/hooks/useConnection.js +3 -0
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useContext.js +11 -1
- package/lib/commonjs/hooks/useContext.js.map +1 -1
- package/lib/commonjs/hooks/useKeyboardStatus.js +93 -0
- package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -0
- package/lib/commonjs/hooks/useMentionSuggestion.js +110 -0
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -0
- package/lib/commonjs/hooks/useMentionTextInput.js +139 -0
- package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -0
- package/lib/commonjs/index.js +95 -40
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/EmojiManager.js +100 -0
- package/lib/commonjs/libs/EmojiManager.js.map +1 -0
- package/lib/commonjs/libs/MentionConfig.js +47 -0
- package/lib/commonjs/libs/MentionConfig.js.map +1 -0
- package/lib/commonjs/libs/MentionManager.js +235 -0
- package/lib/commonjs/libs/MentionManager.js.map +1 -0
- package/lib/commonjs/localization/StringSet.type.js +17 -5
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/common.js +19 -0
- package/lib/commonjs/utils/common.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChatFlatList.js +3 -2
- package/lib/module/components/ChatFlatList.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +11 -6
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +12 -2
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +25 -10
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +86 -12
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +101 -17
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -1
- package/lib/module/components/MessageRenderer/index.js +21 -4
- package/lib/module/components/MessageRenderer/index.js.map +1 -1
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +132 -0
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -0
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js +118 -0
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -0
- package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +74 -0
- package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -0
- package/lib/module/components/ReactionAddons/index.js +7 -0
- package/lib/module/components/ReactionAddons/index.js.map +1 -0
- package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +135 -0
- package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -0
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +259 -0
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -0
- package/lib/module/components/ReactionBottomSheets/index.js +7 -0
- package/lib/module/components/ReactionBottomSheets/index.js.map +1 -0
- package/lib/module/constants.js +1 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +4 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +116 -80
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/ReactionCtx.js +85 -0
- package/lib/module/contexts/ReactionCtx.js.map +1 -0
- package/lib/module/contexts/SendbirdChatCtx.js +18 -6
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/contexts/UserProfileCtx.js +7 -0
- package/lib/module/contexts/UserProfileCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +34 -39
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +24 -13
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +117 -33
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +32 -14
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +188 -0
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -0
- package/lib/module/domain/groupChannel/index.js +1 -0
- package/lib/module/domain/groupChannel/index.js.map +1 -1
- package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +3 -0
- package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +4 -4
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +4 -3
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +3 -2
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +3 -2
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +25 -0
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -0
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +122 -0
- package/lib/module/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -0
- package/lib/module/domain/groupChannelNotifications/index.js +5 -0
- package/lib/module/domain/groupChannelNotifications/index.js.map +1 -0
- package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js +21 -0
- package/lib/module/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.js.map +1 -0
- package/lib/module/domain/groupChannelNotifications/module/moduleContext.js +25 -0
- package/lib/module/domain/groupChannelNotifications/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelNotifications/types.js +2 -0
- package/lib/module/domain/groupChannelNotifications/types.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +3 -2
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +46 -6
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js +10 -15
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/module/domain/userList/component/UserListList.js +3 -1
- package/lib/module/domain/userList/component/UserListList.js.map +1 -1
- package/lib/module/domain/userList/module/createUserListModule.js.map +1 -1
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +11 -4
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelNotificationsFragment.js +22 -0
- package/lib/module/fragments/createGroupChannelNotificationsFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelSettingsFragment.js +3 -1
- package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/module/hooks/useConnection.js +3 -0
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useContext.js +6 -0
- package/lib/module/hooks/useContext.js.map +1 -1
- package/lib/module/hooks/useKeyboardStatus.js +75 -0
- package/lib/module/hooks/useKeyboardStatus.js.map +1 -0
- package/lib/module/hooks/useMentionSuggestion.js +100 -0
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -0
- package/lib/module/hooks/useMentionTextInput.js +128 -0
- package/lib/module/hooks/useMentionTextInput.js.map +1 -0
- package/lib/module/index.js +8 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/EmojiManager.js +90 -0
- package/lib/module/libs/EmojiManager.js.map +1 -0
- package/lib/module/libs/MentionConfig.js +39 -0
- package/lib/module/libs/MentionConfig.js.map +1 -0
- package/lib/module/libs/MentionManager.js +223 -0
- package/lib/module/libs/MentionManager.js.map +1 -0
- package/lib/module/localization/StringSet.type.js +18 -6
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/common.js +7 -0
- package/lib/module/utils/common.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/__template__/types.d.ts +3 -3
- package/lib/typescript/src/components/ChannelCover.d.ts +1 -1
- package/lib/typescript/src/components/ChatFlatList.d.ts +1 -1
- package/lib/typescript/src/components/FileViewer.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +2 -2
- package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +11 -2
- package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +1 -1
- package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +2 -2
- package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +4 -1
- package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -3
- package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
- package/lib/typescript/src/components/ReactionAddons/BottomSheetReactionAddon.d.ts +8 -0
- package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +6 -0
- package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +14 -0
- package/lib/typescript/src/components/ReactionAddons/index.d.ts +11 -0
- package/lib/typescript/src/components/ReactionBottomSheets/ReactionListBottomSheet.d.ts +3 -0
- package/lib/typescript/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.d.ts +3 -0
- package/lib/typescript/src/components/ReactionBottomSheets/index.d.ts +20 -0
- package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
- package/lib/typescript/src/components/StatusComposition.d.ts +1 -1
- package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
- package/lib/typescript/src/components/UserActionBar.d.ts +1 -1
- package/lib/typescript/src/components/UserSelectableBar.d.ts +1 -1
- package/lib/typescript/src/constants.d.ts +1 -0
- package/lib/typescript/src/containers/GroupChannelPreviewContainer.d.ts +1 -1
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +12 -3
- package/lib/typescript/src/contexts/LocalizationCtx.d.ts +2 -2
- package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +1 -1
- package/lib/typescript/src/contexts/ReactionCtx.d.ts +18 -0
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +10 -2
- package/lib/typescript/src/contexts/UserProfileCtx.d.ts +4 -4
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +35 -7
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +32 -5
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +19 -2
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannel/index.d.ts +1 -0
- package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +24 -7
- package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +3 -3
- package/lib/typescript/src/domain/groupChannelList/types.d.ts +2 -2
- package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +3 -3
- package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +3 -3
- package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelNotifications/index.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelNotifications/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelNotifications/types.d.ts +33 -0
- package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +3 -3
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +3 -1
- package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +6 -6
- package/lib/typescript/src/domain/userList/component/UserListList.d.ts +2 -1
- package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +2 -1
- package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +1 -1
- package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +1 -1
- package/lib/typescript/src/fragments/createGroupChannelNotificationsFragment.d.ts +3 -0
- package/lib/typescript/src/hooks/useConnection.d.ts +1 -1
- package/lib/typescript/src/hooks/useContext.d.ts +4 -0
- package/lib/typescript/src/hooks/useKeyboardStatus.d.ts +6 -0
- package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +17 -0
- package/lib/typescript/src/hooks/useMentionTextInput.d.ts +18 -0
- package/lib/typescript/src/index.d.ts +7 -2
- package/lib/typescript/src/libs/EmojiManager.d.ts +16 -0
- package/lib/typescript/src/libs/MentionConfig.d.ts +24 -0
- package/lib/typescript/src/libs/MentionManager.d.ts +61 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +16 -2
- package/lib/typescript/src/platform/createMediaService.expo.d.ts +1 -1
- package/lib/typescript/src/platform/createMediaService.native.d.ts +1 -1
- package/lib/typescript/src/platform/dynamicModule.d.ts +1 -1
- package/lib/typescript/src/platform/types.d.ts +5 -5
- package/lib/typescript/src/types.d.ts +13 -4
- package/lib/typescript/src/utils/common.d.ts +1 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/ChatFlatList.tsx +2 -1
- package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +17 -12
- package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +25 -18
- package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +20 -10
- package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +82 -14
- package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +135 -61
- package/src/components/MessageRenderer/UserMessage/index.tsx +8 -1
- package/src/components/MessageRenderer/index.tsx +39 -7
- package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +106 -0
- package/src/components/ReactionAddons/MessageReactionAddon.tsx +123 -0
- package/src/components/ReactionAddons/ReactionRoundedButton.tsx +71 -0
- package/src/components/ReactionAddons/index.tsx +7 -0
- package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +113 -0
- package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +249 -0
- package/src/components/ReactionBottomSheets/index.tsx +24 -0
- package/src/constants.ts +2 -0
- package/src/containers/GroupChannelPreviewContainer.tsx +3 -1
- package/src/containers/SendbirdUIKitContainer.tsx +141 -83
- package/src/contexts/ReactionCtx.tsx +102 -0
- package/src/contexts/SendbirdChatCtx.tsx +24 -2
- package/src/contexts/UserProfileCtx.tsx +9 -0
- package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +56 -30
- package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +48 -19
- package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +137 -43
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +27 -10
- package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +173 -0
- package/src/domain/groupChannel/index.ts +1 -0
- package/src/domain/groupChannel/module/createGroupChannelModule.tsx +12 -1
- package/src/domain/groupChannel/module/moduleContext.tsx +4 -4
- package/src/domain/groupChannel/types.ts +28 -5
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +3 -2
- package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -1
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +2 -1
- package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.tsx +14 -0
- package/src/domain/groupChannelNotifications/component/GroupChannelNotificationsView.tsx +128 -0
- package/src/domain/groupChannelNotifications/index.ts +4 -0
- package/src/domain/groupChannelNotifications/module/createGroupChannelNotificationsModule.tsx +15 -0
- package/src/domain/groupChannelNotifications/module/moduleContext.tsx +31 -0
- package/src/domain/groupChannelNotifications/types.ts +38 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +2 -1
- package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +42 -3
- package/src/domain/groupChannelSettings/module/moduleContext.tsx +9 -12
- package/src/domain/groupChannelSettings/types.ts +2 -0
- package/src/domain/groupChannelUserList/types.ts +7 -2
- package/src/domain/userList/component/UserListList.tsx +5 -1
- package/src/domain/userList/module/createUserListModule.tsx +3 -1
- package/src/fragments/createGroupChannelCreateFragment.tsx +8 -2
- package/src/fragments/createGroupChannelFragment.tsx +19 -6
- package/src/fragments/createGroupChannelInviteFragment.tsx +2 -2
- package/src/fragments/createGroupChannelNotificationsFragment.tsx +27 -0
- package/src/fragments/createGroupChannelSettingsFragment.tsx +2 -0
- package/src/hooks/useConnection.ts +3 -1
- package/src/hooks/useContext.ts +7 -0
- package/src/hooks/useKeyboardStatus.ts +54 -0
- package/src/hooks/useMentionSuggestion.ts +106 -0
- package/src/hooks/useMentionTextInput.ts +139 -0
- package/src/index.ts +13 -2
- package/src/libs/EmojiManager.ts +80 -0
- package/src/libs/MentionConfig.ts +40 -0
- package/src/libs/MentionManager.tsx +240 -0
- package/src/localization/StringSet.type.ts +38 -8
- package/src/types.ts +12 -0
- package/src/utils/common.ts +8 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Logger","setLogLevel","__DEV__","setTitle","Platform","OS"],"sources":["index.ts"],"sourcesContent":["/** Components **/\nimport { Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport { default as MessageRenderer } from './components/MessageRenderer';\nexport { default as ChannelCover } from './components/ChannelCover';\nexport { default as ChatFlatList } from './components/ChatFlatList';\nexport { default as FileViewer } from './components/FileViewer';\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 **/\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';\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
|
|
1
|
+
{"version":3,"names":["Logger","setLogLevel","__DEV__","setTitle","Platform","OS"],"sources":["index.ts"],"sourcesContent":["/** Components **/\nimport { Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport { default as MessageRenderer } from './components/MessageRenderer';\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 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 **/\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';\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 { default as StringSetEn } from './localization/StringSet.en';\nexport { createBaseStringSet } from './localization/StringSet.type';\nexport type { StringSet } 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';\n\nexport type {\n FileServiceInterface,\n ClipboardServiceInterface,\n FilePickerServiceInterface,\n FileSystemServiceInterface,\n SaveOptions,\n OpenDocumentOptions,\n OpenCameraOptions,\n OpenMediaLibraryOptions,\n OpenResultListener,\n DownloadedPath,\n Unsubscribe,\n FilePickerResponse,\n FileType,\n NotificationServiceInterface,\n} from './platform/types';\n\n/** Domain **/\nexport * from './domain/groupChannel';\nexport type {\n GroupChannelProps,\n GroupChannelModule,\n GroupChannelFragment,\n GroupChannelContextsType,\n} from './domain/groupChannel/types';\n\nexport * from './domain/groupChannelSettings';\nexport type {\n GroupChannelSettingsProps,\n GroupChannelSettingsModule,\n GroupChannelSettingsFragment,\n GroupChannelSettingsContextsType,\n} from './domain/groupChannelSettings/types';\n\nexport * from './domain/groupChannelList';\nexport type {\n GroupChannelType,\n GroupChannelListProps,\n GroupChannelListModule,\n GroupChannelListFragment,\n GroupChannelListContextsType,\n} from './domain/groupChannelList/types';\n\nexport * from './domain/groupChannelNotifications';\nexport {\n GroupChannelNotificationsProps,\n GroupChannelNotificationsContextsType,\n GroupChannelNotificationsFragment,\n GroupChannelNotificationsModule,\n} from './domain/groupChannelNotifications/types';\n\nexport * from './domain/groupChannelUserList/types';\nexport * from './domain/userList';\nexport type { UserListProps, UserListModule, UserListContextsType } from './domain/userList/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';\n\nexport * from './types';\n\nLogger.setLogLevel(__DEV__ ? 'warn' : 'none');\nLogger.setTitle(`[UIKIT_${Platform.OS}]`);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAGA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAoBA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAQA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAQA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AASA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAOA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAIA;;AAEA;;AAEA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;;;;;;;AAvHA;;AAmBA;;AAcA;;AAMA;;AAKA;;AAKA;;AA2BA;;AAsCA;AAOAA,kBAAA,CAAOC,WAAP,CAAmBC,OAAO,GAAG,MAAH,GAAY,MAAtC;;AACAF,kBAAA,CAAOG,QAAP,CAAiB,UAASC,qBAAA,CAASC,EAAG,GAAtC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _InternalLocalCacheStorage = _interopRequireDefault(require("./InternalLocalCacheStorage"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
|
|
14
|
+
class MemoryStorage {
|
|
15
|
+
constructor() {
|
|
16
|
+
_defineProperty(this, "_data", {});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async getAllKeys() {
|
|
20
|
+
return Object.keys(this._data);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async getItem(key) {
|
|
24
|
+
return this._data[key];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async removeItem(key) {
|
|
28
|
+
delete this._data[key];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async setItem(key, value) {
|
|
32
|
+
this._data[key] = value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
class EmojiManager {
|
|
38
|
+
constructor() {
|
|
39
|
+
let internalStorage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _InternalLocalCacheStorage.default(new MemoryStorage());
|
|
40
|
+
this.internalStorage = internalStorage;
|
|
41
|
+
|
|
42
|
+
_defineProperty(this, "emojiStorage", {
|
|
43
|
+
data: null,
|
|
44
|
+
get: async () => {
|
|
45
|
+
if (!this.emojiStorage.data) {
|
|
46
|
+
const strItem = await this.internalStorage.getItem(EmojiManager.key);
|
|
47
|
+
if (strItem) this.emojiStorage.data = Object.freeze(JSON.parse(strItem));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return this.emojiStorage.data;
|
|
51
|
+
},
|
|
52
|
+
set: async data => {
|
|
53
|
+
this.emojiStorage.data = Object.freeze(data);
|
|
54
|
+
await this.internalStorage.setItem(EmojiManager.key, JSON.stringify(data));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
_defineProperty(this, "_emojiCategoryMap", {});
|
|
59
|
+
|
|
60
|
+
_defineProperty(this, "_allEmojiMap", {});
|
|
61
|
+
|
|
62
|
+
_defineProperty(this, "_allEmoji", []);
|
|
63
|
+
|
|
64
|
+
_defineProperty(this, "init", async emojiContainer => {
|
|
65
|
+
if (emojiContainer) await this.emojiStorage.set(emojiContainer);
|
|
66
|
+
const container = await this.emojiStorage.get();
|
|
67
|
+
|
|
68
|
+
if (container) {
|
|
69
|
+
for (const category of container.emojiCategories) {
|
|
70
|
+
this._emojiCategoryMap[category.id] = category;
|
|
71
|
+
|
|
72
|
+
for (const emoji of category.emojis) {
|
|
73
|
+
this._allEmojiMap[emoji.key] = emoji;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
this._allEmoji = Object.values(this._allEmojiMap);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
get emojiCategoryMap() {
|
|
83
|
+
return this._emojiCategoryMap;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
get allEmojiMap() {
|
|
87
|
+
return this._allEmojiMap;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
get allEmoji() {
|
|
91
|
+
return this._allEmoji;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
_defineProperty(EmojiManager, "key", 'sendbird-uikit@emoji-manager');
|
|
97
|
+
|
|
98
|
+
var _default = EmojiManager;
|
|
99
|
+
exports.default = _default;
|
|
100
|
+
//# sourceMappingURL=EmojiManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MemoryStorage","getAllKeys","Object","keys","_data","getItem","key","removeItem","setItem","value","EmojiManager","constructor","internalStorage","InternalLocalCacheStorage","data","get","emojiStorage","strItem","freeze","JSON","parse","set","stringify","emojiContainer","container","category","emojiCategories","_emojiCategoryMap","id","emoji","emojis","_allEmojiMap","_allEmoji","values","emojiCategoryMap","allEmojiMap","allEmoji"],"sources":["EmojiManager.ts"],"sourcesContent":["import type { SendbirdEmoji, SendbirdEmojiCategory, SendbirdEmojiContainer } from '@sendbird/uikit-utils';\n\nimport type { LocalCacheStorage } from '../types';\nimport InternalLocalCacheStorage from './InternalLocalCacheStorage';\n\nclass MemoryStorage implements LocalCacheStorage {\n _data: Record<string, string> = {};\n\n async getAllKeys(): Promise<readonly string[] | string[]> {\n return Object.keys(this._data);\n }\n\n async getItem(key: string): Promise<string | null> {\n return this._data[key];\n }\n\n async removeItem(key: string): Promise<void> {\n delete this._data[key];\n }\n\n async setItem(key: string, value: string): Promise<void> {\n this._data[key] = value;\n }\n}\n\nclass EmojiManager {\n static key = 'sendbird-uikit@emoji-manager';\n\n constructor(\n private internalStorage: InternalLocalCacheStorage = new InternalLocalCacheStorage(new MemoryStorage()),\n ) {}\n\n private emojiStorage = {\n data: null as null | SendbirdEmojiContainer,\n get: async () => {\n if (!this.emojiStorage.data) {\n const strItem = await this.internalStorage.getItem(EmojiManager.key);\n if (strItem) this.emojiStorage.data = Object.freeze(JSON.parse(strItem));\n }\n return this.emojiStorage.data;\n },\n set: async (data: SendbirdEmojiContainer) => {\n this.emojiStorage.data = Object.freeze(data);\n await this.internalStorage.setItem(EmojiManager.key, JSON.stringify(data));\n },\n };\n\n private _emojiCategoryMap: Record<string, SendbirdEmojiCategory> = {};\n public get emojiCategoryMap() {\n return this._emojiCategoryMap;\n }\n\n private _allEmojiMap: Record<string, SendbirdEmoji> = {};\n public get allEmojiMap() {\n return this._allEmojiMap;\n }\n\n private _allEmoji: SendbirdEmoji[] = [];\n public get allEmoji() {\n return this._allEmoji;\n }\n\n public init = async (emojiContainer?: SendbirdEmojiContainer) => {\n if (emojiContainer) await this.emojiStorage.set(emojiContainer);\n\n const container = await this.emojiStorage.get();\n\n if (container) {\n for (const category of container.emojiCategories) {\n this._emojiCategoryMap[category.id] = category;\n for (const emoji of category.emojis) {\n this._allEmojiMap[emoji.key] = emoji;\n }\n }\n this._allEmoji = Object.values(this._allEmojiMap);\n }\n };\n}\n\nexport default EmojiManager;\n"],"mappings":";;;;;;;AAGA;;;;;;AAEA,MAAMA,aAAN,CAAiD;EAAA;IAAA,+BACf,EADe;EAAA;;EAG/B,MAAVC,UAAU,GAA0C;IACxD,OAAOC,MAAM,CAACC,IAAP,CAAY,KAAKC,KAAjB,CAAP;EACD;;EAEY,MAAPC,OAAO,CAACC,GAAD,EAAsC;IACjD,OAAO,KAAKF,KAAL,CAAWE,GAAX,CAAP;EACD;;EAEe,MAAVC,UAAU,CAACD,GAAD,EAA6B;IAC3C,OAAO,KAAKF,KAAL,CAAWE,GAAX,CAAP;EACD;;EAEY,MAAPE,OAAO,CAACF,GAAD,EAAcG,KAAd,EAA4C;IACvD,KAAKL,KAAL,CAAWE,GAAX,IAAkBG,KAAlB;EACD;;AAjB8C;;AAoBjD,MAAMC,YAAN,CAAmB;EAGjBC,WAAW,GAET;IAAA,IADQC,eACR,uEADqD,IAAIC,kCAAJ,CAA8B,IAAIb,aAAJ,EAA9B,CACrD;IAAA,KADQY,eACR,GADQA,eACR;;IAAA,sCAEqB;MACrBE,IAAI,EAAE,IADe;MAErBC,GAAG,EAAE,YAAY;QACf,IAAI,CAAC,KAAKC,YAAL,CAAkBF,IAAvB,EAA6B;UAC3B,MAAMG,OAAO,GAAG,MAAM,KAAKL,eAAL,CAAqBP,OAArB,CAA6BK,YAAY,CAACJ,GAA1C,CAAtB;UACA,IAAIW,OAAJ,EAAa,KAAKD,YAAL,CAAkBF,IAAlB,GAAyBZ,MAAM,CAACgB,MAAP,CAAcC,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAd,CAAzB;QACd;;QACD,OAAO,KAAKD,YAAL,CAAkBF,IAAzB;MACD,CARoB;MASrBO,GAAG,EAAE,MAAOP,IAAP,IAAwC;QAC3C,KAAKE,YAAL,CAAkBF,IAAlB,GAAyBZ,MAAM,CAACgB,MAAP,CAAcJ,IAAd,CAAzB;QACA,MAAM,KAAKF,eAAL,CAAqBJ,OAArB,CAA6BE,YAAY,CAACJ,GAA1C,EAA+Ca,IAAI,CAACG,SAAL,CAAeR,IAAf,CAA/C,CAAN;MACD;IAZoB,CAFrB;;IAAA,2CAiBiE,EAjBjE;;IAAA,sCAsBoD,EAtBpD;;IAAA,mCA2BmC,EA3BnC;;IAAA,8BAgCY,MAAOS,cAAP,IAAmD;MAC/D,IAAIA,cAAJ,EAAoB,MAAM,KAAKP,YAAL,CAAkBK,GAAlB,CAAsBE,cAAtB,CAAN;MAEpB,MAAMC,SAAS,GAAG,MAAM,KAAKR,YAAL,CAAkBD,GAAlB,EAAxB;;MAEA,IAAIS,SAAJ,EAAe;QACb,KAAK,MAAMC,QAAX,IAAuBD,SAAS,CAACE,eAAjC,EAAkD;UAChD,KAAKC,iBAAL,CAAuBF,QAAQ,CAACG,EAAhC,IAAsCH,QAAtC;;UACA,KAAK,MAAMI,KAAX,IAAoBJ,QAAQ,CAACK,MAA7B,EAAqC;YACnC,KAAKC,YAAL,CAAkBF,KAAK,CAACvB,GAAxB,IAA+BuB,KAA/B;UACD;QACF;;QACD,KAAKG,SAAL,GAAiB9B,MAAM,CAAC+B,MAAP,CAAc,KAAKF,YAAnB,CAAjB;MACD;IACF,CA9CC;EAAE;;EAkBuB,IAAhBG,gBAAgB,GAAG;IAC5B,OAAO,KAAKP,iBAAZ;EACD;;EAGqB,IAAXQ,WAAW,GAAG;IACvB,OAAO,KAAKJ,YAAZ;EACD;;EAGkB,IAARK,QAAQ,GAAG;IACpB,OAAO,KAAKJ,SAAZ;EACD;;AAnCgB;;gBAAbtB,Y,SACS,8B;;eAqDAA,Y"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
|
|
10
|
+
class MentionConfig {
|
|
11
|
+
constructor(_config) {
|
|
12
|
+
this._config = _config;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
get mentionLimit() {
|
|
16
|
+
return this._config.mentionLimit;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
get suggestionLimit() {
|
|
20
|
+
return this._config.suggestionLimit;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
get delimiter() {
|
|
24
|
+
return this._config.delimiter;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
get debounceMills() {
|
|
28
|
+
return this._config.debounceMills;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get trigger() {
|
|
32
|
+
return this._config.trigger;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
_defineProperty(MentionConfig, "DEFAULT", {
|
|
38
|
+
MENTION_LIMIT: 10,
|
|
39
|
+
SUGGESTION_LIMIT: 15,
|
|
40
|
+
DEBOUNCE_MILLS: 300,
|
|
41
|
+
DELIMITER: ' ',
|
|
42
|
+
TRIGGER: '@'
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
var _default = MentionConfig;
|
|
46
|
+
exports.default = _default;
|
|
47
|
+
//# sourceMappingURL=MentionConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MentionConfig","constructor","_config","mentionLimit","suggestionLimit","delimiter","debounceMills","trigger","MENTION_LIMIT","SUGGESTION_LIMIT","DEBOUNCE_MILLS","DELIMITER","TRIGGER"],"sources":["MentionConfig.ts"],"sourcesContent":["export interface MentionConfigInterface {\n mentionLimit: number;\n suggestionLimit: number;\n debounceMills: number;\n delimiter: string;\n trigger: string;\n}\n\nclass MentionConfig {\n static DEFAULT = {\n MENTION_LIMIT: 10,\n SUGGESTION_LIMIT: 15,\n DEBOUNCE_MILLS: 300,\n DELIMITER: ' ',\n TRIGGER: '@',\n };\n constructor(private _config: MentionConfigInterface) {}\n\n get mentionLimit() {\n return this._config.mentionLimit;\n }\n\n get suggestionLimit() {\n return this._config.suggestionLimit;\n }\n\n get delimiter() {\n return this._config.delimiter;\n }\n\n get debounceMills() {\n return this._config.debounceMills;\n }\n\n get trigger() {\n return this._config.trigger;\n }\n}\n\nexport default MentionConfig;\n"],"mappings":";;;;;;;;;AAQA,MAAMA,aAAN,CAAoB;EAQlBC,WAAW,CAASC,OAAT,EAA0C;IAAA,KAAjCA,OAAiC,GAAjCA,OAAiC;EAAE;;EAEvC,IAAZC,YAAY,GAAG;IACjB,OAAO,KAAKD,OAAL,CAAaC,YAApB;EACD;;EAEkB,IAAfC,eAAe,GAAG;IACpB,OAAO,KAAKF,OAAL,CAAaE,eAApB;EACD;;EAEY,IAATC,SAAS,GAAG;IACd,OAAO,KAAKH,OAAL,CAAaG,SAApB;EACD;;EAEgB,IAAbC,aAAa,GAAG;IAClB,OAAO,KAAKJ,OAAL,CAAaI,aAApB;EACD;;EAEU,IAAPC,OAAO,GAAG;IACZ,OAAO,KAAKL,OAAL,CAAaK,OAApB;EACD;;AA5BiB;;gBAAdP,a,aACa;EACfQ,aAAa,EAAE,EADA;EAEfC,gBAAgB,EAAE,EAFH;EAGfC,cAAc,EAAE,GAHD;EAIfC,SAAS,EAAE,GAJI;EAKfC,OAAO,EAAE;AALM,C;;eA8BJZ,a"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
11
|
+
|
|
12
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
class MentionManager {
|
|
19
|
+
constructor(config, mentionEnabled) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.mentionEnabled = mentionEnabled;
|
|
24
|
+
|
|
25
|
+
_defineProperty(this, "_invalidStartsKeywords", void 0);
|
|
26
|
+
|
|
27
|
+
_defineProperty(this, "_templateRegex", void 0);
|
|
28
|
+
|
|
29
|
+
_defineProperty(this, "rangeHelpers", {
|
|
30
|
+
inRangeUnderOver(start, num, end) {
|
|
31
|
+
return start < num && num < end;
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
inRangeUnderMore(start, num, end) {
|
|
35
|
+
return start < num && num <= end;
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
inRangeLessOver(start, num, end) {
|
|
39
|
+
return start <= num && num < end;
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
inRangeLessMore(start, num, end) {
|
|
43
|
+
return start <= num && num <= end;
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
overlaps(a, b) {
|
|
47
|
+
let compare = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'underOver';
|
|
48
|
+
const inRange = {
|
|
49
|
+
underOver: this.inRangeUnderOver,
|
|
50
|
+
underMore: this.inRangeUnderMore,
|
|
51
|
+
lessOver: this.inRangeLessOver,
|
|
52
|
+
lessMore: this.inRangeLessMore
|
|
53
|
+
}[compare];
|
|
54
|
+
return inRange(a.start, b.start, a.end) || inRange(a.start, b.end, a.end);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
_defineProperty(this, "getSearchString", (text, selectionIndex) => {
|
|
60
|
+
const lastSpan = text.slice(0, selectionIndex).split(this.config.delimiter).pop() ?? '';
|
|
61
|
+
const triggerIdx = lastSpan.indexOf(this.config.trigger);
|
|
62
|
+
const mentionSpan = triggerIdx === -1 ? lastSpan : lastSpan.slice(triggerIdx);
|
|
63
|
+
const searchString = mentionSpan.slice(this.config.trigger.length);
|
|
64
|
+
return {
|
|
65
|
+
searchString,
|
|
66
|
+
isTriggered: () => mentionSpan.startsWith(this.config.trigger),
|
|
67
|
+
isValidSearchString: () => this._invalidStartsKeywords.every(it => !searchString.startsWith(it))
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
_defineProperty(this, "reconcileRangeOfMentionedUsers", (offset, selectionIndex, mentionedUsers) => {
|
|
72
|
+
return mentionedUsers.map(it => {
|
|
73
|
+
// Changes only on the right text of selection.
|
|
74
|
+
if (selectionIndex <= it.range.start) {
|
|
75
|
+
return { ...it,
|
|
76
|
+
range: {
|
|
77
|
+
start: it.range.start + offset,
|
|
78
|
+
end: it.range.end + offset
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return it;
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
_defineProperty(this, "removeMentionedUsersInSelection", (selection, mentionedUsers) => {
|
|
88
|
+
let lastSelection = 0;
|
|
89
|
+
let removedOffset = 0;
|
|
90
|
+
const filtered = mentionedUsers.filter(it => {
|
|
91
|
+
const shouldRemove = this.rangeHelpers.overlaps(selection, it.range, 'lessMore');
|
|
92
|
+
|
|
93
|
+
if (shouldRemove) {
|
|
94
|
+
lastSelection = Math.max(lastSelection, it.range.end);
|
|
95
|
+
removedOffset -= it.range.end - it.range.start;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return !shouldRemove;
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
filtered,
|
|
102
|
+
lastSelection,
|
|
103
|
+
removedOffset
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
_defineProperty(this, "getSearchStringRangeInText", (selectionIndex, searchString) => {
|
|
108
|
+
return {
|
|
109
|
+
start: selectionIndex - searchString.length - this.config.trigger.length,
|
|
110
|
+
end: selectionIndex
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
_defineProperty(this, "asMentionedMessageTemplate", function (user) {
|
|
115
|
+
let delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
116
|
+
return `${_this.config.trigger}{${user.userId}}` + (delimiter ? _this.config.delimiter : '');
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
_defineProperty(this, "asMentionedMessageText", function (user) {
|
|
120
|
+
let delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
121
|
+
return `${_this.config.trigger}${user.nickname}` + (delimiter ? _this.config.delimiter : '');
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
_defineProperty(this, "textToMentionedComponents", (text, mentionedUsers) => {
|
|
125
|
+
if (!this.mentionEnabled || mentionedUsers.length === 0) return text;
|
|
126
|
+
const {
|
|
127
|
+
leftText,
|
|
128
|
+
components
|
|
129
|
+
} = mentionedUsers.sort((a, b) => b.range.start - a.range.start).reduce((_ref, curr, currentIndex) => {
|
|
130
|
+
let {
|
|
131
|
+
leftText,
|
|
132
|
+
components
|
|
133
|
+
} = _ref;
|
|
134
|
+
const leftSpan = leftText.slice(0, curr.range.start);
|
|
135
|
+
const mentionSpan = leftText.slice(curr.range.start, curr.range.end);
|
|
136
|
+
const rightSpan = leftText.slice(curr.range.end);
|
|
137
|
+
return {
|
|
138
|
+
leftText: leftSpan,
|
|
139
|
+
components: [/*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
140
|
+
key: mentionSpan + currentIndex,
|
|
141
|
+
style: styles.mentionedText
|
|
142
|
+
}, mentionSpan), rightSpan, ...components]
|
|
143
|
+
};
|
|
144
|
+
}, {
|
|
145
|
+
leftText: text,
|
|
146
|
+
components: []
|
|
147
|
+
});
|
|
148
|
+
return [leftText, ...components];
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
_defineProperty(this, "textToMentionedMessageTemplate", (text, mentionedUsers) => {
|
|
152
|
+
if (!this.mentionEnabled) return text;
|
|
153
|
+
const {
|
|
154
|
+
leftText,
|
|
155
|
+
strings
|
|
156
|
+
} = mentionedUsers.sort((a, b) => b.range.start - a.range.start).reduce((_ref2, curr) => {
|
|
157
|
+
let {
|
|
158
|
+
leftText,
|
|
159
|
+
strings
|
|
160
|
+
} = _ref2;
|
|
161
|
+
const leftSpan = leftText.slice(0, curr.range.start);
|
|
162
|
+
const templateSpan = this.asMentionedMessageTemplate(curr.user);
|
|
163
|
+
const rightSpan = leftText.slice(curr.range.end);
|
|
164
|
+
return {
|
|
165
|
+
leftText: leftSpan,
|
|
166
|
+
strings: [templateSpan, rightSpan, ...strings]
|
|
167
|
+
};
|
|
168
|
+
}, {
|
|
169
|
+
leftText: text,
|
|
170
|
+
strings: []
|
|
171
|
+
});
|
|
172
|
+
return [leftText, ...strings].join('');
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
_defineProperty(this, "templateToTextAndMentionedUsers", (template, mentionedUsers) => {
|
|
176
|
+
const actualMentionedUsers = [];
|
|
177
|
+
let offsetToMove = 0;
|
|
178
|
+
const mentionedText = (0, _uikitUtils.replaceWithRegex)(template, this.templateRegex, _ref3 => {
|
|
179
|
+
let {
|
|
180
|
+
match,
|
|
181
|
+
matchIndex,
|
|
182
|
+
groups
|
|
183
|
+
} = _ref3;
|
|
184
|
+
const user = mentionedUsers.find(it => it.userId === groups[2]);
|
|
185
|
+
|
|
186
|
+
if (user && typeof matchIndex === 'number') {
|
|
187
|
+
const userIdSpan = match;
|
|
188
|
+
const userNicknameSpan = this.asMentionedMessageText(user);
|
|
189
|
+
const offsetAfterConverted = userNicknameSpan.length - userIdSpan.length;
|
|
190
|
+
const originalRange = {
|
|
191
|
+
start: matchIndex,
|
|
192
|
+
end: matchIndex + userIdSpan.length
|
|
193
|
+
};
|
|
194
|
+
const convertedRange = {
|
|
195
|
+
start: Math.max(0, originalRange.start + offsetToMove),
|
|
196
|
+
end: originalRange.end + offsetToMove + offsetAfterConverted
|
|
197
|
+
};
|
|
198
|
+
offsetToMove += offsetAfterConverted;
|
|
199
|
+
actualMentionedUsers.push({
|
|
200
|
+
range: convertedRange,
|
|
201
|
+
user
|
|
202
|
+
});
|
|
203
|
+
return userNicknameSpan;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return match;
|
|
207
|
+
}, '').join('');
|
|
208
|
+
return {
|
|
209
|
+
mentionedText,
|
|
210
|
+
mentionedUsers: actualMentionedUsers
|
|
211
|
+
};
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
_defineProperty(this, "shouldUseMentionedMessageTemplate", message => {
|
|
215
|
+
return Boolean(this.mentionEnabled && (message === null || message === void 0 ? void 0 : message.mentionedMessageTemplate) && (message === null || message === void 0 ? void 0 : message.mentionedUsers) && (message === null || message === void 0 ? void 0 : message.mentionedUsers.length) > 0);
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
this._invalidStartsKeywords = [this.config.trigger, this.config.delimiter];
|
|
219
|
+
this._templateRegex = (0, _uikitUtils.createMentionTemplateRegex)(this.config.trigger);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
get templateRegex() {
|
|
223
|
+
return this._templateRegex;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
229
|
+
mentionedText: {
|
|
230
|
+
fontWeight: 'bold'
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
var _default = MentionManager;
|
|
234
|
+
exports.default = _default;
|
|
235
|
+
//# sourceMappingURL=MentionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MentionManager","constructor","config","mentionEnabled","inRangeUnderOver","start","num","end","inRangeUnderMore","inRangeLessOver","inRangeLessMore","overlaps","a","b","compare","inRange","underOver","underMore","lessOver","lessMore","text","selectionIndex","lastSpan","slice","split","delimiter","pop","triggerIdx","indexOf","trigger","mentionSpan","searchString","length","isTriggered","startsWith","isValidSearchString","_invalidStartsKeywords","every","it","offset","mentionedUsers","map","range","selection","lastSelection","removedOffset","filtered","filter","shouldRemove","rangeHelpers","Math","max","user","userId","nickname","leftText","components","sort","reduce","curr","currentIndex","leftSpan","rightSpan","styles","mentionedText","strings","templateSpan","asMentionedMessageTemplate","join","template","actualMentionedUsers","offsetToMove","replaceWithRegex","templateRegex","match","matchIndex","groups","find","userIdSpan","userNicknameSpan","asMentionedMessageText","offsetAfterConverted","originalRange","convertedRange","push","message","Boolean","mentionedMessageTemplate","_templateRegex","createMentionTemplateRegex","createStyleSheet","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, public mentionEnabled: boolean) {\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[]) => {\n if (!this.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[]) => {\n if (!this.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 ): message is RequiredSpecific<\n SendbirdUserMessage | SendbirdFileMessage,\n 'mentionedMessageTemplate' | 'mentionedUsers' | 'mentionedUserIds' | 'mentionType'\n > => {\n return Boolean(\n this.mentionEnabled &&\n message?.mentionedMessageTemplate &&\n message?.mentionedUsers &&\n message?.mentionedUsers.length > 0,\n );\n };\n}\n\ntype RequiredSpecific<T, K extends keyof T> = T & {\n [P in K]-?: T[P];\n};\n\nconst styles = createStyleSheet({\n mentionedText: { fontWeight: 'bold' },\n});\n\nexport default MentionManager;\n"],"mappings":"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"}
|
|
@@ -27,9 +27,9 @@ const createBaseStringSet = _ref => {
|
|
|
27
27
|
GROUP_CHANNEL: {
|
|
28
28
|
HEADER_TITLE: (currentUserId, channel) => (0, _uikitUtils.getGroupChannelTitle)(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),
|
|
29
29
|
LIST_BANNER_FROZEN: 'Channel is frozen',
|
|
30
|
-
LIST_DATE_SEPARATOR: (date, locale) => (0, _uikitUtils.
|
|
30
|
+
LIST_DATE_SEPARATOR: (date, locale) => (0, _uikitUtils.getDateSeparatorFormat)(date, locale ?? dateLocale),
|
|
31
31
|
LIST_BUTTON_NEW_MSG: newMessages => `${newMessages.length} new messages`,
|
|
32
|
-
MESSAGE_BUBBLE_TIME: (message, locale) => (0, _uikitUtils.
|
|
32
|
+
MESSAGE_BUBBLE_TIME: (message, locale) => (0, _uikitUtils.getMessageTimeFormat)(new Date(message.createdAt), locale ?? dateLocale),
|
|
33
33
|
MESSAGE_BUBBLE_FILE_TITLE: message => message.name,
|
|
34
34
|
MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',
|
|
35
35
|
MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',
|
|
@@ -39,6 +39,7 @@ const createBaseStringSet = _ref => {
|
|
|
39
39
|
INPUT_PLACEHOLDER_MUTED: "You're muted by the operator.",
|
|
40
40
|
INPUT_EDIT_OK: 'Save',
|
|
41
41
|
INPUT_EDIT_CANCEL: 'Cancel',
|
|
42
|
+
MENTION_LIMITED: mentionLimit => `You can have up to ${mentionLimit} mentions per message.`,
|
|
42
43
|
DIALOG_MESSAGE_COPY: 'Copy',
|
|
43
44
|
DIALOG_MESSAGE_EDIT: 'Edit',
|
|
44
45
|
DIALOG_MESSAGE_SAVE: 'Save',
|
|
@@ -57,9 +58,12 @@ const createBaseStringSet = _ref => {
|
|
|
57
58
|
HEADER_TITLE: 'Channel information',
|
|
58
59
|
HEADER_RIGHT: 'Edit',
|
|
59
60
|
MENU_MODERATION: 'Moderation',
|
|
60
|
-
MENU_NOTIFICATION: 'Notifications',
|
|
61
61
|
MENU_MEMBERS: 'Members',
|
|
62
62
|
MENU_LEAVE_CHANNEL: 'Leave channel',
|
|
63
|
+
MENU_NOTIFICATION: 'Notifications',
|
|
64
|
+
MENU_NOTIFICATION_LABEL_ON: 'On',
|
|
65
|
+
MENU_NOTIFICATION_LABEL_OFF: 'Off',
|
|
66
|
+
MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',
|
|
63
67
|
DIALOG_CHANGE_NAME: 'Change channel name',
|
|
64
68
|
DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',
|
|
65
69
|
DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',
|
|
@@ -71,6 +75,14 @@ const createBaseStringSet = _ref => {
|
|
|
71
75
|
DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',
|
|
72
76
|
...(overrides === null || overrides === void 0 ? void 0 : overrides.GROUP_CHANNEL_SETTINGS)
|
|
73
77
|
},
|
|
78
|
+
GROUP_CHANNEL_NOTIFICATIONS: {
|
|
79
|
+
HEADER_TITLE: 'Notifications',
|
|
80
|
+
MENU_NOTIFICATIONS: 'Notifications',
|
|
81
|
+
MENU_NOTIFICATIONS_DESC: 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',
|
|
82
|
+
MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',
|
|
83
|
+
MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',
|
|
84
|
+
...(overrides === null || overrides === void 0 ? void 0 : overrides.GROUP_CHANNEL_NOTIFICATIONS)
|
|
85
|
+
},
|
|
74
86
|
GROUP_CHANNEL_MODERATION: {
|
|
75
87
|
HEADER_TITLE: 'Moderation',
|
|
76
88
|
MENU_OPERATORS: 'Operators',
|
|
@@ -182,7 +194,7 @@ const createBaseStringSet = _ref => {
|
|
|
182
194
|
|
|
183
195
|
return ((_message$sender = message.sender) === null || _message$sender === void 0 ? void 0 : _message$sender.nickname) || USER_NO_NAME;
|
|
184
196
|
},
|
|
185
|
-
SUBTITLE: message => (0, _uikitUtils.
|
|
197
|
+
SUBTITLE: message => (0, _uikitUtils.getMessageTimeFormat)(new Date(message.createdAt), dateLocale)
|
|
186
198
|
},
|
|
187
199
|
PLACEHOLDER: {
|
|
188
200
|
NO_BANNED_USERS: 'No banned users',
|
|
@@ -203,7 +215,7 @@ const createBaseStringSet = _ref => {
|
|
|
203
215
|
ALERT_PERMISSIONS_TITLE: 'Allow access?',
|
|
204
216
|
ALERT_PERMISSIONS_MESSAGE: function (permission) {
|
|
205
217
|
let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Application';
|
|
206
|
-
return `${appName} need permission to access your ${permission}
|
|
218
|
+
return `${appName} need permission to access your ${permission}.`;
|
|
207
219
|
},
|
|
208
220
|
ALERT_PERMISSIONS_OK: 'Go to settings',
|
|
209
221
|
PROMPT_DEFAULT_OK: 'Submit',
|