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 a8059685f..d386e1fef 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 @@ -130,6 +130,19 @@ export function useTaonierTab({ }; }, [enabled, projectPath]); + /** + * 换项目时清掉上一次项目的打包结果、进度与阻断提示。 + * + * 面板跨项目切换时不会卸载(同一份 `usePanel` 状态继续用),而发布表单在 + * `manifest?.projectId` 变化时会重新初始化并复用现成的 `packageResult`——不清的话, + * 新项目会带着旧项目的 `packageRelativePath` 直接被发布出去。与上面的灰度重置同一口径。 + */ + useEffect(() => { + setPackageResult(null); + setProgress(null); + setBlockedMessage(null); + }, [projectPath]); + const [runtimeNotice, setRuntimeNotice] = useState(''); /** * 输入草稿提升到面板层:Composer 随 tab 页卸载后,正文不再随组件一起丢。