feat(AI设计): 支持输入框回车发送

需求:AI 设计输入框监听 Enter 并发送消息。

实现:复用现有发送链路,保留 Shift+Enter 换行并保护输入法组合状态;补充聚焦回归测试。
This commit is contained in:
2026-08-06 16:46:19 +08:00
parent 7b23cce67a
commit 4980894017
3 changed files with 91 additions and 5 deletions

View File

@@ -536,10 +536,9 @@ export function ImageCanvas() {
};
const handleComposerKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {
if ((event.metaKey || event.ctrlKey) && event.key === 'Enter') {
event.preventDefault();
void handleSend();
}
if (event.key !== 'Enter' || event.shiftKey || event.nativeEvent.isComposing) return;
event.preventDefault();
void handleSend();
};
const handleFirstFrameSelect = async (asset: DesignAsset) => {
@@ -819,7 +818,7 @@ export function ImageCanvas() {
/>
{actionError ? <p role="alert" className="mt-2 rounded-xl bg-destructive/10 px-3 py-2 text-xs font-semibold text-destructive">{actionError}</p> : null}
<div className="mt-2 flex items-center justify-between gap-3 border-t border-border/70 pt-2">
<span className="text-[10px] font-medium text-muted-foreground">/Ctrl + Enter </span>
<span className="text-[10px] font-medium text-muted-foreground">Enter · Shift+Enter </span>
<Button type="submit" className="h-9 rounded-full bg-brand px-4 text-primary-foreground" disabled={submitting || !prompt.trim()}>
{submitting ? <Loader2 className="mr-2 h-4 w-4 animate-spin" /> : <Send className="mr-2 h-4 w-4" />}
Agent