From 591cc39e8db78248df75d1d78c61104ffd4ef5e0 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 8 Mar 2026 16:34:33 +0800 Subject: [PATCH] polish realtime canvas controls --- components/canvas/RealtimeCanvasDialog.tsx | 51 ++++++++++------------ 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/components/canvas/RealtimeCanvasDialog.tsx b/components/canvas/RealtimeCanvasDialog.tsx index a5ce546f3..dc469b6e2 100644 --- a/components/canvas/RealtimeCanvasDialog.tsx +++ b/components/canvas/RealtimeCanvasDialog.tsx @@ -760,7 +760,7 @@ export function RealtimeCanvasDialog({ const [config, setConfig] = useState(defaultRealtimeConfig); const [status, setStatus] = useState("idle"); const [, setStatusMessage] = useState("等待连接"); - const [prompt, setPrompt] = useState(FALLBACK_PROMPT); + const [prompt, setPrompt] = useState(""); const [previewUrl, setPreviewUrl] = useState(""); const [brushMode, setBrushMode] = useState("select"); const [brushColor, setBrushColor] = useState(DEFAULT_BRUSH_COLOR); @@ -1671,7 +1671,9 @@ export function RealtimeCanvasDialog({ setSelectedLayerId(nextLayers[0]?.id || DRAW_LAYER_ID); setBrushColor(project.brushColor || DEFAULT_BRUSH_COLOR); setBrushSize(project.brushSize || 6); - setPrompt(project.prompt || FALLBACK_PROMPT); + setPrompt( + project.prompt && project.prompt !== FALLBACK_PROMPT ? project.prompt : "" + ); setPreviewUrl(project.previewUrl || ""); await loadDrawingLayerFromDataUrl(project.drawingLayerDataUrl || ""); saveHistory(nextLayers, project.canvasBackground || CANVAS_BACKGROUND); @@ -2650,8 +2652,20 @@ export function RealtimeCanvasDialog({ anchor.click(); }, [previewUrl]); + const handleCloseRealtime = useCallback(() => { + if (standalone && typeof window !== "undefined") { + if (window.history.length > 1) { + window.history.back(); + return; + } + window.location.assign("/canvas"); + return; + } + onOpenChange(false); + }, [onOpenChange, standalone]); + const startBlankProject = useCallback(() => { - setPrompt(FALLBACK_PROMPT); + setPrompt(""); setPreviewUrl(""); setProjectPanelOpen(false); setSelectedLayerId(DRAW_LAYER_ID); @@ -2731,10 +2745,10 @@ export function RealtimeCanvasDialog({
-
+
- {standalone ? ( - - - - - -
关闭页面
-
- 返回上一层画布 -
-
-
- ) : null}
@@ -3490,7 +3483,7 @@ export function RealtimeCanvasDialog({ triggerGenerate(); } }} - placeholder="输入指令,基于当前画布实时生成" + placeholder={FALLBACK_PROMPT} value={prompt} />
@@ -3517,7 +3510,7 @@ export function RealtimeCanvasDialog({