From 1897bf54d0991b12716031719d2a21dbe5aff7b5 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 19:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=BA=A2=E4=B9=A6=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8F=B0=E9=A1=B6=E9=83=A8=E6=A7=BD=E4=BD=8D=E6=94=B9=E7=94=A8?= =?UTF-8?q?=20if/else=20=E6=91=8A=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ArtifactsPane 把表单 / 读取中 / 读失败留白 / 自动重试的四路链式三元抽成 formSlot,JSX 只剩一个插槽 --- .../export/tabs/xiaohongshu/ArtifactsPane.tsx | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/tabs/xiaohongshu/ArtifactsPane.tsx b/apps/ai-game-creator-shell/src/view/project-development/export/tabs/xiaohongshu/ArtifactsPane.tsx index 9f5fa8166..9ed57f0ac 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/tabs/xiaohongshu/ArtifactsPane.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/export/tabs/xiaohongshu/ArtifactsPane.tsx @@ -1,4 +1,5 @@ import { openUrl } from '@tauri-apps/plugin-opener'; +import type { ReactNode } from 'react'; import type { XhsMinitoolExportState } from '../../state/useXhsMinitoolExport'; import { saveXhsMinitoolFileToDisk } from '../../state/xhsMinitoolDownload'; @@ -69,29 +70,38 @@ export function ArtifactsPane({ }); }; + /** + * 左半顶部槽位:整张表单 / 一行读取中 / 什么都不放(读失败由弹窗拿着现场)/ 一行自动重试兜底。 + * 四种形状差得远,用 if/else 摊开算好,JSX 里只留一个 `{formSlot}`,别把控制流埋进链式三元。 + */ + let formSlot: ReactNode = null; + if (form) { + formSlot = ( + void minitool.fillForm()} + /> + ); + } else if (!minitool.readSettled) { + formSlot =

正在读取导出信息…

; + } else if (!failure) { + // 读失败时上面不重复一句话:失败弹窗拿着宿主的现场和下一步。 + formSlot = ( +

没能读到导出信息,正在自动重试…

+ ); + } + return (
- {form ? ( - void minitool.fillForm()} - /> - ) : !minitool.readSettled ? ( -

正在读取导出信息…

- ) : // 读失败时上面不重复一句话:失败弹窗拿着宿主的现场和下一步。 - failure ? null : ( -

- 没能读到导出信息,正在自动重试… -

- )} + {formSlot}