优化全能创作
This commit is contained in:
@@ -326,14 +326,16 @@ function ElicitCard({
|
||||
// 素材选择闸门:先轻量询问,用户愿意时再展开真正的选择卡
|
||||
if (phase === "gate") {
|
||||
const gateAnswer = saved._asset_gate;
|
||||
const selectedLabel = gateField?.options?.find((option) => option.value === gateAnswer)?.label;
|
||||
const selectedLabel =
|
||||
gateField?.options?.find((option) => option.value === gateAnswer)?.label
|
||||
|| (gateAnswer ? String(gateAnswer) : undefined);
|
||||
return (
|
||||
<div className="omni-chat-row agent">
|
||||
<span className="omni-chat-avatar">
|
||||
<Sparkles />
|
||||
</span>
|
||||
<div className="omni-chat-bubble omni-gate-bubble">
|
||||
<p className="omni-chat-text">{gateLabel}</p>
|
||||
<p className="omni-chat-text">{message.text || gateLabel}</p>
|
||||
{!submitted ? (
|
||||
<div className="omni-gate-actions">
|
||||
{(gateField?.options || []).map((option) => (
|
||||
@@ -1188,15 +1190,11 @@ export function OmniSessionPage({
|
||||
<Sparkles />
|
||||
</span>
|
||||
)}
|
||||
<div className="omni-chat-bubble">
|
||||
{message.role === "user" ? <MentionChips refs={refs} tone="user" /> : null}
|
||||
{body ? <p className="omni-chat-text">{body}</p> : null}
|
||||
{pending ? (
|
||||
<span className="omni-send-pending">
|
||||
<span className="omni-send-spinner" />
|
||||
发送中
|
||||
</span>
|
||||
) : null}
|
||||
<div className={`omni-chat-stack${pending ? " is-pending" : ""}`}>
|
||||
<div className="omni-chat-bubble" aria-busy={pending || undefined}>
|
||||
{message.role === "user" ? <MentionChips refs={refs} tone="user" /> : null}
|
||||
{body ? <p className="omni-chat-text">{body}</p> : null}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@@ -1248,36 +1246,36 @@ export function OmniSessionPage({
|
||||
{streaming && !hasGenerating ? (
|
||||
/生成图片|生成视频/.test(activeTool) && !liveText ? (
|
||||
<ProcessCard payload={{ kind: /生成视频/.test(activeTool) ? "video" : "image" }} />
|
||||
) : (
|
||||
) : liveText ? (
|
||||
<div className="omni-chat-row agent is-live">
|
||||
<span className="omni-chat-avatar">
|
||||
<Sparkles />
|
||||
</span>
|
||||
<div className={`omni-chat-bubble${liveText || liveReasoning ? "" : " is-thinking"}${liveReasoning && !liveText ? " is-reasoning" : ""}`}>
|
||||
{liveText ? (
|
||||
<p className="omni-chat-text">{liveText}</p>
|
||||
) : liveReasoning ? (
|
||||
<>
|
||||
<div className="omni-think-head">
|
||||
<span className="omni-typing" aria-hidden="true">
|
||||
<i />
|
||||
<i />
|
||||
<i />
|
||||
</span>
|
||||
<span>{activeTool ? `${activeTool}…` : "思考中"}</span>
|
||||
</div>
|
||||
<p className="omni-think-text">{liveReasoning}</p>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<span className="omni-typing" aria-hidden="true">
|
||||
<i />
|
||||
<i />
|
||||
<i />
|
||||
</span>
|
||||
<span>{activeTool ? `${activeTool}…` : isVideo ? "正在整理方案" : "正在思考"}</span>
|
||||
</>
|
||||
)}
|
||||
<div className="omni-chat-bubble">
|
||||
<p className="omni-chat-text">{liveText}</p>
|
||||
</div>
|
||||
</div>
|
||||
) : liveReasoning ? (
|
||||
<div className="omni-chat-row agent is-live">
|
||||
<span className="omni-chat-avatar">
|
||||
<Sparkles />
|
||||
</span>
|
||||
<div className="omni-chat-bubble is-reasoning">
|
||||
<div className="omni-think-head">
|
||||
<span className="omni-typing" aria-hidden="true"><i /><i /><i /></span>
|
||||
<span>{activeTool ? `${activeTool}…` : "正在整理方案"}</span>
|
||||
</div>
|
||||
<p className="omni-think-text">{liveReasoning}</p>
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="omni-chat-row agent is-live" aria-label="正在回复">
|
||||
<span className="omni-chat-avatar">
|
||||
<Sparkles />
|
||||
</span>
|
||||
<div className="omni-chat-bubble is-thinking" aria-hidden="true">
|
||||
<span className="omni-typing"><i /><i /><i /></span>
|
||||
<span>{activeTool ? `${activeTool}…` : isVideo ? "正在整理方案" : "正在思考"}</span>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user