Improve WeChat MP replies and ship MindSpace/H5 production updates.
Add WeChat service account routing with sync acks, connectivity tests, and context isolation; document deploy runbooks; and bundle related MindSpace, voice, Plaza, and server gateway changes for production rollout. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { useState } from 'react';
|
||||
import { useUserAvatar } from '../hooks/useUserAvatar';
|
||||
import type { Message } from '../types';
|
||||
import { getDisplayText, getThinking, getVisibleText } from '../utils/message';
|
||||
import { getDisplayText, getImageUrls, getThinking } from '../utils/message';
|
||||
import { getMessageSaveActions } from '../utils/messageSave';
|
||||
import { renderMarkdown } from '../utils/markdown';
|
||||
import { formatChatTime, shouldShowTimestamp } from '../utils/time';
|
||||
@@ -139,6 +139,7 @@ function MessageRow({
|
||||
const saveActions = getMessageSaveActions(text, publishUsername);
|
||||
const thinking = getThinking(message);
|
||||
const isUser = message.role === 'user';
|
||||
const imageUrls = getImageUrls(message);
|
||||
const copyText = [thinking ? `【思考】\n${thinking}` : '', text].filter(Boolean).join('\n\n');
|
||||
|
||||
if (!text && !thinking && message.role === 'assistant') {
|
||||
@@ -169,6 +170,26 @@ function MessageRow({
|
||||
<pre>{thinking}</pre>
|
||||
</details>
|
||||
)}
|
||||
{imageUrls.length > 0 && (
|
||||
<div className="msg-image-gallery">
|
||||
{imageUrls.map((imageUrl, index) => (
|
||||
<a
|
||||
key={`${imageUrl}-${index}`}
|
||||
href={imageUrl}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="msg-image-link"
|
||||
>
|
||||
<img
|
||||
src={imageUrl}
|
||||
alt={`图片 ${index + 1}`}
|
||||
className="msg-image-thumb"
|
||||
loading="lazy"
|
||||
/>
|
||||
</a>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
{text && (
|
||||
<div
|
||||
className="bubble-text"
|
||||
|
||||
Reference in New Issue
Block a user