@sendbird/uikit-react-native 2.5.0 → 3.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/lib/commonjs/components/{MessageRenderer/MessageTime.js → ChannelInput/AttachmentsButton.js} +20 -17
- package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -0
- package/lib/commonjs/components/ChannelInput/EditInput.js +10 -18
- package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/SendInput.js +220 -163
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/index.js +5 -3
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +27 -27
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChatFlatList.js +18 -6
- package/lib/commonjs/components/ChatFlatList.js.map +1 -1
- package/lib/commonjs/components/{MessageRenderer/MessageDateSeparator.js → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js} +3 -3
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +47 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -0
- package/lib/commonjs/components/{MessageRenderer/MessageOutgoingStatus.js → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js} +11 -14
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +204 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -0
- package/lib/commonjs/components/MessageSearchResultItem.js +3 -2
- package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +15 -9
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/constants.js +1 -7
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +13 -13
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +29 -19
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +17 -14
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/contexts/UserProfileCtx.js +6 -4
- package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +4 -13
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +10 -6
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +3 -3
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -10
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +4 -8
- package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
- package/lib/commonjs/domain/openChannel/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +3 -1
- package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +1 -1
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +22 -100
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +1 -1
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +8 -13
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js +2 -2
- package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelFragment.js +1 -7
- package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createOpenChannelListFragment.js +2 -1
- package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
- package/lib/commonjs/hooks/useConnection.js +11 -7
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useMentionTextInput.js +3 -2
- package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
- package/lib/commonjs/index.js +20 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/MentionManager.js +8 -9
- package/lib/commonjs/libs/MentionManager.js.map +1 -1
- package/lib/commonjs/libs/SBUUtils.js +7 -3
- package/lib/commonjs/libs/SBUUtils.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +20 -62
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/components/ChannelInput/AttachmentsButton.js +29 -0
- package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -0
- package/lib/module/components/ChannelInput/EditInput.js +10 -18
- package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
- package/lib/module/components/ChannelInput/SendInput.js +221 -164
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js +5 -3
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +28 -28
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChatFlatList.js +17 -5
- package/lib/module/components/ChatFlatList.js.map +1 -1
- package/lib/module/components/{MessageRenderer/MessageDateSeparator.js → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js} +3 -3
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +38 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -0
- package/lib/module/components/{MessageRenderer/MessageOutgoingStatus.js → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js} +12 -15
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js +196 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -0
- package/lib/module/components/MessageSearchResultItem.js +2 -1
- package/lib/module/components/MessageSearchResultItem.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/index.js +16 -10
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/constants.js +0 -5
- package/lib/module/constants.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +13 -13
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +29 -19
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +17 -14
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/contexts/UserProfileCtx.js +6 -4
- package/lib/module/contexts/UserProfileCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js +4 -13
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +9 -4
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +3 -3
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
- package/lib/module/domain/groupChannelList/types.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -10
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/module/domain/openChannel/component/OpenChannelInput.js +4 -8
- package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
- package/lib/module/domain/openChannel/types.js.map +1 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListList.js +3 -1
- package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
- package/lib/module/domain/openChannelList/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelCreateFragment.js +1 -1
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +24 -102
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelInviteFragment.js +1 -1
- package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelListFragment.js +8 -13
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelFragment.js +2 -8
- package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
- package/lib/module/fragments/createOpenChannelListFragment.js +2 -1
- package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
- package/lib/module/hooks/useConnection.js +11 -7
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useMentionTextInput.js +3 -2
- package/lib/module/hooks/useMentionTextInput.js.map +1 -1
- package/lib/module/index.js +5 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/MentionManager.js +8 -9
- package/lib/module/libs/MentionManager.js.map +1 -1
- package/lib/module/libs/SBUUtils.js +7 -3
- package/lib/module/libs/SBUUtils.js.map +1 -1
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +20 -62
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/typescript/src/components/ChannelInput/AttachmentsButton.d.ts +6 -0
- package/lib/typescript/src/components/ChannelInput/index.d.ts +2 -14
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +2 -4
- package/lib/typescript/src/components/ChatFlatList.d.ts +1 -5
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +6 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.d.ts +5 -0
- package/lib/typescript/src/components/{MessageRenderer/MessageOutgoingStatus.d.ts → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.d.ts} +3 -1
- package/lib/typescript/src/components/{MessageRenderer → GroupChannelMessageRenderer}/index.d.ts +2 -13
- package/lib/typescript/src/components/MessageSearchResultItem.d.ts +2 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -1
- package/lib/typescript/src/constants.d.ts +0 -5
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +15 -10
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +33 -19
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -4
- package/lib/typescript/src/domain/groupChannel/types.d.ts +2 -9
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelList/types.d.ts +8 -23
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/types.d.ts +2 -2
- package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelList/types.d.ts +3 -12
- package/lib/typescript/src/index.d.ts +4 -1
- package/lib/typescript/src/libs/MentionManager.d.ts +4 -5
- package/lib/typescript/src/libs/SBUUtils.d.ts +1 -1
- package/lib/typescript/src/localization/StringSet.type.d.ts +2 -43
- package/package.json +13 -10
- package/src/components/ChannelInput/AttachmentsButton.tsx +32 -0
- package/src/components/ChannelInput/EditInput.tsx +17 -18
- package/src/components/ChannelInput/SendInput.tsx +237 -181
- package/src/components/ChannelInput/index.tsx +8 -21
- package/src/components/ChannelMessageList/index.tsx +33 -41
- package/src/components/ChatFlatList.tsx +39 -13
- package/src/components/{MessageRenderer/MessageDateSeparator.tsx → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.tsx} +7 -5
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.tsx +29 -0
- package/src/components/{MessageRenderer/MessageOutgoingStatus.tsx → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.tsx} +15 -15
- package/src/components/GroupChannelMessageRenderer/index.tsx +203 -0
- package/src/components/MessageSearchResultItem.tsx +3 -1
- package/src/components/OpenChannelMessageRenderer/index.tsx +10 -5
- package/src/constants.ts +0 -5
- package/src/containers/GroupChannelPreviewContainer.tsx +14 -13
- package/src/containers/SendbirdUIKitContainer.tsx +98 -90
- package/src/contexts/SendbirdChatCtx.tsx +49 -36
- package/src/contexts/UserProfileCtx.tsx +10 -5
- package/src/domain/groupChannel/component/GroupChannelInput.tsx +1 -10
- package/src/domain/groupChannel/types.ts +1 -14
- package/src/domain/groupChannelList/component/GroupChannelListList.tsx +8 -4
- package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +3 -3
- package/src/domain/groupChannelList/types.ts +8 -30
- package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +22 -10
- package/src/domain/openChannel/component/OpenChannelInput.tsx +1 -5
- package/src/domain/openChannel/types.ts +1 -1
- package/src/domain/openChannelList/component/OpenChannelListList.tsx +2 -1
- package/src/domain/openChannelList/types.ts +6 -13
- package/src/fragments/createGroupChannelCreateFragment.tsx +1 -1
- package/src/fragments/createGroupChannelFragment.tsx +21 -97
- package/src/fragments/createGroupChannelInviteFragment.tsx +1 -1
- package/src/fragments/createGroupChannelListFragment.tsx +9 -15
- package/src/fragments/createMessageSearchFragment.tsx +1 -1
- package/src/fragments/createOpenChannelFragment.tsx +2 -3
- package/src/fragments/createOpenChannelListFragment.tsx +2 -1
- package/src/hooks/useConnection.ts +9 -7
- package/src/hooks/useMentionTextInput.ts +7 -2
- package/src/index.ts +4 -2
- package/src/libs/MentionManager.tsx +8 -7
- package/src/libs/SBUUtils.ts +7 -3
- package/src/localization/StringSet.type.ts +2 -46
- package/src/localization/createBaseStringSet.ts +19 -71
- package/src/version.ts +1 -1
- package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +0 -46
- package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -73
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -93
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +0 -132
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +0 -24
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/MessageContainer.js +0 -27
- package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +0 -41
- package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +0 -41
- package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +0 -46
- package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -113
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -200
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +0 -22
- package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +0 -1
- package/lib/commonjs/components/MessageRenderer/index.js +0 -186
- package/lib/commonjs/components/MessageRenderer/index.js.map +0 -1
- package/lib/module/components/MessageRenderer/AdminMessage/index.js +0 -38
- package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +0 -1
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -65
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -84
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +0 -123
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +0 -1
- package/lib/module/components/MessageRenderer/FileMessage/index.js +0 -16
- package/lib/module/components/MessageRenderer/FileMessage/index.js.map +0 -1
- package/lib/module/components/MessageRenderer/MessageContainer.js +0 -19
- package/lib/module/components/MessageRenderer/MessageContainer.js.map +0 -1
- package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
- package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +0 -33
- package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
- package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +0 -33
- package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
- package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
- package/lib/module/components/MessageRenderer/MessageTime.js +0 -26
- package/lib/module/components/MessageRenderer/MessageTime.js.map +0 -1
- package/lib/module/components/MessageRenderer/UnknownMessage/index.js +0 -38
- package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -105
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -190
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
- package/lib/module/components/MessageRenderer/UserMessage/index.js +0 -14
- package/lib/module/components/MessageRenderer/UserMessage/index.js.map +0 -1
- package/lib/module/components/MessageRenderer/index.js +0 -178
- package/lib/module/components/MessageRenderer/index.js.map +0 -1
- package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +0 -5
- package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +0 -6
- package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +0 -3
- package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +0 -3
- package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +0 -15
- package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +0 -3
- package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +0 -7
- package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +0 -7
- package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +0 -7
- package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +0 -9
- package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +0 -4
- package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +0 -3
- package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +0 -7
- package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +0 -9
- package/src/components/MessageRenderer/AdminMessage/index.tsx +0 -40
- package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +0 -51
- package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +0 -98
- package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +0 -113
- package/src/components/MessageRenderer/FileMessage/index.tsx +0 -20
- package/src/components/MessageRenderer/MessageContainer.tsx +0 -17
- package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +0 -34
- package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +0 -36
- package/src/components/MessageRenderer/MessageTime.tsx +0 -28
- package/src/components/MessageRenderer/UnknownMessage/index.tsx +0 -34
- package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +0 -102
- package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +0 -188
- package/src/components/MessageRenderer/UserMessage/index.tsx +0 -24
- package/src/components/MessageRenderer/index.tsx +0 -198
|
@@ -1,178 +0,0 @@
|
|
|
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
|
-
import React from 'react';
|
|
3
|
-
import { Pressable, View } from 'react-native';
|
|
4
|
-
import { createStyleSheet } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
import { calcMessageGrouping, conditionChaining, isMyMessage, shouldRenderReaction, useIIFE } from '@sendbird/uikit-utils';
|
|
6
|
-
import { DEFAULT_LONG_PRESS_DELAY } from '../../constants';
|
|
7
|
-
import { useSendbirdChat } from '../../hooks/useContext';
|
|
8
|
-
import { ReactionAddons } from '../ReactionAddons';
|
|
9
|
-
import AdminMessage from './AdminMessage';
|
|
10
|
-
import FileMessage from './FileMessage';
|
|
11
|
-
import MessageContainer from './MessageContainer';
|
|
12
|
-
import MessageDateSeparator from './MessageDateSeparator';
|
|
13
|
-
import MessageIncomingAvatar from './MessageIncomingAvatar';
|
|
14
|
-
import MessageIncomingSenderName from './MessageIncomingSenderName';
|
|
15
|
-
import MessageOutgoingStatus from './MessageOutgoingStatus';
|
|
16
|
-
import MessageTime from './MessageTime';
|
|
17
|
-
import UnknownMessage from './UnknownMessage';
|
|
18
|
-
import UserMessage from './UserMessage';
|
|
19
|
-
const MessageRenderer = _ref => {
|
|
20
|
-
let {
|
|
21
|
-
currentUserId,
|
|
22
|
-
channel,
|
|
23
|
-
message,
|
|
24
|
-
onPress,
|
|
25
|
-
onLongPress,
|
|
26
|
-
...rest
|
|
27
|
-
} = _ref;
|
|
28
|
-
const variant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';
|
|
29
|
-
const isOutgoing = variant === 'outgoing';
|
|
30
|
-
const isIncoming = variant === 'incoming';
|
|
31
|
-
const variantContainerStyle = {
|
|
32
|
-
incoming: styles.chatIncoming,
|
|
33
|
-
outgoing: styles.chatOutgoing
|
|
34
|
-
}[variant];
|
|
35
|
-
const {
|
|
36
|
-
groupWithPrev,
|
|
37
|
-
groupWithNext
|
|
38
|
-
} = calcMessageGrouping(Boolean(rest.enableMessageGrouping), message, rest.prevMessage, rest.nextMessage);
|
|
39
|
-
const {
|
|
40
|
-
features
|
|
41
|
-
} = useSendbirdChat();
|
|
42
|
-
const reactionChildren = useIIFE(() => {
|
|
43
|
-
if (shouldRenderReaction(channel, features.reactionEnabled) && message.reactions && message.reactions.length > 0) {
|
|
44
|
-
return /*#__PURE__*/React.createElement(ReactionAddons.Message, {
|
|
45
|
-
channel: channel,
|
|
46
|
-
message: message
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
});
|
|
51
|
-
const messageComponent = useIIFE(() => {
|
|
52
|
-
const pressableProps = {
|
|
53
|
-
style: styles.msgContainer,
|
|
54
|
-
disabled: !onPress && !onLongPress,
|
|
55
|
-
onPress,
|
|
56
|
-
onLongPress,
|
|
57
|
-
delayLongPress: DEFAULT_LONG_PRESS_DELAY
|
|
58
|
-
};
|
|
59
|
-
const messageProps = {
|
|
60
|
-
...rest,
|
|
61
|
-
variant,
|
|
62
|
-
groupWithNext,
|
|
63
|
-
groupWithPrev
|
|
64
|
-
};
|
|
65
|
-
if (message.isUserMessage()) {
|
|
66
|
-
return /*#__PURE__*/React.createElement(Pressable, pressableProps, _ref2 => {
|
|
67
|
-
let {
|
|
68
|
-
pressed
|
|
69
|
-
} = _ref2;
|
|
70
|
-
return /*#__PURE__*/React.createElement(UserMessage, _extends({
|
|
71
|
-
message: message,
|
|
72
|
-
pressed: pressed,
|
|
73
|
-
onLongPressURL: onLongPress,
|
|
74
|
-
onLongPressMentionedUser: onLongPress
|
|
75
|
-
}, messageProps), reactionChildren);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
if (message.isFileMessage()) {
|
|
79
|
-
return /*#__PURE__*/React.createElement(Pressable, pressableProps, _ref3 => {
|
|
80
|
-
let {
|
|
81
|
-
pressed
|
|
82
|
-
} = _ref3;
|
|
83
|
-
return /*#__PURE__*/React.createElement(FileMessage, _extends({
|
|
84
|
-
message: message,
|
|
85
|
-
pressed: pressed
|
|
86
|
-
}, messageProps), reactionChildren);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (message.isAdminMessage()) {
|
|
90
|
-
return /*#__PURE__*/React.createElement(AdminMessage, _extends({
|
|
91
|
-
message: message,
|
|
92
|
-
pressed: false
|
|
93
|
-
}, messageProps));
|
|
94
|
-
}
|
|
95
|
-
return /*#__PURE__*/React.createElement(Pressable, pressableProps, _ref4 => {
|
|
96
|
-
let {
|
|
97
|
-
pressed
|
|
98
|
-
} = _ref4;
|
|
99
|
-
return /*#__PURE__*/React.createElement(UnknownMessage, _extends({
|
|
100
|
-
message: message,
|
|
101
|
-
pressed: pressed
|
|
102
|
-
}, messageProps));
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
return /*#__PURE__*/React.createElement(MessageContainer, null, /*#__PURE__*/React.createElement(MessageDateSeparator, {
|
|
106
|
-
message: message,
|
|
107
|
-
prevMessage: rest.prevMessage
|
|
108
|
-
}), message.isAdminMessage() && messageComponent, !message.isAdminMessage() && /*#__PURE__*/React.createElement(View, {
|
|
109
|
-
style: [variantContainerStyle, conditionChaining([groupWithNext, Boolean(rest.nextMessage)], [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage])]
|
|
110
|
-
}, isOutgoing && /*#__PURE__*/React.createElement(View, {
|
|
111
|
-
style: styles.outgoingContainer
|
|
112
|
-
}, /*#__PURE__*/React.createElement(MessageOutgoingStatus, {
|
|
113
|
-
channel: channel,
|
|
114
|
-
message: message
|
|
115
|
-
}), /*#__PURE__*/React.createElement(MessageTime, {
|
|
116
|
-
message: message,
|
|
117
|
-
grouping: groupWithNext,
|
|
118
|
-
style: styles.timeOutgoing
|
|
119
|
-
})), isIncoming && /*#__PURE__*/React.createElement(MessageIncomingAvatar, {
|
|
120
|
-
message: message,
|
|
121
|
-
grouping: groupWithNext
|
|
122
|
-
}), /*#__PURE__*/React.createElement(View, {
|
|
123
|
-
style: styles.bubbleContainer
|
|
124
|
-
}, isIncoming && /*#__PURE__*/React.createElement(MessageIncomingSenderName, {
|
|
125
|
-
message: message,
|
|
126
|
-
grouping: groupWithPrev
|
|
127
|
-
}), /*#__PURE__*/React.createElement(View, {
|
|
128
|
-
style: styles.bubbleWrapper
|
|
129
|
-
}, messageComponent, isIncoming && /*#__PURE__*/React.createElement(MessageTime, {
|
|
130
|
-
message: message,
|
|
131
|
-
grouping: groupWithNext,
|
|
132
|
-
style: styles.timeIncoming
|
|
133
|
-
})))));
|
|
134
|
-
};
|
|
135
|
-
const styles = createStyleSheet({
|
|
136
|
-
chatIncoming: {
|
|
137
|
-
flexDirection: 'row',
|
|
138
|
-
justifyContent: 'flex-start',
|
|
139
|
-
alignItems: 'flex-end'
|
|
140
|
-
},
|
|
141
|
-
chatOutgoing: {
|
|
142
|
-
flexDirection: 'row',
|
|
143
|
-
justifyContent: 'flex-end',
|
|
144
|
-
alignItems: 'flex-end'
|
|
145
|
-
},
|
|
146
|
-
timeIncoming: {
|
|
147
|
-
marginLeft: 4
|
|
148
|
-
},
|
|
149
|
-
timeOutgoing: {
|
|
150
|
-
marginRight: 4
|
|
151
|
-
},
|
|
152
|
-
chatGroup: {
|
|
153
|
-
marginBottom: 2
|
|
154
|
-
},
|
|
155
|
-
chatNonGroup: {
|
|
156
|
-
marginBottom: 16
|
|
157
|
-
},
|
|
158
|
-
chatLastMessage: {
|
|
159
|
-
marginBottom: 16
|
|
160
|
-
},
|
|
161
|
-
msgContainer: {
|
|
162
|
-
maxWidth: 240
|
|
163
|
-
},
|
|
164
|
-
bubbleContainer: {
|
|
165
|
-
flexShrink: 1
|
|
166
|
-
},
|
|
167
|
-
bubbleWrapper: {
|
|
168
|
-
flexDirection: 'row',
|
|
169
|
-
alignItems: 'flex-end'
|
|
170
|
-
},
|
|
171
|
-
outgoingContainer: {
|
|
172
|
-
flexDirection: 'row',
|
|
173
|
-
alignItems: 'flex-end',
|
|
174
|
-
justifyContent: 'center'
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
export default /*#__PURE__*/React.memo(MessageRenderer);
|
|
178
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","View","createStyleSheet","calcMessageGrouping","conditionChaining","isMyMessage","shouldRenderReaction","useIIFE","DEFAULT_LONG_PRESS_DELAY","useSendbirdChat","ReactionAddons","AdminMessage","FileMessage","MessageContainer","MessageDateSeparator","MessageIncomingAvatar","MessageIncomingSenderName","MessageOutgoingStatus","MessageTime","UnknownMessage","UserMessage","MessageRenderer","_ref","currentUserId","channel","message","onPress","onLongPress","rest","variant","isOutgoing","isIncoming","variantContainerStyle","incoming","styles","chatIncoming","outgoing","chatOutgoing","groupWithPrev","groupWithNext","Boolean","enableMessageGrouping","prevMessage","nextMessage","features","reactionChildren","reactionEnabled","reactions","length","createElement","Message","messageComponent","pressableProps","style","msgContainer","disabled","delayLongPress","messageProps","isUserMessage","_ref2","pressed","_extends","onLongPressURL","onLongPressMentionedUser","isFileMessage","_ref3","isAdminMessage","_ref4","chatGroup","chatNonGroup","chatLastMessage","outgoingContainer","grouping","timeOutgoing","bubbleContainer","bubbleWrapper","timeIncoming","flexDirection","justifyContent","alignItems","marginLeft","marginRight","marginBottom","maxWidth","flexShrink","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, PressableProps, View } from 'react-native';\n\nimport { createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport {\n calcMessageGrouping,\n conditionChaining,\n isMyMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport { ReactionAddons } from '../ReactionAddons';\nimport AdminMessage from './AdminMessage';\nimport FileMessage from './FileMessage';\nimport MessageContainer from './MessageContainer';\nimport MessageDateSeparator from './MessageDateSeparator';\nimport MessageIncomingAvatar from './MessageIncomingAvatar';\nimport MessageIncomingSenderName from './MessageIncomingSenderName';\nimport MessageOutgoingStatus from './MessageOutgoingStatus';\nimport MessageTime from './MessageTime';\nimport UnknownMessage from './UnknownMessage';\nimport UserMessage from './UserMessage';\n\ntype MessageStyleVariant = 'outgoing' | 'incoming';\nexport type MessageRendererInterface<T = SendbirdMessage, AdditionalProps = unknown> = {\n message: T;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n variant: MessageStyleVariant;\n groupWithPrev: boolean;\n groupWithNext: boolean;\n pressed: boolean;\n children?: React.ReactElement | null;\n} & AdditionalProps;\n\nconst MessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n currentUserId,\n channel,\n message,\n onPress,\n onLongPress,\n ...rest\n}) => {\n const variant: MessageStyleVariant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';\n const isOutgoing = variant === 'outgoing';\n const isIncoming = variant === 'incoming';\n const variantContainerStyle = { incoming: styles.chatIncoming, outgoing: styles.chatOutgoing }[variant];\n\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(rest.enableMessageGrouping),\n message,\n rest.prevMessage,\n rest.nextMessage,\n );\n\n const { features } = useSendbirdChat();\n\n const reactionChildren = useIIFE(() => {\n if (shouldRenderReaction(channel, features.reactionEnabled) && message.reactions && message.reactions.length > 0) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const messageComponent = useIIFE(() => {\n const pressableProps: PressableProps = {\n style: styles.msgContainer,\n disabled: !onPress && !onLongPress,\n onPress,\n onLongPress,\n delayLongPress: DEFAULT_LONG_PRESS_DELAY,\n };\n const messageProps = { ...rest, variant, groupWithNext, groupWithPrev };\n\n if (message.isUserMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => (\n <UserMessage\n message={message}\n pressed={pressed}\n onLongPressURL={onLongPress}\n onLongPressMentionedUser={onLongPress}\n {...messageProps}\n >\n {reactionChildren}\n </UserMessage>\n )}\n </Pressable>\n );\n }\n\n if (message.isFileMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => (\n <FileMessage message={message} pressed={pressed} {...messageProps}>\n {reactionChildren}\n </FileMessage>\n )}\n </Pressable>\n );\n }\n\n if (message.isAdminMessage()) {\n return <AdminMessage message={message} pressed={false} {...messageProps} />;\n }\n\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <UnknownMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n });\n\n return (\n <MessageContainer>\n <MessageDateSeparator message={message} prevMessage={rest.prevMessage} />\n {message.isAdminMessage() && messageComponent}\n {!message.isAdminMessage() && (\n <View\n style={[\n variantContainerStyle,\n conditionChaining(\n [groupWithNext, Boolean(rest.nextMessage)],\n [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage],\n ),\n ]}\n >\n {isOutgoing && (\n <View style={styles.outgoingContainer}>\n <MessageOutgoingStatus channel={channel} message={message} />\n <MessageTime message={message} grouping={groupWithNext} style={styles.timeOutgoing} />\n </View>\n )}\n {isIncoming && <MessageIncomingAvatar message={message} grouping={groupWithNext} />}\n <View style={styles.bubbleContainer}>\n {isIncoming && <MessageIncomingSenderName message={message} grouping={groupWithPrev} />}\n <View style={styles.bubbleWrapper}>\n {messageComponent}\n {isIncoming && <MessageTime message={message} grouping={groupWithNext} style={styles.timeIncoming} />}\n </View>\n </View>\n </View>\n )}\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n chatIncoming: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'flex-end',\n },\n chatOutgoing: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n timeIncoming: {\n marginLeft: 4,\n },\n timeOutgoing: {\n marginRight: 4,\n },\n chatGroup: {\n marginBottom: 2,\n },\n chatNonGroup: {\n marginBottom: 16,\n },\n chatLastMessage: {\n marginBottom: 16,\n },\n msgContainer: {\n maxWidth: 240,\n },\n bubbleContainer: {\n flexShrink: 1,\n },\n bubbleWrapper: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n },\n outgoingContainer: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'center',\n },\n});\n\nexport default React.memo(MessageRenderer);\n"],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { SendbirdAdminMessage } from '@sendbird/uikit-utils';
|
|
2
|
-
import type { MessageRendererInterface } from '../index';
|
|
3
|
-
export type AdminMessageProps = MessageRendererInterface<SendbirdAdminMessage>;
|
|
4
|
-
declare const AdminMessage: ({ message, nextMessage }: AdminMessageProps) => JSX.Element;
|
|
5
|
-
export default AdminMessage;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { FileMessageProps } from './index';
|
|
2
|
-
type Props = FileMessageProps & {
|
|
3
|
-
type: 'image' | 'audio' | 'video' | 'file';
|
|
4
|
-
};
|
|
5
|
-
declare const BaseFileMessage: ({ message, variant, pressed, type, children }: Props) => JSX.Element;
|
|
6
|
-
export default BaseFileMessage;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { SendbirdFileMessage } from '@sendbird/uikit-utils';
|
|
3
|
-
import type { MessageRendererInterface } from '../index';
|
|
4
|
-
export type FileMessageProps = MessageRendererInterface<SendbirdFileMessage>;
|
|
5
|
-
declare const _default: React.MemoExoticComponent<(props: {
|
|
6
|
-
message: import("@sendbird/chat/message").FileMessage;
|
|
7
|
-
prevMessage?: import("@sendbird/uikit-utils").SendbirdMessage | undefined;
|
|
8
|
-
nextMessage?: import("@sendbird/uikit-utils").SendbirdMessage | undefined;
|
|
9
|
-
variant: "incoming" | "outgoing";
|
|
10
|
-
groupWithPrev: boolean;
|
|
11
|
-
groupWithNext: boolean;
|
|
12
|
-
pressed: boolean;
|
|
13
|
-
children?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | null | undefined;
|
|
14
|
-
}) => JSX.Element>;
|
|
15
|
-
export default _default;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { SendbirdMessage } from '@sendbird/uikit-utils';
|
|
2
|
-
type Props = {
|
|
3
|
-
message: SendbirdMessage;
|
|
4
|
-
prevMessage?: SendbirdMessage;
|
|
5
|
-
};
|
|
6
|
-
declare const MessageDateSeparator: ({ message, prevMessage }: Props) => JSX.Element | null;
|
|
7
|
-
export default MessageDateSeparator;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { SendbirdMessage } from '@sendbird/uikit-utils';
|
|
2
|
-
type Props = {
|
|
3
|
-
message: SendbirdMessage;
|
|
4
|
-
grouping: boolean;
|
|
5
|
-
};
|
|
6
|
-
declare const MessageIncomingSenderName: ({ message, grouping }: Props) => JSX.Element | null;
|
|
7
|
-
export default MessageIncomingSenderName;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
-
import type { SendbirdMessage } from '@sendbird/uikit-utils';
|
|
3
|
-
type Props = {
|
|
4
|
-
message: SendbirdMessage;
|
|
5
|
-
grouping: boolean;
|
|
6
|
-
style?: StyleProp<ViewStyle>;
|
|
7
|
-
};
|
|
8
|
-
declare const MessageTime: ({ message, grouping, style }: Props) => JSX.Element | null;
|
|
9
|
-
export default MessageTime;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { OGMetaData } from '@sendbird/chat/message';
|
|
2
|
-
import type { UserMessageProps } from './index';
|
|
3
|
-
type Props = UserMessageProps & {
|
|
4
|
-
ogMetaData: OGMetaData;
|
|
5
|
-
};
|
|
6
|
-
declare const OpenGraphUserMessage: ({ message, variant, pressed, ogMetaData, children, onLongPressMentionedUser, onLongPressURL, }: Props) => JSX.Element;
|
|
7
|
-
export default OpenGraphUserMessage;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { SendbirdUserMessage } from '@sendbird/uikit-utils';
|
|
3
|
-
import type { MessageRendererInterface } from '../index';
|
|
4
|
-
export type UserMessageProps = MessageRendererInterface<SendbirdUserMessage, {
|
|
5
|
-
onLongPressMentionedUser?: () => void;
|
|
6
|
-
onLongPressURL?: () => void;
|
|
7
|
-
}>;
|
|
8
|
-
declare const _default: React.MemoExoticComponent<(props: UserMessageProps) => JSX.Element>;
|
|
9
|
-
export default _default;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleSheet, View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
import type { SendbirdAdminMessage } from '@sendbird/uikit-utils';
|
|
6
|
-
|
|
7
|
-
import type { MessageRendererInterface } from '../index';
|
|
8
|
-
|
|
9
|
-
export type AdminMessageProps = MessageRendererInterface<SendbirdAdminMessage>;
|
|
10
|
-
const AdminMessage = ({ message, nextMessage }: AdminMessageProps) => {
|
|
11
|
-
const { colors } = useUIKitTheme();
|
|
12
|
-
|
|
13
|
-
const isNextAdmin = nextMessage?.isAdminMessage();
|
|
14
|
-
return (
|
|
15
|
-
<View style={StyleSheet.flatten([styles.container, isNextAdmin ? styles.nextAdminType : styles.next])}>
|
|
16
|
-
<Text caption2 color={colors.onBackground02} style={styles.text}>
|
|
17
|
-
{message.message}
|
|
18
|
-
</Text>
|
|
19
|
-
</View>
|
|
20
|
-
);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const styles = createStyleSheet({
|
|
24
|
-
container: {
|
|
25
|
-
width: 300,
|
|
26
|
-
alignSelf: 'center',
|
|
27
|
-
alignItems: 'center',
|
|
28
|
-
},
|
|
29
|
-
nextAdminType: {
|
|
30
|
-
marginBottom: 8,
|
|
31
|
-
},
|
|
32
|
-
next: {
|
|
33
|
-
marginBottom: 16,
|
|
34
|
-
},
|
|
35
|
-
text: {
|
|
36
|
-
textAlign: 'center',
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
export default AdminMessage;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import { Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
|
|
6
|
-
import { useLocalization } from '../../../hooks/useContext';
|
|
7
|
-
import type { FileMessageProps } from './index';
|
|
8
|
-
|
|
9
|
-
const iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;
|
|
10
|
-
|
|
11
|
-
type Props = FileMessageProps & {
|
|
12
|
-
type: 'image' | 'audio' | 'video' | 'file';
|
|
13
|
-
};
|
|
14
|
-
const BaseFileMessage = ({ message, variant, pressed, type, children }: Props) => {
|
|
15
|
-
const { STRINGS } = useLocalization();
|
|
16
|
-
const { colors } = useUIKitTheme();
|
|
17
|
-
const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
|
|
18
|
-
return (
|
|
19
|
-
<View style={[styles.bubbleContainer, { backgroundColor: color.background }]}>
|
|
20
|
-
<View style={styles.container}>
|
|
21
|
-
<Icon
|
|
22
|
-
icon={iconMapper[type]}
|
|
23
|
-
size={24}
|
|
24
|
-
containerStyle={{ backgroundColor: colors.background, padding: 2, borderRadius: 8, marginRight: 8 }}
|
|
25
|
-
/>
|
|
26
|
-
<Text body3 ellipsizeMode={'middle'} numberOfLines={1} color={color.textMsg} style={styles.name}>
|
|
27
|
-
{STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message)}
|
|
28
|
-
</Text>
|
|
29
|
-
</View>
|
|
30
|
-
{children}
|
|
31
|
-
</View>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const styles = createStyleSheet({
|
|
36
|
-
bubbleContainer: {
|
|
37
|
-
borderRadius: 16,
|
|
38
|
-
overflow: 'hidden',
|
|
39
|
-
},
|
|
40
|
-
container: {
|
|
41
|
-
flexDirection: 'row',
|
|
42
|
-
alignItems: 'center',
|
|
43
|
-
paddingHorizontal: 12,
|
|
44
|
-
paddingVertical: 6,
|
|
45
|
-
},
|
|
46
|
-
name: {
|
|
47
|
-
flexShrink: 1,
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
export default BaseFileMessage;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { Platform, StyleSheet, View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
import { getAvailableUriFromFileMessage, useForceUpdate } from '@sendbird/uikit-utils';
|
|
6
|
-
|
|
7
|
-
import type { FileMessageProps } from './index';
|
|
8
|
-
|
|
9
|
-
const useRetry = (hasError: boolean, retryCount = 5) => {
|
|
10
|
-
if (Platform.OS === 'android') return '';
|
|
11
|
-
|
|
12
|
-
const forceUpdate = useForceUpdate();
|
|
13
|
-
const retryCountRef = useRef(1);
|
|
14
|
-
const retryTimeoutRef = useRef<NodeJS.Timeout>();
|
|
15
|
-
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
if (hasError) {
|
|
18
|
-
const reloadReservation = () => {
|
|
19
|
-
if (retryCountRef.current < retryCount) {
|
|
20
|
-
retryTimeoutRef.current = setTimeout(() => {
|
|
21
|
-
retryCountRef.current++;
|
|
22
|
-
reloadReservation();
|
|
23
|
-
forceUpdate();
|
|
24
|
-
}, retryCountRef.current * 5000);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
return reloadReservation();
|
|
29
|
-
} else {
|
|
30
|
-
return clearTimeout(retryTimeoutRef.current);
|
|
31
|
-
}
|
|
32
|
-
}, [hasError]);
|
|
33
|
-
|
|
34
|
-
return retryCountRef.current;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const ImageFileMessage = ({ message, children, variant }: FileMessageProps) => {
|
|
38
|
-
const { colors } = useUIKitTheme();
|
|
39
|
-
const [imageNotFound, setImageNotFound] = useState(false);
|
|
40
|
-
|
|
41
|
-
const fileUrl = getAvailableUriFromFileMessage(message);
|
|
42
|
-
const style = [styles.image, { backgroundColor: colors.onBackground04 }];
|
|
43
|
-
|
|
44
|
-
const key = useRetry(imageNotFound);
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<View
|
|
48
|
-
style={[
|
|
49
|
-
styles.bubbleContainer,
|
|
50
|
-
{
|
|
51
|
-
backgroundColor: imageNotFound
|
|
52
|
-
? colors.onBackground04
|
|
53
|
-
: colors.ui.groupChannelMessage[variant].enabled.background,
|
|
54
|
-
},
|
|
55
|
-
]}
|
|
56
|
-
>
|
|
57
|
-
<View style={style}>
|
|
58
|
-
<Image
|
|
59
|
-
key={key}
|
|
60
|
-
source={{ uri: fileUrl }}
|
|
61
|
-
style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}
|
|
62
|
-
resizeMode={'cover'}
|
|
63
|
-
resizeMethod={'resize'}
|
|
64
|
-
onError={() => setImageNotFound(true)}
|
|
65
|
-
onLoad={() => setImageNotFound(false)}
|
|
66
|
-
/>
|
|
67
|
-
{imageNotFound && (
|
|
68
|
-
<Icon
|
|
69
|
-
containerStyle={StyleSheet.absoluteFill}
|
|
70
|
-
icon={'thumbnail-none'}
|
|
71
|
-
size={48}
|
|
72
|
-
color={colors.onBackground02}
|
|
73
|
-
/>
|
|
74
|
-
)}
|
|
75
|
-
</View>
|
|
76
|
-
{children}
|
|
77
|
-
</View>
|
|
78
|
-
);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const styles = createStyleSheet({
|
|
82
|
-
bubbleContainer: {
|
|
83
|
-
borderRadius: 16,
|
|
84
|
-
overflow: 'hidden',
|
|
85
|
-
},
|
|
86
|
-
image: {
|
|
87
|
-
width: 240,
|
|
88
|
-
maxWidth: 240,
|
|
89
|
-
height: 160,
|
|
90
|
-
borderRadius: 16,
|
|
91
|
-
overflow: 'hidden',
|
|
92
|
-
},
|
|
93
|
-
hide: {
|
|
94
|
-
display: 'none',
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
export default ImageFileMessage;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
|
|
6
|
-
|
|
7
|
-
import { usePlatformService } from '../../../hooks/useContext';
|
|
8
|
-
import type { FileMessageProps } from './index';
|
|
9
|
-
|
|
10
|
-
const useRetry = (videoFileUrl: string, retryCount = 5) => {
|
|
11
|
-
const [state, setState] = useState({ thumbnail: null as null | string, loading: true });
|
|
12
|
-
const retryCountRef = useRef(0);
|
|
13
|
-
const retryTimeoutRef = useRef<NodeJS.Timeout>();
|
|
14
|
-
|
|
15
|
-
const { mediaService } = usePlatformService();
|
|
16
|
-
|
|
17
|
-
const fetchThumbnail = () => {
|
|
18
|
-
return mediaService.getVideoThumbnail({ url: videoFileUrl, timeMills: 1000 }).then((result) => {
|
|
19
|
-
setState({ loading: false, thumbnail: result?.path ?? null });
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
useEffect(() => {
|
|
24
|
-
if (!state.thumbnail) {
|
|
25
|
-
const reloadReservation = () => {
|
|
26
|
-
if (retryCountRef.current < retryCount) {
|
|
27
|
-
retryTimeoutRef.current = setTimeout(() => {
|
|
28
|
-
retryCountRef.current++;
|
|
29
|
-
reloadReservation();
|
|
30
|
-
fetchThumbnail();
|
|
31
|
-
}, retryCountRef.current * 5000);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
return reloadReservation();
|
|
36
|
-
} else {
|
|
37
|
-
return clearTimeout(retryTimeoutRef.current);
|
|
38
|
-
}
|
|
39
|
-
}, [state.thumbnail]);
|
|
40
|
-
|
|
41
|
-
return state;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const VideoFileMessage = ({ message, variant, children }: FileMessageProps) => {
|
|
45
|
-
const { colors } = useUIKitTheme();
|
|
46
|
-
|
|
47
|
-
const fileUrl = getAvailableUriFromFileMessage(message);
|
|
48
|
-
const style = [styles.video, { backgroundColor: colors.onBackground04 }];
|
|
49
|
-
|
|
50
|
-
const { loading, thumbnail } = useRetry(fileUrl);
|
|
51
|
-
|
|
52
|
-
if (loading) {
|
|
53
|
-
return (
|
|
54
|
-
<View
|
|
55
|
-
style={[styles.bubbleContainer, { backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background }]}
|
|
56
|
-
>
|
|
57
|
-
<View style={[styles.bubbleContainer, styles.bubbleInnerContainer]}>
|
|
58
|
-
<View style={style} />
|
|
59
|
-
<PlayIcon />
|
|
60
|
-
</View>
|
|
61
|
-
{children}
|
|
62
|
-
</View>
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return (
|
|
67
|
-
<View
|
|
68
|
-
style={[styles.bubbleContainer, { backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background }]}
|
|
69
|
-
>
|
|
70
|
-
<View style={[styles.bubbleContainer, styles.bubbleInnerContainer]}>
|
|
71
|
-
<Image source={{ uri: thumbnail || fileUrl }} style={style} resizeMode={'cover'} resizeMethod={'resize'} />
|
|
72
|
-
<PlayIcon />
|
|
73
|
-
</View>
|
|
74
|
-
{children}
|
|
75
|
-
</View>
|
|
76
|
-
);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const PlayIcon = () => {
|
|
80
|
-
const { colors } = useUIKitTheme();
|
|
81
|
-
|
|
82
|
-
return (
|
|
83
|
-
<Icon
|
|
84
|
-
icon={'play'}
|
|
85
|
-
size={28}
|
|
86
|
-
color={colors.onBackground02}
|
|
87
|
-
containerStyle={[styles.playIcon, { backgroundColor: colors.onBackgroundReverse01 }]}
|
|
88
|
-
/>
|
|
89
|
-
);
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const styles = createStyleSheet({
|
|
93
|
-
bubbleContainer: {
|
|
94
|
-
borderRadius: 16,
|
|
95
|
-
overflow: 'hidden',
|
|
96
|
-
},
|
|
97
|
-
bubbleInnerContainer: {
|
|
98
|
-
alignItems: 'center',
|
|
99
|
-
justifyContent: 'center',
|
|
100
|
-
},
|
|
101
|
-
video: {
|
|
102
|
-
width: 240,
|
|
103
|
-
maxWidth: 240,
|
|
104
|
-
height: 160,
|
|
105
|
-
},
|
|
106
|
-
playIcon: {
|
|
107
|
-
position: 'absolute',
|
|
108
|
-
padding: 10,
|
|
109
|
-
borderRadius: 50,
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
export default VideoFileMessage;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { SendbirdFileMessage, getFileExtension, getFileType } from '@sendbird/uikit-utils';
|
|
4
|
-
|
|
5
|
-
import type { MessageRendererInterface } from '../index';
|
|
6
|
-
import BaseFileMessage from './BaseFileMessage';
|
|
7
|
-
import ImageFileMessage from './ImageFileMessage';
|
|
8
|
-
import VideoFileMessage from './VideoFileMessage';
|
|
9
|
-
|
|
10
|
-
export type FileMessageProps = MessageRendererInterface<SendbirdFileMessage>;
|
|
11
|
-
const FileMessage = (props: FileMessageProps) => {
|
|
12
|
-
const fileType = getFileType(props.message.type || getFileExtension(props.message.name));
|
|
13
|
-
|
|
14
|
-
if (fileType === 'image') return <ImageFileMessage {...props} />;
|
|
15
|
-
if (fileType === 'video') return <VideoFileMessage {...props} />;
|
|
16
|
-
|
|
17
|
-
return <BaseFileMessage {...props} type={fileType} />;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export default React.memo(FileMessage);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import { createStyleSheet } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
|
|
6
|
-
const MessageContainer = ({ children }: React.PropsWithChildren) => {
|
|
7
|
-
return <View style={styles.container}>{children}</View>;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const styles = createStyleSheet({
|
|
11
|
-
container: {
|
|
12
|
-
flexDirection: 'column',
|
|
13
|
-
paddingHorizontal: 16,
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
export default MessageContainer;
|