@sendbird/uikit-react-native 2.3.0 → 2.4.1
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 +13 -16
- package/lib/commonjs/components/ChannelCover.js +54 -40
- package/lib/commonjs/components/ChannelCover.js.map +1 -1
- package/lib/commonjs/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/EditInput.js +28 -13
- package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -0
- package/lib/commonjs/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/SendInput.js +64 -30
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -0
- package/lib/commonjs/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/index.js +33 -34
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -0
- package/lib/commonjs/components/FileViewer.js +3 -3
- package/lib/commonjs/components/FileViewer.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +2 -2
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageTime.js +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +1 -1
- package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +58 -0
- package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -0
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +135 -0
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -0
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +2 -4
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
- package/lib/commonjs/components/TypedPlaceholder.js +6 -0
- package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +2 -2
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +39 -9
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/UserProfileCtx.js +20 -10
- package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +54 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +10 -10
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +2 -2
- 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/index.js +8 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +4 -2
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +4 -2
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +2 -3
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js +83 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +95 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +351 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js +34 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js +34 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/openChannel/index.js +62 -0
- package/lib/commonjs/domain/openChannel/index.js.map +1 -0
- package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js +45 -0
- package/lib/commonjs/domain/openChannel/module/createOpenChannelModule.js.map +1 -0
- package/lib/commonjs/domain/openChannel/module/moduleContext.js +53 -0
- package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannel/types.js +6 -0
- package/lib/commonjs/domain/openChannel/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +39 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +54 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js +28 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +32 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js +28 -0
- package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/index.js +70 -0
- package/lib/commonjs/domain/openChannelBannedUsers/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +45 -0
- package/lib/commonjs/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelBannedUsers/types.js +6 -0
- package/lib/commonjs/domain/openChannelBannedUsers/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js +53 -0
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +169 -0
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js +22 -0
- package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/index.js +54 -0
- package/lib/commonjs/domain/openChannelCreate/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js +37 -0
- package/lib/commonjs/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js +44 -0
- package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelCreate/types.js +6 -0
- package/lib/commonjs/domain/openChannelCreate/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js +39 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +58 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js +34 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js +32 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js +34 -0
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/index.js +70 -0
- package/lib/commonjs/domain/openChannelList/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js +45 -0
- package/lib/commonjs/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/module/moduleContext.js +42 -0
- package/lib/commonjs/domain/openChannelList/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelList/types.js +6 -0
- package/lib/commonjs/domain/openChannelList/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js +39 -0
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js +74 -0
- package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -0
- package/lib/commonjs/domain/openChannelModeration/index.js +46 -0
- package/lib/commonjs/domain/openChannelModeration/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js +33 -0
- package/lib/commonjs/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelModeration/types.js +6 -0
- package/lib/commonjs/domain/openChannelModeration/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +39 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +54 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js +28 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +32 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js +28 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/index.js +62 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +45 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/types.js +6 -0
- package/lib/commonjs/domain/openChannelMutedParticipants/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +44 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js +54 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js +28 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +32 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js +28 -0
- package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/index.js +62 -0
- package/lib/commonjs/domain/openChannelOperators/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +45 -0
- package/lib/commonjs/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelOperators/types.js +6 -0
- package/lib/commonjs/domain/openChannelOperators/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +49 -0
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +68 -0
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +118 -0
- package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/index.js +54 -0
- package/lib/commonjs/domain/openChannelSettings/index.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +37 -0
- package/lib/commonjs/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js +186 -0
- package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/openChannelSettings/types.js +6 -0
- package/lib/commonjs/domain/openChannelSettings/types.js.map +1 -0
- package/lib/commonjs/domain/openChannelUserList/types.js +6 -0
- package/lib/commonjs/domain/openChannelUserList/types.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +3 -6
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +33 -3
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +6 -8
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +13 -4
- package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +2 -4
- package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js +101 -0
- package/lib/commonjs/fragments/createOpenChannelBannedUsersFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelCreateFragment.js +86 -0
- package/lib/commonjs/fragments/createOpenChannelCreateFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelFragment.js +177 -0
- package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelListFragment.js +93 -0
- package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelModerationFragment.js +68 -0
- package/lib/commonjs/fragments/createOpenChannelModerationFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js +117 -0
- package/lib/commonjs/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js +124 -0
- package/lib/commonjs/fragments/createOpenChannelOperatorsFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js +162 -0
- package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js +116 -0
- package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js +70 -0
- package/lib/commonjs/fragments/createOpenChannelSettingsFragment.js.map +1 -0
- package/lib/commonjs/hooks/useMentionSuggestion.js +3 -12
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/index.js +475 -46
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/StringSet.en.js +2 -2
- package/lib/commonjs/localization/StringSet.en.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js +0 -250
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +393 -0
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -0
- package/lib/commonjs/platform/createFileService.expo.js +6 -14
- package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
- package/lib/commonjs/platform/createFileService.native.js +70 -37
- package/lib/commonjs/platform/createFileService.native.js.map +1 -1
- package/lib/commonjs/utils/normalizeFile.js +41 -0
- package/lib/commonjs/utils/normalizeFile.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelCover.js +47 -33
- package/lib/module/components/ChannelCover.js.map +1 -1
- package/lib/module/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/EditInput.js +28 -13
- package/lib/module/components/ChannelInput/EditInput.js.map +1 -0
- package/lib/module/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/SendInput.js +65 -31
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -0
- package/lib/module/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/index.js +35 -35
- package/lib/module/components/ChannelInput/index.js.map +1 -0
- package/lib/module/components/FileViewer.js +3 -3
- package/lib/module/components/FileViewer.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +2 -2
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +1 -1
- package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +1 -1
- package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
- package/lib/module/components/MessageRenderer/MessageTime.js +1 -1
- package/lib/module/components/MessageRenderer/MessageTime.js.map +1 -1
- package/lib/module/components/MessageRenderer/UnknownMessage/index.js +1 -1
- package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +44 -0
- package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -0
- package/lib/module/components/OpenChannelMessageRenderer/index.js +119 -0
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -0
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +3 -4
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
- package/lib/module/components/TypedPlaceholder.js +6 -0
- package/lib/module/components/TypedPlaceholder.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +3 -3
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +40 -10
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/UserProfileCtx.js +21 -11
- package/lib/module/contexts/UserProfileCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js +36 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +10 -10
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +3 -3
- 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/index.js +1 -0
- package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +2 -2
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +4 -2
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +4 -2
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js +3 -4
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelHeader.js +63 -0
- package/lib/module/domain/openChannel/component/OpenChannelHeader.js.map +1 -0
- package/lib/module/domain/openChannel/component/OpenChannelInput.js +74 -0
- package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -0
- package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +325 -0
- package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -0
- package/lib/module/domain/openChannel/component/OpenChannelStatusEmpty.js +21 -0
- package/lib/module/domain/openChannel/component/OpenChannelStatusEmpty.js.map +1 -0
- package/lib/module/domain/openChannel/component/OpenChannelStatusLoading.js +21 -0
- package/lib/module/domain/openChannel/component/OpenChannelStatusLoading.js.map +1 -0
- package/lib/module/domain/openChannel/index.js +7 -0
- package/lib/module/domain/openChannel/index.js.map +1 -0
- package/lib/module/domain/openChannel/module/createOpenChannelModule.js +30 -0
- package/lib/module/domain/openChannel/module/createOpenChannelModule.js.map +1 -0
- package/lib/module/domain/openChannel/module/moduleContext.js +32 -0
- package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannel/types.js +2 -0
- package/lib/module/domain/openChannel/types.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +25 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js +41 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js +16 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js +20 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js +16 -0
- package/lib/module/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/index.js +8 -0
- package/lib/module/domain/openChannelBannedUsers/index.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js +30 -0
- package/lib/module/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js +25 -0
- package/lib/module/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelBannedUsers/types.js +2 -0
- package/lib/module/domain/openChannelBannedUsers/types.js.map +1 -0
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js +38 -0
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -0
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +153 -0
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -0
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js +11 -0
- package/lib/module/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.js.map +1 -0
- package/lib/module/domain/openChannelCreate/index.js +6 -0
- package/lib/module/domain/openChannelCreate/index.js.map +1 -0
- package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js +24 -0
- package/lib/module/domain/openChannelCreate/module/createOpenChannelCreateModule.js.map +1 -0
- package/lib/module/domain/openChannelCreate/module/moduleContext.js +24 -0
- package/lib/module/domain/openChannelCreate/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelCreate/types.js +2 -0
- package/lib/module/domain/openChannelCreate/types.js.map +1 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js +25 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListList.js +45 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusEmpty.js +21 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusEmpty.js.map +1 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js +20 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusError.js.map +1 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusLoading.js +21 -0
- package/lib/module/domain/openChannelList/component/OpenChannelListStatusLoading.js.map +1 -0
- package/lib/module/domain/openChannelList/index.js +8 -0
- package/lib/module/domain/openChannelList/index.js.map +1 -0
- package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js +30 -0
- package/lib/module/domain/openChannelList/module/createOpenChannelListModule.js.map +1 -0
- package/lib/module/domain/openChannelList/module/moduleContext.js +22 -0
- package/lib/module/domain/openChannelList/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelList/types.js +2 -0
- package/lib/module/domain/openChannelList/types.js.map +1 -0
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js +25 -0
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -0
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js +61 -0
- package/lib/module/domain/openChannelModeration/component/OpenChannelModerationMenu.js.map +1 -0
- package/lib/module/domain/openChannelModeration/index.js +5 -0
- package/lib/module/domain/openChannelModeration/index.js.map +1 -0
- package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js +21 -0
- package/lib/module/domain/openChannelModeration/module/createOpenChannelModerationModule.js.map +1 -0
- package/lib/module/domain/openChannelModeration/module/moduleContext.js +25 -0
- package/lib/module/domain/openChannelModeration/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelModeration/types.js +2 -0
- package/lib/module/domain/openChannelModeration/types.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +25 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js +41 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js +16 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js +20 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js +16 -0
- package/lib/module/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/index.js +7 -0
- package/lib/module/domain/openChannelMutedParticipants/index.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js +30 -0
- package/lib/module/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js +25 -0
- package/lib/module/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelMutedParticipants/types.js +2 -0
- package/lib/module/domain/openChannelMutedParticipants/types.js.map +1 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +30 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js +41 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsList.js.map +1 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js +16 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.js.map +1 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js +20 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.js.map +1 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js +16 -0
- package/lib/module/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.js.map +1 -0
- package/lib/module/domain/openChannelOperators/index.js +7 -0
- package/lib/module/domain/openChannelOperators/index.js.map +1 -0
- package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js +30 -0
- package/lib/module/domain/openChannelOperators/module/createOpenChannelOperatorsModule.js.map +1 -0
- package/lib/module/domain/openChannelOperators/module/moduleContext.js +25 -0
- package/lib/module/domain/openChannelOperators/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelOperators/types.js +2 -0
- package/lib/module/domain/openChannelOperators/types.js.map +1 -0
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +35 -0
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -0
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +49 -0
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -0
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +99 -0
- package/lib/module/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -0
- package/lib/module/domain/openChannelSettings/index.js +6 -0
- package/lib/module/domain/openChannelSettings/index.js.map +1 -0
- package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js +24 -0
- package/lib/module/domain/openChannelSettings/module/createOpenChannelSettingsModule.js.map +1 -0
- package/lib/module/domain/openChannelSettings/module/moduleContext.js +161 -0
- package/lib/module/domain/openChannelSettings/module/moduleContext.js.map +1 -0
- package/lib/module/domain/openChannelSettings/types.js +2 -0
- package/lib/module/domain/openChannelSettings/types.js.map +1 -0
- package/lib/module/domain/openChannelUserList/types.js +2 -0
- package/lib/module/domain/openChannelUserList/types.js.map +1 -0
- package/lib/module/fragments/createGroupChannelCreateFragment.js +4 -7
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +33 -3
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelMembersFragment.js +7 -9
- package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +14 -4
- package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelOperatorsFragment.js +3 -4
- package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelBannedUsersFragment.js +84 -0
- package/lib/module/fragments/createOpenChannelBannedUsersFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelCreateFragment.js +69 -0
- package/lib/module/fragments/createOpenChannelCreateFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelFragment.js +153 -0
- package/lib/module/fragments/createOpenChannelFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelListFragment.js +77 -0
- package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelModerationFragment.js +53 -0
- package/lib/module/fragments/createOpenChannelModerationFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js +100 -0
- package/lib/module/fragments/createOpenChannelMutedParticipantsFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelOperatorsFragment.js +106 -0
- package/lib/module/fragments/createOpenChannelOperatorsFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelParticipantsFragment.js +140 -0
- package/lib/module/fragments/createOpenChannelParticipantsFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js +96 -0
- package/lib/module/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelSettingsFragment.js +55 -0
- package/lib/module/fragments/createOpenChannelSettingsFragment.js.map +1 -0
- package/lib/module/hooks/useMentionSuggestion.js +5 -14
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/index.js +48 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/localization/StringSet.en.js +1 -1
- package/lib/module/localization/StringSet.en.js.map +1 -1
- package/lib/module/localization/StringSet.type.js +1 -250
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +384 -0
- package/lib/module/localization/createBaseStringSet.js.map +1 -0
- package/lib/module/platform/createFileService.expo.js +7 -15
- package/lib/module/platform/createFileService.expo.js.map +1 -1
- package/lib/module/platform/createFileService.native.js +69 -36
- package/lib/module/platform/createFileService.native.js.map +1 -1
- package/lib/module/utils/normalizeFile.js +33 -0
- package/lib/module/utils/normalizeFile.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 -2
- package/lib/typescript/src/components/ChannelInput/EditInput.d.ts +16 -0
- package/lib/typescript/src/components/ChannelInput/SendInput.d.ts +12 -0
- package/lib/typescript/src/components/ChannelInput/index.d.ts +43 -0
- package/lib/typescript/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.d.ts +6 -0
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +16 -0
- package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +4 -3
- package/lib/typescript/src/contexts/UserProfileCtx.d.ts +6 -2
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannel/types.d.ts +9 -28
- package/lib/typescript/src/domain/groupChannelBannedUsers/index.d.ts +1 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +7 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +3 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +39 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/openChannel/index.d.ts +6 -0
- package/lib/typescript/src/domain/openChannel/module/createOpenChannelModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannel/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannel/types.d.ts +97 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/index.d.ts +7 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelBannedUsers/types.d.ts +47 -0
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelCreate/index.d.ts +5 -0
- package/lib/typescript/src/domain/openChannelCreate/module/createOpenChannelCreateModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelCreate/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelCreate/types.d.ts +40 -0
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelList/index.d.ts +7 -0
- package/lib/typescript/src/domain/openChannelList/module/createOpenChannelListModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelList/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelList/types.d.ts +60 -0
- package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationMenu.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelModeration/index.d.ts +4 -0
- package/lib/typescript/src/domain/openChannelModeration/module/createOpenChannelModerationModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelModeration/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelModeration/types.d.ts +43 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/index.d.ts +6 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelMutedParticipants/types.d.ts +47 -0
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsList.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/openChannelOperators/index.d.ts +6 -0
- package/lib/typescript/src/domain/openChannelOperators/module/createOpenChannelOperatorsModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelOperators/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelOperators/types.d.ts +49 -0
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsHeader.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsInfo.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsMenu.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelSettings/index.d.ts +5 -0
- package/lib/typescript/src/domain/openChannelSettings/module/createOpenChannelSettingsModule.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelSettings/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/openChannelSettings/types.d.ts +49 -0
- package/lib/typescript/src/domain/openChannelUserList/types.d.ts +23 -0
- package/lib/typescript/src/fragments/createOpenChannelBannedUsersFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelCreateFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelListFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelModerationFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelMutedParticipantsFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelOperatorsFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createOpenChannelParticipantsFragment.d.ts +5 -0
- package/lib/typescript/src/fragments/createOpenChannelRegisterOperatorFragment.d.ts +5 -0
- package/lib/typescript/src/fragments/createOpenChannelSettingsFragment.d.ts +3 -0
- package/lib/typescript/src/index.d.ts +44 -11
- package/lib/typescript/src/libs/MentionManager.d.ts +1 -1
- package/lib/typescript/src/localization/StringSet.type.d.ts +136 -26
- package/lib/typescript/src/localization/createBaseStringSet.d.ts +16 -0
- package/lib/typescript/src/utils/normalizeFile.d.ts +4 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +9 -8
- package/src/components/ChannelCover.tsx +46 -37
- package/src/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/EditInput.tsx +30 -19
- package/src/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/SendInput.tsx +69 -43
- package/src/{domain/groupChannel/component/GroupChannelInput → components/ChannelInput}/index.tsx +92 -37
- package/src/components/FileViewer.tsx +3 -3
- package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +1 -1
- package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +5 -1
- package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +6 -2
- package/src/components/MessageRenderer/MessageDateSeparator.tsx +1 -0
- package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +1 -1
- package/src/components/MessageRenderer/MessageTime.tsx +1 -1
- package/src/components/MessageRenderer/UnknownMessage/index.tsx +1 -1
- package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +1 -1
- package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +1 -1
- package/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.tsx +46 -0
- package/src/components/OpenChannelMessageRenderer/index.tsx +91 -0
- package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +3 -4
- package/src/components/TypedPlaceholder.tsx +3 -0
- package/src/containers/GroupChannelPreviewContainer.tsx +3 -3
- package/src/containers/SendbirdUIKitContainer.tsx +46 -16
- package/src/contexts/UserProfileCtx.tsx +27 -12
- package/src/domain/groupChannel/component/GroupChannelInput.tsx +42 -0
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +10 -10
- package/src/domain/groupChannel/module/moduleContext.tsx +3 -3
- package/src/domain/groupChannel/types.ts +24 -37
- package/src/domain/groupChannelBannedUsers/index.ts +1 -0
- package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -2
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +2 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +2 -0
- package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +1 -1
- package/src/domain/groupChannelSettings/module/moduleContext.tsx +3 -4
- package/src/domain/openChannel/component/OpenChannelHeader.tsx +47 -0
- package/src/domain/openChannel/component/OpenChannelInput.tsx +80 -0
- package/src/domain/openChannel/component/OpenChannelMessageList.tsx +322 -0
- package/src/domain/openChannel/component/OpenChannelStatusEmpty.tsx +18 -0
- package/src/domain/openChannel/component/OpenChannelStatusLoading.tsx +18 -0
- package/src/domain/openChannel/index.ts +6 -0
- package/src/domain/openChannel/module/createOpenChannelModule.tsx +21 -0
- package/src/domain/openChannel/module/moduleContext.tsx +41 -0
- package/src/domain/openChannel/types.ts +127 -0
- package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.tsx +14 -0
- package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.tsx +33 -0
- package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusEmpty.tsx +15 -0
- package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusError.tsx +16 -0
- package/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersStatusLoading.tsx +15 -0
- package/src/domain/openChannelBannedUsers/index.ts +7 -0
- package/src/domain/openChannelBannedUsers/module/createOpenChannelBannedUsersModule.tsx +21 -0
- package/src/domain/openChannelBannedUsers/module/moduleContext.tsx +30 -0
- package/src/domain/openChannelBannedUsers/types.ts +50 -0
- package/src/domain/openChannelCreate/component/OpenChannelCreateHeader.tsx +35 -0
- package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +155 -0
- package/src/domain/openChannelCreate/component/OpenChannelCreateStatusLoading.tsx +9 -0
- package/src/domain/openChannelCreate/index.ts +5 -0
- package/src/domain/openChannelCreate/module/createOpenChannelCreateModule.tsx +17 -0
- package/src/domain/openChannelCreate/module/moduleContext.tsx +28 -0
- package/src/domain/openChannelCreate/types.ts +45 -0
- package/src/domain/openChannelList/component/OpenChannelListHeader.tsx +14 -0
- package/src/domain/openChannelList/component/OpenChannelListList.tsx +37 -0
- package/src/domain/openChannelList/component/OpenChannelListStatusEmpty.tsx +18 -0
- package/src/domain/openChannelList/component/OpenChannelListStatusError.tsx +16 -0
- package/src/domain/openChannelList/component/OpenChannelListStatusLoading.tsx +18 -0
- package/src/domain/openChannelList/index.ts +7 -0
- package/src/domain/openChannelList/module/createOpenChannelListModule.tsx +21 -0
- package/src/domain/openChannelList/module/moduleContext.tsx +22 -0
- package/src/domain/openChannelList/types.ts +63 -0
- package/src/domain/openChannelModeration/component/OpenChannelModerationHeader.tsx +15 -0
- package/src/domain/openChannelModeration/component/OpenChannelModerationMenu.tsx +62 -0
- package/src/domain/openChannelModeration/index.ts +4 -0
- package/src/domain/openChannelModeration/module/createOpenChannelModerationModule.tsx +15 -0
- package/src/domain/openChannelModeration/module/moduleContext.tsx +33 -0
- package/src/domain/openChannelModeration/types.ts +48 -0
- package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.tsx +14 -0
- package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.tsx +33 -0
- package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusEmpty.tsx +15 -0
- package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusError.tsx +18 -0
- package/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsStatusLoading.tsx +15 -0
- package/src/domain/openChannelMutedParticipants/index.ts +9 -0
- package/src/domain/openChannelMutedParticipants/module/createOpenChannelMutedParticipantsModule.tsx +21 -0
- package/src/domain/openChannelMutedParticipants/module/moduleContext.tsx +30 -0
- package/src/domain/openChannelMutedParticipants/types.ts +50 -0
- package/src/domain/openChannelOperators/component/OpenChannelOperatorsHeader.tsx +22 -0
- package/src/domain/openChannelOperators/component/OpenChannelOperatorsList.tsx +31 -0
- package/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusEmpty.tsx +15 -0
- package/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusError.tsx +16 -0
- package/src/domain/openChannelOperators/component/OpenChannelOperatorsStatusLoading.tsx +15 -0
- package/src/domain/openChannelOperators/index.ts +6 -0
- package/src/domain/openChannelOperators/module/createOpenChannelOperatorsModule.tsx +21 -0
- package/src/domain/openChannelOperators/module/moduleContext.tsx +27 -0
- package/src/domain/openChannelOperators/types.ts +52 -0
- package/src/domain/openChannelSettings/component/OpenChannelSettingsHeader.tsx +29 -0
- package/src/domain/openChannelSettings/component/OpenChannelSettingsInfo.tsx +47 -0
- package/src/domain/openChannelSettings/component/OpenChannelSettingsMenu.tsx +105 -0
- package/src/domain/openChannelSettings/index.ts +5 -0
- package/src/domain/openChannelSettings/module/createOpenChannelSettingsModule.tsx +17 -0
- package/src/domain/openChannelSettings/module/moduleContext.tsx +171 -0
- package/src/domain/openChannelSettings/types.ts +54 -0
- package/src/domain/openChannelUserList/types.ts +30 -0
- package/src/fragments/createGroupChannelCreateFragment.tsx +4 -7
- package/src/fragments/createGroupChannelFragment.tsx +37 -2
- package/src/fragments/createGroupChannelMembersFragment.tsx +11 -8
- package/src/fragments/createGroupChannelMutedMembersFragment.tsx +12 -5
- package/src/fragments/createGroupChannelOperatorsFragment.tsx +3 -4
- package/src/fragments/createOpenChannelBannedUsersFragment.tsx +80 -0
- package/src/fragments/createOpenChannelCreateFragment.tsx +77 -0
- package/src/fragments/createOpenChannelFragment.tsx +157 -0
- package/src/fragments/createOpenChannelListFragment.tsx +67 -0
- package/src/fragments/createOpenChannelModerationFragment.tsx +55 -0
- package/src/fragments/createOpenChannelMutedParticipantsFragment.tsx +100 -0
- package/src/fragments/createOpenChannelOperatorsFragment.tsx +101 -0
- package/src/fragments/createOpenChannelParticipantsFragment.tsx +144 -0
- package/src/fragments/createOpenChannelRegisterOperatorFragment.tsx +99 -0
- package/src/fragments/createOpenChannelSettingsFragment.tsx +57 -0
- package/src/hooks/useMentionSuggestion.ts +10 -17
- package/src/index.ts +55 -49
- package/src/localization/StringSet.en.ts +1 -1
- package/src/localization/StringSet.type.ts +146 -258
- package/src/localization/createBaseStringSet.ts +369 -0
- package/src/platform/createFileService.expo.ts +5 -10
- package/src/platform/createFileService.native.ts +61 -28
- package/src/utils/normalizeFile.ts +32 -0
- package/src/version.ts +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +0 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +0 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +0 -1
- package/lib/commonjs/utils/fileTypeGuard.js +0 -26
- package/lib/commonjs/utils/fileTypeGuard.js.map +0 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +0 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +0 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +0 -1
- package/lib/module/utils/fileTypeGuard.js +0 -18
- package/lib/module/utils/fileTypeGuard.js.map +0 -1
- package/lib/typescript/__template__/component/__domain__Header.d.ts +0 -3
- package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +0 -2
- package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +0 -2
- package/lib/typescript/__template__/component/__domain__View.d.ts +0 -3
- package/lib/typescript/__template__/create__domain__Fragment.d.ts +0 -2
- package/lib/typescript/__template__/index.d.ts +0 -6
- package/lib/typescript/__template__/module/create__domain__Module.d.ts +0 -3
- package/lib/typescript/__template__/module/moduleContext.d.ts +0 -3
- package/lib/typescript/__template__/types.d.ts +0 -31
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +0 -39
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +0 -37
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +0 -26
- package/lib/typescript/src/utils/fileTypeGuard.d.ts +0 -4
- package/src/utils/fileTypeGuard.ts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","View","Icon","Image","createStyleSheet","useUIKitTheme","getAvailableUriFromFileMessage","usePlatformService","useRetry","videoFileUrl","retryCount","state","setState","thumbnail","loading","retryCountRef","retryTimeoutRef","mediaService","fetchThumbnail","getVideoThumbnail","url","timeMills","then","result","path","reloadReservation","current","setTimeout","clearTimeout","VideoFileMessage","message","variant","children","colors","fileUrl","style","styles","video","backgroundColor","onBackground04","bubbleContainer","ui","enabled","background","bubbleInnerContainer","uri","PlayIcon","onBackground02","playIcon","onBackgroundReverse01","borderRadius","overflow","alignItems","justifyContent","width","maxWidth","height","position","padding"],"sources":["VideoFileMessage.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { View } from 'react-native';\n\nimport { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport { usePlatformService } from '../../../hooks/useContext';\nimport type { FileMessageProps } from './index';\n\nconst useRetry = (videoFileUrl: string, retryCount = 5) => {\n const [state, setState] = useState({ thumbnail: null as null | string, loading: true });\n const retryCountRef = useRef(0);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n const { mediaService } = usePlatformService();\n\n const fetchThumbnail = () => {\n return mediaService.getVideoThumbnail({ url: videoFileUrl, timeMills: 1000 }).then((result) => {\n setState({ loading: false, thumbnail: result?.path ?? null });\n });\n };\n\n useEffect(() => {\n if (!state.thumbnail) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n fetchThumbnail();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [state.thumbnail]);\n\n return state;\n};\n\nconst VideoFileMessage = ({ message, variant, children }: FileMessageProps) => {\n const { colors } = useUIKitTheme();\n\n const fileUrl = getAvailableUriFromFileMessage(message);\n const style = [styles.video, { backgroundColor: colors.onBackground04 }];\n\n const { loading, thumbnail } = useRetry(fileUrl);\n\n if (loading) {\n return (\n <View
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","View","Icon","Image","createStyleSheet","useUIKitTheme","getAvailableUriFromFileMessage","usePlatformService","useRetry","videoFileUrl","retryCount","state","setState","thumbnail","loading","retryCountRef","retryTimeoutRef","mediaService","fetchThumbnail","getVideoThumbnail","url","timeMills","then","result","path","reloadReservation","current","setTimeout","clearTimeout","VideoFileMessage","message","variant","children","colors","fileUrl","style","styles","video","backgroundColor","onBackground04","bubbleContainer","ui","groupChannelMessage","enabled","background","bubbleInnerContainer","uri","PlayIcon","onBackground02","playIcon","onBackgroundReverse01","borderRadius","overflow","alignItems","justifyContent","width","maxWidth","height","position","padding"],"sources":["VideoFileMessage.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { View } from 'react-native';\n\nimport { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport { usePlatformService } from '../../../hooks/useContext';\nimport type { FileMessageProps } from './index';\n\nconst useRetry = (videoFileUrl: string, retryCount = 5) => {\n const [state, setState] = useState({ thumbnail: null as null | string, loading: true });\n const retryCountRef = useRef(0);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n const { mediaService } = usePlatformService();\n\n const fetchThumbnail = () => {\n return mediaService.getVideoThumbnail({ url: videoFileUrl, timeMills: 1000 }).then((result) => {\n setState({ loading: false, thumbnail: result?.path ?? null });\n });\n };\n\n useEffect(() => {\n if (!state.thumbnail) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n fetchThumbnail();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [state.thumbnail]);\n\n return state;\n};\n\nconst VideoFileMessage = ({ message, variant, children }: FileMessageProps) => {\n const { colors } = useUIKitTheme();\n\n const fileUrl = getAvailableUriFromFileMessage(message);\n const style = [styles.video, { backgroundColor: colors.onBackground04 }];\n\n const { loading, thumbnail } = useRetry(fileUrl);\n\n if (loading) {\n return (\n <View\n style={[styles.bubbleContainer, { backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background }]}\n >\n <View style={[styles.bubbleContainer, styles.bubbleInnerContainer]}>\n <View style={style} />\n <PlayIcon />\n </View>\n {children}\n </View>\n );\n }\n\n return (\n <View\n style={[styles.bubbleContainer, { backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background }]}\n >\n <View style={[styles.bubbleContainer, styles.bubbleInnerContainer]}>\n <Image source={{ uri: thumbnail || fileUrl }} style={style} resizeMode={'cover'} resizeMethod={'resize'} />\n <PlayIcon />\n </View>\n {children}\n </View>\n );\n};\n\nconst PlayIcon = () => {\n const { colors } = useUIKitTheme();\n\n return (\n <Icon\n icon={'play'}\n size={28}\n color={colors.onBackground02}\n containerStyle={[styles.playIcon, { backgroundColor: colors.onBackgroundReverse01 }]}\n />\n );\n};\n\nconst styles = createStyleSheet({\n bubbleContainer: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n bubbleInnerContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n video: {\n width: 240,\n maxWidth: 240,\n height: 160,\n },\n playIcon: {\n position: 'absolute',\n padding: 10,\n borderRadius: 50,\n },\n});\n\nexport default VideoFileMessage;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isSameDay","React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","MessageDateSeparator","message","prevMessage","STRINGS","colors","sameDay","createdAt","styles","container","view","backgroundColor","ui","dateSeparator","default","none","background","text","GROUP_CHANNEL","LIST_DATE_SEPARATOR","Date","alignItems","marginVertical","borderRadius","paddingVertical","paddingHorizontal"],"sources":["MessageDateSeparator.tsx"],"sourcesContent":["import isSameDay from 'date-fns/isSameDay';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n};\n\nconst MessageDateSeparator = ({ message, prevMessage }: Props) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const sameDay = isSameDay(message.createdAt, prevMessage?.createdAt ?? 0);\n if (sameDay) return null;\n return (\n <View style={styles.container}>\n <View style={[styles.view, { backgroundColor: colors.ui.dateSeparator.default.none.background }]}>\n <Text caption1 color={colors.ui.dateSeparator.default.none.text}>\n {STRINGS.GROUP_CHANNEL.LIST_DATE_SEPARATOR(new Date(message.createdAt))}\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n marginVertical: 16,\n },\n view: {\n borderRadius: 10,\n paddingVertical: 4,\n paddingHorizontal: 10,\n },\n});\n\nexport default MessageDateSeparator;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,oBAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,IAAT,EAAeC,gBAAf,EAAiCC,aAAjC,QAAsD,yCAAtD;AAGA,SAASC,eAAT,QAAgC,wBAAhC;;AAOA,MAAMC,oBAAoB,GAAG,QAAqC;EAAA,IAApC;IAAEC,OAAF;IAAWC;EAAX,CAAoC;EAChE,MAAM;IAAEC;EAAF,IAAcJ,eAAe,EAAnC;EACA,MAAM;IAAEK;EAAF,IAAaN,aAAa,EAAhC;
|
|
1
|
+
{"version":3,"names":["isSameDay","React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","MessageDateSeparator","message","prevMessage","STRINGS","colors","sameDay","createdAt","styles","container","view","backgroundColor","ui","dateSeparator","default","none","background","text","GROUP_CHANNEL","LIST_DATE_SEPARATOR","Date","alignItems","marginVertical","borderRadius","paddingVertical","paddingHorizontal"],"sources":["MessageDateSeparator.tsx"],"sourcesContent":["import isSameDay from 'date-fns/isSameDay';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n};\n\nconst MessageDateSeparator = ({ message, prevMessage }: Props) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const sameDay = isSameDay(message.createdAt, prevMessage?.createdAt ?? 0);\n if (sameDay) return null;\n return (\n <View style={styles.container}>\n <View style={[styles.view, { backgroundColor: colors.ui.dateSeparator.default.none.background }]}>\n <Text caption1 color={colors.ui.dateSeparator.default.none.text}>\n {STRINGS.GROUP_CHANNEL.LIST_DATE_SEPARATOR(new Date(message.createdAt))}\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n marginVertical: 16,\n },\n view: {\n borderRadius: 10,\n paddingVertical: 4,\n paddingHorizontal: 10,\n },\n});\n\nexport default MessageDateSeparator;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,oBAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,IAAT,EAAeC,gBAAf,EAAiCC,aAAjC,QAAsD,yCAAtD;AAGA,SAASC,eAAT,QAAgC,wBAAhC;;AAOA,MAAMC,oBAAoB,GAAG,QAAqC;EAAA,IAApC;IAAEC,OAAF;IAAWC;EAAX,CAAoC;EAChE,MAAM;IAAEC;EAAF,IAAcJ,eAAe,EAAnC;EACA,MAAM;IAAEK;EAAF,IAAaN,aAAa,EAAhC;EAEA,MAAMO,OAAO,GAAGZ,SAAS,CAACQ,OAAO,CAACK,SAAT,EAAoB,CAAAJ,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEI,SAAb,KAA0B,CAA9C,CAAzB;EACA,IAAID,OAAJ,EAAa,OAAO,IAAP;EACb,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEE,MAAM,CAACC;EAApB,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACD,MAAM,CAACE,IAAR,EAAc;MAAEC,eAAe,EAAEN,MAAM,CAACO,EAAP,CAAUC,aAAV,CAAwBC,OAAxB,CAAgCC,IAAhC,CAAqCC;IAAxD,CAAd;EAAb,gBACE,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAEX,MAAM,CAACO,EAAP,CAAUC,aAAV,CAAwBC,OAAxB,CAAgCC,IAAhC,CAAqCE;EAA3D,GACGb,OAAO,CAACc,aAAR,CAAsBC,mBAAtB,CAA0C,IAAIC,IAAJ,CAASlB,OAAO,CAACK,SAAjB,CAA1C,CADH,CADF,CADF,CADF;AASD,CAfD;;AAiBA,MAAMC,MAAM,GAAGV,gBAAgB,CAAC;EAC9BW,SAAS,EAAE;IACTY,UAAU,EAAE,QADH;IAETC,cAAc,EAAE;EAFP,CADmB;EAK9BZ,IAAI,EAAE;IACJa,YAAY,EAAE,EADV;IAEJC,eAAe,EAAE,CAFb;IAGJC,iBAAiB,EAAE;EAHf;AALwB,CAAD,CAA/B;AAYA,eAAexB,oBAAf"}
|
|
@@ -21,7 +21,7 @@ const MessageIncomingSenderName = _ref => {
|
|
|
21
21
|
style: styles.sender
|
|
22
22
|
}, (message.isFileMessage() || message.isUserMessage()) && /*#__PURE__*/React.createElement(Text, {
|
|
23
23
|
caption1: true,
|
|
24
|
-
color: colors.ui.
|
|
24
|
+
color: colors.ui.groupChannelMessage.incoming.enabled.textSenderName,
|
|
25
25
|
numberOfLines: 1
|
|
26
26
|
}, ((_message$sender = message.sender) === null || _message$sender === void 0 ? void 0 : _message$sender.nickname) || STRINGS.LABELS.USER_NO_NAME));
|
|
27
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","MessageIncomingSenderName","message","grouping","colors","STRINGS","styles","sender","isFileMessage","isUserMessage","ui","incoming","enabled","textSenderName","nickname","LABELS","USER_NO_NAME","marginLeft","marginBottom"],"sources":["MessageIncomingSenderName.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n grouping: boolean;\n};\nconst MessageIncomingSenderName = ({ message, grouping }: Props) => {\n const { colors } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n if (grouping) return null;\n\n return (\n <View style={styles.sender}>\n {(message.isFileMessage() || message.isUserMessage()) && (\n <Text caption1 color={colors.ui.
|
|
1
|
+
{"version":3,"names":["React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","MessageIncomingSenderName","message","grouping","colors","STRINGS","styles","sender","isFileMessage","isUserMessage","ui","groupChannelMessage","incoming","enabled","textSenderName","nickname","LABELS","USER_NO_NAME","marginLeft","marginBottom"],"sources":["MessageIncomingSenderName.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n grouping: boolean;\n};\nconst MessageIncomingSenderName = ({ message, grouping }: Props) => {\n const { colors } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n if (grouping) return null;\n\n return (\n <View style={styles.sender}>\n {(message.isFileMessage() || message.isUserMessage()) && (\n <Text caption1 color={colors.ui.groupChannelMessage.incoming.enabled.textSenderName} numberOfLines={1}>\n {message.sender?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n sender: {\n marginLeft: 12,\n marginBottom: 4,\n },\n});\n\nexport default MessageIncomingSenderName;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,IAAT,EAAeC,gBAAf,EAAiCC,aAAjC,QAAsD,yCAAtD;AAGA,SAASC,eAAT,QAAgC,wBAAhC;;AAMA,MAAMC,yBAAyB,GAAG,QAAkC;EAAA;;EAAA,IAAjC;IAAEC,OAAF;IAAWC;EAAX,CAAiC;EAClE,MAAM;IAAEC;EAAF,IAAaL,aAAa,EAAhC;EACA,MAAM;IAAEM;EAAF,IAAcL,eAAe,EAAnC;EACA,IAAIG,QAAJ,EAAc,OAAO,IAAP;EAEd,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEG,MAAM,CAACC;EAApB,GACG,CAACL,OAAO,CAACM,aAAR,MAA2BN,OAAO,CAACO,aAAR,EAA5B,kBACC,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAEL,MAAM,CAACM,EAAP,CAAUC,mBAAV,CAA8BC,QAA9B,CAAuCC,OAAvC,CAA+CC,cAArE;IAAqF,aAAa,EAAE;EAApG,GACG,oBAAAZ,OAAO,CAACK,MAAR,oEAAgBQ,QAAhB,KAA4BV,OAAO,CAACW,MAAR,CAAeC,YAD9C,CAFJ,CADF;AASD,CAdD;;AAgBA,MAAMX,MAAM,GAAGR,gBAAgB,CAAC;EAC9BS,MAAM,EAAE;IACNW,UAAU,EAAE,EADN;IAENC,YAAY,EAAE;EAFR;AADsB,CAAD,CAA/B;AAOA,eAAelB,yBAAf"}
|
|
@@ -20,7 +20,7 @@ const MessageTime = _ref => {
|
|
|
20
20
|
style: style
|
|
21
21
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
22
22
|
caption4: true,
|
|
23
|
-
color: colors.ui.
|
|
23
|
+
color: colors.ui.groupChannelMessage.incoming.enabled.textTime
|
|
24
24
|
}, STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message)));
|
|
25
25
|
};
|
|
26
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","useUIKitTheme","useLocalization","MessageTime","message","grouping","style","STRINGS","colors","ui","incoming","enabled","textTime","GROUP_CHANNEL","MESSAGE_BUBBLE_TIME"],"sources":["MessageTime.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport { Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n grouping: boolean;\n style?: StyleProp<ViewStyle>;\n};\nconst MessageTime = ({ message, grouping, style }: Props) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n if (grouping) return null;\n\n return (\n <View style={style}>\n <Text caption4 color={colors.ui.
|
|
1
|
+
{"version":3,"names":["React","View","Text","useUIKitTheme","useLocalization","MessageTime","message","grouping","style","STRINGS","colors","ui","groupChannelMessage","incoming","enabled","textTime","GROUP_CHANNEL","MESSAGE_BUBBLE_TIME"],"sources":["MessageTime.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport { Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n message: SendbirdMessage;\n grouping: boolean;\n style?: StyleProp<ViewStyle>;\n};\nconst MessageTime = ({ message, grouping, style }: Props) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n if (grouping) return null;\n\n return (\n <View style={style}>\n <Text caption4 color={colors.ui.groupChannelMessage.incoming.enabled.textTime}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message)}\n </Text>\n </View>\n );\n};\n\nexport default MessageTime;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,IAApB,QAA2C,cAA3C;AAEA,SAASC,IAAT,EAAeC,aAAf,QAAoC,yCAApC;AAGA,SAASC,eAAT,QAAgC,wBAAhC;;AAOA,MAAMC,WAAW,GAAG,QAAyC;EAAA,IAAxC;IAAEC,OAAF;IAAWC,QAAX;IAAqBC;EAArB,CAAwC;EAC3D,MAAM;IAAEC;EAAF,IAAcL,eAAe,EAAnC;EACA,MAAM;IAAEM;EAAF,IAAaP,aAAa,EAAhC;EACA,IAAII,QAAJ,EAAc,OAAO,IAAP;EAEd,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC;EAAb,gBACE,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAEE,MAAM,CAACC,EAAP,CAAUC,mBAAV,CAA8BC,QAA9B,CAAuCC,OAAvC,CAA+CC;EAArE,GACGN,OAAO,CAACO,aAAR,CAAsBC,mBAAtB,CAA0CX,OAA1C,CADH,CADF,CADF;AAOD,CAZD;;AAcA,eAAeD,WAAf"}
|
|
@@ -15,7 +15,7 @@ const UnknownMessage = _ref => {
|
|
|
15
15
|
const {
|
|
16
16
|
colors
|
|
17
17
|
} = useUIKitTheme();
|
|
18
|
-
const color = colors.ui.
|
|
18
|
+
const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
|
|
19
19
|
return /*#__PURE__*/React.createElement(View, {
|
|
20
20
|
style: [styles.container, {
|
|
21
21
|
backgroundColor: color.background
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","UnknownMessage","message","variant","pressed","STRINGS","colors","color","ui","styles","container","backgroundColor","background","onBackground01","GROUP_CHANNEL","MESSAGE_BUBBLE_UNKNOWN_TITLE","onBackground02","MESSAGE_BUBBLE_UNKNOWN_DESC","paddingHorizontal","paddingVertical","borderRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { MessageRendererInterface } from '../index';\n\nexport type UnknownMessageProps = MessageRendererInterface;\nconst UnknownMessage = ({ message, variant, pressed }: UnknownMessageProps) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const color = colors.ui.
|
|
1
|
+
{"version":3,"names":["React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","UnknownMessage","message","variant","pressed","STRINGS","colors","color","ui","groupChannelMessage","styles","container","backgroundColor","background","onBackground01","GROUP_CHANNEL","MESSAGE_BUBBLE_UNKNOWN_TITLE","onBackground02","MESSAGE_BUBBLE_UNKNOWN_DESC","paddingHorizontal","paddingVertical","borderRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { MessageRendererInterface } from '../index';\n\nexport type UnknownMessageProps = MessageRendererInterface;\nconst UnknownMessage = ({ message, variant, pressed }: UnknownMessageProps) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <Text body3 color={colors.onBackground01}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message)}\n </Text>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message)}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n },\n});\n\nexport default UnknownMessage;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,IAAT,EAAeC,gBAAf,EAAiCC,aAAjC,QAAsD,yCAAtD;AAEA,SAASC,eAAT,QAAgC,2BAAhC;;AAIA,MAAMC,cAAc,GAAG,QAAwD;EAAA,IAAvD;IAAEC,OAAF;IAAWC,OAAX;IAAoBC;EAApB,CAAuD;EAC7E,MAAM;IAAEC;EAAF,IAAcL,eAAe,EAAnC;EACA,MAAM;IAAEM;EAAF,IAAaP,aAAa,EAAhC;EACA,MAAMQ,KAAK,GAAGD,MAAM,CAACE,EAAP,CAAUC,mBAAV,CAA8BN,OAA9B,EAAuCC,OAAO,GAAG,SAAH,GAAe,SAA7D,CAAd;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACM,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEL,KAAK,CAACM;IAAzB,CAAnB;EAAb,gBACE,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEP,MAAM,CAACQ;EAA1B,GACGT,OAAO,CAACU,aAAR,CAAsBC,4BAAtB,CAAmDd,OAAnD,CADH,CADF,eAIE,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACW;EAA1B,GACGZ,OAAO,CAACU,aAAR,CAAsBG,2BAAtB,CAAkDhB,OAAlD,CADH,CAJF,CADF;AAUD,CAdD;;AAgBA,MAAMQ,MAAM,GAAGZ,gBAAgB,CAAC;EAC9Ba,SAAS,EAAE;IACTQ,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,CAFR;IAGTC,YAAY,EAAE;EAHL;AADmB,CAAD,CAA/B;AAQA,eAAepB,cAAf"}
|
|
@@ -30,7 +30,7 @@ const BaseUserMessage = _ref => {
|
|
|
30
30
|
colors,
|
|
31
31
|
palette
|
|
32
32
|
} = useUIKitTheme();
|
|
33
|
-
const color = colors.ui.
|
|
33
|
+
const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
|
|
34
34
|
return /*#__PURE__*/React.createElement(View, {
|
|
35
35
|
style: [styles.container, {
|
|
36
36
|
backgroundColor: color.background
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","RegexText","Text","createStyleSheet","useUIKitTheme","urlRegexStrict","useLocalization","useSendbirdChat","useUserProfile","SBUUtils","BaseUserMessage","message","variant","pressed","children","onLongPressMentionedUser","onLongPressURL","mentionManager","currentUser","show","STRINGS","colors","palette","color","ui","styles","container","backgroundColor","background","wrapper","textMsg","regex","templateRegex","replacer","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","userId","style","fontWeight","highlight","asMentionedMessageText","openURL","textDecorationLine","shouldUseMentionedMessageTemplate","mentionedMessageTemplate","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","borderRadius","overflow","paddingHorizontal","paddingVertical"],"sources":["BaseUserMessage.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { RegexText, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { urlRegexStrict } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../../../hooks/useContext';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport type { UserMessageProps } from './index';\n\nconst BaseUserMessage = ({\n message,\n variant,\n pressed,\n children,\n onLongPressMentionedUser,\n onLongPressURL,\n}: UserMessageProps) => {\n const { mentionManager, currentUser } = useSendbirdChat();\n const { show } = useUserProfile();\n const { STRINGS } = useLocalization();\n const { colors, palette } = useUIKitTheme();\n\n const color = colors.ui.
|
|
1
|
+
{"version":3,"names":["React","View","RegexText","Text","createStyleSheet","useUIKitTheme","urlRegexStrict","useLocalization","useSendbirdChat","useUserProfile","SBUUtils","BaseUserMessage","message","variant","pressed","children","onLongPressMentionedUser","onLongPressURL","mentionManager","currentUser","show","STRINGS","colors","palette","color","ui","groupChannelMessage","styles","container","backgroundColor","background","wrapper","textMsg","regex","templateRegex","replacer","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","userId","style","fontWeight","highlight","asMentionedMessageText","openURL","textDecorationLine","shouldUseMentionedMessageTemplate","mentionedMessageTemplate","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","borderRadius","overflow","paddingHorizontal","paddingVertical"],"sources":["BaseUserMessage.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { RegexText, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { urlRegexStrict } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../../../hooks/useContext';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport type { UserMessageProps } from './index';\n\nconst BaseUserMessage = ({\n message,\n variant,\n pressed,\n children,\n onLongPressMentionedUser,\n onLongPressURL,\n}: UserMessageProps) => {\n const { mentionManager, currentUser } = useSendbirdChat();\n const { show } = useUserProfile();\n const { STRINGS } = useLocalization();\n const { colors, palette } = useUIKitTheme();\n\n const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];\n\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <View style={styles.wrapper}>\n <Text body3 color={color.textMsg}>\n <RegexText\n body3\n color={color.textMsg}\n patterns={[\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => show(user)}\n onLongPress={onLongPressMentionedUser}\n style={[\n parentProps?.style,\n { fontWeight: 'bold' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n {\n regex: urlRegexStrict,\n replacer({ match, parentProps, index, keyPrefix }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => SBUUtils.openURL(match)}\n onLongPress={onLongPressURL}\n style={[parentProps?.style, { textDecorationLine: 'underline' }]}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {mentionManager.shouldUseMentionedMessageTemplate(message)\n ? message.mentionedMessageTemplate\n : message.message}\n </RegexText>\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </Text>\n </View>\n {children}\n </View>\n );\n};\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n wrapper: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n },\n});\n\nexport default BaseUserMessage;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,SAAT,EAAoBC,IAApB,EAA0BC,gBAA1B,EAA4CC,aAA5C,QAAiE,yCAAjE;AACA,SAASC,cAAT,QAA+B,uBAA/B;AAEA,SAASC,eAAT,EAA0BC,eAA1B,EAA2CC,cAA3C,QAAiE,2BAAjE;AACA,OAAOC,QAAP,MAAqB,wBAArB;;AAGA,MAAMC,eAAe,GAAG,QAOA;EAAA,IAPC;IACvBC,OADuB;IAEvBC,OAFuB;IAGvBC,OAHuB;IAIvBC,QAJuB;IAKvBC,wBALuB;IAMvBC;EANuB,CAOD;EACtB,MAAM;IAAEC,cAAF;IAAkBC;EAAlB,IAAkCX,eAAe,EAAvD;EACA,MAAM;IAAEY;EAAF,IAAWX,cAAc,EAA/B;EACA,MAAM;IAAEY;EAAF,IAAcd,eAAe,EAAnC;EACA,MAAM;IAAEe,MAAF;IAAUC;EAAV,IAAsBlB,aAAa,EAAzC;EAEA,MAAMmB,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUC,mBAAV,CAA8Bb,OAA9B,EAAuCC,OAAO,GAAG,SAAH,GAAe,SAA7D,CAAd;EAEA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACa,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEL,KAAK,CAACM;IAAzB,CAAnB;EAAb,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAEH,MAAM,CAACI;EAApB,gBACE,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEP,KAAK,CAACQ;EAAzB,gBACE,oBAAC,SAAD;IACE,KAAK,MADP;IAEE,KAAK,EAAER,KAAK,CAACQ,OAFf;IAGE,QAAQ,EAAE,CACR;MACEC,KAAK,EAAEf,cAAc,CAACgB,aADxB;;MAEEC,QAAQ,QAAmD;QAAA;;QAAA,IAAlD;UAAEC,KAAF;UAASC,MAAT;UAAiBC,WAAjB;UAA8BC,KAA9B;UAAqCC;QAArC,CAAkD;QACzD,MAAMC,IAAI,4BAAG7B,OAAO,CAAC8B,cAAX,0DAAG,sBAAwBC,IAAxB,CAA8BC,EAAD,IAAQA,EAAE,CAACC,MAAH,KAAcR,MAAM,CAAC,CAAD,CAAzD,CAAb;;QACA,IAAII,IAAJ,EAAU;UACR,oBACE,oBAAC,IAAD,eACMH,WADN;YAEE,GAAG,EAAG,GAAEE,SAAU,IAAGD,KAAM,EAF7B;YAGE,OAAO,EAAE,MAAMnB,IAAI,CAACqB,IAAD,CAHrB;YAIE,WAAW,EAAEzB,wBAJf;YAKE,KAAK,EAAE,CACLsB,WADK,aACLA,WADK,uBACLA,WAAW,CAAEQ,KADR,EAEL;cAAEC,UAAU,EAAE;YAAd,CAFK,EAGLN,IAAI,CAACI,MAAL,MAAgB1B,WAAhB,aAAgBA,WAAhB,uBAAgBA,WAAW,CAAE0B,MAA7B,KAAuC;cAAEhB,eAAe,EAAEN,OAAO,CAACyB;YAA3B,CAHlC;UALT,IAWI,GAAE9B,cAAc,CAAC+B,sBAAf,CAAsCR,IAAtC,CAA4C,EAXlD,CADF;QAeD;;QACD,OAAOL,KAAP;MACD;;IAtBH,CADQ,EAyBR;MACEH,KAAK,EAAE3B,cADT;;MAEE6B,QAAQ,QAA2C;QAAA,IAA1C;UAAEC,KAAF;UAASE,WAAT;UAAsBC,KAAtB;UAA6BC;QAA7B,CAA0C;QACjD,oBACE,oBAAC,IAAD,eACMF,WADN;UAEE,GAAG,EAAG,GAAEE,SAAU,IAAGD,KAAM,EAF7B;UAGE,OAAO,EAAE,MAAM7B,QAAQ,CAACwC,OAAT,CAAiBd,KAAjB,CAHjB;UAIE,WAAW,EAAEnB,cAJf;UAKE,KAAK,EAAE,CAACqB,WAAD,aAACA,WAAD,uBAACA,WAAW,CAAEQ,KAAd,EAAqB;YAAEK,kBAAkB,EAAE;UAAtB,CAArB;QALT,IAOGf,KAPH,CADF;MAWD;;IAdH,CAzBQ;EAHZ,GA8CGlB,cAAc,CAACkC,iCAAf,CAAiDxC,OAAjD,IACGA,OAAO,CAACyC,wBADX,GAEGzC,OAAO,CAACA,OAhDd,CADF,EAmDG0C,OAAO,CAAC1C,OAAO,CAAC2C,SAAT,CAAP,iBACC,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAE/B,KAAK,CAACgC;EAAzB,GACGnC,OAAO,CAACoC,aAAR,CAAsBC,6BADzB,CApDJ,CADF,CADF,EA4DG3C,QA5DH,CADF;AAgED,CA/ED;;AAgFA,MAAMY,MAAM,GAAGvB,gBAAgB,CAAC;EAC9BwB,SAAS,EAAE;IACT+B,YAAY,EAAE,EADL;IAETC,QAAQ,EAAE;EAFD,CADmB;EAK9B7B,OAAO,EAAE;IACP8B,iBAAiB,EAAE,EADZ;IAEPC,eAAe,EAAE;EAFV;AALqB,CAAD,CAA/B;AAWA,eAAenD,eAAf"}
|
|
@@ -35,7 +35,7 @@ const OpenGraphUserMessage = _ref => {
|
|
|
35
35
|
palette
|
|
36
36
|
} = useUIKitTheme();
|
|
37
37
|
const [imageNotFound, setImageNotFound] = useState(false);
|
|
38
|
-
const color = colors.ui.
|
|
38
|
+
const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
|
|
39
39
|
const containerBackground = select({
|
|
40
40
|
dark: palette.background400,
|
|
41
41
|
light: palette.background100
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","TouchableOpacity","View","Icon","Image","RegexText","Text","createStyleSheet","useUIKitTheme","conditionChaining","urlRegexRough","useLocalization","useSendbirdChat","useUserProfile","SBUUtils","OpenGraphUserMessage","message","variant","pressed","ogMetaData","children","onLongPressMentionedUser","onLongPressURL","mentionManager","currentUser","STRINGS","show","colors","select","palette","imageNotFound","setImageNotFound","color","ui","containerBackground","dark","background400","light","background100","styles","bubbleContainer","backgroundColor","container","background","messageContainer","textMsg","regex","templateRegex","replacer","match","groups","parentProps","keyPrefix","index","user","mentionedUsers","find","it","userId","isCurrentUser","style","mentionedText","highlight","asMentionedMessageText","openURL","urlText","shouldUseMentionedMessageTemplate","mentionedMessageTemplate","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","background500","background200","url","ogImageContainer","ogImage","onBackground02","uri","defaultImage","ogContainer","onBackground01","ogTitle","title","description","ogDesc","borderRadius","overflow","width","maxWidth","paddingVertical","paddingHorizontal","paddingTop","paddingBottom","flex","height","marginBottom","lineHeight","fontWeight","textDecorationLine"],"sources":["OpenGraphUserMessage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport type { OGMetaData } from '@sendbird/chat/message';\nimport { Icon, Image, RegexText, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining, urlRegexRough } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../../../hooks/useContext';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport type { UserMessageProps } from './index';\n\ntype Props = UserMessageProps & {\n ogMetaData: OGMetaData;\n};\n\nconst OpenGraphUserMessage = ({\n message,\n variant,\n pressed,\n ogMetaData,\n children,\n onLongPressMentionedUser,\n onLongPressURL,\n}: Props) => {\n const { mentionManager, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { show } = useUserProfile();\n const { colors, select, palette } = useUIKitTheme();\n\n const [imageNotFound, setImageNotFound] = useState(false);\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n\n const containerBackground = select({ dark: palette.background400, light: palette.background100 });\n\n return (\n <View style={[styles.bubbleContainer, { backgroundColor: containerBackground }]}>\n <View style={[styles.container, styles.bubbleContainer, { backgroundColor: color.background }]}>\n <View style={styles.messageContainer}>\n <Text body3 color={color.textMsg}>\n <RegexText\n body3\n color={color.textMsg}\n patterns={[\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, keyPrefix, index }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const isCurrentUser = user.userId === currentUser?.userId;\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => show(user)}\n onLongPress={onLongPressMentionedUser}\n style={[\n parentProps?.style,\n styles.mentionedText,\n isCurrentUser && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n {\n regex: urlRegexRough,\n replacer({ match, parentProps, keyPrefix, index }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => SBUUtils.openURL(match)}\n onLongPress={onLongPressURL}\n style={[parentProps?.style, styles.urlText]}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {mentionManager.shouldUseMentionedMessageTemplate(message)\n ? message.mentionedMessageTemplate\n : message.message}\n </RegexText>\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </Text>\n </View>\n <TouchableOpacity\n style={{ backgroundColor: select({ dark: palette.background500, light: palette.background200 }) }}\n activeOpacity={0.85}\n onPress={() => SBUUtils.openURL(ogMetaData.url)}\n >\n <View\n style={[\n styles.ogImageContainer,\n { backgroundColor: select({ dark: palette.background500, light: palette.background200 }) },\n ]}\n >\n {conditionChaining(\n [imageNotFound],\n [\n <Icon\n containerStyle={styles.ogImage}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />,\n <Image\n source={{ uri: ogMetaData.defaultImage?.url }}\n style={styles.ogImage}\n resizeMode={'cover'}\n onError={() => setImageNotFound(true)}\n />,\n ],\n )}\n </View>\n <View style={[styles.ogContainer, { backgroundColor: containerBackground }]}>\n <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>\n {ogMetaData.title}\n </Text>\n {Boolean(ogMetaData.description) && (\n <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>\n {ogMetaData.description}\n </Text>\n )}\n <Text numberOfLines={1} caption2 color={colors.onBackground02}>\n {ogMetaData.url}\n </Text>\n </View>\n </TouchableOpacity>\n </View>\n {children}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n bubbleContainer: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n container: {\n width: 240,\n maxWidth: 240,\n },\n messageContainer: {\n paddingVertical: 6,\n paddingHorizontal: 12,\n },\n ogContainer: {\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n },\n ogImageContainer: {\n flex: 1,\n height: 136,\n },\n ogImage: {\n width: '100%',\n height: '100%',\n },\n ogTitle: {\n marginBottom: 4,\n },\n ogDesc: {\n lineHeight: 14,\n marginBottom: 8,\n },\n mentionedText: {\n fontWeight: 'bold',\n },\n urlText: {\n textDecorationLine: 'underline',\n },\n});\n\nexport default OpenGraphUserMessage;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","TouchableOpacity","View","Icon","Image","RegexText","Text","createStyleSheet","useUIKitTheme","conditionChaining","urlRegexRough","useLocalization","useSendbirdChat","useUserProfile","SBUUtils","OpenGraphUserMessage","message","variant","pressed","ogMetaData","children","onLongPressMentionedUser","onLongPressURL","mentionManager","currentUser","STRINGS","show","colors","select","palette","imageNotFound","setImageNotFound","color","ui","groupChannelMessage","containerBackground","dark","background400","light","background100","styles","bubbleContainer","backgroundColor","container","background","messageContainer","textMsg","regex","templateRegex","replacer","match","groups","parentProps","keyPrefix","index","user","mentionedUsers","find","it","userId","isCurrentUser","style","mentionedText","highlight","asMentionedMessageText","openURL","urlText","shouldUseMentionedMessageTemplate","mentionedMessageTemplate","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","background500","background200","url","ogImageContainer","ogImage","onBackground02","uri","defaultImage","ogContainer","onBackground01","ogTitle","title","description","ogDesc","borderRadius","overflow","width","maxWidth","paddingVertical","paddingHorizontal","paddingTop","paddingBottom","flex","height","marginBottom","lineHeight","fontWeight","textDecorationLine"],"sources":["OpenGraphUserMessage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport type { OGMetaData } from '@sendbird/chat/message';\nimport { Icon, Image, RegexText, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining, urlRegexRough } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../../../hooks/useContext';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport type { UserMessageProps } from './index';\n\ntype Props = UserMessageProps & {\n ogMetaData: OGMetaData;\n};\n\nconst OpenGraphUserMessage = ({\n message,\n variant,\n pressed,\n ogMetaData,\n children,\n onLongPressMentionedUser,\n onLongPressURL,\n}: Props) => {\n const { mentionManager, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { show } = useUserProfile();\n const { colors, select, palette } = useUIKitTheme();\n\n const [imageNotFound, setImageNotFound] = useState(false);\n const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];\n\n const containerBackground = select({ dark: palette.background400, light: palette.background100 });\n\n return (\n <View style={[styles.bubbleContainer, { backgroundColor: containerBackground }]}>\n <View style={[styles.container, styles.bubbleContainer, { backgroundColor: color.background }]}>\n <View style={styles.messageContainer}>\n <Text body3 color={color.textMsg}>\n <RegexText\n body3\n color={color.textMsg}\n patterns={[\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, keyPrefix, index }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const isCurrentUser = user.userId === currentUser?.userId;\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => show(user)}\n onLongPress={onLongPressMentionedUser}\n style={[\n parentProps?.style,\n styles.mentionedText,\n isCurrentUser && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n {\n regex: urlRegexRough,\n replacer({ match, parentProps, keyPrefix, index }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => SBUUtils.openURL(match)}\n onLongPress={onLongPressURL}\n style={[parentProps?.style, styles.urlText]}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {mentionManager.shouldUseMentionedMessageTemplate(message)\n ? message.mentionedMessageTemplate\n : message.message}\n </RegexText>\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </Text>\n </View>\n <TouchableOpacity\n style={{ backgroundColor: select({ dark: palette.background500, light: palette.background200 }) }}\n activeOpacity={0.85}\n onPress={() => SBUUtils.openURL(ogMetaData.url)}\n >\n <View\n style={[\n styles.ogImageContainer,\n { backgroundColor: select({ dark: palette.background500, light: palette.background200 }) },\n ]}\n >\n {conditionChaining(\n [imageNotFound],\n [\n <Icon\n containerStyle={styles.ogImage}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />,\n <Image\n source={{ uri: ogMetaData.defaultImage?.url }}\n style={styles.ogImage}\n resizeMode={'cover'}\n onError={() => setImageNotFound(true)}\n />,\n ],\n )}\n </View>\n <View style={[styles.ogContainer, { backgroundColor: containerBackground }]}>\n <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>\n {ogMetaData.title}\n </Text>\n {Boolean(ogMetaData.description) && (\n <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>\n {ogMetaData.description}\n </Text>\n )}\n <Text numberOfLines={1} caption2 color={colors.onBackground02}>\n {ogMetaData.url}\n </Text>\n </View>\n </TouchableOpacity>\n </View>\n {children}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n bubbleContainer: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n container: {\n width: 240,\n maxWidth: 240,\n },\n messageContainer: {\n paddingVertical: 6,\n paddingHorizontal: 12,\n },\n ogContainer: {\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n },\n ogImageContainer: {\n flex: 1,\n height: 136,\n },\n ogImage: {\n width: '100%',\n height: '100%',\n },\n ogTitle: {\n marginBottom: 4,\n },\n ogDesc: {\n lineHeight: 14,\n marginBottom: 8,\n },\n mentionedText: {\n fontWeight: 'bold',\n },\n urlText: {\n textDecorationLine: 'underline',\n },\n});\n\nexport default OpenGraphUserMessage;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import isSameDay from 'date-fns/isSameDay';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
+
import { useLocalization } from '../../hooks/useContext';
|
|
6
|
+
|
|
7
|
+
const OpenChannelMessageDateSeparator = _ref => {
|
|
8
|
+
let {
|
|
9
|
+
message,
|
|
10
|
+
prevMessage
|
|
11
|
+
} = _ref;
|
|
12
|
+
const {
|
|
13
|
+
STRINGS
|
|
14
|
+
} = useLocalization();
|
|
15
|
+
const {
|
|
16
|
+
colors
|
|
17
|
+
} = useUIKitTheme();
|
|
18
|
+
const sameDay = isSameDay(message.createdAt, (prevMessage === null || prevMessage === void 0 ? void 0 : prevMessage.createdAt) ?? 0);
|
|
19
|
+
if (sameDay) return null;
|
|
20
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
21
|
+
style: styles.container
|
|
22
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
23
|
+
style: [styles.view, {
|
|
24
|
+
backgroundColor: colors.ui.dateSeparator.default.none.background
|
|
25
|
+
}]
|
|
26
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
27
|
+
caption1: true,
|
|
28
|
+
color: colors.ui.dateSeparator.default.none.text
|
|
29
|
+
}, STRINGS.OPEN_CHANNEL.LIST_DATE_SEPARATOR(new Date(message.createdAt)))));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const styles = createStyleSheet({
|
|
33
|
+
container: {
|
|
34
|
+
alignItems: 'center',
|
|
35
|
+
marginVertical: 16
|
|
36
|
+
},
|
|
37
|
+
view: {
|
|
38
|
+
borderRadius: 10,
|
|
39
|
+
paddingVertical: 4,
|
|
40
|
+
paddingHorizontal: 10
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
export default OpenChannelMessageDateSeparator;
|
|
44
|
+
//# sourceMappingURL=OpenChannelMessageDateSeparator.js.map
|
package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isSameDay","React","View","Text","createStyleSheet","useUIKitTheme","useLocalization","OpenChannelMessageDateSeparator","message","prevMessage","STRINGS","colors","sameDay","createdAt","styles","container","view","backgroundColor","ui","dateSeparator","default","none","background","text","OPEN_CHANNEL","LIST_DATE_SEPARATOR","Date","alignItems","marginVertical","borderRadius","paddingVertical","paddingHorizontal"],"sources":["OpenChannelMessageDateSeparator.tsx"],"sourcesContent":["import isSameDay from 'date-fns/isSameDay';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../hooks/useContext';\n\nconst OpenChannelMessageDateSeparator = ({\n message,\n prevMessage,\n}: {\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n}) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const sameDay = isSameDay(message.createdAt, prevMessage?.createdAt ?? 0);\n if (sameDay) return null;\n\n return (\n <View style={styles.container}>\n <View style={[styles.view, { backgroundColor: colors.ui.dateSeparator.default.none.background }]}>\n <Text caption1 color={colors.ui.dateSeparator.default.none.text}>\n {STRINGS.OPEN_CHANNEL.LIST_DATE_SEPARATOR(new Date(message.createdAt))}\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n marginVertical: 16,\n },\n view: {\n borderRadius: 10,\n paddingVertical: 4,\n paddingHorizontal: 10,\n },\n});\n\nexport default OpenChannelMessageDateSeparator;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,oBAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,IAAT,EAAeC,gBAAf,EAAiCC,aAAjC,QAAsD,yCAAtD;AAGA,SAASC,eAAT,QAAgC,wBAAhC;;AAEA,MAAMC,+BAA+B,GAAG,QAMlC;EAAA,IANmC;IACvCC,OADuC;IAEvCC;EAFuC,CAMnC;EACJ,MAAM;IAAEC;EAAF,IAAcJ,eAAe,EAAnC;EACA,MAAM;IAAEK;EAAF,IAAaN,aAAa,EAAhC;EAEA,MAAMO,OAAO,GAAGZ,SAAS,CAACQ,OAAO,CAACK,SAAT,EAAoB,CAAAJ,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEI,SAAb,KAA0B,CAA9C,CAAzB;EACA,IAAID,OAAJ,EAAa,OAAO,IAAP;EAEb,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEE,MAAM,CAACC;EAApB,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACD,MAAM,CAACE,IAAR,EAAc;MAAEC,eAAe,EAAEN,MAAM,CAACO,EAAP,CAAUC,aAAV,CAAwBC,OAAxB,CAAgCC,IAAhC,CAAqCC;IAAxD,CAAd;EAAb,gBACE,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAEX,MAAM,CAACO,EAAP,CAAUC,aAAV,CAAwBC,OAAxB,CAAgCC,IAAhC,CAAqCE;EAA3D,GACGb,OAAO,CAACc,YAAR,CAAqBC,mBAArB,CAAyC,IAAIC,IAAJ,CAASlB,OAAO,CAACK,SAAjB,CAAzC,CADH,CADF,CADF,CADF;AASD,CAtBD;;AAwBA,MAAMC,MAAM,GAAGV,gBAAgB,CAAC;EAC9BW,SAAS,EAAE;IACTY,UAAU,EAAE,QADH;IAETC,cAAc,EAAE;EAFP,CADmB;EAK9BZ,IAAI,EAAE;IACJa,YAAY,EAAE,EADV;IAEJC,eAAe,EAAE,CAFb;IAGJC,iBAAiB,EAAE;EAHf;AALwB,CAAD,CAA/B;AAYA,eAAexB,+BAAf"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
+
import { calcMessageGrouping, getMessageType } from '@sendbird/uikit-utils';
|
|
6
|
+
import { useLocalization, usePlatformService } from '../../hooks/useContext';
|
|
7
|
+
import SBUUtils from '../../libs/SBUUtils';
|
|
8
|
+
import OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';
|
|
9
|
+
|
|
10
|
+
const OpenChannelMessageRenderer = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
channel,
|
|
13
|
+
message,
|
|
14
|
+
onPress,
|
|
15
|
+
onLongPress,
|
|
16
|
+
onPressAvatar,
|
|
17
|
+
enableMessageGrouping,
|
|
18
|
+
prevMessage,
|
|
19
|
+
nextMessage
|
|
20
|
+
} = _ref;
|
|
21
|
+
const {
|
|
22
|
+
STRINGS
|
|
23
|
+
} = useLocalization();
|
|
24
|
+
const {
|
|
25
|
+
mediaService
|
|
26
|
+
} = usePlatformService();
|
|
27
|
+
const {
|
|
28
|
+
groupWithPrev
|
|
29
|
+
} = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);
|
|
30
|
+
const messageProps = {
|
|
31
|
+
channel,
|
|
32
|
+
onPress,
|
|
33
|
+
onLongPress,
|
|
34
|
+
onPressURL: () => {
|
|
35
|
+
var _message$ogMetaData, _message$ogMetaData2;
|
|
36
|
+
|
|
37
|
+
return ((_message$ogMetaData = message.ogMetaData) === null || _message$ogMetaData === void 0 ? void 0 : _message$ogMetaData.url) && SBUUtils.openURL((_message$ogMetaData2 = message.ogMetaData) === null || _message$ogMetaData2 === void 0 ? void 0 : _message$ogMetaData2.url);
|
|
38
|
+
},
|
|
39
|
+
onPressAvatar: () => 'sender' in message && (onPressAvatar === null || onPressAvatar === void 0 ? void 0 : onPressAvatar(message.sender, {
|
|
40
|
+
hideMessageButton: true
|
|
41
|
+
})),
|
|
42
|
+
grouped: groupWithPrev,
|
|
43
|
+
strings: {
|
|
44
|
+
edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,
|
|
45
|
+
senderName: 'sender' in message && message.sender.nickname || STRINGS.LABELS.USER_NO_NAME,
|
|
46
|
+
sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),
|
|
47
|
+
fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',
|
|
48
|
+
unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),
|
|
49
|
+
unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message)
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const renderMessage = () => {
|
|
54
|
+
switch (getMessageType(message)) {
|
|
55
|
+
case 'admin':
|
|
56
|
+
{
|
|
57
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.Admin, _extends({
|
|
58
|
+
message: message
|
|
59
|
+
}, messageProps));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
case 'user':
|
|
63
|
+
{
|
|
64
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.User, _extends({
|
|
65
|
+
message: message
|
|
66
|
+
}, messageProps));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
case 'user.opengraph':
|
|
70
|
+
{
|
|
71
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.OpenGraphUser, _extends({
|
|
72
|
+
message: message
|
|
73
|
+
}, messageProps));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
case 'file':
|
|
77
|
+
case 'file.audio':
|
|
78
|
+
{
|
|
79
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.File, _extends({
|
|
80
|
+
message: message
|
|
81
|
+
}, messageProps));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
case 'file.image':
|
|
85
|
+
{
|
|
86
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.ImageFile, _extends({
|
|
87
|
+
message: message
|
|
88
|
+
}, messageProps));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
case 'file.video':
|
|
92
|
+
{
|
|
93
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.VideoFile, _extends({
|
|
94
|
+
message: message,
|
|
95
|
+
fetchThumbnailFromVideoSource: uri => mediaService.getVideoThumbnail({
|
|
96
|
+
url: uri,
|
|
97
|
+
timeMills: 1000
|
|
98
|
+
})
|
|
99
|
+
}, messageProps));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
case 'unknown':
|
|
103
|
+
default:
|
|
104
|
+
{
|
|
105
|
+
return /*#__PURE__*/React.createElement(OpenChannelMessage.Unknown, _extends({
|
|
106
|
+
message: message
|
|
107
|
+
}, messageProps));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
return /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(OpenChannelMessageDateSeparator, {
|
|
113
|
+
message: message,
|
|
114
|
+
prevMessage: prevMessage
|
|
115
|
+
}), renderMessage());
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export default /*#__PURE__*/React.memo(OpenChannelMessageRenderer);
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Box","OpenChannelMessage","calcMessageGrouping","getMessageType","useLocalization","usePlatformService","SBUUtils","OpenChannelMessageDateSeparator","OpenChannelMessageRenderer","channel","message","onPress","onLongPress","onPressAvatar","enableMessageGrouping","prevMessage","nextMessage","STRINGS","mediaService","groupWithPrev","Boolean","messageProps","onPressURL","ogMetaData","url","openURL","sender","hideMessageButton","grouped","strings","edited","OPEN_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","renderMessage","uri","getVideoThumbnail","timeMills","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { OpenChannelMessageProps } from '@sendbird/uikit-react-native-foundation';\nimport { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n} from '@sendbird/uikit-utils';\n\nimport type { OpenChannelProps } from '../../domain/openChannel/types';\nimport { useLocalization, usePlatformService } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';\n\nconst OpenChannelMessageRenderer: OpenChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressAvatar,\n enableMessageGrouping,\n prevMessage,\n nextMessage,\n}) => {\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);\n\n const messageProps: Omit<OpenChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n onPress,\n onLongPress,\n onPressURL: () => message.ogMetaData?.url && SBUUtils.openURL(message.ogMetaData?.url),\n onPressAvatar: () => 'sender' in message && onPressAvatar?.(message.sender, { hideMessageButton: true }),\n grouped: groupWithPrev,\n strings: {\n edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <OpenChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user': {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'user.opengraph': {\n return <OpenChannelMessage.OpenGraphUser message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'file':\n case 'file.audio': {\n return <OpenChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <OpenChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <OpenChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <OpenChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n return (\n <Box>\n <OpenChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n {renderMessage()}\n </Box>\n );\n};\n\nexport default React.memo(OpenChannelMessageRenderer);\n"],"mappings":"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"}
|
|
@@ -3,10 +3,9 @@ import { Pressable, View } from 'react-native';
|
|
|
3
3
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
4
4
|
import { useChannelHandler } from '@sendbird/uikit-chat-hooks';
|
|
5
5
|
import { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
6
|
-
import {
|
|
6
|
+
import { useUniqHandlerId } from '@sendbird/uikit-utils';
|
|
7
7
|
import { UNKNOWN_USER_ID } from '../../constants';
|
|
8
8
|
import { useReaction, useSendbirdChat } from '../../hooks/useContext';
|
|
9
|
-
const COMPONENT_NAME = 'BottomSheetReactionAddon';
|
|
10
9
|
|
|
11
10
|
const BottomSheetReactionAddon = _ref => {
|
|
12
11
|
let {
|
|
@@ -26,12 +25,12 @@ const BottomSheetReactionAddon = _ref => {
|
|
|
26
25
|
const {
|
|
27
26
|
colors
|
|
28
27
|
} = useUIKitTheme();
|
|
29
|
-
const
|
|
28
|
+
const handlerId = useUniqHandlerId('BottomSheetReactionAddon');
|
|
30
29
|
const {
|
|
31
30
|
left,
|
|
32
31
|
right
|
|
33
32
|
} = useSafeAreaInsets();
|
|
34
|
-
useChannelHandler(sdk,
|
|
33
|
+
useChannelHandler(sdk, handlerId, {
|
|
35
34
|
async onReactionUpdated(eventChannel, event) {
|
|
36
35
|
if ((channel === null || channel === void 0 ? void 0 : channel.url) === eventChannel.url && event.messageId === (message === null || message === void 0 ? void 0 : message.messageId)) {
|
|
37
36
|
updateReactionFocusedItem({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","View","useSafeAreaInsets","useChannelHandler","Icon","Image","createStyleSheet","useUIKitTheme","
|
|
1
|
+
{"version":3,"names":["React","Pressable","View","useSafeAreaInsets","useChannelHandler","Icon","Image","createStyleSheet","useUIKitTheme","useUniqHandlerId","UNKNOWN_USER_ID","useReaction","useSendbirdChat","BottomSheetReactionAddon","onClose","message","channel","emojiManager","currentUser","sdk","updateReactionFocusedItem","openReactionList","colors","handlerId","left","right","onReactionUpdated","eventChannel","event","url","messageId","getMessage","includeReactions","channelUrl","channelType","emojiAll","allEmoji","slice","color","ui","reaction","default","styles","container","marginRight","marginLeft","map","key","reactionUserIds","reactions","find","it","userIds","currentUserIdx","indexOf","userId","reacted","onPress","deleteReaction","addReaction","pressed","button","backgroundColor","selected","background","enabled","uri","emoji","onBackground03","paddingTop","paddingBottom","paddingHorizontal","flexDirection","justifyContent","width","height","padding","borderRadius"],"sources":["BottomSheetReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdBaseChannel, SendbirdBaseMessage, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\n\ntype Props = {\n onClose: () => Promise<void>;\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n};\nconst BottomSheetReactionAddon = ({ onClose, message, channel }: Props) => {\n const { emojiManager, currentUser, sdk } = useSendbirdChat();\n const { updateReactionFocusedItem, openReactionList } = useReaction();\n const { colors } = useUIKitTheme();\n const handlerId = useUniqHandlerId('BottomSheetReactionAddon');\n const { left, right } = useSafeAreaInsets();\n\n useChannelHandler(sdk, handlerId, {\n async onReactionUpdated(eventChannel, event) {\n if (channel?.url === eventChannel.url && event.messageId === message?.messageId) {\n updateReactionFocusedItem({\n message: await sdk.message.getMessage({\n includeReactions: true,\n messageId: message.messageId,\n channelUrl: message.channelUrl,\n channelType: message.channelType,\n }),\n });\n }\n },\n });\n\n const emojiAll = emojiManager.allEmoji.slice(0, 5);\n const color = colors.ui.reaction.default;\n\n return (\n <View style={[styles.container, { marginRight: right, marginLeft: left }]}>\n {emojiAll.map(({ key, url }) => {\n const reactionUserIds = message?.reactions?.find((it) => it.key === key)?.userIds ?? [];\n const currentUserIdx = reactionUserIds.indexOf(currentUser?.userId ?? UNKNOWN_USER_ID);\n const reacted = currentUserIdx > -1;\n\n const onPress = () => {\n if (reacted) channel.deleteReaction(message, key);\n else channel.addReaction(message, key);\n onClose();\n };\n\n return (\n <Pressable\n key={key}\n onPress={onPress}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: reacted || pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Image source={{ uri: url }} style={styles.emoji} />\n </Pressable>\n );\n })}\n\n <Pressable\n onPress={async () => {\n await onClose();\n openReactionList({ channel, message });\n }}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Icon icon={'emoji-more'} style={styles.emoji} color={colors.onBackground03} />\n </Pressable>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 12,\n paddingBottom: 16,\n paddingHorizontal: 18,\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n button: {\n width: 44,\n height: 44,\n padding: 4,\n borderRadius: 8,\n },\n emoji: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default BottomSheetReactionAddon;\n"],"mappings":"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"}
|
|
@@ -36,6 +36,12 @@ const TypedPlaceholder = _ref => {
|
|
|
36
36
|
message: STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
+
case 'no-muted-participants':
|
|
40
|
+
return /*#__PURE__*/React.createElement(Placeholder, {
|
|
41
|
+
icon: 'mute',
|
|
42
|
+
message: STRINGS.PLACEHOLDER.NO_MUTED_PARTICIPANTS
|
|
43
|
+
});
|
|
44
|
+
|
|
39
45
|
case 'no-results-found':
|
|
40
46
|
return /*#__PURE__*/React.createElement(Placeholder, {
|
|
41
47
|
icon: 'search',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Placeholder","useLocalization","TypedPlaceholder","type","onPressRetry","STRINGS","PLACEHOLDER","NO_BANNED_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","NO_USERS","ERROR","MESSAGE","RETRY_LABEL"],"sources":["TypedPlaceholder.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Placeholder } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n type:\n | 'no-muted-members'\n | 'no-banned-users'\n | 'no-channels'\n | 'no-messages'\n | 'no-users'\n | 'no-results-found'\n | 'error-wrong'\n | 'loading';\n onPressRetry?: () => void;\n};\nconst TypedPlaceholder = ({ type, onPressRetry }: Props) => {\n const { STRINGS } = useLocalization();\n switch (type) {\n case 'no-banned-users':\n return <Placeholder icon={'ban'} message={STRINGS.PLACEHOLDER.NO_BANNED_USERS} />;\n case 'no-channels':\n return <Placeholder icon={'chat'} message={STRINGS.PLACEHOLDER.NO_CHANNELS} />;\n case 'no-messages':\n return <Placeholder icon={'message'} message={STRINGS.PLACEHOLDER.NO_MESSAGES} />;\n case 'no-muted-members':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS} />;\n case 'no-results-found':\n return <Placeholder icon={'search'} message={STRINGS.PLACEHOLDER.NO_RESULTS_FOUND} />;\n case 'no-users':\n return <Placeholder icon={'members'} message={STRINGS.PLACEHOLDER.NO_USERS} />;\n case 'error-wrong':\n return (\n <Placeholder\n icon={'error'}\n message={STRINGS.PLACEHOLDER.ERROR.MESSAGE}\n errorRetryLabel={STRINGS.PLACEHOLDER.ERROR.RETRY_LABEL}\n onPressRetry={onPressRetry}\n />\n );\n case 'loading':\n return <Placeholder loading icon={'spinner'} />;\n }\n};\n\nexport default TypedPlaceholder;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,WAAT,QAA4B,yCAA5B;AAEA,SAASC,eAAT,QAAgC,qBAAhC;;
|
|
1
|
+
{"version":3,"names":["React","Placeholder","useLocalization","TypedPlaceholder","type","onPressRetry","STRINGS","PLACEHOLDER","NO_BANNED_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_MUTED_PARTICIPANTS","NO_RESULTS_FOUND","NO_USERS","ERROR","MESSAGE","RETRY_LABEL"],"sources":["TypedPlaceholder.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Placeholder } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n type:\n | 'no-muted-members'\n | 'no-muted-participants'\n | 'no-banned-users'\n | 'no-channels'\n | 'no-messages'\n | 'no-users'\n | 'no-results-found'\n | 'error-wrong'\n | 'loading';\n onPressRetry?: () => void;\n};\nconst TypedPlaceholder = ({ type, onPressRetry }: Props) => {\n const { STRINGS } = useLocalization();\n switch (type) {\n case 'no-banned-users':\n return <Placeholder icon={'ban'} message={STRINGS.PLACEHOLDER.NO_BANNED_USERS} />;\n case 'no-channels':\n return <Placeholder icon={'chat'} message={STRINGS.PLACEHOLDER.NO_CHANNELS} />;\n case 'no-messages':\n return <Placeholder icon={'message'} message={STRINGS.PLACEHOLDER.NO_MESSAGES} />;\n case 'no-muted-members':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS} />;\n case 'no-muted-participants':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_PARTICIPANTS} />;\n case 'no-results-found':\n return <Placeholder icon={'search'} message={STRINGS.PLACEHOLDER.NO_RESULTS_FOUND} />;\n case 'no-users':\n return <Placeholder icon={'members'} message={STRINGS.PLACEHOLDER.NO_USERS} />;\n case 'error-wrong':\n return (\n <Placeholder\n icon={'error'}\n message={STRINGS.PLACEHOLDER.ERROR.MESSAGE}\n errorRetryLabel={STRINGS.PLACEHOLDER.ERROR.RETRY_LABEL}\n onPressRetry={onPressRetry}\n />\n );\n case 'loading':\n return <Placeholder loading icon={'spinner'} />;\n }\n};\n\nexport default TypedPlaceholder;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,WAAT,QAA4B,yCAA5B;AAEA,SAASC,eAAT,QAAgC,qBAAhC;;AAeA,MAAMC,gBAAgB,GAAG,QAAmC;EAAA,IAAlC;IAAEC,IAAF;IAAQC;EAAR,CAAkC;EAC1D,MAAM;IAAEC;EAAF,IAAcJ,eAAe,EAAnC;;EACA,QAAQE,IAAR;IACE,KAAK,iBAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,KAAnB;QAA0B,OAAO,EAAEE,OAAO,CAACC,WAAR,CAAoBC;MAAvD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEF,OAAO,CAACC,WAAR,CAAoBE;MAAxD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEH,OAAO,CAACC,WAAR,CAAoBG;MAA3D,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEJ,OAAO,CAACC,WAAR,CAAoBI;MAAxD,EAAP;;IACF,KAAK,uBAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEL,OAAO,CAACC,WAAR,CAAoBK;MAAxD,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,QAAnB;QAA6B,OAAO,EAAEN,OAAO,CAACC,WAAR,CAAoBM;MAA1D,EAAP;;IACF,KAAK,UAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEP,OAAO,CAACC,WAAR,CAAoBO;MAA3D,EAAP;;IACF,KAAK,aAAL;MACE,oBACE,oBAAC,WAAD;QACE,IAAI,EAAE,OADR;QAEE,OAAO,EAAER,OAAO,CAACC,WAAR,CAAoBQ,KAApB,CAA0BC,OAFrC;QAGE,eAAe,EAAEV,OAAO,CAACC,WAAR,CAAoBQ,KAApB,CAA0BE,WAH7C;QAIE,YAAY,EAAEZ;MAJhB,EADF;;IAQF,KAAK,SAAL;MACE,oBAAO,oBAAC,WAAD;QAAa,OAAO,MAApB;QAAqB,IAAI,EAAE;MAA3B,EAAP;EAzBJ;AA2BD,CA7BD;;AA+BA,eAAeF,gBAAf"}
|
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import { Pressable } from 'react-native';
|
|
3
3
|
import { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';
|
|
4
4
|
import { GroupChannelPreview, Icon, LoadingSpinner, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
import { getFileExtension, getFileType, isDifferentChannel, isMyMessage, useIIFE,
|
|
5
|
+
import { getFileExtension, getFileType, isDifferentChannel, isMyMessage, useIIFE, useUniqHandlerId } from '@sendbird/uikit-utils';
|
|
6
6
|
import ChannelCover from '../components/ChannelCover';
|
|
7
7
|
import { DEFAULT_LONG_PRESS_DELAY } from '../constants';
|
|
8
8
|
import { useLocalization, useSendbirdChat } from '../hooks/useContext';
|
|
@@ -34,8 +34,8 @@ const GroupChannelPreviewContainer = _ref => {
|
|
|
34
34
|
const [typingUsers, setTypingUsers] = useState([]);
|
|
35
35
|
|
|
36
36
|
if (features.channelListTypingIndicatorEnabled) {
|
|
37
|
-
const
|
|
38
|
-
useChannelHandler(sdk,
|
|
37
|
+
const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');
|
|
38
|
+
useChannelHandler(sdk, handlerId, {
|
|
39
39
|
onTypingStatusUpdated(eventChannel) {
|
|
40
40
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
41
41
|
setTypingUsers(eventChannel.getTypingUsers());
|