@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
package/README.md
CHANGED
|
@@ -46,6 +46,8 @@ UIKit for React-Native can be installed through either `yarn` or `npm`
|
|
|
46
46
|
|
|
47
47
|
**Install dependencies**
|
|
48
48
|
|
|
49
|
+
> Note: If you are using `react-native` version `0.72` or higher, you don't need to install `@sendbird/react-native-scrollview-enhancer`.
|
|
50
|
+
|
|
49
51
|
```sh
|
|
50
52
|
npm install @sendbird/uikit-react-native \
|
|
51
53
|
@sendbird/chat \
|
|
@@ -113,6 +115,9 @@ const App = () => {
|
|
|
113
115
|
return (
|
|
114
116
|
<SendbirdUIKitContainer
|
|
115
117
|
appId={'APP_ID'}
|
|
118
|
+
chatOptions={{
|
|
119
|
+
localCacheStorage: AsyncStorage,
|
|
120
|
+
}}
|
|
116
121
|
platformServices={{
|
|
117
122
|
file: FileService,
|
|
118
123
|
notification: NotificationService,
|
|
@@ -225,7 +230,7 @@ const ExpoMediaService = createExpoMediaService({
|
|
|
225
230
|
});
|
|
226
231
|
```
|
|
227
232
|
|
|
228
|
-
### Local caching (
|
|
233
|
+
### Local caching (required)
|
|
229
234
|
|
|
230
235
|
You can implement Local caching easily.
|
|
231
236
|
|
package/lib/commonjs/components/{MessageRenderer/MessageTime.js → ChannelInput/AttachmentsButton.js}
RENAMED
|
@@ -7,28 +7,31 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
10
|
-
var _useContext = require("../../hooks/useContext");
|
|
11
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
const
|
|
11
|
+
const AttachmentsButton = _ref => {
|
|
13
12
|
let {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
style
|
|
13
|
+
onPress,
|
|
14
|
+
disabled
|
|
17
15
|
} = _ref;
|
|
18
|
-
const {
|
|
19
|
-
STRINGS
|
|
20
|
-
} = (0, _useContext.useLocalization)();
|
|
21
16
|
const {
|
|
22
17
|
colors
|
|
23
18
|
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
20
|
+
onPress: onPress,
|
|
21
|
+
disabled: disabled
|
|
22
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
|
|
23
|
+
color: disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight,
|
|
24
|
+
icon: 'add',
|
|
25
|
+
size: 24,
|
|
26
|
+
containerStyle: styles.container
|
|
27
|
+
}));
|
|
31
28
|
};
|
|
32
|
-
|
|
29
|
+
const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
30
|
+
container: {
|
|
31
|
+
marginRight: 8,
|
|
32
|
+
padding: 4
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
var _default = AttachmentsButton;
|
|
33
36
|
exports.default = _default;
|
|
34
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=AttachmentsButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","obj","__esModule","default","AttachmentsButton","_ref","onPress","disabled","colors","useUIKitTheme","createElement","TouchableOpacity","Icon","color","ui","input","highlight","active","icon","size","containerStyle","styles","container","createStyleSheet","marginRight","padding","_default","exports"],"sources":["AttachmentsButton.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { Icon, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nexport type AttachmentsButtonProps = {\n onPress: () => void;\n disabled: boolean;\n};\n\nconst AttachmentsButton = ({ onPress, disabled }: AttachmentsButtonProps) => {\n const { colors } = useUIKitTheme();\n return (\n <TouchableOpacity onPress={onPress} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'add'}\n size={24}\n containerStyle={styles.container}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n marginRight: 8,\n padding: 4,\n },\n});\n\nexport default AttachmentsButton;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,2BAAA,GAAAF,OAAA;AAAgG,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAOhG,MAAMG,iBAAiB,GAAGC,IAAA,IAAmD;EAAA,IAAlD;IAAEC,OAAO;IAAEC;EAAiC,CAAC,GAAAF,IAAA;EACtE,MAAM;IAAEG;EAAO,CAAC,GAAG,IAAAC,yCAAa,GAAE;EAClC,oBACEb,MAAA,CAAAO,OAAA,CAAAO,aAAA,CAACX,YAAA,CAAAY,gBAAgB;IAACL,OAAO,EAAEA,OAAQ;IAACC,QAAQ,EAAEA;EAAS,gBACrDX,MAAA,CAAAO,OAAA,CAAAO,aAAA,CAACV,2BAAA,CAAAY,IAAI;IACHC,KAAK,EAAEN,QAAQ,GAAGC,MAAM,CAACM,EAAE,CAACC,KAAK,CAACZ,OAAO,CAACI,QAAQ,CAACS,SAAS,GAAGR,MAAM,CAACM,EAAE,CAACC,KAAK,CAACZ,OAAO,CAACc,MAAM,CAACD,SAAU;IACxGE,IAAI,EAAE,KAAM;IACZC,IAAI,EAAE,EAAG;IACTC,cAAc,EAAEC,MAAM,CAACC;EAAU,EACjC,CACe;AAEvB,CAAC;AAED,MAAMD,MAAM,GAAG,IAAAE,4CAAgB,EAAC;EAC9BD,SAAS,EAAE;IACTE,WAAW,EAAE,CAAC;IACdC,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYtB,iBAAiB;AAAAuB,OAAA,CAAAxB,OAAA,GAAAuB,QAAA"}
|
|
@@ -18,14 +18,14 @@ const EditInput = /*#__PURE__*/(0, _react.forwardRef)(function EditInput(_ref, r
|
|
|
18
18
|
messageToEdit,
|
|
19
19
|
setMessageToEdit,
|
|
20
20
|
onPressUpdateUserMessage,
|
|
21
|
-
onUpdateUserMessage,
|
|
22
21
|
onSelectionChange,
|
|
23
22
|
autoFocus,
|
|
24
23
|
mentionedUsers,
|
|
25
24
|
inputDisabled
|
|
26
25
|
} = _ref;
|
|
27
26
|
const {
|
|
28
|
-
mentionManager
|
|
27
|
+
mentionManager,
|
|
28
|
+
sbOptions
|
|
29
29
|
} = (0, _useContext.useSendbirdChat)();
|
|
30
30
|
const {
|
|
31
31
|
STRINGS
|
|
@@ -39,21 +39,13 @@ const EditInput = /*#__PURE__*/(0, _react.forwardRef)(function EditInput(_ref, r
|
|
|
39
39
|
if (messageToEdit.isUserMessage()) {
|
|
40
40
|
const mentionType = _message.MentionType.USERS;
|
|
41
41
|
const mentionedUserIds = mentionedUsers.map(it => it.user.userId);
|
|
42
|
-
const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(text, mentionedUsers);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}).catch(onFailureToUpdate);
|
|
50
|
-
} else if (onUpdateUserMessage) {
|
|
51
|
-
onUpdateUserMessage(text, messageToEdit, {
|
|
52
|
-
type: _message.MentionType.USERS,
|
|
53
|
-
userIds: mentionedUserIds,
|
|
54
|
-
messageTemplate: mentionedMessageTemplate
|
|
55
|
-
}).catch(onFailureToUpdate);
|
|
56
|
-
}
|
|
42
|
+
const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(text, mentionedUsers, sbOptions.uikit.groupChannel.channel.enableMention);
|
|
43
|
+
onPressUpdateUserMessage(messageToEdit, {
|
|
44
|
+
message: text,
|
|
45
|
+
mentionType,
|
|
46
|
+
mentionedUserIds,
|
|
47
|
+
mentionedMessageTemplate
|
|
48
|
+
}).catch(onFailureToUpdate);
|
|
57
49
|
}
|
|
58
50
|
setMessageToEdit();
|
|
59
51
|
onChangeText('');
|
|
@@ -73,7 +65,7 @@ const EditInput = /*#__PURE__*/(0, _react.forwardRef)(function EditInput(_ref, r
|
|
|
73
65
|
style: styles.input,
|
|
74
66
|
placeholder: STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE,
|
|
75
67
|
onSelectionChange: onSelectionChange
|
|
76
|
-
}, mentionManager.textToMentionedComponents(text, mentionedUsers))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
68
|
+
}, mentionManager.textToMentionedComponents(text, mentionedUsers, sbOptions.uikit.groupChannel.channel.enableMention))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
77
69
|
style: {
|
|
78
70
|
marginTop: 8,
|
|
79
71
|
flexDirection: 'row'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_message","_uikitReactNativeFoundation","_useContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EditInput","forwardRef","_ref","ref","text","onChangeText","messageToEdit","setMessageToEdit","onPressUpdateUserMessage","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_message","_uikitReactNativeFoundation","_useContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EditInput","forwardRef","_ref","ref","text","onChangeText","messageToEdit","setMessageToEdit","onPressUpdateUserMessage","onSelectionChange","autoFocus","mentionedUsers","inputDisabled","mentionManager","sbOptions","useSendbirdChat","STRINGS","useLocalization","toast","useToast","onPressCancel","onPressSave","isUserMessage","mentionType","MentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","uikit","groupChannel","channel","enableMention","message","catch","onFailureToUpdate","show","TOAST","UPDATE_MSG_ERROR","createElement","View","style","styles","editInputContainer","inputWrapper","TextInput","multiline","disableFullscreenUI","editable","input","placeholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","textToMentionedComponents","marginTop","flexDirection","Button","variant","onPress","CHANNEL_INPUT_EDIT_CANCEL","space","CHANNEL_INPUT_EDIT_OK","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flex","marginRight","minHeight","maxHeight","Platform","select","ios","borderRadius","_default","exports"],"sources":["EditInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n NativeSyntheticEvent,\n Platform,\n TextInput as RNTextInput,\n TextInputSelectionChangeEventData,\n View,\n} from 'react-native';\n\nimport { MentionType } from '@sendbird/chat/message';\nimport { Button, TextInput, createStyleSheet, useToast } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../hooks/useContext';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface EditInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n messageToEdit: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n autoFocus: boolean;\n mentionedUsers: MentionedUser[];\n}\n\nconst EditInput = forwardRef<RNTextInput, EditInputProps>(function EditInput(\n {\n text,\n onChangeText,\n messageToEdit,\n setMessageToEdit,\n onPressUpdateUserMessage,\n onSelectionChange,\n autoFocus,\n mentionedUsers,\n inputDisabled,\n },\n ref,\n) {\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n\n const onPressCancel = () => {\n setMessageToEdit();\n onChangeText('');\n };\n\n const onPressSave = () => {\n if (messageToEdit.isUserMessage()) {\n const mentionType = MentionType.USERS;\n const mentionedUserIds = mentionedUsers.map((it) => it.user.userId);\n const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n );\n\n onPressUpdateUserMessage(messageToEdit, {\n message: text,\n mentionType,\n mentionedUserIds,\n mentionedMessageTemplate,\n }).catch(onFailureToUpdate);\n }\n setMessageToEdit();\n onChangeText('');\n };\n\n const onFailureToUpdate = () => toast.show(STRINGS.TOAST.UPDATE_MSG_ERROR, 'error');\n\n return (\n <View style={styles.editInputContainer}>\n <View style={styles.inputWrapper}>\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n editable={!inputDisabled}\n autoFocus={autoFocus}\n onChangeText={onChangeText}\n style={styles.input}\n placeholder={STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE}\n onSelectionChange={onSelectionChange}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n </View>\n <View style={{ marginTop: 8, flexDirection: 'row' }}>\n <Button variant={'text'} onPress={onPressCancel}>\n {STRINGS.LABELS.CHANNEL_INPUT_EDIT_CANCEL}\n </Button>\n <View style={styles.space} />\n <Button variant={'contained'} onPress={onPressSave}>\n {STRINGS.LABELS.CHANNEL_INPUT_EDIT_OK}\n </Button>\n </View>\n </View>\n );\n});\n\nconst styles = createStyleSheet({\n editInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 16,\n flexDirection: 'column',\n alignItems: 'center',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n inputWrapper: {\n flexDirection: 'row',\n },\n space: {\n flex: 1,\n },\n});\n\nexport default EditInput;\n"],"mappings":"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"}
|
|
@@ -17,184 +17,53 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
17
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
18
|
const SendInput = /*#__PURE__*/(0, _react.forwardRef)(function SendInput(_ref, ref) {
|
|
19
19
|
let {
|
|
20
|
+
AttachmentsButton,
|
|
20
21
|
onPressSendUserMessage,
|
|
21
22
|
onPressSendFileMessage,
|
|
22
|
-
onSendUserMessage,
|
|
23
|
-
onSendFileMessage,
|
|
24
23
|
text,
|
|
25
24
|
onChangeText,
|
|
26
25
|
onSelectionChange,
|
|
27
26
|
mentionedUsers,
|
|
28
27
|
inputDisabled,
|
|
29
28
|
inputFrozen,
|
|
30
|
-
inputMuted
|
|
29
|
+
inputMuted,
|
|
30
|
+
channel
|
|
31
31
|
} = _ref;
|
|
32
32
|
const {
|
|
33
33
|
mentionManager,
|
|
34
|
-
|
|
35
|
-
features
|
|
34
|
+
sbOptions
|
|
36
35
|
} = (0, _useContext.useSendbirdChat)();
|
|
37
36
|
const {
|
|
38
37
|
STRINGS
|
|
39
38
|
} = (0, _useContext.useLocalization)();
|
|
40
|
-
const {
|
|
41
|
-
fileService,
|
|
42
|
-
mediaService
|
|
43
|
-
} = (0, _useContext.usePlatformService)();
|
|
44
39
|
const {
|
|
45
40
|
colors
|
|
46
41
|
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
47
42
|
const {
|
|
48
43
|
openSheet
|
|
49
44
|
} = (0, _uikitReactNativeFoundation.useBottomSheet)();
|
|
50
|
-
const {
|
|
51
|
-
alert
|
|
52
|
-
} = (0, _uikitReactNativeFoundation.useAlert)();
|
|
53
45
|
const toast = (0, _uikitReactNativeFoundation.useToast)();
|
|
46
|
+
const onFailureToSend = () => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error');
|
|
54
47
|
const sendUserMessage = () => {
|
|
55
48
|
const mentionType = _message.MentionType.USERS;
|
|
56
49
|
const mentionedUserIds = mentionedUsers.map(it => it.user.userId);
|
|
57
|
-
const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(text, mentionedUsers);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}).catch(onFailureToSend);
|
|
65
|
-
} else if (onSendUserMessage) {
|
|
66
|
-
onSendUserMessage(text, {
|
|
67
|
-
type: mentionType,
|
|
68
|
-
userIds: mentionedUserIds,
|
|
69
|
-
messageTemplate: mentionedMessageTemplate
|
|
70
|
-
}).catch(onFailureToSend);
|
|
71
|
-
}
|
|
50
|
+
const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(text, mentionedUsers, sbOptions.uikit.groupChannel.channel.enableMention);
|
|
51
|
+
onPressSendUserMessage({
|
|
52
|
+
message: text,
|
|
53
|
+
mentionType,
|
|
54
|
+
mentionedUserIds,
|
|
55
|
+
mentionedMessageTemplate
|
|
56
|
+
}).catch(onFailureToSend);
|
|
72
57
|
onChangeText('');
|
|
73
58
|
};
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
const onFailureToSend = () => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error');
|
|
84
|
-
const onPressAttachment = () => {
|
|
85
|
-
openSheet({
|
|
86
|
-
sheetItems: [{
|
|
87
|
-
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA,
|
|
88
|
-
icon: 'camera',
|
|
89
|
-
onPress: async () => {
|
|
90
|
-
const mediaFile = await fileService.openCamera({
|
|
91
|
-
mediaType: 'all',
|
|
92
|
-
onOpenFailure: error => {
|
|
93
|
-
if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
|
|
94
|
-
alert({
|
|
95
|
-
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
96
|
-
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_CAMERA, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
97
|
-
buttons: [{
|
|
98
|
-
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
99
|
-
onPress: () => _SBUUtils.default.openSettings()
|
|
100
|
-
}]
|
|
101
|
-
});
|
|
102
|
-
} else {
|
|
103
|
-
toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
if (mediaFile) {
|
|
108
|
-
// Image compression
|
|
109
|
-
if ((0, _uikitUtils.isImage)(mediaFile.uri, mediaFile.type) && (0, _uikitUtils.shouldCompressImage)(mediaFile.type, features.imageCompressionEnabled)) {
|
|
110
|
-
await _SBUUtils.default.safeRun(async () => {
|
|
111
|
-
const compressed = await mediaService.compressImage({
|
|
112
|
-
uri: mediaFile.uri,
|
|
113
|
-
maxWidth: imageCompressionConfig.width,
|
|
114
|
-
maxHeight: imageCompressionConfig.height,
|
|
115
|
-
compressionRate: imageCompressionConfig.compressionRate
|
|
116
|
-
});
|
|
117
|
-
if (compressed) {
|
|
118
|
-
mediaFile.uri = compressed.uri;
|
|
119
|
-
mediaFile.size = compressed.size;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
sendFileMessage(mediaFile);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}, {
|
|
127
|
-
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY,
|
|
128
|
-
icon: 'photo',
|
|
129
|
-
onPress: async () => {
|
|
130
|
-
const mediaFiles = await fileService.openMediaLibrary({
|
|
131
|
-
selectionLimit: 1,
|
|
132
|
-
mediaType: 'all',
|
|
133
|
-
onOpenFailure: error => {
|
|
134
|
-
if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
|
|
135
|
-
alert({
|
|
136
|
-
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
137
|
-
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_DEVICE_STORAGE, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
138
|
-
buttons: [{
|
|
139
|
-
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
140
|
-
onPress: () => _SBUUtils.default.openSettings()
|
|
141
|
-
}]
|
|
142
|
-
});
|
|
143
|
-
} else {
|
|
144
|
-
toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error');
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
if (mediaFiles && mediaFiles[0]) {
|
|
149
|
-
const mediaFile = mediaFiles[0];
|
|
150
|
-
|
|
151
|
-
// Image compression
|
|
152
|
-
if ((0, _uikitUtils.isImage)(mediaFile.uri, mediaFile.type) && (0, _uikitUtils.shouldCompressImage)(mediaFile.type, features.imageCompressionEnabled)) {
|
|
153
|
-
await _SBUUtils.default.safeRun(async () => {
|
|
154
|
-
const compressed = await mediaService.compressImage({
|
|
155
|
-
uri: mediaFile.uri,
|
|
156
|
-
maxWidth: imageCompressionConfig.width,
|
|
157
|
-
maxHeight: imageCompressionConfig.height,
|
|
158
|
-
compressionRate: imageCompressionConfig.compressionRate
|
|
159
|
-
});
|
|
160
|
-
if (compressed) {
|
|
161
|
-
mediaFile.uri = compressed.uri;
|
|
162
|
-
mediaFile.size = compressed.size;
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
sendFileMessage(mediaFile);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}, {
|
|
170
|
-
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_FILES,
|
|
171
|
-
icon: 'document',
|
|
172
|
-
onPress: async () => {
|
|
173
|
-
const documentFile = await fileService.openDocument({
|
|
174
|
-
onOpenFailure: () => toast.show(STRINGS.TOAST.OPEN_FILES_ERROR, 'error')
|
|
175
|
-
});
|
|
176
|
-
if (documentFile) {
|
|
177
|
-
// Image compression
|
|
178
|
-
if ((0, _uikitUtils.isImage)(documentFile.uri, documentFile.type) && (0, _uikitUtils.shouldCompressImage)(documentFile.type, features.imageCompressionEnabled)) {
|
|
179
|
-
await _SBUUtils.default.safeRun(async () => {
|
|
180
|
-
const compressed = await mediaService.compressImage({
|
|
181
|
-
uri: documentFile.uri,
|
|
182
|
-
maxWidth: imageCompressionConfig.width,
|
|
183
|
-
maxHeight: imageCompressionConfig.height,
|
|
184
|
-
compressionRate: imageCompressionConfig.compressionRate
|
|
185
|
-
});
|
|
186
|
-
if (compressed) {
|
|
187
|
-
documentFile.uri = compressed.uri;
|
|
188
|
-
documentFile.size = compressed.size;
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
sendFileMessage(documentFile);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}]
|
|
196
|
-
});
|
|
197
|
-
};
|
|
59
|
+
const sheetItems = useChannelInputItems(channel, file => {
|
|
60
|
+
onPressSendFileMessage({
|
|
61
|
+
file
|
|
62
|
+
}).catch(onFailureToSend);
|
|
63
|
+
});
|
|
64
|
+
const onPressAttachment = () => openSheet({
|
|
65
|
+
sheetItems
|
|
66
|
+
});
|
|
198
67
|
const getPlaceholder = () => {
|
|
199
68
|
if (!inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;
|
|
200
69
|
if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;
|
|
@@ -203,15 +72,10 @@ const SendInput = /*#__PURE__*/(0, _react.forwardRef)(function SendInput(_ref, r
|
|
|
203
72
|
};
|
|
204
73
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
205
74
|
style: styles.sendInputContainer
|
|
206
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
75
|
+
}, AttachmentsButton && /*#__PURE__*/_react.default.createElement(AttachmentsButton, {
|
|
207
76
|
onPress: onPressAttachment,
|
|
208
77
|
disabled: inputDisabled
|
|
209
|
-
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.
|
|
210
|
-
color: inputDisabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight,
|
|
211
|
-
icon: 'add',
|
|
212
|
-
size: 24,
|
|
213
|
-
containerStyle: styles.iconAttach
|
|
214
|
-
})), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.TextInput, {
|
|
78
|
+
}), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.TextInput, {
|
|
215
79
|
ref: ref,
|
|
216
80
|
multiline: true,
|
|
217
81
|
disableFullscreenUI: true,
|
|
@@ -220,7 +84,7 @@ const SendInput = /*#__PURE__*/(0, _react.forwardRef)(function SendInput(_ref, r
|
|
|
220
84
|
onChangeText: onChangeText,
|
|
221
85
|
style: styles.input,
|
|
222
86
|
placeholder: getPlaceholder()
|
|
223
|
-
}, mentionManager.textToMentionedComponents(text, mentionedUsers)), Boolean(text.trim()) && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
87
|
+
}, mentionManager.textToMentionedComponents(text, mentionedUsers, sbOptions.uikit.groupChannel.channel.enableMention)), Boolean(text.trim()) && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
224
88
|
onPress: sendUserMessage,
|
|
225
89
|
disabled: inputDisabled
|
|
226
90
|
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
|
|
@@ -230,6 +94,203 @@ const SendInput = /*#__PURE__*/(0, _react.forwardRef)(function SendInput(_ref, r
|
|
|
230
94
|
containerStyle: styles.iconSend
|
|
231
95
|
})));
|
|
232
96
|
});
|
|
97
|
+
const useChannelInputItems = (channel, sendFileMessage) => {
|
|
98
|
+
const {
|
|
99
|
+
sbOptions,
|
|
100
|
+
imageCompressionConfig
|
|
101
|
+
} = (0, _useContext.useSendbirdChat)();
|
|
102
|
+
const {
|
|
103
|
+
STRINGS
|
|
104
|
+
} = (0, _useContext.useLocalization)();
|
|
105
|
+
const {
|
|
106
|
+
fileService,
|
|
107
|
+
mediaService
|
|
108
|
+
} = (0, _useContext.usePlatformService)();
|
|
109
|
+
const {
|
|
110
|
+
alert
|
|
111
|
+
} = (0, _uikitReactNativeFoundation.useAlert)();
|
|
112
|
+
const toast = (0, _uikitReactNativeFoundation.useToast)();
|
|
113
|
+
const sheetItems = [];
|
|
114
|
+
const input = (0, _uikitUtils.useIIFE)(() => {
|
|
115
|
+
switch (true) {
|
|
116
|
+
case channel.isOpenChannel():
|
|
117
|
+
return sbOptions.uikit.openChannel.channel.input;
|
|
118
|
+
case channel.isGroupChannel():
|
|
119
|
+
return sbOptions.uikit.groupChannel.channel.input;
|
|
120
|
+
default:
|
|
121
|
+
return {
|
|
122
|
+
enableDocument: true,
|
|
123
|
+
camera: {
|
|
124
|
+
enablePhoto: true,
|
|
125
|
+
enableVideo: true
|
|
126
|
+
},
|
|
127
|
+
gallery: {
|
|
128
|
+
enablePhoto: true,
|
|
129
|
+
enableVideo: true
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
if (input.camera.enablePhoto) {
|
|
135
|
+
sheetItems.push({
|
|
136
|
+
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO,
|
|
137
|
+
icon: 'camera',
|
|
138
|
+
onPress: async () => {
|
|
139
|
+
const mediaFile = await fileService.openCamera({
|
|
140
|
+
mediaType: 'photo',
|
|
141
|
+
onOpenFailure: error => {
|
|
142
|
+
if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
|
|
143
|
+
alert({
|
|
144
|
+
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
145
|
+
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_CAMERA, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
146
|
+
buttons: [{
|
|
147
|
+
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
148
|
+
onPress: () => _SBUUtils.default.openSettings()
|
|
149
|
+
}]
|
|
150
|
+
});
|
|
151
|
+
} else {
|
|
152
|
+
toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
if (mediaFile) {
|
|
157
|
+
// Image compression
|
|
158
|
+
if ((0, _uikitUtils.isImage)(mediaFile.uri, mediaFile.type) && (0, _uikitUtils.shouldCompressImage)(mediaFile.type, sbOptions.chat.imageCompressionEnabled)) {
|
|
159
|
+
await _SBUUtils.default.safeRun(async () => {
|
|
160
|
+
const compressed = await mediaService.compressImage({
|
|
161
|
+
uri: mediaFile.uri,
|
|
162
|
+
maxWidth: imageCompressionConfig.width,
|
|
163
|
+
maxHeight: imageCompressionConfig.height,
|
|
164
|
+
compressionRate: imageCompressionConfig.compressionRate
|
|
165
|
+
});
|
|
166
|
+
if (compressed) {
|
|
167
|
+
mediaFile.uri = compressed.uri;
|
|
168
|
+
mediaFile.size = compressed.size;
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
sendFileMessage(mediaFile);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (input.camera.enableVideo) {
|
|
178
|
+
sheetItems.push({
|
|
179
|
+
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO,
|
|
180
|
+
icon: 'camera',
|
|
181
|
+
onPress: async () => {
|
|
182
|
+
const mediaFile = await fileService.openCamera({
|
|
183
|
+
mediaType: 'video',
|
|
184
|
+
onOpenFailure: error => {
|
|
185
|
+
if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
|
|
186
|
+
alert({
|
|
187
|
+
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
188
|
+
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_CAMERA, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
189
|
+
buttons: [{
|
|
190
|
+
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
191
|
+
onPress: () => _SBUUtils.default.openSettings()
|
|
192
|
+
}]
|
|
193
|
+
});
|
|
194
|
+
} else {
|
|
195
|
+
toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
if (mediaFile) {
|
|
200
|
+
sendFileMessage(mediaFile);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
if (input.gallery.enablePhoto || input.gallery.enableVideo) {
|
|
206
|
+
const mediaType = (() => {
|
|
207
|
+
switch (true) {
|
|
208
|
+
case input.gallery.enablePhoto && input.gallery.enableVideo:
|
|
209
|
+
return 'all';
|
|
210
|
+
case input.gallery.enablePhoto && !input.gallery.enableVideo:
|
|
211
|
+
return 'photo';
|
|
212
|
+
case !input.gallery.enablePhoto && input.gallery.enableVideo:
|
|
213
|
+
return 'video';
|
|
214
|
+
default:
|
|
215
|
+
return 'all';
|
|
216
|
+
}
|
|
217
|
+
})();
|
|
218
|
+
sheetItems.push({
|
|
219
|
+
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY,
|
|
220
|
+
icon: 'photo',
|
|
221
|
+
onPress: async () => {
|
|
222
|
+
const mediaFiles = await fileService.openMediaLibrary({
|
|
223
|
+
selectionLimit: 1,
|
|
224
|
+
mediaType,
|
|
225
|
+
onOpenFailure: error => {
|
|
226
|
+
if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
|
|
227
|
+
alert({
|
|
228
|
+
title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
|
|
229
|
+
message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(STRINGS.LABELS.PERMISSION_DEVICE_STORAGE, STRINGS.LABELS.PERMISSION_APP_NAME),
|
|
230
|
+
buttons: [{
|
|
231
|
+
text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
|
|
232
|
+
onPress: () => _SBUUtils.default.openSettings()
|
|
233
|
+
}]
|
|
234
|
+
});
|
|
235
|
+
} else {
|
|
236
|
+
toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error');
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
if (mediaFiles && mediaFiles[0]) {
|
|
241
|
+
const mediaFile = mediaFiles[0];
|
|
242
|
+
|
|
243
|
+
// Image compression
|
|
244
|
+
if ((0, _uikitUtils.isImage)(mediaFile.uri, mediaFile.type) && (0, _uikitUtils.shouldCompressImage)(mediaFile.type, sbOptions.chat.imageCompressionEnabled)) {
|
|
245
|
+
await _SBUUtils.default.safeRun(async () => {
|
|
246
|
+
const compressed = await mediaService.compressImage({
|
|
247
|
+
uri: mediaFile.uri,
|
|
248
|
+
maxWidth: imageCompressionConfig.width,
|
|
249
|
+
maxHeight: imageCompressionConfig.height,
|
|
250
|
+
compressionRate: imageCompressionConfig.compressionRate
|
|
251
|
+
});
|
|
252
|
+
if (compressed) {
|
|
253
|
+
mediaFile.uri = compressed.uri;
|
|
254
|
+
mediaFile.size = compressed.size;
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
sendFileMessage(mediaFile);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
if (input.enableDocument) {
|
|
264
|
+
sheetItems.push({
|
|
265
|
+
title: STRINGS.LABELS.CHANNEL_INPUT_ATTACHMENT_FILES,
|
|
266
|
+
icon: 'document',
|
|
267
|
+
onPress: async () => {
|
|
268
|
+
const documentFile = await fileService.openDocument({
|
|
269
|
+
onOpenFailure: () => toast.show(STRINGS.TOAST.OPEN_FILES_ERROR, 'error')
|
|
270
|
+
});
|
|
271
|
+
if (documentFile) {
|
|
272
|
+
// Image compression
|
|
273
|
+
if ((0, _uikitUtils.isImage)(documentFile.uri, documentFile.type) && (0, _uikitUtils.shouldCompressImage)(documentFile.type, sbOptions.chat.imageCompressionEnabled)) {
|
|
274
|
+
await _SBUUtils.default.safeRun(async () => {
|
|
275
|
+
const compressed = await mediaService.compressImage({
|
|
276
|
+
uri: documentFile.uri,
|
|
277
|
+
maxWidth: imageCompressionConfig.width,
|
|
278
|
+
maxHeight: imageCompressionConfig.height,
|
|
279
|
+
compressionRate: imageCompressionConfig.compressionRate
|
|
280
|
+
});
|
|
281
|
+
if (compressed) {
|
|
282
|
+
documentFile.uri = compressed.uri;
|
|
283
|
+
documentFile.size = compressed.size;
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
sendFileMessage(documentFile);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
return sheetItems;
|
|
293
|
+
};
|
|
233
294
|
const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
234
295
|
sendInputContainer: {
|
|
235
296
|
paddingVertical: 10,
|
|
@@ -247,10 +308,6 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
|
247
308
|
}),
|
|
248
309
|
borderRadius: 20
|
|
249
310
|
},
|
|
250
|
-
iconAttach: {
|
|
251
|
-
marginRight: 8,
|
|
252
|
-
padding: 4
|
|
253
|
-
},
|
|
254
311
|
iconSend: {
|
|
255
312
|
marginLeft: 4,
|
|
256
313
|
padding: 4
|