@tencentcloud/chat-uikit-react 2.2.6 → 2.2.7
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/dist/cjs/assets/fonts/iconfont.ttf +0 -0
- package/dist/cjs/assets/fonts/iconfont.woff +0 -0
- package/dist/cjs/assets/fonts/iconfont.woff2 +0 -0
- package/dist/cjs/components/ConversationCreate/hooks/useConversationCreate.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/video-call.svg.js +1 -0
- package/dist/cjs/components/Icon/images/voice-call.svg.js +1 -0
- package/dist/cjs/components/Icon/type.d.ts +3 -1
- package/dist/cjs/components/Icon/type.js +1 -1
- package/dist/cjs/components/TUIChat/TUIChat.d.ts +3 -2
- package/dist/cjs/components/TUIChat/TUIChat.js +1 -1
- package/dist/cjs/components/TUIChat/TUIChatState.js +1 -1
- package/dist/cjs/components/TUIChat/index.js +1 -0
- package/dist/cjs/components/TUIChat/server.js +1 -0
- package/dist/cjs/components/TUIChat/utils.js +1 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.d.ts +1 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.js +1 -1
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +2 -1
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
- package/dist/cjs/components/TUIContact/TUIContactList/TUIContactList.js +1 -1
- package/dist/cjs/components/TUIContact/hooks/useTUIContact.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageAvatar.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -1
- package/dist/cjs/components/TUIMessage/MessageStatus.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/InputPluginsDefalut.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/hooks/useMessageListElement.js +1 -1
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -1
- package/dist/cjs/components/{untils.js → utils.js} +1 -1
- package/dist/cjs/context/LanguageContext.js +1 -1
- package/dist/cjs/context/TUIChatActionContext.d.ts +2 -1
- package/dist/cjs/context/TUIConversationContext.js +1 -1
- package/dist/cjs/context/ThemeContext.js +1 -1
- package/dist/cjs/context/UIKitContext.d.ts +2 -2
- package/dist/cjs/context/UIKitContext.js +1 -1
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.d.css +589 -259
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/locales/en-US/index.js +1 -1
- package/dist/cjs/locales/index.js +1 -1
- package/dist/cjs/locales/ja-JP/index.js +1 -1
- package/dist/cjs/locales/ko-KR/index.js +1 -1
- package/dist/cjs/locales/zh-CN/index.js +1 -1
- package/dist/cjs/locales/zh-TW/TUIChat.js +1 -0
- package/dist/cjs/locales/zh-TW/TUIContact.js +1 -0
- package/dist/cjs/locales/zh-TW/TUIConversation.js +1 -0
- package/dist/cjs/locales/zh-TW/TUIProfile.js +1 -0
- package/dist/cjs/locales/zh-TW/index.js +1 -0
- package/dist/esm/assets/fonts/iconfont.ttf +0 -0
- package/dist/esm/assets/fonts/iconfont.woff +0 -0
- package/dist/esm/assets/fonts/iconfont.woff2 +0 -0
- package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.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/video-call.svg.js +1 -0
- package/dist/esm/components/Icon/images/voice-call.svg.js +1 -0
- package/dist/esm/components/Icon/type.d.ts +3 -1
- package/dist/esm/components/Icon/type.js +1 -1
- package/dist/esm/components/TUIChat/TUIChat.d.ts +3 -2
- package/dist/esm/components/TUIChat/TUIChat.js +1 -1
- package/dist/esm/components/TUIChat/TUIChatState.js +1 -1
- package/dist/esm/components/TUIChat/index.js +1 -0
- package/dist/esm/components/TUIChat/server.js +1 -0
- package/dist/esm/components/TUIChat/utils.js +1 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.d.ts +1 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.js +1 -1
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +2 -1
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
- package/dist/esm/components/TUIContact/TUIContactList/TUIContactList.js +1 -1
- package/dist/esm/components/TUIContact/hooks/useTUIContact.js +1 -1
- package/dist/esm/components/TUIMessage/MessageAvatar.js +1 -1
- package/dist/esm/components/TUIMessage/MessageCustom.js +1 -1
- package/dist/esm/components/TUIMessage/MessageStatus.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/InputPluginsDefalut.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/hooks/useMessageListElement.js +1 -1
- package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -1
- package/dist/esm/components/utils.js +1 -0
- package/dist/esm/context/LanguageContext.js +1 -1
- package/dist/esm/context/TUIChatActionContext.d.ts +2 -1
- package/dist/esm/context/TUIConversationContext.js +1 -1
- package/dist/esm/context/ThemeContext.js +1 -1
- package/dist/esm/context/UIKitContext.d.ts +2 -2
- package/dist/esm/context/UIKitContext.js +1 -1
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.d.css +589 -259
- package/dist/esm/index.js +1 -1
- package/dist/esm/locales/en-US/index.js +1 -1
- package/dist/esm/locales/index.js +1 -1
- package/dist/esm/locales/ja-JP/index.js +1 -1
- package/dist/esm/locales/ko-KR/index.js +1 -1
- package/dist/esm/locales/zh-CN/index.js +1 -1
- package/dist/esm/locales/zh-TW/TUIChat.js +1 -0
- package/dist/esm/locales/zh-TW/TUIContact.js +1 -0
- package/dist/esm/locales/zh-TW/TUIConversation.js +1 -0
- package/dist/esm/locales/zh-TW/TUIProfile.js +1 -0
- package/dist/esm/locales/zh-TW/index.js +1 -0
- package/package.json +2 -1
- package/rollup.config.js +1 -1
- package/src/assets/fonts/iconfont.ttf +0 -0
- package/src/assets/fonts/iconfont.woff +0 -0
- package/src/assets/fonts/iconfont.woff2 +0 -0
- package/src/components/Avatar/styles/index.scss +11 -4
- package/src/components/Checkbox/styles/color.scss +17 -6
- package/src/components/ConversationCreate/hooks/useConversationCreate.tsx +5 -5
- package/src/components/ConversationCreate/styles/ConversationCreatGroupDetail.scss +7 -16
- package/src/components/ConversationCreate/styles/conversationCreateSelectView.scss +13 -8
- package/src/components/ConversationCreate/styles/conversationGroupTypeInfo.scss +20 -21
- package/src/components/ConversationCreate/styles/index.scss +30 -17
- package/src/components/ConversationPreview/ConversationPreviewContent.tsx +1 -0
- package/src/components/ConversationPreview/styles/index.scss +20 -20
- package/src/components/ConversationPreview/utils.tsx +3 -2
- package/src/components/DivWithEdit/styles/index.scss +30 -10
- package/src/components/Icon/config.ts +14 -4
- package/src/components/Icon/images/video-call.svg +3 -0
- package/src/components/Icon/images/voice-call.svg +3 -0
- package/src/components/Icon/type.ts +2 -0
- package/src/components/Input/styles/index.scss +22 -6
- package/src/components/Plugins/styles/color.scss +3 -11
- package/src/components/Profile/styles/index.scss +12 -3
- package/src/components/TUIChat/TUIChat.tsx +36 -32
- package/src/components/TUIChat/TUIChatState.tsx +41 -41
- package/src/components/TUIChat/index.ts +3 -0
- package/src/components/TUIChat/server.ts +44 -0
- package/src/components/TUIChat/styles/layout.scss +7 -2
- package/src/components/TUIChat/utils.ts +72 -0
- package/src/components/TUIChatHeader/TUIChatHeader.tsx +10 -7
- package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +72 -29
- package/src/components/TUIChatHeader/styles/layout.scss +16 -9
- package/src/components/TUIContact/TUIContactInfo/index.scss +44 -21
- package/src/components/TUIContact/TUIContactList/TUIContactList.tsx +75 -71
- package/src/components/TUIContact/TUIContactList/index.scss +40 -20
- package/src/components/TUIContact/hooks/useTUIContact.tsx +3 -3
- package/src/components/TUIContact/index.scss +30 -11
- package/src/components/TUIContactSearch/index.scss +12 -3
- package/src/components/TUIConversationList/index.scss +3 -4
- package/src/components/TUIManage/styles/index.scss +20 -14
- package/src/components/TUIMessage/MessageAvatar.tsx +7 -7
- package/src/components/TUIMessage/MessageBubble.tsx +22 -21
- package/src/components/TUIMessage/MessageCustom.tsx +26 -5
- package/src/components/TUIMessage/MessageStatus.tsx +5 -5
- package/src/components/TUIMessage/hooks/useMessageHandler.ts +6 -6
- package/src/components/TUIMessage/hooks/useMessageReply.ts +6 -5
- package/src/components/TUIMessage/styles/color.scss +6 -5
- package/src/components/TUIMessage/styles/layout.scss +111 -42
- package/src/components/TUIMessage/utils/index.ts +23 -12
- package/src/components/TUIMessageInput/InputPluginsDefalut.tsx +12 -12
- package/src/components/TUIMessageInput/hooks/useHandleForwardMessage.tsx +5 -4
- package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +12 -12
- package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +4 -4
- package/src/components/TUIMessageInput/styles/color.scss +15 -11
- package/src/components/TUIMessageInput/styles/layout.scss +33 -17
- package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +13 -9
- package/src/components/TUIMessageList/styles/layout.scss +16 -9
- package/src/components/TUIProfile/TUIProfileDefault.tsx +12 -11
- package/src/components/TUIProfile/styles/color.scss +6 -5
- package/src/components/TUIProfile/styles/layout.scss +16 -14
- package/src/components/{untils.ts → utils.ts} +5 -4
- package/src/context/LanguageContext.tsx +5 -4
- package/src/context/TUIChatActionContext.tsx +14 -13
- package/src/context/ThemeContext.tsx +12 -5
- package/src/context/UIKitContext.tsx +11 -2
- package/src/locales/en-US/index.ts +0 -3
- package/src/locales/index.ts +6 -2
- package/src/locales/ja-JP/index.ts +0 -2
- package/src/locales/ko-KR/index.ts +0 -2
- package/src/locales/zh-CN/index.ts +0 -2
- package/src/locales/zh-TW/TUIChat.ts +27 -0
- package/src/locales/zh-TW/TUIContact.ts +29 -0
- package/src/locales/zh-TW/TUIConversation.ts +32 -0
- package/src/locales/zh-TW/TUIProfile.ts +15 -0
- package/src/locales/zh-TW/index.ts +11 -0
- package/src/styles/colors/_color-dark.scss +31 -21
- package/src/styles/colors/_color-light.scss +31 -21
- package/src/styles/colors/_color-theme.scss +32 -21
- package/src/styles/normalize.scss +6 -0
- package/dist/cjs/components/Icon/images/down-arrow.png.js +0 -1
- package/dist/cjs/components/Icon/images/right-arrow.svg.js +0 -1
- package/dist/cjs/components/TUIChat/unitls.js +0 -1
- package/dist/cjs/locales/en-US/TUIGlobal.js +0 -1
- package/dist/cjs/locales/ja-JP/TUIGlobal.js +0 -1
- package/dist/cjs/locales/ko-KR/TUIGlobal.js +0 -1
- package/dist/cjs/locales/zh-CN/TUIGlobal.js +0 -1
- package/dist/esm/components/Icon/images/down-arrow.png.js +0 -1
- package/dist/esm/components/Icon/images/right-arrow.svg.js +0 -1
- package/dist/esm/components/TUIChat/unitls.js +0 -1
- package/dist/esm/components/untils.js +0 -1
- package/dist/esm/locales/en-US/TUIGlobal.js +0 -1
- package/dist/esm/locales/ja-JP/TUIGlobal.js +0 -1
- package/dist/esm/locales/ko-KR/TUIGlobal.js +0 -1
- package/dist/esm/locales/zh-CN/TUIGlobal.js +0 -1
- package/scripts/publish-github.js +0 -60
- package/scripts/publish-intl-demo.js +0 -14
- package/scripts/publish-intl-experience-demo.js +0 -14
- package/src/components/TUIChat/unitls.ts +0 -39
- package/src/locales/en-US/TUIGlobal.ts +0 -6
- package/src/locales/ja-JP/TUIGlobal.ts +0 -6
- package/src/locales/ko-KR/TUIGlobal.ts +0 -6
- package/src/locales/zh-CN/TUIGlobal.ts +0 -6
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
@use "../../../styles/colors/color-theme" as *;
|
|
2
|
+
|
|
1
3
|
.tui-manage {
|
|
2
4
|
display: flex;
|
|
3
5
|
flex-direction: column;
|
|
4
6
|
width: 22%;
|
|
5
7
|
max-width: 300px;
|
|
6
8
|
min-width: 200px;
|
|
7
|
-
|
|
9
|
+
|
|
10
|
+
@include theme() {
|
|
11
|
+
background-color: get(bg-color-operate);
|
|
12
|
+
color: get(text-color-primary);
|
|
13
|
+
border-left: 1px solid get(stroke-color-primary);
|
|
14
|
+
}
|
|
8
15
|
|
|
9
16
|
.red {
|
|
10
17
|
color: #ff584c !important;
|
|
@@ -19,8 +26,6 @@
|
|
|
19
26
|
margin-right: 10px;
|
|
20
27
|
font-weight: 700;
|
|
21
28
|
font-size: 14px;
|
|
22
|
-
font-family: PingFangSC-Medium;
|
|
23
|
-
line-height: 17px;
|
|
24
29
|
}
|
|
25
30
|
}
|
|
26
31
|
|
|
@@ -39,16 +44,11 @@
|
|
|
39
44
|
text-align: center;
|
|
40
45
|
font-weight: 700;
|
|
41
46
|
font-size: 24px;
|
|
42
|
-
font-family: PingFangSC-Medium;
|
|
43
|
-
line-height: 29px;
|
|
44
47
|
margin-bottom: 10px;
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
.info-id {
|
|
48
|
-
font-weight: 400;
|
|
49
51
|
font-size: 12px;
|
|
50
|
-
font-family: PingFangSC-Medium;
|
|
51
|
-
line-height: 14px;
|
|
52
52
|
color: #666;
|
|
53
53
|
margin-bottom: 30px;
|
|
54
54
|
text-align: center;
|
|
@@ -58,11 +58,13 @@
|
|
|
58
58
|
.tui-manage-handle {
|
|
59
59
|
.manage-handle-box {
|
|
60
60
|
display: flex;
|
|
61
|
-
background: rgba(249, 249, 249, 94%);
|
|
62
61
|
align-items: center;
|
|
63
62
|
justify-content: space-between;
|
|
64
63
|
padding: 10px;
|
|
65
|
-
|
|
64
|
+
|
|
65
|
+
@include theme() {
|
|
66
|
+
background: get(bg-color-operate);
|
|
67
|
+
}
|
|
66
68
|
|
|
67
69
|
&:nth-child(2) {
|
|
68
70
|
margin-top: 10px;
|
|
@@ -71,9 +73,10 @@
|
|
|
71
73
|
|
|
72
74
|
.manage-handle-title {
|
|
73
75
|
font-size: 16px;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
|
|
77
|
+
@include theme() {
|
|
78
|
+
color: get(text-color-primary);
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
}
|
|
@@ -91,5 +94,8 @@
|
|
|
91
94
|
max-width: 100%;
|
|
92
95
|
min-width: 100%;
|
|
93
96
|
z-index: 1;
|
|
94
|
-
|
|
97
|
+
|
|
98
|
+
@include theme() {
|
|
99
|
+
background: get(bg-color-operate);
|
|
100
|
+
}
|
|
95
101
|
}
|
|
@@ -5,18 +5,18 @@ import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
|
5
5
|
import { MESSAGE_FLOW } from '../../constants';
|
|
6
6
|
import { messageShowType } from '../../context';
|
|
7
7
|
import { Avatar } from '../Avatar';
|
|
8
|
-
import { handleDisplayAvatar } from '../
|
|
8
|
+
import { handleDisplayAvatar } from '../utils';
|
|
9
9
|
|
|
10
10
|
export interface MessageAvatarProps {
|
|
11
|
-
CustomAvatar?: React.ReactElement
|
|
12
|
-
className?: string
|
|
13
|
-
message: Message
|
|
14
|
-
showType?: messageShowType
|
|
11
|
+
CustomAvatar?: React.ReactElement;
|
|
12
|
+
className?: string;
|
|
13
|
+
message: Message;
|
|
14
|
+
showType?: messageShowType;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export function MessageAvatar
|
|
17
|
+
export function MessageAvatar<T extends MessageAvatarProps>(
|
|
18
18
|
props: PropsWithChildren<T>,
|
|
19
|
-
):React.ReactElement {
|
|
19
|
+
): React.ReactElement {
|
|
20
20
|
const {
|
|
21
21
|
className,
|
|
22
22
|
CustomAvatar,
|
|
@@ -6,22 +6,23 @@ import React, {
|
|
|
6
6
|
} from 'react';
|
|
7
7
|
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
8
8
|
import { MESSAGE_STATUS } from '../../constants';
|
|
9
|
+
import { isCallMessage } from './utils';
|
|
9
10
|
import { useTUIChatActionContext, useTUIChatStateContext } from '../../context';
|
|
10
11
|
import { Icon, IconTypes } from '../Icon';
|
|
11
12
|
import { useMessageReply } from './hooks/useMessageReply';
|
|
12
13
|
import { MessageProgress } from './MessageProgress';
|
|
13
14
|
|
|
14
15
|
export interface MessageBubbleProps {
|
|
15
|
-
message?: Message
|
|
16
|
-
className?: string
|
|
17
|
-
children?: ReactNode
|
|
18
|
-
Context?: React.ComponentType<any
|
|
19
|
-
Plugins?: React.ComponentType<any> | undefined
|
|
16
|
+
message?: Message;
|
|
17
|
+
className?: string;
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
Context?: React.ComponentType<any>;
|
|
20
|
+
Plugins?: React.ComponentType<any> | undefined;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
function MessageBubbleWithContext
|
|
23
|
+
function MessageBubbleWithContext<T extends MessageBubbleProps>(
|
|
23
24
|
props: PropsWithChildren<T>,
|
|
24
|
-
):React.ReactElement {
|
|
25
|
+
): React.ReactElement {
|
|
25
26
|
const {
|
|
26
27
|
message,
|
|
27
28
|
children,
|
|
@@ -68,7 +69,7 @@ function MessageBubbleWithContext <T extends MessageBubbleProps>(
|
|
|
68
69
|
const handleReplyMessage = () => {
|
|
69
70
|
// eslint-disable-next-line
|
|
70
71
|
// @ts-ignore
|
|
71
|
-
setHighlightedMessageId
|
|
72
|
+
setHighlightedMessageId && setHighlightedMessageId(replyMessage?.ID);
|
|
72
73
|
};
|
|
73
74
|
|
|
74
75
|
return (
|
|
@@ -90,15 +91,15 @@ function MessageBubbleWithContext <T extends MessageBubbleProps>(
|
|
|
90
91
|
>
|
|
91
92
|
{
|
|
92
93
|
messageReply && (
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
<div
|
|
95
|
+
className="meesage-bubble-reply-main"
|
|
96
|
+
role="menuitem"
|
|
97
|
+
tabIndex={0}
|
|
98
|
+
onClick={handleReplyMessage}
|
|
99
|
+
>
|
|
100
|
+
<header className="title">{sender}</header>
|
|
101
|
+
{Context && <Context message={replyMessage} />}
|
|
102
|
+
</div>
|
|
102
103
|
)
|
|
103
104
|
}
|
|
104
105
|
{children}
|
|
@@ -106,9 +107,9 @@ function MessageBubbleWithContext <T extends MessageBubbleProps>(
|
|
|
106
107
|
</div>
|
|
107
108
|
{
|
|
108
109
|
Plugins && (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
<div className="message-plugin">
|
|
111
|
+
{PluginsShow && <Plugins message={message} />}
|
|
112
|
+
</div>
|
|
112
113
|
)
|
|
113
114
|
}
|
|
114
115
|
</div>
|
|
@@ -129,7 +130,7 @@ function MessageBubbleWithContext <T extends MessageBubbleProps>(
|
|
|
129
130
|
const MemoizedMessageBubble = React.memo(MessageBubbleWithContext) as
|
|
130
131
|
typeof MessageBubbleWithContext;
|
|
131
132
|
|
|
132
|
-
export function MessageBubble(props:MessageBubbleProps):React.ReactElement {
|
|
133
|
+
export function MessageBubble(props: MessageBubbleProps): React.ReactElement {
|
|
133
134
|
return (
|
|
134
135
|
<MemoizedMessageBubble {...props} />
|
|
135
136
|
);
|
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import TencentCloudChat from '@tencentcloud/chat';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import { JSONStringToParse } from '../
|
|
4
|
+
import { JSONStringToParse } from '../utils';
|
|
5
|
+
import { isCallMessage } from './utils';
|
|
5
6
|
import type { MessageContextProps } from './MessageText';
|
|
6
|
-
import { useComponentContext } from '../../context';
|
|
7
|
+
import { useComponentContext, useTUIChatActionContext } from '../../context';
|
|
8
|
+
import { useUIManager } from '../../context';
|
|
9
|
+
import { CallMessage } from '@tencentcloud/call-uikit-react';
|
|
10
|
+
import { startCall } from '../TUIChat/utils';
|
|
7
11
|
|
|
8
|
-
function MessageCustomWithContext
|
|
12
|
+
function MessageCustomWithContext<T extends MessageContextProps>(
|
|
9
13
|
props: PropsWithChildren<T>,
|
|
10
|
-
):React.ReactElement {
|
|
14
|
+
): React.ReactElement {
|
|
11
15
|
const {
|
|
12
16
|
context,
|
|
13
17
|
message,
|
|
14
18
|
children,
|
|
15
19
|
} = props;
|
|
16
20
|
const { t } = useTranslation();
|
|
21
|
+
const { callButtonClicked } = useTUIChatActionContext('TUIChat');
|
|
17
22
|
const { MessageCustomPlugins } = useComponentContext('MessageCustom');
|
|
23
|
+
const { conversation } = useUIManager('MessageCustom');
|
|
18
24
|
const handleContext = (data: any) => {
|
|
19
25
|
if (data.data === 'Hyperlink') {
|
|
20
26
|
const extension = JSONStringToParse(data?.extension);
|
|
@@ -43,6 +49,21 @@ function MessageCustomWithContext <T extends MessageContextProps>(
|
|
|
43
49
|
<MessageCustomPlugins data={JSONStringToParse(data.data).content} />
|
|
44
50
|
);
|
|
45
51
|
}
|
|
52
|
+
|
|
53
|
+
if (conversation?.type === 'C2C' && message && isCallMessage(message)) {
|
|
54
|
+
const callType = conversation?.type;
|
|
55
|
+
const userID = conversation?.userProfile.userID;
|
|
56
|
+
return (
|
|
57
|
+
<CallMessage
|
|
58
|
+
callType={callType}
|
|
59
|
+
message={message}
|
|
60
|
+
onClick={({ callMediaType }: any) =>
|
|
61
|
+
startCall({ callType, callMediaType, userIDList: [userID], callButtonClicked })}
|
|
62
|
+
>
|
|
63
|
+
</CallMessage>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
46
67
|
return `[${t('TUIChat.Custom message')}]`;
|
|
47
68
|
};
|
|
48
69
|
|
|
@@ -57,7 +78,7 @@ function MessageCustomWithContext <T extends MessageContextProps>(
|
|
|
57
78
|
const MemoizedMessageCustom = React.memo(MessageCustomWithContext) as
|
|
58
79
|
typeof MessageCustomWithContext;
|
|
59
80
|
|
|
60
|
-
export function MessageCustom(props:MessageContextProps):React.ReactElement {
|
|
81
|
+
export function MessageCustom(props: MessageContextProps): React.ReactElement {
|
|
61
82
|
return (
|
|
62
83
|
<MemoizedMessageCustom {...props} />
|
|
63
84
|
);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import { Message } from '@tencentcloud/chat';
|
|
3
3
|
import { useTUIMessageContext, useUIKit } from '../../context';
|
|
4
|
-
import { getTimeStamp } from '../
|
|
4
|
+
import { getTimeStamp } from '../utils';
|
|
5
5
|
|
|
6
6
|
export interface MessageContextProps {
|
|
7
|
-
message?: Message
|
|
7
|
+
message?: Message;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
function MessageStatustWithContext
|
|
10
|
+
function MessageStatustWithContext<T extends MessageContextProps>(
|
|
11
11
|
props: PropsWithChildren<T>,
|
|
12
|
-
):React.ReactElement {
|
|
12
|
+
): React.ReactElement {
|
|
13
13
|
const {
|
|
14
14
|
message,
|
|
15
15
|
} = props;
|
|
@@ -30,7 +30,7 @@ function MessageStatustWithContext <T extends MessageContextProps>(
|
|
|
30
30
|
const MemoizedMessageStatus = React.memo(MessageStatustWithContext) as
|
|
31
31
|
typeof MessageStatustWithContext;
|
|
32
32
|
|
|
33
|
-
export function MessageStatus(props:MessageContextProps):React.ReactElement {
|
|
33
|
+
export function MessageStatus(props: MessageContextProps): React.ReactElement {
|
|
34
34
|
return (
|
|
35
35
|
<MemoizedMessageStatus
|
|
36
36
|
{...props}
|
|
@@ -3,13 +3,13 @@ import { useTranslation } from 'react-i18next';
|
|
|
3
3
|
import { Message } from '@tencentcloud/chat';
|
|
4
4
|
import { TUIStore } from '@tencentcloud/chat-uikit-engine';
|
|
5
5
|
import { CONSTANT_DISPATCH_TYPE, MESSAGE_FLOW, MESSAGE_OPERATE } from '../../../constants';
|
|
6
|
-
import { enableSampleTaskStatus } from '../../
|
|
6
|
+
import { enableSampleTaskStatus } from '../../utils';
|
|
7
7
|
import { useTUIChatActionContext, useUIKit } from '../../../context';
|
|
8
8
|
import { Toast } from '../../Toast';
|
|
9
9
|
|
|
10
10
|
interface MessageHandlerProps {
|
|
11
|
-
handleError?: (error: any) => void
|
|
12
|
-
message?: Message
|
|
11
|
+
handleError?: (error: any) => void;
|
|
12
|
+
message?: Message;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export const useMessageHandler = (props: MessageHandlerProps) => {
|
|
@@ -54,7 +54,7 @@ export const useMessageHandler = (props: MessageHandlerProps) => {
|
|
|
54
54
|
});
|
|
55
55
|
}, [message]);
|
|
56
56
|
|
|
57
|
-
const handleReplyMessage = useCallback((event?:any) => {
|
|
57
|
+
const handleReplyMessage = useCallback((event?: any) => {
|
|
58
58
|
event.preventDefault();
|
|
59
59
|
if (!message?.ID || !chat || !operateMessage) {
|
|
60
60
|
return;
|
|
@@ -64,7 +64,7 @@ export const useMessageHandler = (props: MessageHandlerProps) => {
|
|
|
64
64
|
});
|
|
65
65
|
}, [message]);
|
|
66
66
|
|
|
67
|
-
const handleCopyMessage = useCallback((event?:any) => {
|
|
67
|
+
const handleCopyMessage = useCallback((event?: any) => {
|
|
68
68
|
event.preventDefault();
|
|
69
69
|
if (navigator.clipboard) {
|
|
70
70
|
// clipboard api
|
|
@@ -103,7 +103,7 @@ export const useMessageHandler = (props: MessageHandlerProps) => {
|
|
|
103
103
|
}
|
|
104
104
|
}, [message]);
|
|
105
105
|
|
|
106
|
-
const handleForWardMessage = useCallback(async (event?:any) => {
|
|
106
|
+
const handleForWardMessage = useCallback(async (event?: any) => {
|
|
107
107
|
event.preventDefault();
|
|
108
108
|
if (!message?.ID || !chat || !operateMessage) {
|
|
109
109
|
return;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useLayoutEffect, useState } from 'react';
|
|
2
2
|
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
3
3
|
import { useTUIChatStateContext, useUIKit } from '../../../context';
|
|
4
|
-
import { JSONStringToParse } from '../../
|
|
4
|
+
import { JSONStringToParse } from '../../utils';
|
|
5
5
|
|
|
6
6
|
interface messageContextParams {
|
|
7
|
-
message?: Message
|
|
7
|
+
message?: Message;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
const replyType: any = {
|
|
@@ -17,7 +17,7 @@ const replyType: any = {
|
|
|
17
17
|
[TencentCloudChat.TYPES.MSG_CUSTOM]: 2,
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
export const useMessageReply = <T extends messageContextParams>(params:T) => {
|
|
20
|
+
export const useMessageReply = <T extends messageContextParams>(params: T) => {
|
|
21
21
|
const {
|
|
22
22
|
message,
|
|
23
23
|
} = params;
|
|
@@ -33,7 +33,7 @@ export const useMessageReply = <T extends messageContextParams>(params:T) => {
|
|
|
33
33
|
message && handleMessageReply(message);
|
|
34
34
|
}, [message]);
|
|
35
35
|
|
|
36
|
-
const handleMessageReply = (data:Message) => {
|
|
36
|
+
const handleMessageReply = (data: Message) => {
|
|
37
37
|
if (!data?.cloudCustomData) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
@@ -49,7 +49,8 @@ export const useMessageReply = <T extends messageContextParams>(params:T) => {
|
|
|
49
49
|
const isSomeID = item.ID === reply?.messageID;
|
|
50
50
|
const isSomeType = isSomeID && replyType[item.type] === reply.messageType;
|
|
51
51
|
const isSomeContent = item.type === TencentCloudChat.TYPES.MSG_TEXT
|
|
52
|
-
? item.payload.text === reply.messageAbstract
|
|
52
|
+
? item.payload.text === reply.messageAbstract
|
|
53
|
+
: true;
|
|
53
54
|
return isSomeID && isSomeType && isSomeContent;
|
|
54
55
|
});
|
|
55
56
|
// eslint-disable-next-line
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
@use "../../../styles/colors/color-theme" as *;
|
|
2
2
|
|
|
3
|
-
.message-text,
|
|
4
3
|
.message-custom {
|
|
5
4
|
@include theme() {
|
|
6
|
-
border: 1px solid
|
|
5
|
+
border: 1px solid get(stroke-color-primary);
|
|
7
6
|
}
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
.bubble {
|
|
11
10
|
@include theme() {
|
|
12
|
-
background-color: get(bg-
|
|
11
|
+
background-color: get(bg-color-bubble-reciprocal);
|
|
12
|
+
color: get(text-color-primary);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
&-out {
|
|
16
16
|
@include theme() {
|
|
17
17
|
border: none;
|
|
18
|
-
background-color: get(bg-
|
|
18
|
+
background-color: get(bg-color-bubble-own);
|
|
19
|
+
color: get(text-color-anti-primary);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -30,7 +31,7 @@
|
|
|
30
31
|
|
|
31
32
|
.message-tip {
|
|
32
33
|
@include theme() {
|
|
33
|
-
color: get(text-secondary);
|
|
34
|
+
color: get(text-color-secondary);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
|