@sendbird/uikit-react-native 3.5.4 → 3.7.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 +11 -27
- package/lib/commonjs/components/ChannelInput/SendInput.js +23 -6
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +22 -4
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChannelThreadMessageList/index.js +349 -0
- package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +2 -2
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +100 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +24 -6
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +23 -6
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/commonjs/components/ThreadChatFlatList/index.js +76 -0
- package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +41 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +74 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +42 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +94 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +61 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +127 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +206 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -0
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +12 -11
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +7 -0
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +28 -5
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +14 -4
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +82 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +44 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +127 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +315 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +27 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +27 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +195 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/index.js +69 -0
- package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +42 -0
- package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +148 -0
- package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/types.js +6 -0
- package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelFragment.js +30 -5
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +267 -0
- package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -0
- package/lib/commonjs/hooks/useMentionSuggestion.js +5 -2
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/index.js +72 -40
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/EmojiManager.js.map +1 -1
- package/lib/commonjs/libs/InternalLocalCacheStorage.js +65 -19
- package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
- package/lib/commonjs/libs/VoiceMessageStatusManager.js +66 -0
- package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +25 -3
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/SendInput.js +23 -6
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +22 -4
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChannelThreadMessageList/index.js +341 -0
- package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +2 -2
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +92 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js +24 -6
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js +23 -6
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/module/components/ThreadChatFlatList/index.js +66 -0
- package/lib/module/components/ThreadChatFlatList/index.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +34 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +67 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +34 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +87 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +54 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +119 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/index.js +196 -0
- package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -0
- package/lib/module/containers/SendbirdUIKitContainer.js +13 -12
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +6 -0
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +30 -6
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +14 -4
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +73 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +34 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +117 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +305 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +19 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +19 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +185 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -0
- package/lib/module/domain/groupChannelThread/index.js +9 -0
- package/lib/module/domain/groupChannelThread/index.js.map +1 -0
- package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +34 -0
- package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -0
- package/lib/module/domain/groupChannelThread/module/moduleContext.js +137 -0
- package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelThread/types.js +2 -0
- package/lib/module/domain/groupChannelThread/types.js.map +1 -0
- package/lib/module/fragments/createGroupChannelFragment.js +33 -7
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelThreadFragment.js +257 -0
- package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -0
- package/lib/module/hooks/useMentionSuggestion.js +5 -2
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/EmojiManager.js.map +1 -1
- package/lib/module/libs/InternalLocalCacheStorage.js +65 -19
- package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
- package/lib/module/libs/VoiceMessageStatusManager.js +59 -0
- package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -0
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +27 -4
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/platform/createMediaService.native.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelInput/index.d.ts +1 -0
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +5 -2
- package/lib/typescript/src/components/ChannelThreadMessageList/index.d.ts +55 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.d.ts +9 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +3 -1
- package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +3 -1
- package/lib/typescript/src/components/ReactionAddons/index.d.ts +2 -1
- package/lib/typescript/src/components/ThreadChatFlatList/index.d.ts +9 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.d.ts +4 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.d.ts +4 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.d.ts +9 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +13 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.d.ts +10 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.d.ts +10 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/index.d.ts +20 -0
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +8 -10
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +15 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +4 -1
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadHeader.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadInput.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts +7 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.d.ts +8 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannelThread/index.d.ts +8 -0
- package/lib/typescript/src/domain/groupChannelThread/module/createGroupChannelThreadModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/types.d.ts +136 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
- package/lib/typescript/src/fragments/createGroupChannelThreadFragment.d.ts +5 -0
- package/lib/typescript/src/hooks/useChannelInputItems.d.ts +1 -1
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/libs/InternalLocalCacheStorage.d.ts +5 -4
- package/lib/typescript/src/libs/VoiceMessageStatusManager.d.ts +11 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +23 -0
- package/lib/typescript/src/localization/createBaseStringSet.d.ts +1 -1
- package/lib/typescript/src/types.d.ts +4 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +27 -22
- package/src/components/ChannelInput/SendInput.tsx +24 -5
- package/src/components/ChannelInput/index.tsx +1 -0
- package/src/components/ChannelMessageList/index.tsx +27 -5
- package/src/components/ChannelThreadMessageList/index.tsx +406 -0
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +3 -3
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +96 -0
- package/src/components/GroupChannelMessageRenderer/index.tsx +21 -5
- package/src/components/ReactionAddons/MessageReactionAddon.tsx +38 -5
- package/src/components/ThreadChatFlatList/index.tsx +63 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.tsx +36 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +61 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.tsx +45 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +107 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +133 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +65 -0
- package/src/components/ThreadParentMessageRenderer/index.tsx +194 -0
- package/src/containers/SendbirdUIKitContainer.tsx +28 -17
- package/src/contexts/SendbirdChatCtx.tsx +20 -0
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +37 -8
- package/src/domain/groupChannel/module/moduleContext.tsx +12 -2
- package/src/domain/groupChannel/types.ts +5 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +63 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadInput.tsx +38 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +105 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +326 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.tsx +18 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.tsx +18 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +174 -0
- package/src/domain/groupChannelThread/index.ts +8 -0
- package/src/domain/groupChannelThread/module/createGroupChannelThreadModule.tsx +35 -0
- package/src/domain/groupChannelThread/module/moduleContext.tsx +165 -0
- package/src/domain/groupChannelThread/types.ts +184 -0
- package/src/fragments/createGroupChannelFragment.tsx +38 -8
- package/src/fragments/createGroupChannelThreadFragment.tsx +280 -0
- package/src/hooks/useMentionSuggestion.ts +13 -9
- package/src/index.ts +4 -0
- package/src/libs/EmojiManager.ts +2 -2
- package/src/libs/InternalLocalCacheStorage.ts +70 -21
- package/src/libs/VoiceMessageStatusManager.ts +56 -0
- package/src/localization/StringSet.type.ts +27 -0
- package/src/localization/createBaseStringSet.ts +33 -4
- package/src/platform/createMediaService.native.tsx +9 -1
- package/src/types.ts +6 -1
- package/src/version.ts +1 -1
|
@@ -8,7 +8,8 @@ declare const _default: React.MemoExoticComponent<(props: {
|
|
|
8
8
|
nextMessage?: SendbirdMessage | undefined;
|
|
9
9
|
onPress?: (() => void) | undefined;
|
|
10
10
|
onLongPress?: (() => void) | undefined;
|
|
11
|
-
onPressParentMessage?: ((parentMessage: SendbirdMessage) => void) | undefined;
|
|
11
|
+
onPressParentMessage?: ((parentMessage: SendbirdMessage, childMessage: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => void) | undefined;
|
|
12
|
+
onReplyInThreadMessage?: ((message: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => void) | undefined;
|
|
12
13
|
onShowUserProfile?: ((user: import("@sendbird/chat/groupChannel").Member | import("@sendbird/chat").User, options?: {
|
|
13
14
|
hideMessageButton?: boolean | undefined;
|
|
14
15
|
} | undefined) => void) | undefined;
|
|
@@ -17,5 +18,6 @@ declare const _default: React.MemoExoticComponent<(props: {
|
|
|
17
18
|
enableMessageGrouping: boolean;
|
|
18
19
|
bottomSheetItem?: import("@sendbird/uikit-react-native-foundation").BottomSheetItem | undefined;
|
|
19
20
|
isFirstItem: boolean;
|
|
21
|
+
hideParentMessage?: boolean | undefined;
|
|
20
22
|
}) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null>;
|
|
21
23
|
export default _default;
|
|
@@ -7,7 +7,8 @@ declare const _default: React.MemoExoticComponent<(props: {
|
|
|
7
7
|
nextMessage?: SendbirdMessage | undefined;
|
|
8
8
|
onPress?: (() => void) | undefined;
|
|
9
9
|
onLongPress?: (() => void) | undefined;
|
|
10
|
-
onPressParentMessage?: ((parentMessage: SendbirdMessage) => void) | undefined;
|
|
10
|
+
onPressParentMessage?: ((parentMessage: SendbirdMessage, childMessage: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => void) | undefined;
|
|
11
|
+
onReplyInThreadMessage?: ((message: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => void) | undefined;
|
|
11
12
|
onShowUserProfile?: ((user: import("@sendbird/chat/groupChannel").Member | import("@sendbird/chat").User, options?: {
|
|
12
13
|
hideMessageButton?: boolean | undefined;
|
|
13
14
|
} | undefined) => void) | undefined;
|
|
@@ -16,5 +17,6 @@ declare const _default: React.MemoExoticComponent<(props: {
|
|
|
16
17
|
enableMessageGrouping: boolean;
|
|
17
18
|
bottomSheetItem?: import("@sendbird/uikit-react-native-foundation").BottomSheetItem | undefined;
|
|
18
19
|
isFirstItem: boolean;
|
|
20
|
+
hideParentMessage?: boolean | undefined;
|
|
19
21
|
}) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null>;
|
|
20
22
|
export default _default;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SendbirdBaseChannel, SendbirdBaseMessage } from '@sendbird/uikit-utils';
|
|
3
|
-
|
|
3
|
+
export type ReactionAddonType = 'default' | 'thread_parent_message';
|
|
4
|
+
declare const MessageReactionAddon: ({ channel, message, reactionAddonType, }: {
|
|
4
5
|
channel: SendbirdBaseChannel;
|
|
5
6
|
message: SendbirdBaseMessage;
|
|
7
|
+
reactionAddonType?: ReactionAddonType | undefined;
|
|
6
8
|
}) => React.JSX.Element | null;
|
|
7
9
|
export default MessageReactionAddon;
|
|
@@ -5,8 +5,9 @@ export declare const ReactionAddons: {
|
|
|
5
5
|
channel: import("@sendbird/chat").BaseChannel;
|
|
6
6
|
message: import("@sendbird/chat/message").BaseMessage;
|
|
7
7
|
}) => import("react").JSX.Element;
|
|
8
|
-
Message: ({ channel, message }: {
|
|
8
|
+
Message: ({ channel, message, reactionAddonType, }: {
|
|
9
9
|
channel: import("@sendbird/chat").BaseChannel;
|
|
10
10
|
message: import("@sendbird/chat/message").BaseMessage;
|
|
11
|
+
reactionAddonType?: import("./MessageReactionAddon").ReactionAddonType | undefined;
|
|
11
12
|
}) => import("react").JSX.Element | null;
|
|
12
13
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FlatListProps, FlatList as RNFlatList } from 'react-native';
|
|
3
|
+
import { SendbirdMessage } from '@sendbird/uikit-utils';
|
|
4
|
+
declare const ThreadChatFlatList: React.ForwardRefExoticComponent<Omit<FlatListProps<SendbirdMessage>, "onEndReached"> & {
|
|
5
|
+
onBottomReached: () => void;
|
|
6
|
+
onTopReached: () => void;
|
|
7
|
+
onScrolledAwayFromBottom: (value: boolean) => void;
|
|
8
|
+
} & React.RefAttributes<RNFlatList<any>>>;
|
|
9
|
+
export default ThreadChatFlatList;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThreadParentMessageRendererProps } from './index';
|
|
3
|
+
type Props = ThreadParentMessageRendererProps<{
|
|
4
|
+
fetchThumbnailFromVideoSource: (uri: string) => Promise<{
|
|
5
|
+
path: string;
|
|
6
|
+
} | null>;
|
|
7
|
+
}>;
|
|
8
|
+
declare const ThreadParentMessageFileVideo: (props: Props) => React.JSX.Element | null;
|
|
9
|
+
export default ThreadParentMessageFileVideo;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThreadParentMessageRendererProps } from './index';
|
|
3
|
+
export type VoiceFileMessageState = {
|
|
4
|
+
status: 'preparing' | 'playing' | 'paused';
|
|
5
|
+
currentTime: number;
|
|
6
|
+
duration: number;
|
|
7
|
+
};
|
|
8
|
+
type Props = ThreadParentMessageRendererProps<{
|
|
9
|
+
durationMetaArrayKey?: string;
|
|
10
|
+
onUnmount: () => void;
|
|
11
|
+
}>;
|
|
12
|
+
declare const ThreadParentMessageFileVoice: (props: Props) => React.JSX.Element | null;
|
|
13
|
+
export default ThreadParentMessageFileVoice;
|
package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type RegexTextPattern } from '@sendbird/uikit-react-native-foundation';
|
|
3
|
+
import { SendbirdUserMessage } from '@sendbird/uikit-utils';
|
|
4
|
+
import { ThreadParentMessageRendererProps } from './index';
|
|
5
|
+
type Props = ThreadParentMessageRendererProps<{
|
|
6
|
+
regexTextPatterns?: RegexTextPattern[];
|
|
7
|
+
renderRegexTextChildren?: (message: SendbirdUserMessage) => string;
|
|
8
|
+
}>;
|
|
9
|
+
declare const ThreadParentMessageUser: (props: Props) => React.JSX.Element | null;
|
|
10
|
+
export default ThreadParentMessageUser;
|
package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type RegexTextPattern } from '@sendbird/uikit-react-native-foundation';
|
|
3
|
+
import { SendbirdUserMessage } from '@sendbird/uikit-utils';
|
|
4
|
+
import { ThreadParentMessageRendererProps } from './index';
|
|
5
|
+
type Props = ThreadParentMessageRendererProps<{
|
|
6
|
+
regexTextPatterns?: RegexTextPattern[];
|
|
7
|
+
renderRegexTextChildren?: (message: SendbirdUserMessage) => string;
|
|
8
|
+
}>;
|
|
9
|
+
declare const ThreadParentMessageUserOg: (props: Props) => React.JSX.Element | null;
|
|
10
|
+
export default ThreadParentMessageUserOg;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SendbirdFileMessage, type SendbirdUser, SendbirdUserMessage } from '@sendbird/uikit-utils';
|
|
3
|
+
import { VoiceFileMessageState } from './ThreadParentMessage.file.voice';
|
|
4
|
+
export type ThreadParentMessageRendererProps<AdditionalProps = unknown> = {
|
|
5
|
+
parentMessage: SendbirdUserMessage | SendbirdFileMessage;
|
|
6
|
+
onPress?: () => void;
|
|
7
|
+
onLongPress?: () => void;
|
|
8
|
+
onPressURL?: (url: string) => void;
|
|
9
|
+
onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;
|
|
10
|
+
onToggleVoiceMessage?: (state: VoiceFileMessageState, setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>) => Promise<void>;
|
|
11
|
+
} & AdditionalProps;
|
|
12
|
+
declare const _default: React.MemoExoticComponent<(props: {
|
|
13
|
+
parentMessage: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage;
|
|
14
|
+
onPress?: (() => void) | undefined;
|
|
15
|
+
onLongPress?: (() => void) | undefined;
|
|
16
|
+
onPressURL?: ((url: string) => void) | undefined;
|
|
17
|
+
onPressMentionedUser?: ((mentionedUser?: import("@sendbird/chat").User | undefined) => void) | undefined;
|
|
18
|
+
onToggleVoiceMessage?: ((state: VoiceFileMessageState, setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>) => Promise<void>) | undefined;
|
|
19
|
+
}) => React.JSX.Element | null>;
|
|
20
|
+
export default _default;
|
|
@@ -4,16 +4,16 @@ import { GroupChannelModule } from '@sendbird/chat/groupChannel';
|
|
|
4
4
|
import { OpenChannelModule } from '@sendbird/chat/openChannel';
|
|
5
5
|
import type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
6
6
|
import { SBUConfig } from '@sendbird/uikit-tools';
|
|
7
|
-
import
|
|
7
|
+
import { PartialDeep, SendbirdChatSDK, SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';
|
|
8
8
|
import type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';
|
|
9
9
|
import type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';
|
|
10
10
|
import { MentionConfigInterface } from '../libs/MentionConfig';
|
|
11
11
|
import { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';
|
|
12
12
|
import type { StringSet } from '../localization/StringSet.type';
|
|
13
13
|
import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
|
|
14
|
-
import
|
|
14
|
+
import { ErrorBoundaryProps, LocalCacheStorage } from '../types';
|
|
15
15
|
export declare const SendbirdUIKit: Readonly<{
|
|
16
|
-
VERSION: "3.
|
|
16
|
+
VERSION: "3.7.0";
|
|
17
17
|
PLATFORM: string;
|
|
18
18
|
DEFAULT: {
|
|
19
19
|
AUTO_PUSH_TOKEN_REGISTRATION: boolean;
|
|
@@ -21,9 +21,8 @@ export declare const SendbirdUIKit: Readonly<{
|
|
|
21
21
|
IMAGE_COMPRESSION: boolean;
|
|
22
22
|
};
|
|
23
23
|
}>;
|
|
24
|
-
type UnimplementedFeatures = 'threadReplySelectType' | 'replyType' | 'enableReactionsSupergroup';
|
|
25
24
|
export type ChatOmittedInitParams = Omit<SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>, (typeof chatOmitKeys)[number]>;
|
|
26
|
-
declare const chatOmitKeys: readonly ["appId", "newInstance", "modules", "debugMode", "appVersion", "localCacheEnabled", "useAsyncStorageStore"];
|
|
25
|
+
declare const chatOmitKeys: readonly ["appId", "newInstance", "modules", "debugMode", "appVersion", "localCacheEnabled", "useAsyncStorageStore", "useMMKVStorageStore"];
|
|
27
26
|
export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
28
27
|
appId: string;
|
|
29
28
|
platformServices: {
|
|
@@ -34,14 +33,13 @@ export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
|
34
33
|
player: PlayerServiceInterface;
|
|
35
34
|
recorder: RecorderServiceInterface;
|
|
36
35
|
};
|
|
37
|
-
chatOptions: {
|
|
38
|
-
localCacheStorage: LocalCacheStorage;
|
|
36
|
+
chatOptions: Partial<ChatOmittedInitParams> & Partial<ChatRelatedFeaturesInUIKit> & {
|
|
39
37
|
onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;
|
|
40
|
-
|
|
38
|
+
localCacheStorage: LocalCacheStorage;
|
|
39
|
+
};
|
|
41
40
|
uikitOptions?: PartialDeep<{
|
|
42
41
|
common: SBUConfig['common'];
|
|
43
|
-
groupChannel: Omit<SBUConfig['groupChannel']['channel'],
|
|
44
|
-
replyType: Extract<SBUConfig['groupChannel']['channel']['replyType'], 'none' | 'quote_reply'>;
|
|
42
|
+
groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & {
|
|
45
43
|
/**
|
|
46
44
|
* @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit}
|
|
47
45
|
*/
|
|
@@ -5,7 +5,9 @@ import type EmojiManager from '../libs/EmojiManager';
|
|
|
5
5
|
import type ImageCompressionConfig from '../libs/ImageCompressionConfig';
|
|
6
6
|
import type MentionManager from '../libs/MentionManager';
|
|
7
7
|
import type VoiceMessageConfig from '../libs/VoiceMessageConfig';
|
|
8
|
+
import VoiceMessageStatusManager from '../libs/VoiceMessageStatusManager';
|
|
8
9
|
import type { FileType } from '../platform/types';
|
|
10
|
+
import { type PubSub } from '../utils/pubsub';
|
|
9
11
|
export interface ChatRelatedFeaturesInUIKit {
|
|
10
12
|
enableAutoPushTokenRegistration: boolean;
|
|
11
13
|
enableUseUserIdForNickname: boolean;
|
|
@@ -15,19 +17,30 @@ interface Props extends ChatRelatedFeaturesInUIKit, React.PropsWithChildren {
|
|
|
15
17
|
sdkInstance: SendbirdChatSDK;
|
|
16
18
|
emojiManager: EmojiManager;
|
|
17
19
|
mentionManager: MentionManager;
|
|
20
|
+
voiceMessageStatusManager: VoiceMessageStatusManager;
|
|
18
21
|
imageCompressionConfig: ImageCompressionConfig;
|
|
19
22
|
voiceMessageConfig: VoiceMessageConfig;
|
|
20
23
|
}
|
|
24
|
+
export type GroupChannelFragmentOptionsPubSubContextPayload = {
|
|
25
|
+
type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT';
|
|
26
|
+
data: {
|
|
27
|
+
startingPoint: number;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
21
30
|
export type SendbirdChatContextType = {
|
|
22
31
|
sdk: SendbirdChatSDK;
|
|
23
32
|
currentUser?: SendbirdUser;
|
|
24
33
|
setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;
|
|
25
34
|
emojiManager: EmojiManager;
|
|
26
35
|
mentionManager: MentionManager;
|
|
36
|
+
voiceMessageStatusManager: VoiceMessageStatusManager;
|
|
27
37
|
imageCompressionConfig: ImageCompressionConfig;
|
|
28
38
|
voiceMessageConfig: VoiceMessageConfig;
|
|
29
39
|
updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise<SendbirdUser>;
|
|
30
40
|
markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;
|
|
41
|
+
groupChannelFragmentOptions: {
|
|
42
|
+
pubsub: PubSub<GroupChannelFragmentOptionsPubSubContextPayload>;
|
|
43
|
+
};
|
|
31
44
|
sbOptions: {
|
|
32
45
|
uikit: SBUConfig;
|
|
33
46
|
uikitWithAppInfo: {
|
|
@@ -57,9 +70,10 @@ export type SendbirdChatContextType = {
|
|
|
57
70
|
broadcastChannelEnabled: boolean;
|
|
58
71
|
superGroupChannelEnabled: boolean;
|
|
59
72
|
reactionEnabled: boolean;
|
|
73
|
+
uploadSizeLimit: number | undefined;
|
|
60
74
|
};
|
|
61
75
|
};
|
|
62
76
|
};
|
|
63
77
|
export declare const SendbirdChatContext: React.Context<SendbirdChatContextType | null>;
|
|
64
|
-
export declare const SendbirdChatProvider: ({ children, sdkInstance, emojiManager, mentionManager, imageCompressionConfig, voiceMessageConfig, enableAutoPushTokenRegistration, enableUseUserIdForNickname, enableImageCompression, }: Props) => React.JSX.Element;
|
|
78
|
+
export declare const SendbirdChatProvider: ({ children, sdkInstance, emojiManager, mentionManager, voiceMessageStatusManager, imageCompressionConfig, voiceMessageConfig, enableAutoPushTokenRegistration, enableUseUserIdForNickname, enableImageCompression, }: Props) => React.JSX.Element;
|
|
65
79
|
export {};
|
|
@@ -2,7 +2,7 @@ import type React from 'react';
|
|
|
2
2
|
import type { FlatList } from 'react-native';
|
|
3
3
|
import type { MessageCollectionParams, MessageFilterParams } from '@sendbird/chat/groupChannel';
|
|
4
4
|
import type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';
|
|
5
|
-
import type { OnBeforeHandler, PickPartial, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdFileMessageUpdateParams, SendbirdGroupChannel, SendbirdMessage, SendbirdUser, SendbirdUserMessage, SendbirdUserMessageCreateParams, SendbirdUserMessageUpdateParams } from '@sendbird/uikit-utils';
|
|
5
|
+
import type { OnBeforeHandler, PickPartial, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdFileMessageUpdateParams, SendbirdGroupChannel, SendbirdMessage, SendbirdSendableMessage, SendbirdUser, SendbirdUserMessage, SendbirdUserMessageCreateParams, SendbirdUserMessageUpdateParams } from '@sendbird/uikit-utils';
|
|
6
6
|
import type { ChannelInputProps, SuggestedMentionListProps } from '../../components/ChannelInput';
|
|
7
7
|
import type { ChannelMessageListProps } from '../../components/ChannelMessageList';
|
|
8
8
|
import type { CommonComponent } from '../../types';
|
|
@@ -15,6 +15,7 @@ export interface GroupChannelProps {
|
|
|
15
15
|
onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];
|
|
16
16
|
onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];
|
|
17
17
|
onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];
|
|
18
|
+
onPressReplyMessageInThread?: GroupChannelProps['Provider']['onPressReplyMessageInThread'];
|
|
18
19
|
onBeforeSendUserMessage?: OnBeforeHandler<SendbirdUserMessageCreateParams>;
|
|
19
20
|
onBeforeSendFileMessage?: OnBeforeHandler<SendbirdFileMessageCreateParams>;
|
|
20
21
|
onBeforeUpdateUserMessage?: OnBeforeHandler<SendbirdUserMessageUpdateParams>;
|
|
@@ -58,6 +59,7 @@ export interface GroupChannelProps {
|
|
|
58
59
|
groupChannelPubSub: PubSub<GroupChannelPubSubContextPayload>;
|
|
59
60
|
messages: SendbirdMessage[];
|
|
60
61
|
onUpdateSearchItem: (searchItem?: GroupChannelProps['MessageList']['searchItem']) => void;
|
|
62
|
+
onPressReplyMessageInThread: (parentMessage: SendbirdSendableMessage, startingPoint?: number) => void;
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
65
|
/**
|
|
@@ -120,6 +122,7 @@ export interface GroupChannelContextsType {
|
|
|
120
122
|
timeout?: number;
|
|
121
123
|
viewPosition?: number;
|
|
122
124
|
}) => void;
|
|
125
|
+
onPressReplyMessageInThread?: (parentMessage: SendbirdSendableMessage, startingPoint?: number) => void;
|
|
123
126
|
}>;
|
|
124
127
|
}
|
|
125
128
|
export interface GroupChannelModule {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "onPressUpdateUserMessage" | "shouldRenderInput" | "onPressSendUserMessage" | "onPressSendFileMessage" | "onPressUpdateFileMessage" | "SuggestedMentionList" | "AttachmentsButton", "inputDisabled">) => React.JSX.Element>;
|
|
3
|
+
export default _default;
|
package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelThreadMessageList").ChannelThreadMessageListProps<import("@sendbird/chat/groupChannel").GroupChannel>, "channel" | "onTopReached" | "onBottomReached" | "onScrolledAwayFromBottom" | "currentUserId" | "enableMessageGrouping" | "searchItem" | "hasNext" | "onDeleteMessage" | "onResendFailedMessage" | "onPressMediaMessage" | "renderMessage" | "messages" | "newMessages" | "scrolledAwayFromBottom" | "flatListProps"> & {
|
|
3
|
+
onResetMessageList: () => Promise<void>;
|
|
4
|
+
onResetMessageListWithStartingPoint: (startingPoint: number) => Promise<void>;
|
|
5
|
+
startingPoint?: number | undefined;
|
|
6
|
+
}) => React.JSX.Element>;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const _default: React.MemoExoticComponent<(props: {
|
|
3
|
+
channel: import("@sendbird/chat/groupChannel").GroupChannel;
|
|
4
|
+
currentUserId?: string | undefined;
|
|
5
|
+
onDeleteMessage: (message: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => Promise<void>;
|
|
6
|
+
onPressMediaMessage?: ((message: import("@sendbird/chat/message").FileMessage, deleteMessage: () => Promise<void>, uri: string) => void) | undefined;
|
|
7
|
+
}) => React.JSX.Element>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { GroupChannelThreadProps } from '../types';
|
|
3
|
+
declare const GroupChannelThreadSuggestedMentionList: ({ text, selection, inputHeight, bottomInset, onPressToMention, mentionedUsers, }: GroupChannelThreadProps['SuggestedMentionList']) => React.JSX.Element;
|
|
4
|
+
export default GroupChannelThreadSuggestedMentionList;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as GroupChannelThreadHeader } from './component/GroupChannelThreadHeader';
|
|
2
|
+
export { default as GroupChannelThreadMessageList } from './component/GroupChannelThreadMessageList';
|
|
3
|
+
export { default as GroupChannelThreadInput } from './component/GroupChannelThreadInput';
|
|
4
|
+
export { default as GroupChannelThreadSuggestedMentionList } from './component/GroupChannelThreadSuggestedMentionList';
|
|
5
|
+
export { default as GroupChannelThreadStatusEmpty } from './component/GroupChannelThreadStatusEmpty';
|
|
6
|
+
export { default as GroupChannelThreadStatusLoading } from './component/GroupChannelThreadStatusLoading';
|
|
7
|
+
export { default as createGroupChannelThreadModule } from './module/createGroupChannelThreadModule';
|
|
8
|
+
export { GroupChannelThreadContextsProvider, GroupChannelThreadContexts } from './module/moduleContext';
|
package/lib/typescript/src/domain/groupChannelThread/module/createGroupChannelThreadModule.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { GroupChannelThreadModule } from '../types';
|
|
2
|
+
declare const createGroupChannelThreadModule: ({ Header, ParentMessageInfo, MessageList, Input, SuggestedMentionList, StatusLoading, StatusEmpty, Provider, ...module }?: Partial<GroupChannelThreadModule>) => GroupChannelThreadModule;
|
|
3
|
+
export default createGroupChannelThreadModule;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { FlatList } from 'react-native';
|
|
3
|
+
import type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';
|
|
4
|
+
import type { OnBeforeHandler, PickPartial, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdFileMessageUpdateParams, SendbirdGroupChannel, SendbirdMessage, SendbirdUserMessage, SendbirdUserMessageCreateParams, SendbirdUserMessageUpdateParams } from '@sendbird/uikit-utils';
|
|
5
|
+
import type { ChannelInputProps, SuggestedMentionListProps } from '../../components/ChannelInput';
|
|
6
|
+
import type { ChannelThreadMessageListProps } from '../../components/ChannelThreadMessageList';
|
|
7
|
+
import type { CommonComponent } from '../../types';
|
|
8
|
+
import type { PubSub } from '../../utils/pubsub';
|
|
9
|
+
export interface GroupChannelThreadProps {
|
|
10
|
+
Fragment: {
|
|
11
|
+
channel: SendbirdGroupChannel;
|
|
12
|
+
parentMessage: SendbirdUserMessage | SendbirdFileMessage;
|
|
13
|
+
startingPoint?: number;
|
|
14
|
+
onParentMessageDeleted: () => void;
|
|
15
|
+
onChannelDeleted: () => void;
|
|
16
|
+
onPressHeaderLeft: GroupChannelThreadProps['Header']['onPressLeft'];
|
|
17
|
+
onPressHeaderSubtitle?: GroupChannelThreadProps['Header']['onPressSubtitle'];
|
|
18
|
+
onPressMediaMessage?: GroupChannelThreadProps['MessageList']['onPressMediaMessage'];
|
|
19
|
+
onBeforeSendUserMessage?: OnBeforeHandler<SendbirdUserMessageCreateParams>;
|
|
20
|
+
onBeforeSendFileMessage?: OnBeforeHandler<SendbirdFileMessageCreateParams>;
|
|
21
|
+
onBeforeUpdateUserMessage?: OnBeforeHandler<SendbirdUserMessageUpdateParams>;
|
|
22
|
+
onBeforeUpdateFileMessage?: OnBeforeHandler<SendbirdFileMessageUpdateParams>;
|
|
23
|
+
renderMessage?: GroupChannelThreadProps['MessageList']['renderMessage'];
|
|
24
|
+
enableMessageGrouping?: GroupChannelThreadProps['MessageList']['enableMessageGrouping'];
|
|
25
|
+
keyboardAvoidOffset?: GroupChannelThreadProps['Provider']['keyboardAvoidOffset'];
|
|
26
|
+
flatListProps?: GroupChannelThreadProps['MessageList']['flatListProps'];
|
|
27
|
+
sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];
|
|
28
|
+
};
|
|
29
|
+
Header: {
|
|
30
|
+
onPressLeft: () => void;
|
|
31
|
+
onPressSubtitle: () => void;
|
|
32
|
+
};
|
|
33
|
+
ParentMessageInfo: {
|
|
34
|
+
channel: SendbirdGroupChannel;
|
|
35
|
+
currentUserId?: string;
|
|
36
|
+
onDeleteMessage: (message: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;
|
|
37
|
+
onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;
|
|
38
|
+
};
|
|
39
|
+
MessageList: Pick<ChannelThreadMessageListProps<SendbirdGroupChannel>, 'enableMessageGrouping' | 'currentUserId' | 'channel' | 'messages' | 'newMessages' | 'scrolledAwayFromBottom' | 'onScrolledAwayFromBottom' | 'onTopReached' | 'onBottomReached' | 'onResendFailedMessage' | 'onDeleteMessage' | 'onPressMediaMessage' | 'renderMessage' | 'flatListProps' | 'hasNext' | 'searchItem'> & {
|
|
40
|
+
onResetMessageList: () => Promise<void>;
|
|
41
|
+
onResetMessageListWithStartingPoint: (startingPoint: number) => Promise<void>;
|
|
42
|
+
startingPoint?: number;
|
|
43
|
+
};
|
|
44
|
+
Input: PickPartial<ChannelInputProps, 'shouldRenderInput' | 'onPressSendUserMessage' | 'onPressSendFileMessage' | 'onPressUpdateUserMessage' | 'onPressUpdateFileMessage' | 'SuggestedMentionList' | 'AttachmentsButton', 'inputDisabled'>;
|
|
45
|
+
SuggestedMentionList: SuggestedMentionListProps;
|
|
46
|
+
Provider: {
|
|
47
|
+
channel: SendbirdGroupChannel;
|
|
48
|
+
keyboardAvoidOffset?: number;
|
|
49
|
+
groupChannelThreadPubSub: PubSub<GroupChannelThreadPubSubContextPayload>;
|
|
50
|
+
parentMessage: SendbirdUserMessage | SendbirdFileMessage;
|
|
51
|
+
threadedMessages: SendbirdMessage[];
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Internal context for GroupChannelThread
|
|
56
|
+
* For example, the developer can create a custom header
|
|
57
|
+
* with getting data from the domain context
|
|
58
|
+
* */
|
|
59
|
+
export interface GroupChannelThreadContextsType {
|
|
60
|
+
Fragment: React.Context<{
|
|
61
|
+
headerTitle: string;
|
|
62
|
+
keyboardAvoidOffset?: number;
|
|
63
|
+
channel: SendbirdGroupChannel;
|
|
64
|
+
parentMessage: SendbirdUserMessage | SendbirdFileMessage;
|
|
65
|
+
messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;
|
|
66
|
+
setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;
|
|
67
|
+
}>;
|
|
68
|
+
PubSub: React.Context<PubSub<GroupChannelThreadPubSubContextPayload>>;
|
|
69
|
+
MessageList: React.Context<{
|
|
70
|
+
/**
|
|
71
|
+
* ref object for FlatList of MessageList
|
|
72
|
+
* */
|
|
73
|
+
flatListRef: React.MutableRefObject<FlatList | null>;
|
|
74
|
+
/**
|
|
75
|
+
* Function that scrolls to a message within a group channel.
|
|
76
|
+
* @param messageId {number} - The id of the message to scroll.
|
|
77
|
+
* @param options {object} - Scroll options (optional).
|
|
78
|
+
* @param options.focusAnimated {boolean} - Enable a shake animation on the message component upon completion of scrolling.
|
|
79
|
+
* @param options.viewPosition {number} - Position information to adjust the visible area during scrolling. bottom(0) ~ top(1.0)
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```
|
|
83
|
+
* const { scrollToMessage } = useContext(GroupChannelThreadContexts.MessageList);
|
|
84
|
+
* const messageIncludedInMessageList = scrollToMessage(lastMessage.messageId, { focusAnimated: true, viewPosition: 1 });
|
|
85
|
+
* if (!messageIncludedInMessageList) console.warn('Message not found in the message list.');
|
|
86
|
+
* ```
|
|
87
|
+
* */
|
|
88
|
+
scrollToMessage: (messageId: number, options?: {
|
|
89
|
+
focusAnimated?: boolean;
|
|
90
|
+
viewPosition?: number;
|
|
91
|
+
}) => boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Call the FlatList function asynchronously to scroll to bottom lazily
|
|
94
|
+
* to avoid scrolling before data rendering has been committed.
|
|
95
|
+
* */
|
|
96
|
+
lazyScrollToBottom: (params?: {
|
|
97
|
+
animated?: boolean;
|
|
98
|
+
timeout?: number;
|
|
99
|
+
}) => void;
|
|
100
|
+
/**
|
|
101
|
+
* Call the FlatList function asynchronously to scroll to index lazily.
|
|
102
|
+
* to avoid scrolling before data rendering has been committed.
|
|
103
|
+
* */
|
|
104
|
+
lazyScrollToIndex: (params?: {
|
|
105
|
+
index?: number;
|
|
106
|
+
animated?: boolean;
|
|
107
|
+
timeout?: number;
|
|
108
|
+
viewPosition?: number;
|
|
109
|
+
}) => void;
|
|
110
|
+
}>;
|
|
111
|
+
}
|
|
112
|
+
export interface GroupChannelThreadModule {
|
|
113
|
+
Provider: CommonComponent<GroupChannelThreadProps['Provider']>;
|
|
114
|
+
Header: CommonComponent<GroupChannelThreadProps['Header']>;
|
|
115
|
+
ParentMessageInfo: CommonComponent<GroupChannelThreadProps['ParentMessageInfo']>;
|
|
116
|
+
MessageList: CommonComponent<GroupChannelThreadProps['MessageList']>;
|
|
117
|
+
Input: CommonComponent<GroupChannelThreadProps['Input']>;
|
|
118
|
+
SuggestedMentionList: CommonComponent<GroupChannelThreadProps['SuggestedMentionList']>;
|
|
119
|
+
StatusEmpty: CommonComponent;
|
|
120
|
+
StatusLoading: CommonComponent;
|
|
121
|
+
}
|
|
122
|
+
export type GroupChannelThreadFragment = React.FC<GroupChannelThreadProps['Fragment']>;
|
|
123
|
+
export type GroupChannelThreadPubSubContextPayload = {
|
|
124
|
+
type: 'MESSAGE_SENT_PENDING' | 'MESSAGE_SENT_SUCCESS';
|
|
125
|
+
data: {
|
|
126
|
+
message: SendbirdUserMessage | SendbirdFileMessage;
|
|
127
|
+
};
|
|
128
|
+
} | {
|
|
129
|
+
type: 'MESSAGES_RECEIVED' | 'MESSAGES_UPDATED';
|
|
130
|
+
data: {
|
|
131
|
+
messages: SendbirdMessage[];
|
|
132
|
+
};
|
|
133
|
+
} | {
|
|
134
|
+
type: 'TYPING_BUBBLE_RENDERED';
|
|
135
|
+
data?: undefined;
|
|
136
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare const _default: React.MemoExoticComponent<({ onPressHeaderLeft, onPressHeaderRight, rightIconName }: {
|
|
3
|
-
rightIconName: "search" | "stop" | "photo" | "recording" | "message" | "done" | "user" | "add" | "chat-hide" | "chat-show" | "archive" | "arrow-left" | "audio-off-filled" | "audio-off" | "audio-on-filled" | "audio-on" | "ban" | "broadcast" | "camera" | "channels" | "chat-filled" | "chat" | "checkbox-off" | "checkbox-on" | "chevron-down" | "chevron-right" | "close" | "copy" | "create" | "
|
|
3
|
+
rightIconName: "search" | "stop" | "photo" | "recording" | "delete" | "message" | "done" | "user" | "add" | "chat-hide" | "chat-show" | "archive" | "arrow-left" | "audio-off-filled" | "audio-off" | "audio-on-filled" | "audio-on" | "ban" | "broadcast" | "camera" | "channels" | "chat-filled" | "chat" | "checkbox-off" | "checkbox-on" | "chevron-down" | "chevron-right" | "close" | "copy" | "create" | "document" | "done-all" | "download" | "edit" | "emoji-more" | "error" | "file-audio" | "file-document" | "freeze" | "gif" | "info" | "leave" | "members" | "moderation" | "more" | "mute" | "notifications-filled" | "notifications-off-filled" | "notifications" | "operator" | "pause" | "play" | "plus" | "question" | "radio-off" | "radio-on" | "refresh" | "remove" | "reply-filled" | "reply" | "send" | "settings-filled" | "spinner" | "streaming" | "supergroup" | "theme" | "thread" | "thumbnail-none" | "unarchive";
|
|
4
4
|
onPressHeaderLeft: () => void;
|
|
5
5
|
onPressHeaderRight: () => void;
|
|
6
6
|
}) => React.JSX.Element>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type SendbirdMessage } from '@sendbird/uikit-utils';
|
|
2
|
+
import type { GroupChannelThreadFragment, GroupChannelThreadModule } from '../domain/groupChannelThread/types';
|
|
3
|
+
declare const createGroupChannelThreadFragment: (initModule?: Partial<GroupChannelThreadModule>) => GroupChannelThreadFragment;
|
|
4
|
+
export declare function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage): number;
|
|
5
|
+
export default createGroupChannelThreadFragment;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SendbirdChannel } from '@sendbird/uikit-utils';
|
|
2
2
|
import { FileType } from '../platform/types';
|
|
3
3
|
export declare const useChannelInputItems: (channel: SendbirdChannel, sendFileMessage: (file: FileType) => void) => {
|
|
4
|
-
icon?: "search" | "stop" | "photo" | "recording" | "message" | "done" | "user" | "add" | "chat-hide" | "chat-show" | "archive" | "arrow-left" | "audio-off-filled" | "audio-off" | "audio-on-filled" | "audio-on" | "ban" | "broadcast" | "camera" | "channels" | "chat-filled" | "chat" | "checkbox-off" | "checkbox-on" | "chevron-down" | "chevron-right" | "close" | "copy" | "create" | "
|
|
4
|
+
icon?: "search" | "stop" | "photo" | "recording" | "delete" | "message" | "done" | "user" | "add" | "chat-hide" | "chat-show" | "archive" | "arrow-left" | "audio-off-filled" | "audio-off" | "audio-on-filled" | "audio-on" | "ban" | "broadcast" | "camera" | "channels" | "chat-filled" | "chat" | "checkbox-off" | "checkbox-on" | "chevron-down" | "chevron-right" | "close" | "copy" | "create" | "document" | "done-all" | "download" | "edit" | "emoji-more" | "error" | "file-audio" | "file-document" | "freeze" | "gif" | "info" | "leave" | "members" | "moderation" | "more" | "mute" | "notifications-filled" | "notifications-off-filled" | "notifications" | "operator" | "pause" | "play" | "plus" | "question" | "radio-off" | "radio-on" | "refresh" | "remove" | "reply-filled" | "reply" | "send" | "settings-filled" | "spinner" | "streaming" | "supergroup" | "theme" | "thread" | "thumbnail-none" | "unarchive" | undefined;
|
|
5
5
|
iconColor?: string | undefined;
|
|
6
6
|
title: string;
|
|
7
7
|
titleColor?: string | undefined;
|
|
@@ -29,6 +29,7 @@ export { default as createGroupChannelRegisterOperatorFragment } from './fragmen
|
|
|
29
29
|
export { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';
|
|
30
30
|
export { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';
|
|
31
31
|
export { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';
|
|
32
|
+
export { default as createGroupChannelThreadFragment } from './fragments/createGroupChannelThreadFragment';
|
|
32
33
|
export { default as createMessageSearchFragment } from './fragments/createMessageSearchFragment';
|
|
33
34
|
/** Fragments - open channels **/
|
|
34
35
|
export { default as createOpenChannelFragment } from './fragments/createOpenChannelFragment';
|
|
@@ -82,6 +83,8 @@ export * from './domain/groupChannelNotifications';
|
|
|
82
83
|
export * from './domain/groupChannelNotifications/types';
|
|
83
84
|
export * from './domain/groupChannelUserList/types';
|
|
84
85
|
export * from './domain/messageSearch/types';
|
|
86
|
+
export * from './domain/groupChannelThread';
|
|
87
|
+
export * from './domain/groupChannelThread/types';
|
|
85
88
|
/** Feature - open channels **/
|
|
86
89
|
export * from './domain/openChannel';
|
|
87
90
|
export * from './domain/openChannel/types';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { KeyValuePairGet, KeyValuePairSet, LocalCacheStorage } from '../types';
|
|
2
|
-
export default class InternalLocalCacheStorage implements
|
|
3
|
-
private
|
|
1
|
+
import type { AsyncLocalCacheStorage, KeyValuePairGet, KeyValuePairSet, LocalCacheStorage } from '../types';
|
|
2
|
+
export default class InternalLocalCacheStorage implements AsyncLocalCacheStorage {
|
|
3
|
+
private readonly _mmkv?;
|
|
4
|
+
private readonly _async?;
|
|
4
5
|
constructor(storage: LocalCacheStorage);
|
|
5
|
-
getAllKeys(): Promise<readonly string[]
|
|
6
|
+
getAllKeys(): Promise<readonly string[]>;
|
|
6
7
|
getItem(key: string): Promise<string | null>;
|
|
7
8
|
removeItem(key: string): Promise<void>;
|
|
8
9
|
setItem(key: string, value: string): Promise<void>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class VoiceMessageStatusManager {
|
|
2
|
+
private statusMap;
|
|
3
|
+
private generateKey;
|
|
4
|
+
subscribe: (channelUrl: string, messageId: number, subscriber: (currentTime: number) => void) => void;
|
|
5
|
+
unsubscribe: (channelUrl: string, messageId: number, subscriber: (currentTime: number) => void) => void;
|
|
6
|
+
publishAll: () => void;
|
|
7
|
+
getCurrentTime: (channelUrl: string, messageId: number) => number;
|
|
8
|
+
setCurrentTime: (channelUrl: string, messageId: number, currentTime: number) => void;
|
|
9
|
+
clear: () => void;
|
|
10
|
+
}
|
|
11
|
+
export default VoiceMessageStatusManager;
|