yt-chat-components 1.7.3 → 1.7.5
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/package.json
CHANGED
|
@@ -396,7 +396,13 @@ export default function ChatMessage({
|
|
|
396
396
|
alt={''}
|
|
397
397
|
fallback="data:image/png;base64,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"
|
|
398
398
|
/>
|
|
399
|
-
}
|
|
399
|
+
},
|
|
400
|
+
a: ({node, ...props}) => {
|
|
401
|
+
if (props.href?.startsWith('http')) {
|
|
402
|
+
return <a {...props} target="_blank" rel="noopener noreferrer"/>;
|
|
403
|
+
}
|
|
404
|
+
return <a {...props} />;
|
|
405
|
+
},
|
|
400
406
|
}), [isSubmittingForm]); // 依赖 isSubmittingForm 刷新ui
|
|
401
407
|
|
|
402
408
|
const getStatusIcon = (status: CustomThoughtChainItem['status'], icon?: React.ReactNode) => {
|
|
@@ -160,7 +160,8 @@ const ChatWindow = forwardRef<ChatWindowRef, ChatWindowProps>(({
|
|
|
160
160
|
voice,
|
|
161
161
|
onSmartRobotClick,
|
|
162
162
|
isShowMobileInputArea,
|
|
163
|
-
isInH5Page
|
|
163
|
+
isInH5Page,
|
|
164
|
+
welcomeWords
|
|
164
165
|
}, ref) => {
|
|
165
166
|
const rootRef = useRef<HTMLDivElement>(null);
|
|
166
167
|
const lastMessage = useRef<HTMLDivElement>(null);
|
|
@@ -193,6 +194,7 @@ const ChatWindow = forwardRef<ChatWindowRef, ChatWindowProps>(({
|
|
|
193
194
|
const {registerChatMethods} = React.useContext(MethodContext) || {};
|
|
194
195
|
let voiceChunks = []; // 临时存储录制的语音片段
|
|
195
196
|
// 滚动事件处理,选择文件时,文件内容超出显示框时,显示左右箭头
|
|
197
|
+
const messageContainerRef = useRef<HTMLDivElement>(null);
|
|
196
198
|
|
|
197
199
|
useImperativeHandle(ref, () => ({
|
|
198
200
|
handleCallButtonClick:handleCallButtonClick
|
|
@@ -1037,7 +1039,7 @@ const ChatWindow = forwardRef<ChatWindowRef, ChatWindowProps>(({
|
|
|
1037
1039
|
keyShowSize={4}
|
|
1038
1040
|
agentName={window_title}
|
|
1039
1041
|
agentUrl={agentUrl}
|
|
1040
|
-
welcomeWords={
|
|
1042
|
+
welcomeWords={welcomeWords || '很高兴认识您,您有什么问题尽可咨询我!'}
|
|
1041
1043
|
handleRowClick={(word) => {
|
|
1042
1044
|
if(!receivingMessageRef.current){
|
|
1043
1045
|
handleSendMessage(word)
|
|
@@ -1248,6 +1250,10 @@ const ChatWindow = forwardRef<ChatWindowRef, ChatWindowProps>(({
|
|
|
1248
1250
|
} else {
|
|
1249
1251
|
handleSendMessage()
|
|
1250
1252
|
}
|
|
1253
|
+
setTimeout(() => {
|
|
1254
|
+
const container = messageContainerRef.current;
|
|
1255
|
+
messageContainerRef.current.scrollTop = container.scrollHeight + 72;
|
|
1256
|
+
}, 200);
|
|
1251
1257
|
}}
|
|
1252
1258
|
onStartRecordClick={startConnectAndRecord}
|
|
1253
1259
|
onStopRecordClick={stopRecord}
|
|
@@ -1548,6 +1554,7 @@ const ChatWindow = forwardRef<ChatWindowRef, ChatWindowProps>(({
|
|
|
1548
1554
|
<div
|
|
1549
1555
|
className="cl-messages_container"
|
|
1550
1556
|
style={isMobile ? {paddingLeft: '0', paddingRight: '0'} : {}}
|
|
1557
|
+
ref={messageContainerRef}
|
|
1551
1558
|
// style={{ maxWidth: '100%', minHeight:'300px', height:'700px', paddingBottom: '56px' }}
|
|
1552
1559
|
>
|
|
1553
1560
|
{
|
|
@@ -59,6 +59,7 @@ export default function ChatWidget({
|
|
|
59
59
|
isShowMobileInputArea,
|
|
60
60
|
isInH5Page,
|
|
61
61
|
chatWindowRef,
|
|
62
|
+
welcomeWords,
|
|
62
63
|
}: {
|
|
63
64
|
is_enable_call:boolean,
|
|
64
65
|
tags: [];
|
|
@@ -111,6 +112,7 @@ export default function ChatWidget({
|
|
|
111
112
|
isShowMobileInputArea?: boolean;
|
|
112
113
|
isInH5Page: boolean;
|
|
113
114
|
chatWindowRef?: object;
|
|
115
|
+
welcomeWords?: string;
|
|
114
116
|
}) {
|
|
115
117
|
const [open, setOpen] = useState(start_open);
|
|
116
118
|
const [messages, setMessages] = useState<ChatMessageType[]>([]);
|
|
@@ -193,6 +195,7 @@ export default function ChatWidget({
|
|
|
193
195
|
onSmartRobotClick={onSmartRobotClick}
|
|
194
196
|
isShowMobileInputArea={isShowMobileInputArea}
|
|
195
197
|
isInH5Page={isInH5Page}
|
|
198
|
+
welcomeWords={welcomeWords}
|
|
196
199
|
/>
|
|
197
200
|
</div>
|
|
198
201
|
);
|
|
@@ -543,8 +543,8 @@ export class MobileChatPageV2 extends React.Component {
|
|
|
543
543
|
<div className="drawer-history-header" style={{marginTop:0, padding: '54px 14px 14px 14px', background: 'linear-gradient( 71deg, #E1E9FF 0%, #FFFFFF 100%)', position: "relative"}}>
|
|
544
544
|
<img src={icon_history_headerbg} style={{position: 'absolute', right: 0, bottom: 0, width: '40%', zIndex:0}}/>
|
|
545
545
|
<div className="drawer-history-header-title" style={{display: 'flex', flexDirection: 'row', alignItems: 'center'}}>
|
|
546
|
-
<img style={{width:
|
|
547
|
-
<span style={{fontSize:
|
|
546
|
+
<img style={{width: 45}} src={agentUrl}/>
|
|
547
|
+
<span style={{fontSize: 19, marginLeft: 10}}>{agentName}</span>
|
|
548
548
|
</div>
|
|
549
549
|
</div>
|
|
550
550
|
<div
|
|
@@ -575,7 +575,7 @@ export class MobileChatPageV2 extends React.Component {
|
|
|
575
575
|
justifyContent: 'center',
|
|
576
576
|
cursor: 'pointer',
|
|
577
577
|
padding: '30px 14px 15px 14px',
|
|
578
|
-
borderBottom: this.state.currentTabKey === item.id ? '2px solid #2850FF' : '2px solid #fff'
|
|
578
|
+
// borderBottom: this.state.currentTabKey === item.id ? '2px solid #2850FF' : '2px solid #fff'
|
|
579
579
|
}}
|
|
580
580
|
onClick={() => this.setState({currentTabKey: item.id})}
|
|
581
581
|
>
|