From dd8eb60e05b8f846f3b966ac4d5b8115284359f6 Mon Sep 17 00:00:00 2001 From: kvtodev Date: Wed, 15 Jul 2026 11:21:37 +0800 Subject: [PATCH] removed home status, adjust style, reset draft on submitted chat, give error echo back --- apps/ai-game-creator-shell/src/App.tsx | 27 +++++++----- .../src/view/home/index.tsx | 41 ++++++++++--------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/apps/ai-game-creator-shell/src/App.tsx b/apps/ai-game-creator-shell/src/App.tsx index 907962747..e3a6650d1 100644 --- a/apps/ai-game-creator-shell/src/App.tsx +++ b/apps/ai-game-creator-shell/src/App.tsx @@ -2434,6 +2434,7 @@ export function WorkspaceLauncher({ recentRunStopReason: null, createdAt: Date.now(), }); + resetLauncherHomeDraft(); return '已创建项目并进入项目开发'; } catch (error) { const message = error instanceof Error ? error.message : String(error); @@ -2551,17 +2552,21 @@ export function WorkspaceLauncher({ } const pendingProject = pendingNonEmptyProject; setPendingNonEmptyProject(null); - if (pendingProject.kind === 'home-create') { - await createHomeProjectFromDirectory( - pendingProject.projectPath, - pendingProject.mode, - pendingProject.prompt, - pendingProject.attachments, - true, - ); - return; + try { + if (pendingProject.kind === 'home-create') { + await createHomeProjectFromDirectory( + pendingProject.projectPath, + pendingProject.mode, + pendingProject.prompt, + pendingProject.attachments, + true, + ); + return; + } + await createProjectFromProjectPage(pendingProject.projectPath, true); + } catch (error) { + setStatus(error instanceof Error ? error.message : String(error)); } - await createProjectFromProjectPage(pendingProject.projectPath, true); } function cancelCreateInNonEmptyFolder() { @@ -3294,6 +3299,8 @@ export function WorkspaceLauncher({ {launcherView === 'home' ? ( 0} + status={status} + onStatusChange={setStatus} homeAgentModeItems={homeAgentModeItems} recentProjectRows={recentProjectRows} onCreateDraft={createHomeDraft} diff --git a/apps/ai-game-creator-shell/src/view/home/index.tsx b/apps/ai-game-creator-shell/src/view/home/index.tsx index 4291ea093..db4060d7d 100644 --- a/apps/ai-game-creator-shell/src/view/home/index.tsx +++ b/apps/ai-game-creator-shell/src/view/home/index.tsx @@ -52,6 +52,8 @@ export type HomeShowcaseResource = { type HomeViewProps = { hasPromo: boolean; + status: string; + onStatusChange: (status: string) => void; homeAgentModeItems: readonly HomeAgentModeItem[]; recentProjectRows: readonly HomeProjectRow[]; onCreateDraft: (draft: HomeDraft) => Promise; @@ -61,6 +63,8 @@ type HomeViewProps = { export default function HomeView({ hasPromo, + status, + onStatusChange, homeAgentModeItems, recentProjectRows, onCreateDraft, @@ -81,7 +85,6 @@ export default function HomeView({ (state) => state.removeAttachment, ); const [homeCreationBusy, setHomeCreationBusy] = useState(false); - const [homeStatus, setHomeStatus] = useState('请选择创作模式'); const { resources: showcaseResources, status: showcaseStatus } = useHomeShowcase(); const homeAttachmentInputRef = useRef(null); @@ -114,16 +117,16 @@ export default function HomeView({ async function handleHomeSubmit(event: FormEvent) { event.preventDefault(); if (!homePrompt.trim() && homeAttachments.length === 0) { - setHomeStatus( + onStatusChange( homeAgentModeItems.find((item) => item.mode === homeAgentMode) ?.emptyPrompt ?? '请输入需求或上传附件', ); return; } setHomeCreationBusy(true); - setHomeStatus('请选择项目目录'); + onStatusChange('请选择项目目录'); try { - setHomeStatus( + onStatusChange( await onCreateDraft({ mode: homeAgentMode, prompt: homePrompt, @@ -131,7 +134,7 @@ export default function HomeView({ }), ); } catch (error) { - setHomeStatus(error instanceof Error ? error.message : String(error)); + onStatusChange(error instanceof Error ? error.message : String(error)); } finally { setHomeCreationBusy(false); } @@ -140,17 +143,17 @@ export default function HomeView({ return ( <>
-
+
-

+

陶泥儿 GameAgent

@@ -159,7 +162,7 @@ export default function HomeView({

{homeAgentModeItems.map((item) => { @@ -183,7 +186,7 @@ export default function HomeView({ })}