From 6af4957fa25868e5ee8d87cf23a077add2e51d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 6 Oct 2026 21:06:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=B6=E6=B3=A5=E5=84=BF=20tab=20=E6=8D=A2?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=97=B6=E6=B8=85=E6=8E=89=E8=8D=89=E7=A8=BF?= =?UTF-8?q?=E4=B8=8E=E8=BF=90=E8=A1=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit export/state/useTaonierTab.ts:换项目重置效果补上 setDraft([]) 与 setRuntimeNotice(''),旧项目没发出去的输入不再出现在新项目输入框。 --- .../export/state/useTaonierTab.ts | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts b/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts index 3c50950e6..ee256d00b 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts +++ b/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts @@ -107,25 +107,29 @@ export function useTaonierTab({ }; }, []); - /** - * 换项目时清掉上一次项目的打包结果、进度与阻断提示。 - * - * 面板跨项目切换时不会卸载(同一份 `usePanel` 状态继续用),而发布表单在 - * `manifest?.projectId` 变化时会重新初始化并复用现成的 `packageResult`——不清的话, - * 新项目会带着旧项目的 `packageRelativePath` 直接被发布出去。 - */ - useEffect(() => { - setPackageResult(null); - setProgress(null); - setBlockedMessage(null); - }, [projectPath]); - const [runtimeNotice, setRuntimeNotice] = useState(''); /** * 输入草稿提升到面板层:Composer 随 tab 页卸载后,正文不再随组件一起丢。 * 提交成功时 Composer 内部的 `clear()` 会经 `onDraftChange` 把空草稿回执上来。 */ const [draft, setDraft] = useState([]); + + /** + * 换项目时清掉上一次项目的打包结果、进度、阻断提示与输入草稿。 + * + * 面板跨项目切换时不会卸载(同一份 `usePanel` 状态继续用),而发布表单在 + * `manifest?.projectId` 变化时会重新初始化并复用现成的 `packageResult`——不清的话, + * 新项目会带着旧项目的 `packageRelativePath` 直接被发布出去。草稿与运行提示同理: + * 两个项目不是同一条会话,旧项目没发出去的字不该出现在新项目的输入框里。 + */ + useEffect(() => { + setPackageResult(null); + setProgress(null); + setBlockedMessage(null); + setDraft([]); + setRuntimeNotice(''); + }, [projectPath]); + const chat = useDirectProjectChatController({ enabled, ensureConversationReadAllowed,