@tencentcloud/chat-uikit-react 1.0.4 → 1.1.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/CHANGELOG.md +10 -0
- package/README.md +70 -42
- package/dist/cjs/components/ConversationCreate/ConversationCreate.js +1 -1
- package/dist/cjs/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -1
- package/dist/cjs/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
- package/dist/cjs/components/ConversationPreview/ConversationListContainer.d.ts +1 -1
- package/dist/cjs/components/ConversationPreview/ConversationPreview.d.ts +1 -1
- package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.js +1 -1
- package/dist/cjs/components/ConversationPreview/utils.js +1 -1
- package/dist/cjs/components/ConversationSearch/ConversationSearchResult.d.ts +1 -1
- package/dist/cjs/components/ConversationSearch/ConversationSearchResult.js +1 -1
- package/dist/cjs/components/TUIChat/TUIChat.d.ts +1 -1
- package/dist/cjs/components/TUIChat/TUIChat.js +1 -1
- package/dist/cjs/components/TUIChat/TUIChatState.js +1 -1
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.d.ts +2 -2
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.js +1 -1
- package/dist/cjs/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -1
- package/dist/cjs/components/TUIChat/hooks/useHandleMessage.d.ts +1 -1
- package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -1
- package/dist/cjs/components/TUIChat/hooks/useMessageReceviedListener.js +1 -1
- package/dist/cjs/components/TUIChat/unitls.js +1 -1
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.d.ts +1 -1
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +1 -1
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
- package/dist/cjs/components/TUIConversation/TUIConversation.d.ts +1 -1
- package/dist/cjs/components/TUIConversation/TUIConversation.js +1 -1
- package/dist/cjs/components/TUIConversationList/TUIConversationList.d.ts +1 -1
- package/dist/cjs/components/TUIConversationList/TUIConversationList.js +1 -1
- package/dist/cjs/components/TUIConversationList/hooks/useConversationList.js +1 -1
- package/dist/cjs/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
- package/dist/cjs/components/TUIKit/TUIKit.d.ts +2 -2
- package/dist/cjs/components/TUIKit/TUIKit.js +1 -1
- package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +5 -5
- package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.js +1 -1
- package/dist/cjs/components/TUIKit/hooks/useTUIKit.d.ts +3 -3
- package/dist/cjs/components/TUIKit/hooks/useTUIKit.js +1 -1
- package/dist/cjs/components/TUIManage/TUIManage.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageBubble.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageContext.d.ts +1 -1
- package/dist/cjs/components/TUIMessage/MessageContext.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageFile.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageImage.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageMerger.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageName.js +1 -1
- package/dist/cjs/components/TUIMessage/MessagePlugins.d.ts +2 -2
- package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageProgress.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageText.js +1 -1
- package/dist/cjs/components/TUIMessage/TUIMessage.d.ts +1 -1
- package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -1
- package/dist/cjs/components/TUIMessage/TUIMessageDefault.js +1 -1
- package/dist/cjs/components/TUIMessage/hooks/useMessageContextHandler.js +1 -1
- package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -1
- package/dist/cjs/components/TUIMessage/hooks/useMessageReply.js +1 -1
- package/dist/cjs/components/TUIMessage/utils/index.js +1 -1
- package/dist/cjs/components/TUIMessageInput/TUIMessageInput.js +1 -1
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.js +1 -1
- package/dist/cjs/components/TUIMessageList/TUIMessageList.d.ts +1 -1
- package/dist/cjs/components/TUIMessageList/TUIMessageList.js +1 -1
- package/dist/cjs/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.d.ts +1 -1
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -1
- package/dist/cjs/components/TUIProfile/hooks/useMyProfile.js +1 -1
- package/dist/cjs/components/untils.js +1 -1
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/context/TUIChatActionContext.d.ts +3 -3
- package/dist/cjs/context/TUIChatStateContext.d.ts +2 -2
- package/dist/cjs/context/TUIConversationContext.js +1 -1
- package/dist/cjs/context/TUIKitContext.d.ts +2 -2
- package/dist/cjs/context/TUIMessageContext.d.ts +1 -1
- package/dist/cjs/hooks/useConversation.d.ts +3 -3
- package/dist/cjs/hooks/useConversation.js +1 -1
- package/dist/cjs/hooks/useProfile.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -1
- package/dist/esm/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -1
- package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
- package/dist/esm/components/ConversationPreview/ConversationListContainer.d.ts +1 -1
- package/dist/esm/components/ConversationPreview/ConversationPreview.d.ts +1 -1
- package/dist/esm/components/ConversationPreview/ConversationPreviewContent.js +1 -1
- package/dist/esm/components/ConversationPreview/utils.js +1 -1
- package/dist/esm/components/ConversationSearch/ConversationSearchResult.d.ts +1 -1
- package/dist/esm/components/ConversationSearch/ConversationSearchResult.js +1 -1
- package/dist/esm/components/TUIChat/TUIChat.d.ts +1 -1
- package/dist/esm/components/TUIChat/TUIChat.js +1 -1
- package/dist/esm/components/TUIChat/TUIChatState.js +1 -1
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.d.ts +2 -2
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.js +1 -1
- package/dist/esm/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -1
- package/dist/esm/components/TUIChat/hooks/useHandleMessage.d.ts +1 -1
- package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -1
- package/dist/esm/components/TUIChat/hooks/useMessageReceviedListener.js +1 -1
- package/dist/esm/components/TUIChat/unitls.js +1 -1
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.d.ts +1 -1
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +1 -1
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
- package/dist/esm/components/TUIConversation/TUIConversation.d.ts +1 -1
- package/dist/esm/components/TUIConversation/TUIConversation.js +1 -1
- package/dist/esm/components/TUIConversationList/TUIConversationList.d.ts +1 -1
- package/dist/esm/components/TUIConversationList/TUIConversationList.js +1 -1
- package/dist/esm/components/TUIConversationList/hooks/useConversationList.js +1 -1
- package/dist/esm/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
- package/dist/esm/components/TUIKit/TUIKit.d.ts +2 -2
- package/dist/esm/components/TUIKit/TUIKit.js +1 -1
- package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +5 -5
- package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.js +1 -1
- package/dist/esm/components/TUIKit/hooks/useTUIKit.d.ts +3 -3
- package/dist/esm/components/TUIKit/hooks/useTUIKit.js +1 -1
- package/dist/esm/components/TUIManage/TUIManage.js +1 -1
- package/dist/esm/components/TUIMessage/MessageBubble.js +1 -1
- package/dist/esm/components/TUIMessage/MessageContext.d.ts +1 -1
- package/dist/esm/components/TUIMessage/MessageContext.js +1 -1
- package/dist/esm/components/TUIMessage/MessageCustom.js +1 -1
- package/dist/esm/components/TUIMessage/MessageFile.js +1 -1
- package/dist/esm/components/TUIMessage/MessageImage.js +1 -1
- package/dist/esm/components/TUIMessage/MessageMerger.js +1 -1
- package/dist/esm/components/TUIMessage/MessageName.js +1 -1
- package/dist/esm/components/TUIMessage/MessagePlugins.d.ts +2 -2
- package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -1
- package/dist/esm/components/TUIMessage/MessageProgress.js +1 -1
- package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -1
- package/dist/esm/components/TUIMessage/MessageText.js +1 -1
- package/dist/esm/components/TUIMessage/TUIMessage.d.ts +1 -1
- package/dist/esm/components/TUIMessage/TUIMessage.js +1 -1
- package/dist/esm/components/TUIMessage/TUIMessageDefault.js +1 -1
- package/dist/esm/components/TUIMessage/hooks/useMessageContextHandler.js +1 -1
- package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -1
- package/dist/esm/components/TUIMessage/hooks/useMessageReply.js +1 -1
- package/dist/esm/components/TUIMessage/utils/index.js +1 -1
- package/dist/esm/components/TUIMessageInput/TUIMessageInput.js +1 -1
- package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
- package/dist/esm/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
- package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.js +1 -1
- package/dist/esm/components/TUIMessageList/TUIMessageList.d.ts +1 -1
- package/dist/esm/components/TUIMessageList/TUIMessageList.js +1 -1
- package/dist/esm/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
- package/dist/esm/components/TUIProfile/TUIProfileDefault.d.ts +1 -1
- package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -1
- package/dist/esm/components/TUIProfile/hooks/useMyProfile.js +1 -1
- package/dist/esm/components/untils.js +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/context/TUIChatActionContext.d.ts +3 -3
- package/dist/esm/context/TUIChatStateContext.d.ts +2 -2
- package/dist/esm/context/TUIConversationContext.js +1 -1
- package/dist/esm/context/TUIKitContext.d.ts +2 -2
- package/dist/esm/context/TUIMessageContext.d.ts +1 -1
- package/dist/esm/hooks/useConversation.d.ts +3 -3
- package/dist/esm/hooks/useConversation.js +1 -1
- package/dist/esm/hooks/useProfile.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +2 -3
- package/src/components/ConversationCreate/ConversationCreatGroupDetail.tsx +1 -1
- package/src/components/ConversationCreate/ConversationCreate.tsx +3 -3
- package/src/components/ConversationCreate/ConversationCreateSelectView.tsx +1 -1
- package/src/components/ConversationCreate/ConversationCreateUserSelectList.tsx +4 -4
- package/src/components/ConversationCreate/ConversationGroupTypeInfo.tsx +5 -5
- package/src/components/ConversationCreate/hooks/useConversationCreate.tsx +6 -6
- package/src/components/ConversationPreview/ConversationListContainer.tsx +1 -1
- package/src/components/ConversationPreview/ConversationPreview.tsx +1 -1
- package/src/components/ConversationPreview/ConversationPreviewContent.tsx +2 -2
- package/src/components/ConversationPreview/utils.tsx +10 -10
- package/src/components/ConversationSearch/ConversationSearchResult.tsx +1 -1
- package/src/components/Profile/Profile.tsx +1 -1
- package/src/components/Profile/hooks/useProfile.tsx +5 -5
- package/src/components/TUIChat/TUIChat.tsx +23 -17
- package/src/components/TUIChat/TUIChatState.tsx +7 -7
- package/src/components/TUIChat/hooks/useCreateMessage.tsx +29 -29
- package/src/components/TUIChat/hooks/useCreateTUIChatStateContext.tsx +5 -5
- package/src/components/TUIChat/hooks/useHandleMessage.tsx +2 -2
- package/src/components/TUIChat/hooks/useHandleMessageList.tsx +28 -15
- package/src/components/TUIChat/hooks/useMessageReceviedListener.tsx +5 -5
- package/src/components/TUIChat/unitls.ts +3 -3
- package/src/components/TUIChatHeader/TUIChatHeader.tsx +1 -1
- package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +7 -7
- package/src/components/TUIConversation/TUIConversation.tsx +1 -1
- package/src/components/TUIConversationList/TUIConversationList.tsx +3 -3
- package/src/components/TUIConversationList/hooks/useConversationList.tsx +5 -5
- package/src/components/TUIConversationList/hooks/useConversationUpdate.tsx +6 -6
- package/src/components/TUIKit/TUIKit.tsx +5 -5
- package/src/components/TUIKit/hooks/useCreateTUIKitContext.tsx +3 -3
- package/src/components/TUIKit/hooks/useTUIKit.tsx +8 -8
- package/src/components/TUIManage/TUIManage.tsx +2 -2
- package/src/components/TUIMessage/MessageAvatar.tsx +1 -1
- package/src/components/TUIMessage/MessageBubble.tsx +4 -4
- package/src/components/TUIMessage/MessageContext.tsx +19 -19
- package/src/components/TUIMessage/MessageCustom.tsx +2 -2
- package/src/components/TUIMessage/MessageFile.tsx +2 -2
- package/src/components/TUIMessage/MessageImage.tsx +2 -2
- package/src/components/TUIMessage/MessageMerger.tsx +2 -2
- package/src/components/TUIMessage/MessageName.tsx +2 -2
- package/src/components/TUIMessage/MessagePlugins.tsx +3 -3
- package/src/components/TUIMessage/MessageProgress.tsx +8 -8
- package/src/components/TUIMessage/MessageRevoke.tsx +2 -2
- package/src/components/TUIMessage/MessageStatus.tsx +1 -1
- package/src/components/TUIMessage/MessageText.tsx +2 -2
- package/src/components/TUIMessage/TUIMessage.tsx +1 -1
- package/src/components/TUIMessage/TUIMessageDefault.tsx +7 -8
- package/src/components/TUIMessage/hooks/useMessageContextHandler.ts +12 -12
- package/src/components/TUIMessage/hooks/useMessageHandler.ts +12 -12
- package/src/components/TUIMessage/hooks/useMessagePluginElement.tsx +2 -2
- package/src/components/TUIMessage/hooks/useMessageReply.ts +11 -11
- package/src/components/TUIMessage/utils/index.ts +16 -16
- package/src/components/TUIMessageInput/InputQuoteDefalut.tsx +1 -1
- package/src/components/TUIMessageInput/TUIForward.tsx +1 -1
- package/src/components/TUIMessageInput/TUIMessageInput.tsx +2 -2
- package/src/components/TUIMessageInput/hooks/useHandleForwardMessage.tsx +5 -5
- package/src/components/TUIMessageInput/hooks/useHandleQuoteMessage.tsx +15 -15
- package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +2 -2
- package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +2 -2
- package/src/components/TUIMessageList/TUIMessageList.tsx +2 -2
- package/src/components/TUIMessageList/hooks/useEnrichedMessageList.tsx +1 -1
- package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +8 -11
- package/src/components/TUIProfile/TUIProfileDefault.tsx +6 -6
- package/src/components/TUIProfile/hooks/useMyProfile.tsx +9 -9
- package/src/components/untils.ts +4 -4
- package/src/constants.ts +1 -1
- package/src/context/TUIChatActionContext.tsx +3 -3
- package/src/context/TUIChatStateContext.tsx +2 -2
- package/src/context/TUIConversationContext.tsx +1 -1
- package/src/context/TUIKitContext.tsx +2 -2
- package/src/context/TUIMessageContext.tsx +1 -1
- package/src/hooks/useConversation.tsx +11 -11
- package/src/hooks/useProfile.tsx +2 -2
- package/readme.zh_cn.md +0 -60
- package/src/@types/index.d.ts +0 -1
- package/src/@types/index.js +0 -3
|
@@ -3,7 +3,7 @@ import React, {
|
|
|
3
3
|
useEffect,
|
|
4
4
|
useState,
|
|
5
5
|
} from 'react';
|
|
6
|
-
import
|
|
6
|
+
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
7
7
|
import { MESSAGE_STATUS } from '../../constants';
|
|
8
8
|
import { useTUIChatStateContext, useTUIMessageContext } from '../../context';
|
|
9
9
|
|
|
@@ -31,21 +31,21 @@ function MessageProgressWithContext <T extends MessageProgressProps>(
|
|
|
31
31
|
const [progressMessage, setProgressMessage] = useState<Message>();
|
|
32
32
|
const [progress, setProgress] = useState<number>(0);
|
|
33
33
|
|
|
34
|
-
const {
|
|
34
|
+
const { uploadPendingMessageList } = useTUIChatStateContext('MessageProgressWithContext');
|
|
35
35
|
const { isShowProgress: contextIsShow = false, Progress: contextProgress } = useTUIMessageContext('MessageProgressWithContext');
|
|
36
36
|
|
|
37
37
|
const Progress = propsProgress || contextProgress;
|
|
38
38
|
const isShow = propsIsShow || contextIsShow;
|
|
39
39
|
|
|
40
40
|
const handleLoading = () => !!((
|
|
41
|
-
message?.type ===
|
|
42
|
-
|| message?.type ===
|
|
43
|
-
|| message?.type ===
|
|
41
|
+
message?.type === TencentCloudChat.TYPES.MSG_IMAGE
|
|
42
|
+
|| message?.type === TencentCloudChat.TYPES.MSG_VIDEO
|
|
43
|
+
|| message?.type === TencentCloudChat.TYPES.MSG_FILE
|
|
44
44
|
) && message?.status === MESSAGE_STATUS.UNSEND);
|
|
45
45
|
|
|
46
46
|
useEffect(() => {
|
|
47
|
-
if (
|
|
48
|
-
|
|
47
|
+
if (uploadPendingMessageList && uploadPendingMessageList.length > 0) {
|
|
48
|
+
uploadPendingMessageList.map((item:MessageProgressItem) => {
|
|
49
49
|
if (item?.ID === message?.ID) {
|
|
50
50
|
setProgressMessage(item);
|
|
51
51
|
setProgress(item?.progress);
|
|
@@ -53,7 +53,7 @@ function MessageProgressWithContext <T extends MessageProgressProps>(
|
|
|
53
53
|
return item;
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
}, [
|
|
56
|
+
}, [uploadPendingMessageList]);
|
|
57
57
|
|
|
58
58
|
if (!isShow) {
|
|
59
59
|
return null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren, useCallback } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat from '@tencentcloud/chat';
|
|
3
3
|
import { MESSAGE_FLOW, MESSAGE_OPERATE } from '../../constants';
|
|
4
4
|
import { useTUIChatActionContext } from '../../context';
|
|
5
5
|
import type { MessageContextProps } from './MessageText';
|
|
@@ -30,7 +30,7 @@ function MessageRevokeWithContext <T extends MessageContextProps>(
|
|
|
30
30
|
<span> recalled a message</span>
|
|
31
31
|
{
|
|
32
32
|
message?.flow === MESSAGE_FLOW.OUT
|
|
33
|
-
&& message?.type ===
|
|
33
|
+
&& message?.type === TencentCloudChat.TYPES.MSG_TEXT
|
|
34
34
|
&& <span className="edit" role="button" tabIndex={0} onClick={handleRevoke}> Re-edit</span>
|
|
35
35
|
}
|
|
36
36
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
3
3
|
import { UnknowPorps } from '../../context';
|
|
4
4
|
|
|
5
5
|
export interface MessageContextProps {
|
|
@@ -18,7 +18,7 @@ function MessageTextWithContext <T extends MessageContextProps>(
|
|
|
18
18
|
} = props;
|
|
19
19
|
|
|
20
20
|
return (
|
|
21
|
-
<div className={`bubble message-text bubble-${message.flow} ${message?.conversationType ===
|
|
21
|
+
<div className={`bubble message-text bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
|
|
22
22
|
<div className="message-text-content">
|
|
23
23
|
{context.text.map((item, index) => {
|
|
24
24
|
const key = message.ID + index;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat from '@tencentcloud/chat';
|
|
3
3
|
import type { TUIMessageProps } from './TUIMessage';
|
|
4
4
|
|
|
5
5
|
import { MessageBubble } from './MessageBubble';
|
|
@@ -43,35 +43,34 @@ function TUIMessageDefaultWithContext <T extends TUIMessageProps>(
|
|
|
43
43
|
<div
|
|
44
44
|
className={
|
|
45
45
|
`message-default
|
|
46
|
-
${(message?.type ===
|
|
46
|
+
${(message?.type === TencentCloudChat.TYPES.MSG_GRP_TIP || message?.isRevoked) ? 'tip' : message?.flow}
|
|
47
47
|
${className}
|
|
48
48
|
`
|
|
49
49
|
}
|
|
50
50
|
>
|
|
51
51
|
{
|
|
52
|
-
message?.type ===
|
|
52
|
+
message?.type === TencentCloudChat.TYPES.MSG_GRP_TIP
|
|
53
53
|
&& (<MessageTip message={message} />)
|
|
54
54
|
}
|
|
55
55
|
{
|
|
56
|
-
message?.type ===
|
|
56
|
+
message?.type === TencentCloudChat.TYPES.MSG_GRP_SYS_NOTICE
|
|
57
57
|
&& (<MessageSystem message={message} />)
|
|
58
58
|
}
|
|
59
59
|
{
|
|
60
60
|
message?.isRevoked
|
|
61
61
|
&& (<MessageRevoke message={message} />)
|
|
62
62
|
}
|
|
63
|
-
{message?.type !==
|
|
64
|
-
&& message?.type !==
|
|
63
|
+
{message?.type !== TencentCloudChat.TYPES.MSG_GRP_TIP
|
|
64
|
+
&& message?.type !== TencentCloudChat.TYPES.MSG_GRP_SYS_NOTICE
|
|
65
65
|
&& !message?.isRevoked
|
|
66
66
|
&& (
|
|
67
67
|
<div
|
|
68
68
|
className={`${message?.flow}`}
|
|
69
69
|
key={message?.ID}
|
|
70
|
-
data-message-id={message?.ID}
|
|
71
70
|
>
|
|
72
71
|
{prefix}
|
|
73
72
|
<MessageAvatar message={message} CustomAvatar={customAvatar} showType={showAvatar} />
|
|
74
|
-
<main className="content">
|
|
73
|
+
<main data-message-id={message?.ID} className="content">
|
|
75
74
|
<MessageName message={message} CustomName={customName} showType={showName} />
|
|
76
75
|
<MessageBubble
|
|
77
76
|
message={message}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
2
2
|
import {
|
|
3
3
|
handleAudioMessageShowContext,
|
|
4
4
|
handleCustomMessageShowContext,
|
|
@@ -24,37 +24,37 @@ export const useMessageContextHandler = <T extends messageContextParams>(params:
|
|
|
24
24
|
let context;
|
|
25
25
|
if (message) {
|
|
26
26
|
switch (message?.type) {
|
|
27
|
-
case
|
|
27
|
+
case TencentCloudChat.TYPES.MSG_TEXT:
|
|
28
28
|
context = handleTextMessageShowContext(message);
|
|
29
29
|
break;
|
|
30
|
-
case
|
|
30
|
+
case TencentCloudChat.TYPES.MSG_FACE:
|
|
31
31
|
context = handleFaceMessageShowContext(message);
|
|
32
32
|
break;
|
|
33
|
-
case
|
|
33
|
+
case TencentCloudChat.TYPES.MSG_IMAGE:
|
|
34
34
|
context = handleImageMessageShowContext(message);
|
|
35
35
|
break;
|
|
36
|
-
case
|
|
36
|
+
case TencentCloudChat.TYPES.MSG_AUDIO:
|
|
37
37
|
context = handleAudioMessageShowContext(message);
|
|
38
38
|
break;
|
|
39
|
-
case
|
|
39
|
+
case TencentCloudChat.TYPES.MSG_VIDEO:
|
|
40
40
|
context = handleVideoMessageShowContext(message);
|
|
41
41
|
break;
|
|
42
|
-
case
|
|
42
|
+
case TencentCloudChat.TYPES.MSG_FILE:
|
|
43
43
|
context = handleFileMessageShowContext(message);
|
|
44
44
|
break;
|
|
45
|
-
case
|
|
45
|
+
case TencentCloudChat.TYPES.MSG_CUSTOM:
|
|
46
46
|
context = handleCustomMessageShowContext(message);
|
|
47
47
|
break;
|
|
48
|
-
case
|
|
48
|
+
case TencentCloudChat.TYPES.MSG_MERGER:
|
|
49
49
|
context = handleMergerMessageShowContext(message);
|
|
50
50
|
break;
|
|
51
|
-
case
|
|
51
|
+
case TencentCloudChat.TYPES.MSG_LOCATION:
|
|
52
52
|
context = handleLocationMessageShowContext(message);
|
|
53
53
|
break;
|
|
54
|
-
case
|
|
54
|
+
case TencentCloudChat.TYPES.MSG_GRP_TIP:
|
|
55
55
|
context = handleTipMessageShowContext(message);
|
|
56
56
|
break;
|
|
57
|
-
case
|
|
57
|
+
case TencentCloudChat.TYPES.MSG_GRP_SYS_NOTICE:
|
|
58
58
|
context = translateGroupSystemNotice(message);
|
|
59
59
|
break;
|
|
60
60
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
|
-
import { Message } from '
|
|
2
|
+
import { Message } from '@tencentcloud/chat';
|
|
3
3
|
import { MESSAGE_FLOW, MESSAGE_OPERATE } from '../../../constants';
|
|
4
4
|
import { useTUIChatActionContext, useTUIKitContext } from '../../../context';
|
|
5
5
|
import { Toast } from '../../Toast';
|
|
@@ -17,20 +17,20 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
|
|
|
17
17
|
|
|
18
18
|
const {
|
|
19
19
|
removeMessage,
|
|
20
|
-
|
|
20
|
+
editLocalMessage,
|
|
21
21
|
operateMessage,
|
|
22
22
|
revokeMessage,
|
|
23
23
|
} = useTUIChatActionContext('useDeleteHandler');
|
|
24
|
-
const {
|
|
24
|
+
const { chat } = useTUIKitContext('useDeleteHandler');
|
|
25
25
|
|
|
26
26
|
const handleDelMessage = useCallback(async (event?) => {
|
|
27
27
|
event.preventDefault();
|
|
28
|
-
if (!message?.ID || !
|
|
28
|
+
if (!message?.ID || !chat || !removeMessage) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
try {
|
|
33
|
-
await
|
|
33
|
+
await chat.deleteMessage([message]);
|
|
34
34
|
removeMessage(message);
|
|
35
35
|
} catch (error) {
|
|
36
36
|
if (handleError) {
|
|
@@ -47,7 +47,7 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
|
|
|
47
47
|
|
|
48
48
|
const handleRevokeMessage = useCallback(async (event?) => {
|
|
49
49
|
event.preventDefault();
|
|
50
|
-
if (!message?.ID || !
|
|
50
|
+
if (!message?.ID || !chat || !editLocalMessage) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -55,9 +55,9 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
|
|
|
55
55
|
if (revokeMessage) {
|
|
56
56
|
await revokeMessage(message);
|
|
57
57
|
} else {
|
|
58
|
-
await
|
|
58
|
+
await chat.revokeMessage(message);
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
editLocalMessage(message);
|
|
61
61
|
} catch (error) {
|
|
62
62
|
if (handleError) {
|
|
63
63
|
handleError({
|
|
@@ -74,7 +74,7 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
|
|
|
74
74
|
|
|
75
75
|
const handleReplyMessage = useCallback((event?) => {
|
|
76
76
|
event.preventDefault();
|
|
77
|
-
if (!message?.ID || !
|
|
77
|
+
if (!message?.ID || !chat || !operateMessage) {
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
operateMessage({
|
|
@@ -106,8 +106,8 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
|
|
|
106
106
|
|
|
107
107
|
const handleResendMessage = useCallback(async (event?) => {
|
|
108
108
|
try {
|
|
109
|
-
const res = await
|
|
110
|
-
|
|
109
|
+
const res = await chat.resendMessage(message);
|
|
110
|
+
editLocalMessage(res?.data?.message);
|
|
111
111
|
} catch (error) {
|
|
112
112
|
if (handleError) {
|
|
113
113
|
handleError({
|
|
@@ -123,7 +123,7 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
|
|
|
123
123
|
|
|
124
124
|
const handleForWardMessage = useCallback(async (event?) => {
|
|
125
125
|
event.preventDefault();
|
|
126
|
-
if (!message?.ID || !
|
|
126
|
+
if (!message?.ID || !chat || !operateMessage) {
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
129
129
|
operateMessage({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
3
3
|
|
|
4
4
|
interface MessagePluginElementProps {
|
|
5
5
|
handle?: (event?:React.SyntheticEvent<Element, Event>) => void,
|
|
6
6
|
children: React.ReactNode,
|
|
7
7
|
isShow?: boolean,
|
|
8
|
-
relateMessageType?:
|
|
8
|
+
relateMessageType?: TencentCloudChat.TYPES[],
|
|
9
9
|
message?: Message
|
|
10
10
|
}
|
|
11
11
|
export const useMessagePluginElement = <
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useLayoutEffect, useState } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
3
3
|
import { useTUIChatStateContext, useTUIKitContext } from '../../../context';
|
|
4
4
|
import { JSONStringToParse } from '../../untils';
|
|
5
5
|
|
|
@@ -8,13 +8,13 @@ interface messageContextParams {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
const replyType = {
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
11
|
+
[TencentCloudChat.TYPES.MSG_TEXT]: 1,
|
|
12
|
+
[TencentCloudChat.TYPES.MSG_FACE]: 8,
|
|
13
|
+
[TencentCloudChat.TYPES.MSG_IMAGE]: 3,
|
|
14
|
+
[TencentCloudChat.TYPES.MSG_AUDIO]: 4,
|
|
15
|
+
[TencentCloudChat.TYPES.MSG_VIDEO]: 5,
|
|
16
|
+
[TencentCloudChat.TYPES.MSG_FILE]: 6,
|
|
17
|
+
[TencentCloudChat.TYPES.MSG_CUSTOM]: 2,
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
export const useMessageReply = <T extends messageContextParams>(params:T) => {
|
|
@@ -26,7 +26,7 @@ export const useMessageReply = <T extends messageContextParams>(params:T) => {
|
|
|
26
26
|
const [replyMessage, setReplyMessage] = useState(null);
|
|
27
27
|
const [messageID, setMessageID] = useState('');
|
|
28
28
|
|
|
29
|
-
const {
|
|
29
|
+
const { chat } = useTUIKitContext('TUIChat');
|
|
30
30
|
const { messageList } = useTUIChatStateContext('useMessageReply');
|
|
31
31
|
|
|
32
32
|
useLayoutEffect(() => {
|
|
@@ -48,11 +48,11 @@ export const useMessageReply = <T extends messageContextParams>(params:T) => {
|
|
|
48
48
|
const replyData = messageList.filter((item) => {
|
|
49
49
|
const isSomeID = item.ID === reply?.messageID;
|
|
50
50
|
const isSomeType = isSomeID && replyType[item.type] === reply.messageType;
|
|
51
|
-
const isSomeContent = item.type ===
|
|
51
|
+
const isSomeContent = item.type === TencentCloudChat.TYPES.MSG_TEXT
|
|
52
52
|
? item.payload.text === reply.messageAbstract : true;
|
|
53
53
|
return isSomeID && isSomeType && isSomeContent;
|
|
54
54
|
});
|
|
55
|
-
setReplyMessage(replyData[0] ||
|
|
55
|
+
setReplyMessage(replyData[0] || chat.findMessage(reply?.messageID));
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import TencentCloudChat, { Conversation, Group, Message } from '@tencentcloud/chat';
|
|
2
2
|
import { decodeText } from './decodeText';
|
|
3
3
|
import constant, { MESSAGE_STATUS } from '../../../constants';
|
|
4
4
|
import { JSONStringToParse } from '../../untils';
|
|
@@ -12,12 +12,12 @@ function t(params:string) {
|
|
|
12
12
|
export function handleAvatar(item: any) {
|
|
13
13
|
let avatar = '';
|
|
14
14
|
switch (item.type) {
|
|
15
|
-
case
|
|
15
|
+
case TencentCloudChat.TYPES.CONV_C2C:
|
|
16
16
|
avatar = isUrl(item?.userProfile?.avatar)
|
|
17
17
|
? item?.userProfile?.avatar
|
|
18
18
|
: 'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png';
|
|
19
19
|
break;
|
|
20
|
-
case
|
|
20
|
+
case TencentCloudChat.TYPES.CONV_GROUP:
|
|
21
21
|
avatar = isUrl(item?.groupProfile?.avatar)
|
|
22
22
|
? item?.groupProfile?.avatar
|
|
23
23
|
: 'https://sdk-web-1252463788.cos.ap-hongkong.myqcloud.com/im/demo/TUIkit/web/img/constomer.svg';
|
|
@@ -35,10 +35,10 @@ export function handleAvatar(item: any) {
|
|
|
35
35
|
export function handleName(item: Conversation) {
|
|
36
36
|
let name = '';
|
|
37
37
|
switch (item.type) {
|
|
38
|
-
case
|
|
38
|
+
case TencentCloudChat.TYPES.CONV_C2C:
|
|
39
39
|
name = item?.userProfile.nick || item?.userProfile?.userID || '';
|
|
40
40
|
break;
|
|
41
|
-
case
|
|
41
|
+
case TencentCloudChat.TYPES.CONV_GROUP:
|
|
42
42
|
name = item.groupProfile.name || item?.groupProfile?.groupID || '';
|
|
43
43
|
break;
|
|
44
44
|
default:
|
|
@@ -71,7 +71,7 @@ export function handleShowLastMessage(item: Conversation) {
|
|
|
71
71
|
// Judge the number of unread messages and display them only
|
|
72
72
|
// when the message is enabled without interruption.
|
|
73
73
|
const showUnreadCount = conversation.unreadCount > 0
|
|
74
|
-
&& conversation.messageRemindType ===
|
|
74
|
+
&& conversation.messageRemindType === TencentCloudChat.TYPES.MSG_REMIND_ACPT_NOT_NOTE
|
|
75
75
|
? t(`[${conversation.unreadCount > 99 ? '99+' : conversation.unreadCount}条]`)
|
|
76
76
|
: '';
|
|
77
77
|
if (!lastMessage.lastTime) {
|
|
@@ -79,7 +79,7 @@ export function handleShowLastMessage(item: Conversation) {
|
|
|
79
79
|
}
|
|
80
80
|
// Determine the lastmessage sender of the group.
|
|
81
81
|
// Namecard / Nick / userid is displayed by priority
|
|
82
|
-
if (conversation.type ===
|
|
82
|
+
if (conversation.type === TencentCloudChat.TYPES.CONV_GROUP) {
|
|
83
83
|
if (lastMessage.fromAccount === conversation.groupProfile.selfInfo.userID) {
|
|
84
84
|
showNick = t('TUIConversation.我');
|
|
85
85
|
} else {
|
|
@@ -87,7 +87,7 @@ export function handleShowLastMessage(item: Conversation) {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
// Display content of lastmessage message body
|
|
90
|
-
if (lastMessage.type ===
|
|
90
|
+
if (lastMessage.type === TencentCloudChat.TYPES.MSG_TEXT) {
|
|
91
91
|
lastMessagePayload = lastMessage.payload.text;
|
|
92
92
|
} else {
|
|
93
93
|
lastMessagePayload = lastMessage.messageForShow;
|
|
@@ -97,7 +97,7 @@ export function handleShowLastMessage(item: Conversation) {
|
|
|
97
97
|
lastMessagePayload = t('TUIChat.撤回了一条消息');
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
if (conversation.type ===
|
|
100
|
+
if (conversation.type === TencentCloudChat.TYPES.CONV_GROUP && lastMessage.type === TencentCloudChat.TYPES.MSG_GRP_TIP) {
|
|
101
101
|
return lastMessagePayload;
|
|
102
102
|
}
|
|
103
103
|
// Specific display content of message box
|
|
@@ -120,28 +120,28 @@ export function handleTipMessageShowContext(message: Message) {
|
|
|
120
120
|
userName = userName.slice(0, -1);
|
|
121
121
|
}
|
|
122
122
|
switch (message.payload.operationType) {
|
|
123
|
-
case
|
|
123
|
+
case TencentCloudChat.TYPES.GRP_TIP_MBR_JOIN:
|
|
124
124
|
options.text = `${userName} ${t('message.tip.Join in group')}`;
|
|
125
125
|
break;
|
|
126
|
-
case
|
|
126
|
+
case TencentCloudChat.TYPES.GRP_TIP_MBR_QUIT:
|
|
127
127
|
options.text = `${t('message.tip.member')}:${userName} ${t('message.tip.quit group')}`;
|
|
128
128
|
break;
|
|
129
|
-
case
|
|
129
|
+
case TencentCloudChat.TYPES.GRP_TIP_MBR_KICKED_OUT:
|
|
130
130
|
options.text = `${t('message.tip.member')}:${userName} ${t('message.tip.by')}${message.payload.operatorID}${t(
|
|
131
131
|
'message.tip.kicked out of group',
|
|
132
132
|
)}`;
|
|
133
133
|
break;
|
|
134
|
-
case
|
|
134
|
+
case TencentCloudChat.TYPES.GRP_TIP_MBR_SET_ADMIN:
|
|
135
135
|
options.text = `${t('message.tip.member')}:${userName} ${t('message.tip.become admin')}`;
|
|
136
136
|
break;
|
|
137
|
-
case
|
|
137
|
+
case TencentCloudChat.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:
|
|
138
138
|
options.text = `${t('message.tip.member')}:${userName} ${t('message.tip.by revoked administrator')}`;
|
|
139
139
|
break;
|
|
140
|
-
case
|
|
140
|
+
case TencentCloudChat.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:
|
|
141
141
|
// options.text = `${userName} 修改群组资料`;
|
|
142
142
|
options.text = handleTipGrpUpdated(message);
|
|
143
143
|
break;
|
|
144
|
-
case
|
|
144
|
+
case TencentCloudChat.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:
|
|
145
145
|
message.payload.memberList.map((member:any) => {
|
|
146
146
|
if (member.muteTime > 0) {
|
|
147
147
|
options.text = `${t('message.tip.member')}:${member.userID}${t('message.tip.muted')}`;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { PropsWithChildren, useCallback, useEffect } from 'react';
|
|
2
2
|
import './styles/index.scss';
|
|
3
3
|
|
|
4
|
-
import { Message } from '
|
|
4
|
+
import { Message } from '@tencentcloud/chat';
|
|
5
5
|
import { useTUIChatActionContext } from '../../context';
|
|
6
6
|
import { Icon, IconTypes } from '../Icon';
|
|
7
7
|
import { MESSAGE_OPERATE } from '../../constants';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, {
|
|
2
2
|
PropsWithChildren, useCallback, useEffect, useState,
|
|
3
3
|
} from 'react';
|
|
4
|
-
import { Conversation, Message } from '
|
|
4
|
+
import { Conversation, Message } from '@tencentcloud/chat';
|
|
5
5
|
import { useTUIChatActionContext } from '../../context';
|
|
6
6
|
import './styles/index.scss';
|
|
7
7
|
import { Model } from '../Model';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { MutableRefObject, PropsWithChildren } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat from '@tencentcloud/chat';
|
|
3
3
|
import { TUIMessageInputContextProvider } from '../../context/TUIMessageInputContext';
|
|
4
4
|
import { useMessageInputState, useCreateMessageInputContext } from './hooks';
|
|
5
5
|
import './styles/index.scss';
|
|
@@ -53,7 +53,7 @@ function TUIMessageInputProvider<T extends TUIMessageInputProps>(props: PropsWit
|
|
|
53
53
|
const messageInputState = useMessageInputState(props);
|
|
54
54
|
const { textareaRef, conversation } = useTUIChatStateContext('TUIMessageInput');
|
|
55
55
|
|
|
56
|
-
const contextDisabled = conversation?.type ===
|
|
56
|
+
const contextDisabled = conversation?.type === TencentCloudChat.TYPES.CONV_SYSTEM;
|
|
57
57
|
|
|
58
58
|
const { TUIMessageInputConfig } = useTUIChatStateContext('TUIMessageInput');
|
|
59
59
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat, { Conversation, Message } from '@tencentcloud/chat';
|
|
3
3
|
import { MESSAGE_OPERATE } from '../../../constants';
|
|
4
4
|
import {
|
|
5
5
|
useTUIChatActionContext, useTUIChatStateContext, useTUIKitContext,
|
|
@@ -12,7 +12,7 @@ export function useHandleForwardMessage(msg?:Message) {
|
|
|
12
12
|
|
|
13
13
|
const [conversationList, setConversationList] = useState([]);
|
|
14
14
|
const { sendMessage, createForwardMessage } = useTUIChatActionContext('useHandleForwardMessage');
|
|
15
|
-
const {
|
|
15
|
+
const { chat } = useTUIKitContext('TUIChat');
|
|
16
16
|
|
|
17
17
|
const message = msg || operateData[MESSAGE_OPERATE.FORWARD];
|
|
18
18
|
|
|
@@ -26,12 +26,12 @@ export function useHandleForwardMessage(msg?:Message) {
|
|
|
26
26
|
|
|
27
27
|
useEffect(() => {
|
|
28
28
|
(async () => {
|
|
29
|
-
const res = await
|
|
29
|
+
const res = await chat.getConversationList();
|
|
30
30
|
setConversationList(res?.data?.conversationList.filter(
|
|
31
|
-
(item) => item.type !==
|
|
31
|
+
(item) => item.type !== TencentCloudChat.TYPES.CONV_SYSTEM,
|
|
32
32
|
));
|
|
33
33
|
})();
|
|
34
|
-
}, [
|
|
34
|
+
}, [chat]);
|
|
35
35
|
|
|
36
36
|
return {
|
|
37
37
|
message,
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
3
3
|
import { MESSAGE_OPERATE } from '../../../constants';
|
|
4
4
|
import { useTUIChatStateContext } from '../../../context';
|
|
5
5
|
|
|
6
6
|
const quoteConfigType = {
|
|
7
|
-
[
|
|
8
|
-
[
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
7
|
+
[TencentCloudChat.TYPES.MSG_TEXT]: 1,
|
|
8
|
+
[TencentCloudChat.TYPES.MSG_CUSTOM]: 2,
|
|
9
|
+
[TencentCloudChat.TYPES.MSG_IMAGE]: 3,
|
|
10
|
+
[TencentCloudChat.TYPES.MSG_AUDIO]: 4,
|
|
11
|
+
[TencentCloudChat.TYPES.MSG_VIDEO]: 5,
|
|
12
|
+
[TencentCloudChat.TYPES.MSG_FILE]: 6,
|
|
13
|
+
[TencentCloudChat.TYPES.MSG_FACE]: 8,
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
const quoteConfigForShow = {
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
17
|
+
[TencentCloudChat.TYPES.MSG_CUSTOM]: '[custom]',
|
|
18
|
+
[TencentCloudChat.TYPES.MSG_IMAGE]: '[image]',
|
|
19
|
+
[TencentCloudChat.TYPES.MSG_AUDIO]: '[audio]',
|
|
20
|
+
[TencentCloudChat.TYPES.MSG_VIDEO]: '[video]',
|
|
21
|
+
[TencentCloudChat.TYPES.MSG_FILE]: '[file]',
|
|
22
|
+
[TencentCloudChat.TYPES.MSG_FACE]: '[face]',
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export function useHandleQuoteMessage(msg?:Message) {
|
|
@@ -31,7 +31,7 @@ export function useHandleQuoteMessage(msg?:Message) {
|
|
|
31
31
|
|
|
32
32
|
const handleQuoteMessage = (message: Message) => {
|
|
33
33
|
const messageType = quoteConfigType[message?.type];
|
|
34
|
-
const messageAbstract = message?.type ===
|
|
34
|
+
const messageAbstract = message?.type === TencentCloudChat.TYPES.MSG_TEXT
|
|
35
35
|
? message?.payload?.text
|
|
36
36
|
: quoteConfigForShow[message?.type];
|
|
37
37
|
|
|
@@ -28,7 +28,7 @@ export const useMessageInputText = (props:useMessageInputTextProps) => {
|
|
|
28
28
|
sendUploadMessage,
|
|
29
29
|
} = props;
|
|
30
30
|
|
|
31
|
-
const {
|
|
31
|
+
const { chat } = useTUIKitContext('useMessageInputText');
|
|
32
32
|
const { sendMessage, createTextMessage, operateMessage } = useTUIChatActionContext('TUIMessageInput');
|
|
33
33
|
|
|
34
34
|
const { cloudCustomData } = useHandleQuoteMessage();
|
|
@@ -46,7 +46,7 @@ export const useMessageInputText = (props:useMessageInputTextProps) => {
|
|
|
46
46
|
getNewText: (text:string) => event.target.value,
|
|
47
47
|
});
|
|
48
48
|
},
|
|
49
|
-
[
|
|
49
|
+
[chat],
|
|
50
50
|
);
|
|
51
51
|
|
|
52
52
|
const handleSubmit = async (
|
|
@@ -16,7 +16,7 @@ export function useUploadPicker<T extends IbaseStateProps>(props:PropsWithChildr
|
|
|
16
16
|
createImageMessage,
|
|
17
17
|
createVideoMessage,
|
|
18
18
|
createFileMessage,
|
|
19
|
-
|
|
19
|
+
updateUploadPendingMessageList,
|
|
20
20
|
} = useTUIChatActionContext('useUploadPicker');
|
|
21
21
|
|
|
22
22
|
const creatUploadMessage = {
|
|
@@ -30,7 +30,7 @@ export function useUploadPicker<T extends IbaseStateProps>(props:PropsWithChildr
|
|
|
30
30
|
payload: file,
|
|
31
31
|
onProgress(num:number) {
|
|
32
32
|
message.progress = num;
|
|
33
|
-
|
|
33
|
+
updateUploadPendingMessageList(message);
|
|
34
34
|
},
|
|
35
35
|
});
|
|
36
36
|
sendMessage(message);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren, useState, useEffect } from 'react';
|
|
2
|
-
import { Message } from '
|
|
2
|
+
import { Message } from '@tencentcloud/chat';
|
|
3
3
|
import {
|
|
4
4
|
useTUIChatStateContext,
|
|
5
5
|
useTUIChatActionContext,
|
|
@@ -88,7 +88,7 @@ function TUIMessageListWithContext <T extends MessageListProps>(
|
|
|
88
88
|
if (!element) {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
|
-
const { children } = element
|
|
91
|
+
const { children } = element;
|
|
92
92
|
children[children.length - 1].classList.add('high-lighted');
|
|
93
93
|
element?.scrollIntoView({ block: 'center' });
|
|
94
94
|
const timer = setTimeout(() => {
|