@tencentcloud/chat-uikit-react 1.2.2 → 2.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/.eslintrc.js +2 -1
- package/CHANGELOG.md +8 -2
- package/dist/cjs/components/ConversationCreate/ConversationCreatGroupDetail.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/ConversationPreview.d.ts +2 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreview.js +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.js +1 -1
- package/dist/cjs/components/Icon/config.js +1 -1
- package/dist/cjs/components/Icon/images/chats-selected.svg.js +1 -0
- package/dist/cjs/components/Icon/images/chats.svg.js +1 -0
- package/dist/cjs/components/Icon/images/contacts-selected.svg.js +1 -0
- package/dist/cjs/components/Icon/images/contacts.svg.js +1 -0
- package/dist/cjs/components/Icon/images/files.png.js +1 -0
- package/dist/cjs/components/Icon/images/image.png.js +1 -1
- package/dist/cjs/components/Icon/images/video.png.js +1 -1
- package/dist/cjs/components/TUIChat/TUIChat.d.ts +5 -0
- package/dist/cjs/components/TUIChat/TUIChat.js +1 -1
- package/dist/cjs/components/TUIChat/TUIChatState.js +1 -1
- package/dist/cjs/components/TUIChat/hooks/useHandleMessage.js +1 -1
- package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -1
- package/dist/cjs/components/TUIChat/unitls.js +1 -1
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
- package/dist/cjs/components/TUIContact/TUIContactInfo/friendInfo.js +1 -1
- package/dist/cjs/components/TUIContact/TUIContactList/TUIContactList.js +1 -1
- package/dist/cjs/components/TUIConversation/TUIConversation.js +1 -1
- package/dist/cjs/components/TUIConversationList/TUIConversationList.d.ts +1 -0
- package/dist/cjs/components/TUIConversationList/TUIConversationList.js +1 -1
- package/dist/cjs/components/TUIKit/TUIKit.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.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageImage.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageName.js +1 -1
- package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageSystem.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageText.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageTip.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageVideo.js +1 -1
- package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -1
- package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -1
- package/dist/cjs/components/TUIMessage/utils/index.js +1 -1
- package/dist/cjs/components/TUIMessageInput/TUIForward.js +1 -1
- package/dist/cjs/components/TUIMessageInput/TUIMessageInput.js +1 -1
- package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
- package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.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.js +1 -1
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -1
- package/dist/cjs/components/untils.js +1 -1
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/context/ComponentContext.d.ts +2 -0
- package/dist/cjs/context/TUIChatActionContext.d.ts +3 -14
- package/dist/cjs/context/TUIChatStateContext.d.ts +2 -0
- package/dist/cjs/context/TUIConversationContext.js +1 -1
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.d.css +240 -12
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/locales/en/TUIChat.js +1 -1
- package/dist/cjs/locales/en/TUIContact.js +1 -1
- package/dist/cjs/locales/en/TUIProfile.js +1 -1
- package/dist/cjs/locales/index.js +1 -1
- package/dist/cjs/locales/zh_cn/TUIChat.js +1 -1
- package/dist/cjs/locales/zh_cn/TUIContact.js +1 -1
- package/dist/cjs/locales/zh_cn/TUIProfile.js +1 -1
- package/dist/cjs/server.js +1 -0
- package/dist/cjs/utils/env.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreatGroupDetail.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/ConversationPreview.d.ts +2 -0
- package/dist/esm/components/ConversationPreview/ConversationPreview.js +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.js +1 -1
- package/dist/esm/components/Icon/config.js +1 -1
- package/dist/esm/components/Icon/images/chats-selected.svg.js +1 -0
- package/dist/esm/components/Icon/images/chats.svg.js +1 -0
- package/dist/esm/components/Icon/images/contacts-selected.svg.js +1 -0
- package/dist/esm/components/Icon/images/contacts.svg.js +1 -0
- package/dist/esm/components/Icon/images/files.png.js +1 -0
- package/dist/esm/components/Icon/images/image.png.js +1 -1
- package/dist/esm/components/Icon/images/video.png.js +1 -1
- package/dist/esm/components/TUIChat/TUIChat.d.ts +5 -0
- package/dist/esm/components/TUIChat/TUIChat.js +1 -1
- package/dist/esm/components/TUIChat/TUIChatState.js +1 -1
- package/dist/esm/components/TUIChat/hooks/useHandleMessage.js +1 -1
- package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -1
- package/dist/esm/components/TUIChat/unitls.js +1 -1
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
- package/dist/esm/components/TUIContact/TUIContactInfo/friendInfo.js +1 -1
- package/dist/esm/components/TUIContact/TUIContactList/TUIContactList.js +1 -1
- package/dist/esm/components/TUIConversation/TUIConversation.js +1 -1
- package/dist/esm/components/TUIConversationList/TUIConversationList.d.ts +1 -0
- package/dist/esm/components/TUIConversationList/TUIConversationList.js +1 -1
- package/dist/esm/components/TUIKit/TUIKit.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.js +1 -1
- package/dist/esm/components/TUIMessage/MessageCustom.js +1 -1
- package/dist/esm/components/TUIMessage/MessageImage.js +1 -1
- package/dist/esm/components/TUIMessage/MessageName.js +1 -1
- package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -1
- package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -1
- package/dist/esm/components/TUIMessage/MessageSystem.js +1 -1
- package/dist/esm/components/TUIMessage/MessageText.js +1 -1
- package/dist/esm/components/TUIMessage/MessageTip.js +1 -1
- package/dist/esm/components/TUIMessage/MessageVideo.js +1 -1
- package/dist/esm/components/TUIMessage/TUIMessage.js +1 -1
- package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -1
- package/dist/esm/components/TUIMessage/utils/index.js +1 -1
- package/dist/esm/components/TUIMessageInput/TUIForward.js +1 -1
- package/dist/esm/components/TUIMessageInput/TUIMessageInput.js +1 -1
- package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
- package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
- package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.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.js +1 -1
- package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -1
- package/dist/esm/components/untils.js +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/context/ComponentContext.d.ts +2 -0
- package/dist/esm/context/TUIChatActionContext.d.ts +3 -14
- package/dist/esm/context/TUIChatStateContext.d.ts +2 -0
- package/dist/esm/context/TUIConversationContext.js +1 -1
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.d.css +240 -12
- package/dist/esm/index.js +1 -1
- package/dist/esm/locales/en/TUIChat.js +1 -1
- package/dist/esm/locales/en/TUIContact.js +1 -1
- package/dist/esm/locales/en/TUIProfile.js +1 -1
- package/dist/esm/locales/index.js +1 -1
- package/dist/esm/locales/zh_cn/TUIChat.js +1 -1
- package/dist/esm/locales/zh_cn/TUIContact.js +1 -1
- package/dist/esm/locales/zh_cn/TUIProfile.js +1 -1
- package/dist/esm/server.js +1 -0
- package/dist/esm/utils/env.js +1 -0
- package/package.json +7 -6
- package/rollup.config.js +0 -1
- package/scripts/publish-github.js +60 -0
- package/scripts/publish-intl-demo.js +14 -0
- package/scripts/publish-npm.js +22 -0
- package/src/components/Avatar/styles/index.scss +1 -0
- package/src/components/ConversationCreate/ConversationCreatGroupDetail.tsx +6 -3
- package/src/components/ConversationCreate/ConversationCreateUserSelectList.tsx +5 -1
- package/src/components/ConversationCreate/hooks/useConversationCreate.tsx +7 -2
- package/src/components/ConversationCreate/styles/conversationGroupTypeInfo.scss +1 -0
- package/src/components/ConversationCreate/styles/index.scss +2 -0
- package/src/components/ConversationPreview/ConversationPreview.tsx +2 -0
- package/src/components/ConversationPreview/ConversationPreviewContent.tsx +57 -9
- package/src/components/ConversationPreview/styles/index.scss +4 -2
- package/src/components/ConversationPreview/utils.tsx +5 -1
- package/src/components/DivWithEdit/styles/index.scss +2 -1
- package/src/components/Icon/config.ts +1 -1
- package/src/components/Icon/images/chats-selected.svg +6 -0
- package/src/components/Icon/images/chats.svg +9 -0
- package/src/components/Icon/images/contacts-selected.svg +3 -0
- package/src/components/Icon/images/contacts.svg +6 -0
- package/src/components/Icon/images/files.png +0 -0
- package/src/components/Icon/images/image.png +0 -0
- package/src/components/Icon/images/language.svg +3 -0
- package/src/components/Icon/images/video.png +0 -0
- package/src/components/Model/styles/layout.scss +1 -1
- package/src/components/Profile/styles/index.scss +4 -0
- package/src/components/TUIChat/TUIChat.tsx +74 -120
- package/src/components/TUIChat/TUIChatState.tsx +18 -45
- package/src/components/TUIChat/hooks/useHandleMessage.tsx +8 -0
- package/src/components/TUIChat/hooks/useHandleMessageList.tsx +2 -41
- package/src/components/TUIChat/unitls.ts +0 -29
- package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +7 -1
- package/src/components/TUIContact/TUIContactInfo/friendInfo.tsx +4 -1
- package/src/components/TUIContact/TUIContactList/TUIContactList.tsx +1 -1
- package/src/components/TUIConversation/TUIConversation.tsx +1 -4
- package/src/components/TUIConversationList/TUIConversationList.tsx +91 -65
- package/src/components/TUIConversationList/index.scss +5 -0
- package/src/components/TUIKit/TUIKit.tsx +133 -9
- package/src/components/TUIKit/styles/h5.scss +34 -0
- package/src/components/TUIKit/styles/index.scss +103 -0
- package/src/components/TUIKit/styles/reset.scss +20 -0
- package/src/components/TUIManage/TUIManage.tsx +59 -35
- package/src/components/TUIManage/styles/index.scss +15 -1
- package/src/components/TUIMessage/MessageBubble.tsx +20 -3
- package/src/components/TUIMessage/MessageCustom.tsx +11 -2
- package/src/components/TUIMessage/MessageImage.tsx +2 -1
- package/src/components/TUIMessage/MessageName.tsx +1 -1
- package/src/components/TUIMessage/MessagePlugins.tsx +4 -2
- package/src/components/TUIMessage/MessageRevoke.tsx +2 -2
- package/src/components/TUIMessage/MessageText.tsx +25 -3
- package/src/components/TUIMessage/MessageVideo.tsx +8 -5
- package/src/components/TUIMessage/hooks/useMessageHandler.ts +13 -33
- package/src/components/TUIMessage/styles/color.scss +1 -0
- package/src/components/TUIMessage/styles/layout.scss +33 -6
- package/src/components/TUIMessage/utils/index.ts +1 -1
- package/src/components/TUIMessageInput/TUIMessageInputDefault.tsx +2 -2
- package/src/components/TUIMessageInput/hooks/useEmojiPicker.tsx +2 -6
- package/src/components/TUIMessageInput/hooks/useHandleForwardMessage.tsx +4 -3
- package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +10 -3
- package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +10 -14
- package/src/components/TUIMessageInput/styles/color.scss +1 -1
- package/src/components/TUIMessageInput/styles/layout.scss +7 -2
- package/src/components/TUIMessageList/TUIMessageList.tsx +9 -13
- package/src/components/TUIMessageList/index.ts +0 -1
- package/src/components/TUIProfile/TUIProfileDefault.tsx +65 -51
- package/src/components/TUIProfile/styles/layout.scss +6 -0
- package/src/components/untils.ts +9 -0
- package/src/constants.ts +4 -1
- package/src/context/ComponentContext.tsx +2 -0
- package/src/context/TUIChatActionContext.tsx +3 -23
- package/src/context/TUIChatStateContext.tsx +2 -0
- package/src/context/TUIKitContext.tsx +0 -1
- package/src/index.ts +3 -0
- package/src/locales/en/TUIChat.ts +2 -1
- package/src/locales/en/TUIContact.ts +1 -1
- package/src/locales/en/TUIProfile.ts +5 -4
- package/src/locales/index.ts +1 -1
- package/src/locales/zh_cn/TUIChat.ts +1 -0
- package/src/locales/zh_cn/TUIContact.ts +1 -1
- package/src/locales/zh_cn/TUIProfile.ts +1 -0
- package/src/server.ts +44 -0
- package/src/utils/env.ts +5 -0
- package/tsconfig.json +1 -0
- package/dist/cjs/components/Icon/images/document.png.js +0 -1
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.d.ts +0 -59
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.js +0 -1
- package/dist/cjs/components/TUIChat/hooks/useMessageReceviedListener.js +0 -1
- package/dist/cjs/components/TUIMessageList/hooks/useEnrichedMessageList.js +0 -1
- package/dist/esm/components/Icon/images/document.png.js +0 -1
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.d.ts +0 -59
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.js +0 -1
- package/dist/esm/components/TUIChat/hooks/useMessageReceviedListener.js +0 -1
- package/dist/esm/components/TUIMessageList/hooks/useEnrichedMessageList.js +0 -1
- package/src/components/TUIChat/hooks/useCreateMessage.tsx +0 -198
- package/src/components/TUIChat/hooks/useMessageReceviedListener.tsx +0 -26
- package/src/components/TUIMessageList/hooks/useEnrichedMessageList.tsx +0 -16
|
@@ -2,6 +2,13 @@ import React, {
|
|
|
2
2
|
PropsWithChildren, useEffect, useMemo, useReducer, useRef, useState,
|
|
3
3
|
} from 'react';
|
|
4
4
|
import { ChatSDK, Conversation, Message } from '@tencentcloud/chat';
|
|
5
|
+
import TUIChatEngine, {
|
|
6
|
+
TUIChatService,
|
|
7
|
+
IMessageModel,
|
|
8
|
+
TUIStore,
|
|
9
|
+
StoreName,
|
|
10
|
+
} from '@tencentcloud/chat-uikit-engine';
|
|
11
|
+
import { JSONStringToParse } from '../untils';
|
|
5
12
|
import { useTUIKitContext } from '../../context/TUIKitContext';
|
|
6
13
|
import { TUIChatStateContextProvider } from '../../context/TUIChatStateContext';
|
|
7
14
|
import { TUIChatActionProvider } from '../../context/TUIChatActionContext';
|
|
@@ -20,10 +27,8 @@ import type { MessageContextProps } from '../TUIMessage/MessageContext';
|
|
|
20
27
|
|
|
21
28
|
import './styles/index.scss';
|
|
22
29
|
import { CONSTANT_DISPATCH_TYPE } from '../../constants';
|
|
23
|
-
import { useMessageReceviedListener } from './hooks/useMessageReceviedListener';
|
|
24
30
|
import { chatReducer, ChatStateReducer, initialState } from './TUIChatState';
|
|
25
31
|
|
|
26
|
-
import { useCreateMessage } from './hooks/useCreateMessage';
|
|
27
32
|
import { useHandleMessageList } from './hooks/useHandleMessageList';
|
|
28
33
|
import { useHandleMessage } from './hooks/useHandleMessage';
|
|
29
34
|
|
|
@@ -31,7 +36,6 @@ import { TUIChatHeader as TUIChatHeaderElement } from '../TUIChatHeader';
|
|
|
31
36
|
import { MessageListProps, TUIMessageList } from '../TUIMessageList';
|
|
32
37
|
import { TUIMessageInput as TUIMessageInputElement, TUIMessageInputBasicProps } from '../TUIMessageInput';
|
|
33
38
|
import { EmptyStateIndicator } from '../EmptyStateIndicator';
|
|
34
|
-
import { Toast } from '../Toast';
|
|
35
39
|
|
|
36
40
|
interface TUIChatProps {
|
|
37
41
|
className?: string,
|
|
@@ -44,12 +48,16 @@ interface TUIChatProps {
|
|
|
44
48
|
InputPlugins?: React.ComponentType<UnknowPorps>,
|
|
45
49
|
InputQuote?: React.ComponentType<UnknowPorps>,
|
|
46
50
|
MessagePlugins?: React.ComponentType<UnknowPorps>,
|
|
51
|
+
MessageCustomPlugins?: React.ComponentType<UnknowPorps>,
|
|
52
|
+
MessageTextPlugins?: React.ComponentType<UnknowPorps>,
|
|
47
53
|
onMessageRecevied?: (
|
|
48
54
|
updateMessage: (event?: Array<Message>) => void,
|
|
49
55
|
event: any,
|
|
50
56
|
) => void,
|
|
51
57
|
sendMessage?: (message:Message, options?:any) => Promise<Message>,
|
|
52
58
|
revokeMessage?: (message:Message) => Promise<Message>,
|
|
59
|
+
selectedConversation?: (conversation:Conversation) => Promise<Conversation>,
|
|
60
|
+
filterMessage?: (messageList: Array<IMessageModel>) => Array<IMessageModel>,
|
|
53
61
|
messageConfig?: TUIMessageProps,
|
|
54
62
|
cloudCustomData?: string,
|
|
55
63
|
TUIMessageInputConfig?: TUIMessageInputBasicProps,
|
|
@@ -100,20 +108,24 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
100
108
|
InputPlugins,
|
|
101
109
|
MessagePlugins,
|
|
102
110
|
MessageContext,
|
|
111
|
+
MessageCustomPlugins,
|
|
112
|
+
MessageTextPlugins,
|
|
103
113
|
InputQuote,
|
|
104
114
|
onMessageRecevied,
|
|
105
115
|
sendMessage: propsSendMessage,
|
|
106
116
|
revokeMessage,
|
|
117
|
+
selectedConversation,
|
|
118
|
+
filterMessage,
|
|
107
119
|
messageConfig,
|
|
108
120
|
cloudCustomData,
|
|
109
121
|
TUIMessageInputConfig,
|
|
110
122
|
TUIMessageListConfig,
|
|
111
123
|
} = props;
|
|
112
124
|
|
|
113
|
-
const [state, dispatch] = useReducer<ChatStateReducer>(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
);
|
|
125
|
+
const [state, dispatch] = useReducer<ChatStateReducer>(chatReducer, {
|
|
126
|
+
...initialState,
|
|
127
|
+
conversation,
|
|
128
|
+
});
|
|
117
129
|
|
|
118
130
|
const messageListRef = useRef(null);
|
|
119
131
|
const textareaRef = useRef<HTMLTextAreaElement>();
|
|
@@ -130,27 +142,14 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
130
142
|
});
|
|
131
143
|
|
|
132
144
|
const {
|
|
133
|
-
createTextMessage,
|
|
134
|
-
createFaceMessage,
|
|
135
|
-
createImageMessage,
|
|
136
|
-
createVideoMessage,
|
|
137
|
-
createFileMessage,
|
|
138
|
-
createForwardMessage,
|
|
139
|
-
createCustomMessage,
|
|
140
|
-
createAudioMessage,
|
|
141
|
-
createTextAtMessage,
|
|
142
|
-
createLocationMessage,
|
|
143
|
-
createMergerMessage,
|
|
144
|
-
} = useCreateMessage({ chat, conversation, cloudCustomData });
|
|
145
|
-
|
|
146
|
-
const {
|
|
147
|
-
getMessageList,
|
|
148
|
-
updateMessage,
|
|
149
145
|
editLocalMessage,
|
|
150
|
-
removeMessage,
|
|
151
146
|
updateUploadPendingMessageList,
|
|
152
147
|
} = useHandleMessageList({
|
|
153
|
-
chat,
|
|
148
|
+
chat,
|
|
149
|
+
conversation,
|
|
150
|
+
state,
|
|
151
|
+
dispatch,
|
|
152
|
+
filterMessage,
|
|
154
153
|
});
|
|
155
154
|
|
|
156
155
|
const {
|
|
@@ -158,99 +157,62 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
158
157
|
setAudioSource,
|
|
159
158
|
setVideoSource,
|
|
160
159
|
setHighlightedMessageId,
|
|
160
|
+
setActiveMessageID,
|
|
161
161
|
} = useHandleMessage({
|
|
162
|
-
state,
|
|
162
|
+
state,
|
|
163
|
+
dispatch,
|
|
163
164
|
});
|
|
164
165
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
166
|
+
// 消息 messageList
|
|
167
|
+
useEffect(() => {
|
|
168
|
+
TUIStore.watch(StoreName.CHAT, {
|
|
169
|
+
messageList: onMessageListUpdated,
|
|
170
|
+
isCompleted: isCompletedUpdated,
|
|
171
|
+
});
|
|
172
|
+
return () => {
|
|
173
|
+
TUIStore.unwatch(StoreName.CHAT, {
|
|
174
|
+
messageList: onMessageListUpdated,
|
|
175
|
+
isCompleted: isCompletedUpdated,
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
}, []);
|
|
179
|
+
|
|
180
|
+
const onMessageListUpdated = (list: IMessageModel[]) => {
|
|
181
|
+
const messageList = list.filter((message) => !message.isDeleted);
|
|
182
|
+
dispatch({
|
|
183
|
+
type: CONSTANT_DISPATCH_TYPE.SET_MESSAGELIST,
|
|
184
|
+
value: filterMessage ? filterMessage(messageList) : messageList,
|
|
185
|
+
});
|
|
179
186
|
};
|
|
180
187
|
|
|
181
|
-
const
|
|
182
|
-
if (
|
|
188
|
+
const isCompletedUpdated = (flag: boolean) => {
|
|
189
|
+
if (flag) {
|
|
183
190
|
dispatch({
|
|
184
191
|
type: CONSTANT_DISPATCH_TYPE.SET_NO_MORE,
|
|
185
|
-
value:
|
|
192
|
+
value: flag,
|
|
186
193
|
});
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
const historyMessageData = await getMessageList({
|
|
190
|
-
nextReqMessageID: state.nextReqMessageID,
|
|
191
|
-
});
|
|
192
|
-
if (!historyMessageData) {
|
|
193
|
-
return;
|
|
194
194
|
}
|
|
195
|
-
dispatch({
|
|
196
|
-
type: CONSTANT_DISPATCH_TYPE.SET_HISTORY_MESSAGELIST,
|
|
197
|
-
value: historyMessageData.data.messageList,
|
|
198
|
-
});
|
|
199
|
-
dispatch({
|
|
200
|
-
type: CONSTANT_DISPATCH_TYPE.SET_IS_COMPLETE,
|
|
201
|
-
value: historyMessageData.data.isCompleted,
|
|
202
|
-
});
|
|
203
|
-
dispatch({
|
|
204
|
-
type: CONSTANT_DISPATCH_TYPE.SET_NEXT_REQ_MESSAGE_ID,
|
|
205
|
-
value: historyMessageData.data.nextReqMessageID,
|
|
206
|
-
});
|
|
207
195
|
};
|
|
208
196
|
|
|
209
|
-
|
|
197
|
+
// 加载历史消息 | Load historical messages
|
|
198
|
+
const loadMore = async () => {
|
|
199
|
+
TUIChatService.getMessageList();
|
|
200
|
+
};
|
|
210
201
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
if (res.data.messageList.length > 0) {
|
|
218
|
-
dispatch({
|
|
219
|
-
type: CONSTANT_DISPATCH_TYPE.SET_MESSAGELIST,
|
|
220
|
-
value: res.data.messageList,
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
dispatch({
|
|
224
|
-
type: CONSTANT_DISPATCH_TYPE.SET_MESSAGELIST,
|
|
225
|
-
value: res.data.messageList,
|
|
226
|
-
});
|
|
202
|
+
const setFirstSendMessage = async (message: any) => {
|
|
203
|
+
if (
|
|
204
|
+
!(message.type === 'TIMCustomElem' && JSONStringToParse(message.payload.data)?.src === 7)
|
|
205
|
+
&& !state.firstSendMessage
|
|
206
|
+
) {
|
|
227
207
|
dispatch({
|
|
228
|
-
type: CONSTANT_DISPATCH_TYPE.
|
|
229
|
-
value:
|
|
208
|
+
type: CONSTANT_DISPATCH_TYPE.SET_FIRST_SEND_MESSAGE,
|
|
209
|
+
value: message,
|
|
230
210
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
value: res.data.nextReqMessageID,
|
|
234
|
-
});
|
|
235
|
-
})();
|
|
236
|
-
}, [conversation]);
|
|
211
|
+
}
|
|
212
|
+
};
|
|
237
213
|
|
|
238
214
|
const chatActionContextValue: TUIChatActionContextValue = useMemo(
|
|
239
215
|
() => ({
|
|
240
|
-
sendMessage,
|
|
241
|
-
removeMessage,
|
|
242
|
-
updateMessage,
|
|
243
|
-
createTextMessage,
|
|
244
|
-
createFaceMessage,
|
|
245
|
-
createImageMessage,
|
|
246
|
-
createVideoMessage,
|
|
247
|
-
createFileMessage,
|
|
248
|
-
createForwardMessage,
|
|
249
|
-
createCustomMessage,
|
|
250
|
-
createAudioMessage,
|
|
251
|
-
createTextAtMessage,
|
|
252
|
-
createLocationMessage,
|
|
253
|
-
createMergerMessage,
|
|
254
216
|
editLocalMessage,
|
|
255
217
|
operateMessage,
|
|
256
218
|
loadMore,
|
|
@@ -258,23 +220,11 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
258
220
|
setAudioSource,
|
|
259
221
|
setVideoSource,
|
|
260
222
|
setHighlightedMessageId,
|
|
223
|
+
setActiveMessageID,
|
|
261
224
|
updateUploadPendingMessageList,
|
|
225
|
+
setFirstSendMessage,
|
|
262
226
|
}),
|
|
263
227
|
[
|
|
264
|
-
sendMessage,
|
|
265
|
-
removeMessage,
|
|
266
|
-
updateMessage,
|
|
267
|
-
createTextMessage,
|
|
268
|
-
createFaceMessage,
|
|
269
|
-
createImageMessage,
|
|
270
|
-
createVideoMessage,
|
|
271
|
-
createFileMessage,
|
|
272
|
-
createForwardMessage,
|
|
273
|
-
createCustomMessage,
|
|
274
|
-
createAudioMessage,
|
|
275
|
-
createTextAtMessage,
|
|
276
|
-
createLocationMessage,
|
|
277
|
-
createMergerMessage,
|
|
278
228
|
editLocalMessage,
|
|
279
229
|
operateMessage,
|
|
280
230
|
loadMore,
|
|
@@ -282,7 +232,9 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
282
232
|
setAudioSource,
|
|
283
233
|
setVideoSource,
|
|
284
234
|
setHighlightedMessageId,
|
|
235
|
+
setActiveMessageID,
|
|
285
236
|
updateUploadPendingMessageList,
|
|
237
|
+
setFirstSendMessage,
|
|
286
238
|
],
|
|
287
239
|
);
|
|
288
240
|
|
|
@@ -292,6 +244,8 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
292
244
|
MessageContext,
|
|
293
245
|
InputPlugins,
|
|
294
246
|
MessagePlugins,
|
|
247
|
+
MessageCustomPlugins,
|
|
248
|
+
MessageTextPlugins,
|
|
295
249
|
TUIChatHeader,
|
|
296
250
|
TUIMessageInput,
|
|
297
251
|
InputQuote,
|
|
@@ -305,11 +259,11 @@ function TUIChatInner <T extends TUIChatInnerProps>(
|
|
|
305
259
|
<TUIChatActionProvider value={chatActionContextValue}>
|
|
306
260
|
<ComponentProvider value={componentContextValue}>
|
|
307
261
|
{children || (
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
262
|
+
<>
|
|
263
|
+
<TUIChatHeaderElement />
|
|
264
|
+
<TUIMessageList />
|
|
265
|
+
<TUIMessageInputElement />
|
|
266
|
+
</>
|
|
313
267
|
)}
|
|
314
268
|
</ComponentProvider>
|
|
315
269
|
</TUIChatActionProvider>
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { Reducer } from 'react';
|
|
2
2
|
import { Conversation, Message } from '@tencentcloud/chat';
|
|
3
|
+
import { IMessageModel } from '@tencentcloud/chat-uikit-engine';
|
|
3
4
|
import { CONSTANT_DISPATCH_TYPE } from '../../constants';
|
|
4
5
|
import type { TUIChatStateContextValue } from '../../context';
|
|
5
6
|
import { OperateMessageParams } from './hooks/useHandleMessage';
|
|
6
7
|
import {
|
|
7
|
-
handleMessage,
|
|
8
|
-
handleMessageList,
|
|
9
8
|
handleEditMessage,
|
|
10
|
-
handleRemoveMessage,
|
|
11
9
|
handleUploadPendingMessage,
|
|
12
10
|
} from './unitls';
|
|
13
11
|
|
|
@@ -18,30 +16,13 @@ export type ChatStateReducerAction =
|
|
|
18
16
|
}
|
|
19
17
|
| {
|
|
20
18
|
type: CONSTANT_DISPATCH_TYPE.SET_MESSAGELIST,
|
|
21
|
-
value?: Array<
|
|
22
|
-
}
|
|
23
|
-
| {
|
|
24
|
-
type: CONSTANT_DISPATCH_TYPE.SET_UPDATE_MESSAGE,
|
|
25
|
-
value?: Array<Message>,
|
|
26
|
-
index?: number
|
|
19
|
+
value?: Array<IMessageModel>,
|
|
27
20
|
}
|
|
28
21
|
| {
|
|
29
22
|
type: CONSTANT_DISPATCH_TYPE.SET_EDIT_MESSAGE,
|
|
30
23
|
value?: Message,
|
|
31
24
|
index?: number,
|
|
32
25
|
}
|
|
33
|
-
| {
|
|
34
|
-
type: CONSTANT_DISPATCH_TYPE.SET_REMOVE_MESSAGE,
|
|
35
|
-
value?: Message
|
|
36
|
-
}
|
|
37
|
-
| {
|
|
38
|
-
type: CONSTANT_DISPATCH_TYPE.SET_HISTORY_MESSAGELIST,
|
|
39
|
-
value?: Array<Message>,
|
|
40
|
-
}
|
|
41
|
-
| {
|
|
42
|
-
type: CONSTANT_DISPATCH_TYPE.SET_NEXT_REQ_MESSAGE_ID,
|
|
43
|
-
value?: string,
|
|
44
|
-
}
|
|
45
26
|
| {
|
|
46
27
|
type: CONSTANT_DISPATCH_TYPE.SET_IS_COMPLETE,
|
|
47
28
|
value?: boolean,
|
|
@@ -73,6 +54,14 @@ export type ChatStateReducerAction =
|
|
|
73
54
|
type: CONSTANT_DISPATCH_TYPE.UPDATE_UPLOAD_PENDING_MESSAGE_LIST,
|
|
74
55
|
value?: Message,
|
|
75
56
|
}
|
|
57
|
+
| {
|
|
58
|
+
type: CONSTANT_DISPATCH_TYPE.SET_FIRST_SEND_MESSAGE;
|
|
59
|
+
value?: Message;
|
|
60
|
+
}
|
|
61
|
+
| {
|
|
62
|
+
type: CONSTANT_DISPATCH_TYPE.SET_ACTIVE_MESSAGE_ID,
|
|
63
|
+
value?: string,
|
|
64
|
+
};
|
|
76
65
|
export type ChatStateReducer = Reducer<TUIChatStateContextValue, ChatStateReducerAction>;
|
|
77
66
|
|
|
78
67
|
export const chatReducer = (
|
|
@@ -82,38 +71,17 @@ export const chatReducer = (
|
|
|
82
71
|
switch (action?.type) {
|
|
83
72
|
case CONSTANT_DISPATCH_TYPE.SET_CONVERSATION_PRPFILE:
|
|
84
73
|
return { ...state, conversation: action.value };
|
|
74
|
+
// messageList 设置
|
|
85
75
|
case CONSTANT_DISPATCH_TYPE.SET_MESSAGELIST:
|
|
86
76
|
return {
|
|
87
77
|
...state,
|
|
88
|
-
|
|
89
|
-
[...state.messageList.concat(
|
|
90
|
-
handleMessage(action.value).filter((item) => !state.messageList.includes(item)),
|
|
91
|
-
)],
|
|
92
|
-
state,
|
|
93
|
-
),
|
|
94
|
-
};
|
|
95
|
-
case CONSTANT_DISPATCH_TYPE.SET_UPDATE_MESSAGE:
|
|
96
|
-
return {
|
|
97
|
-
...state,
|
|
98
|
-
...handleMessageList([...state.messageList, ...handleMessage(action.value)], state),
|
|
78
|
+
messageList: action.value,
|
|
99
79
|
};
|
|
100
80
|
case CONSTANT_DISPATCH_TYPE.SET_EDIT_MESSAGE:
|
|
101
81
|
return {
|
|
102
82
|
...state,
|
|
103
83
|
messageList: [...handleEditMessage(state.messageList, action.value)],
|
|
104
84
|
};
|
|
105
|
-
case CONSTANT_DISPATCH_TYPE.SET_REMOVE_MESSAGE:
|
|
106
|
-
return {
|
|
107
|
-
...state,
|
|
108
|
-
messageList: [...handleRemoveMessage(state.messageList, action.value)],
|
|
109
|
-
};
|
|
110
|
-
case CONSTANT_DISPATCH_TYPE.SET_HISTORY_MESSAGELIST:
|
|
111
|
-
return {
|
|
112
|
-
...state,
|
|
113
|
-
...handleMessageList([...handleMessage(action.value), ...state.messageList], state),
|
|
114
|
-
};
|
|
115
|
-
case CONSTANT_DISPATCH_TYPE.SET_NEXT_REQ_MESSAGE_ID:
|
|
116
|
-
return { ...state, nextReqMessageID: action.value };
|
|
117
85
|
case CONSTANT_DISPATCH_TYPE.SET_IS_COMPLETE:
|
|
118
86
|
return { ...state, isCompleted: action.value };
|
|
119
87
|
case CONSTANT_DISPATCH_TYPE.RESET:
|
|
@@ -135,7 +103,10 @@ export const chatReducer = (
|
|
|
135
103
|
...handleUploadPendingMessage(state.uploadPendingMessageList, action.value),
|
|
136
104
|
],
|
|
137
105
|
};
|
|
138
|
-
|
|
106
|
+
case CONSTANT_DISPATCH_TYPE.SET_FIRST_SEND_MESSAGE:
|
|
107
|
+
return { ...state, firstSendMessage: action.value };
|
|
108
|
+
case CONSTANT_DISPATCH_TYPE.SET_ACTIVE_MESSAGE_ID:
|
|
109
|
+
return { ...state, activeMessageID: action.value };
|
|
139
110
|
}
|
|
140
111
|
};
|
|
141
112
|
|
|
@@ -153,4 +124,6 @@ export const initialState:TUIChatStateContextValue = {
|
|
|
153
124
|
audioSource: null,
|
|
154
125
|
vidoeSource: null,
|
|
155
126
|
uploadPendingMessageList: [],
|
|
127
|
+
firstSendMessage: null,
|
|
128
|
+
activeMessageID: '',
|
|
156
129
|
};
|
|
@@ -48,10 +48,18 @@ export function useHandleMessage<T extends CreateMessageProps>(props:T) {
|
|
|
48
48
|
});
|
|
49
49
|
}, [dispatch]);
|
|
50
50
|
|
|
51
|
+
const setActiveMessageID = useCallback((messageID: string) => {
|
|
52
|
+
dispatch({
|
|
53
|
+
type: CONSTANT_DISPATCH_TYPE.SET_ACTIVE_MESSAGE_ID,
|
|
54
|
+
value: messageID,
|
|
55
|
+
});
|
|
56
|
+
}, [dispatch]);
|
|
57
|
+
|
|
51
58
|
return {
|
|
52
59
|
operateMessage,
|
|
53
60
|
setAudioSource,
|
|
54
61
|
setVideoSource,
|
|
55
62
|
setHighlightedMessageId,
|
|
63
|
+
setActiveMessageID,
|
|
56
64
|
};
|
|
57
65
|
}
|
|
@@ -9,6 +9,7 @@ export interface CreateMessageProps {
|
|
|
9
9
|
conversation?: Conversation,
|
|
10
10
|
state?: TUIChatStateContextValue,
|
|
11
11
|
dispatch?: Dispatch<ChatStateReducerAction>,
|
|
12
|
+
filterMessage: any
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export interface GetMessageListProps{
|
|
@@ -22,46 +23,9 @@ export function useHandleMessageList<T extends CreateMessageProps>(props:T) {
|
|
|
22
23
|
conversation,
|
|
23
24
|
state,
|
|
24
25
|
dispatch,
|
|
26
|
+
filterMessage,
|
|
25
27
|
} = props;
|
|
26
28
|
|
|
27
|
-
const { conversationID, groupProfile, type } = conversation;
|
|
28
|
-
const isC2CConversation = type === TencentCloudChat.TYPES.CONV_C2C;
|
|
29
|
-
|
|
30
|
-
const basicConfig = {
|
|
31
|
-
conversationID,
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const getMessageList = useCallback(async (params?: GetMessageListProps) => {
|
|
35
|
-
const data = params || {};
|
|
36
|
-
let groupType;
|
|
37
|
-
if (groupProfile) {
|
|
38
|
-
groupType = groupProfile.type;
|
|
39
|
-
}
|
|
40
|
-
if (isC2CConversation || (groupType !== TencentCloudChat.TYPES.GRP_AVCHATROOM)) {
|
|
41
|
-
return chat.getMessageList({
|
|
42
|
-
...basicConfig,
|
|
43
|
-
...data,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
}, [chat]);
|
|
48
|
-
|
|
49
|
-
const updateMessage = useCallback((messageList: Array<Message>) => {
|
|
50
|
-
dispatch({
|
|
51
|
-
type: CONSTANT_DISPATCH_TYPE.SET_UPDATE_MESSAGE,
|
|
52
|
-
value: messageList.filter((item) => (
|
|
53
|
-
item?.conversationID === conversationID
|
|
54
|
-
)),
|
|
55
|
-
});
|
|
56
|
-
}, [dispatch]);
|
|
57
|
-
|
|
58
|
-
const removeMessage = useCallback((message: Message) => {
|
|
59
|
-
dispatch({
|
|
60
|
-
type: CONSTANT_DISPATCH_TYPE.SET_REMOVE_MESSAGE,
|
|
61
|
-
value: message,
|
|
62
|
-
});
|
|
63
|
-
}, [dispatch]);
|
|
64
|
-
|
|
65
29
|
const editLocalMessage = useCallback((message: Message) => {
|
|
66
30
|
dispatch({
|
|
67
31
|
type: CONSTANT_DISPATCH_TYPE.SET_EDIT_MESSAGE,
|
|
@@ -77,9 +41,6 @@ export function useHandleMessageList<T extends CreateMessageProps>(props:T) {
|
|
|
77
41
|
}, [dispatch]);
|
|
78
42
|
|
|
79
43
|
return {
|
|
80
|
-
getMessageList,
|
|
81
|
-
updateMessage,
|
|
82
|
-
removeMessage,
|
|
83
44
|
editLocalMessage,
|
|
84
45
|
updateUploadPendingMessageList,
|
|
85
46
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
2
2
|
import constant from '../../constants';
|
|
3
|
-
import type { TUIChatStateContextValue } from '../../context';
|
|
4
3
|
import { JSONStringToParse } from '../untils';
|
|
5
4
|
|
|
6
5
|
export const handleMessage = (messageList:Array<Message>):Array<Message> => {
|
|
@@ -16,24 +15,6 @@ export const handleMessage = (messageList:Array<Message>):Array<Message> => {
|
|
|
16
15
|
});
|
|
17
16
|
};
|
|
18
17
|
|
|
19
|
-
export const handleMessageList = (
|
|
20
|
-
list:Array<Message>,
|
|
21
|
-
state:TUIChatStateContextValue,
|
|
22
|
-
) => {
|
|
23
|
-
const data = {
|
|
24
|
-
messageList: [],
|
|
25
|
-
lastMessageID: '',
|
|
26
|
-
isSameLastMessageID: false,
|
|
27
|
-
};
|
|
28
|
-
data.messageList = list;
|
|
29
|
-
if (data.messageList.length >= 1) {
|
|
30
|
-
data.lastMessageID = data?.messageList[data.messageList.length - 1]?.ID;
|
|
31
|
-
}
|
|
32
|
-
data.messageList = data.messageList.filter((item) => !item?.isDeleted);
|
|
33
|
-
data.isSameLastMessageID = data?.lastMessageID === state?.lastMessageID;
|
|
34
|
-
return data;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
18
|
export const handleEditMessage = (
|
|
38
19
|
messageList: Array<Message>,
|
|
39
20
|
message: Message,
|
|
@@ -44,16 +25,6 @@ export const handleEditMessage = (
|
|
|
44
25
|
return list;
|
|
45
26
|
};
|
|
46
27
|
|
|
47
|
-
export const handleRemoveMessage = (
|
|
48
|
-
messageList: Array<Message>,
|
|
49
|
-
message: Message,
|
|
50
|
-
) => {
|
|
51
|
-
const list = [...messageList];
|
|
52
|
-
const index = list.findIndex((item) => item?.ID === message?.ID);
|
|
53
|
-
list.splice(index, 1);
|
|
54
|
-
return list;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
28
|
export const handleUploadPendingMessage = (
|
|
58
29
|
messageList: Array<Message>,
|
|
59
30
|
message: Message,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { PropsWithChildren, useEffect, useState } from 'react';
|
|
2
2
|
import TencentCloudChat, { Conversation, Group, Profile } from '@tencentcloud/chat';
|
|
3
|
+
import { TUIConversationService } from '@tencentcloud/chat-uikit-engine';
|
|
3
4
|
import { Avatar } from '../Avatar';
|
|
4
5
|
import { handleDisplayAvatar } from '../untils';
|
|
5
|
-
|
|
6
|
+
import { isH5 } from '../../utils/env';
|
|
6
7
|
import './styles/index.scss';
|
|
7
8
|
import { Icon, IconTypes } from '../Icon';
|
|
8
9
|
import { useTUIKitContext } from '../../context';
|
|
@@ -76,6 +77,10 @@ function TUIChatHeaderDefaultWithContext <T extends TUIChatHeaderBasicProps>(
|
|
|
76
77
|
/>);
|
|
77
78
|
}
|
|
78
79
|
};
|
|
80
|
+
|
|
81
|
+
const back = () => {
|
|
82
|
+
TUIConversationService.switchConversation('');
|
|
83
|
+
};
|
|
79
84
|
const { setTUIManageShow } = useTUIKitContext();
|
|
80
85
|
const openTUIManage = () => {
|
|
81
86
|
setTUIManageShow(true);
|
|
@@ -86,6 +91,7 @@ function TUIChatHeaderDefaultWithContext <T extends TUIChatHeaderBasicProps>(
|
|
|
86
91
|
className={`tui-chat-header ${isLive ? 'tui-chat-live-header' : ''}`}
|
|
87
92
|
key={conversation?.conversationID}
|
|
88
93
|
>
|
|
94
|
+
{isH5 && (<div style={{ paddingRight: '10px' }}><Icon onClick={back} type={IconTypes.BACK} width={9} height={16} /></div>)}
|
|
89
95
|
<div
|
|
90
96
|
className={`tui-chat-header-left ${conversation?.type === TencentCloudChat.TYPES.CONV_SYSTEM ? 'system' : ''}`}
|
|
91
97
|
>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
3
|
import { Friend } from '@tencentcloud/chat';
|
|
4
|
+
import { TUIConversationService } from '@tencentcloud/chat-uikit-engine';
|
|
4
5
|
import { useTUIKitContext } from '../../../context';
|
|
5
6
|
import { BasicInfo } from './basicInfo';
|
|
6
7
|
import { Switch } from '../../Switch';
|
|
@@ -60,7 +61,9 @@ export function UnMemoizedFriendInfo<T extends Props>(
|
|
|
60
61
|
setActiveContact();
|
|
61
62
|
};
|
|
62
63
|
const openC2CConversation = async () => {
|
|
63
|
-
const
|
|
64
|
+
const conversationID = `C2C${userID}`;
|
|
65
|
+
const conversation = await createConversation(conversationID);
|
|
66
|
+
TUIConversationService.switchConversation(conversationID);
|
|
64
67
|
setActiveConversation(conversation);
|
|
65
68
|
openChat();
|
|
66
69
|
};
|
|
@@ -130,7 +130,7 @@ function UnMemoizedTUIContactList<T>(): React.ReactElement {
|
|
|
130
130
|
tabIndex={0}
|
|
131
131
|
onClick={() => setShowFriends(!iShowFriends)}
|
|
132
132
|
>
|
|
133
|
-
<div className="tui-contacts-list-title">{t('TUIContact.
|
|
133
|
+
<div className="tui-contacts-list-title">{t('TUIContact.Friends')}</div>
|
|
134
134
|
<div className="tui-contacts-list-icon">
|
|
135
135
|
<img src={iShowFriends ? downArrow : rightArrow} alt="" />
|
|
136
136
|
</div>
|
|
@@ -35,10 +35,7 @@ export function UnMemoizedTUIConversation<T extends TUIConversationProps>(
|
|
|
35
35
|
return (
|
|
36
36
|
<TUIConversationProvider value={TUIConversationValue}>
|
|
37
37
|
{children || (
|
|
38
|
-
|
|
39
|
-
<TUIConversationList />
|
|
40
|
-
<TUIProfile />
|
|
41
|
-
</>
|
|
38
|
+
<TUIConversationList />
|
|
42
39
|
)}
|
|
43
40
|
</TUIConversationProvider>
|
|
44
41
|
);
|