@sendbird/uikit-react-native 3.5.4 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/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 +3 -0
- 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/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/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 +3 -0
- 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/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/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 +2 -4
- 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/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/version.d.ts +1 -1
- package/package.json +6 -6
- 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 +4 -3
- 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/VoiceMessageStatusManager.ts +56 -0
- package/src/localization/StringSet.type.ts +27 -0
- package/src/localization/createBaseStringSet.ts +33 -4
- package/src/version.ts +1 -1
|
@@ -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;
|
|
@@ -13,7 +13,7 @@ import type { StringSet } from '../localization/StringSet.type';
|
|
|
13
13
|
import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
|
|
14
14
|
import type { ErrorBoundaryProps, LocalCacheStorage } from '../types';
|
|
15
15
|
export declare const SendbirdUIKit: Readonly<{
|
|
16
|
-
VERSION: "3.
|
|
16
|
+
VERSION: "3.6.0";
|
|
17
17
|
PLATFORM: string;
|
|
18
18
|
DEFAULT: {
|
|
19
19
|
AUTO_PUSH_TOKEN_REGISTRATION: boolean;
|
|
@@ -21,7 +21,6 @@ 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
25
|
declare const chatOmitKeys: readonly ["appId", "newInstance", "modules", "debugMode", "appVersion", "localCacheEnabled", "useAsyncStorageStore"];
|
|
27
26
|
export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
@@ -40,8 +39,7 @@ export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
|
40
39
|
} & Partial<ChatOmittedInitParams> & Partial<ChatRelatedFeaturesInUIKit>;
|
|
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" | "delete" | "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" | "thumbnail-none" | "unarchive";
|
|
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" | "delete" | "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" | "delete" | "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" | "thumbnail-none" | "unarchive" | undefined;
|
|
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" | "delete" | "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';
|
|
@@ -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;
|
|
@@ -105,6 +105,24 @@ export interface StringSet {
|
|
|
105
105
|
/** GroupChannel > Suggested mention list */
|
|
106
106
|
MENTION_LIMITED: (mentionLimit: number) => string;
|
|
107
107
|
};
|
|
108
|
+
GROUP_CHANNEL_THREAD: {
|
|
109
|
+
/** GroupChannelThread > Header */
|
|
110
|
+
HEADER_TITLE: string;
|
|
111
|
+
HEADER_SUBTITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;
|
|
112
|
+
/** GroupChannelThread > List */
|
|
113
|
+
LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;
|
|
114
|
+
LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;
|
|
115
|
+
/** GroupChannelThread > Message bubble */
|
|
116
|
+
MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;
|
|
117
|
+
MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;
|
|
118
|
+
MESSAGE_BUBBLE_EDITED_POSTFIX: string;
|
|
119
|
+
MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;
|
|
120
|
+
MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;
|
|
121
|
+
PARENT_MESSAGE_TIME: (message: SendbirdMessage, locale?: Locale) => string;
|
|
122
|
+
REPLY_COUNT: (replyCount: number, maxReplyCount?: number) => string;
|
|
123
|
+
/** GroupChannelThread > Suggested mention list */
|
|
124
|
+
MENTION_LIMITED: (mentionLimit: number) => string;
|
|
125
|
+
};
|
|
108
126
|
GROUP_CHANNEL_SETTINGS: {
|
|
109
127
|
/** GroupChannelSettings > Header */
|
|
110
128
|
HEADER_TITLE: string;
|
|
@@ -236,6 +254,8 @@ export interface StringSet {
|
|
|
236
254
|
CHANNEL_INPUT_PLACEHOLDER_DISABLED: string;
|
|
237
255
|
CHANNEL_INPUT_PLACEHOLDER_MUTED: string;
|
|
238
256
|
CHANNEL_INPUT_PLACEHOLDER_REPLY: string;
|
|
257
|
+
CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD: string;
|
|
258
|
+
CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD: string;
|
|
239
259
|
CHANNEL_INPUT_EDIT_OK: string;
|
|
240
260
|
CHANNEL_INPUT_EDIT_CANCEL: string;
|
|
241
261
|
/** ChannelInput > Attachments **/
|
|
@@ -251,6 +271,7 @@ export interface StringSet {
|
|
|
251
271
|
CHANNEL_MESSAGE_SAVE: string;
|
|
252
272
|
CHANNEL_MESSAGE_DELETE: string;
|
|
253
273
|
CHANNEL_MESSAGE_REPLY: string;
|
|
274
|
+
CHANNEL_MESSAGE_THREAD: string;
|
|
254
275
|
/** Channel > Message > Delete confirm **/
|
|
255
276
|
CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: string;
|
|
256
277
|
CHANNEL_MESSAGE_DELETE_CONFIRM_OK: string;
|
|
@@ -308,6 +329,8 @@ export interface StringSet {
|
|
|
308
329
|
UNKNOWN_ERROR: string;
|
|
309
330
|
GET_CHANNEL_ERROR: string;
|
|
310
331
|
FIND_PARENT_MSG_ERROR: string;
|
|
332
|
+
THREAD_PARENT_MESSAGE_DELETED_ERROR: string;
|
|
333
|
+
FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR: (uploadSizeLimit: string) => string;
|
|
311
334
|
};
|
|
312
335
|
PROFILE_CARD: {
|
|
313
336
|
BUTTON_MESSAGE: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const VERSION = "3.
|
|
1
|
+
declare const VERSION = "3.6.0";
|
|
2
2
|
export default VERSION;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sendbird/uikit-react-native",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sendbird",
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@openspacelabs/react-native-zoomable-view": "^2.1.5",
|
|
63
|
-
"@sendbird/uikit-chat-hooks": "3.
|
|
64
|
-
"@sendbird/uikit-react-native-foundation": "3.
|
|
65
|
-
"@sendbird/uikit-tools": "0.0.1-alpha.
|
|
66
|
-
"@sendbird/uikit-utils": "3.
|
|
63
|
+
"@sendbird/uikit-chat-hooks": "3.6.0",
|
|
64
|
+
"@sendbird/uikit-react-native-foundation": "3.6.0",
|
|
65
|
+
"@sendbird/uikit-tools": "0.0.1-alpha.77",
|
|
66
|
+
"@sendbird/uikit-utils": "3.6.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@bam.tech/react-native-image-resizer": "^3.0.4",
|
|
@@ -203,5 +203,5 @@
|
|
|
203
203
|
]
|
|
204
204
|
]
|
|
205
205
|
},
|
|
206
|
-
"gitHead": "
|
|
206
|
+
"gitHead": "74380f45cc34ef2d9f8a6b7f5cb9144329457c5b"
|
|
207
207
|
}
|
|
@@ -53,6 +53,7 @@ const SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(
|
|
|
53
53
|
channel,
|
|
54
54
|
messageToReply,
|
|
55
55
|
setMessageToReply,
|
|
56
|
+
messageForThread,
|
|
56
57
|
},
|
|
57
58
|
ref,
|
|
58
59
|
) {
|
|
@@ -71,11 +72,22 @@ const SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(
|
|
|
71
72
|
|
|
72
73
|
const messageReplyParams = useIIFE(() => {
|
|
73
74
|
const { groupChannel } = sbOptions.uikit;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
|
|
76
|
+
if (channel.isGroupChannel()) {
|
|
77
|
+
if (groupChannel.channel.replyType === 'quote_reply' && messageToReply) {
|
|
78
|
+
return {
|
|
79
|
+
parentMessageId: messageToReply.messageId,
|
|
80
|
+
isReplyToChannel: true,
|
|
81
|
+
};
|
|
82
|
+
} else if (groupChannel.channel.replyType === 'thread' && messageForThread) {
|
|
83
|
+
return {
|
|
84
|
+
parentMessageId: messageForThread.messageId,
|
|
85
|
+
isReplyToChannel: true,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return {};
|
|
79
91
|
});
|
|
80
92
|
|
|
81
93
|
const messageMentionParams = useIIFE(() => {
|
|
@@ -152,6 +164,13 @@ const SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(
|
|
|
152
164
|
if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;
|
|
153
165
|
if (inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;
|
|
154
166
|
if (messageToReply) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY;
|
|
167
|
+
if (messageForThread) {
|
|
168
|
+
if (messageForThread.threadInfo && messageForThread.threadInfo.replyCount > 0) {
|
|
169
|
+
return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD;
|
|
170
|
+
} else {
|
|
171
|
+
return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
155
174
|
|
|
156
175
|
return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;
|
|
157
176
|
};
|
|
@@ -65,6 +65,7 @@ export type ChannelInputProps = {
|
|
|
65
65
|
// reply - only available on group channel
|
|
66
66
|
messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;
|
|
67
67
|
setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;
|
|
68
|
+
messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;
|
|
68
69
|
|
|
69
70
|
// mention
|
|
70
71
|
SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;
|