From aecb5a1aeaba19d2b0adbacb5e8200d13276180e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 7 Oct 2026 19:20:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E9=99=B6=E6=B3=A5=E5=84=BF=E5=8F=91?= =?UTF-8?q?=E5=B8=83):=20=E4=B8=8A=E4=B8=80=E7=89=88=E6=9C=AC=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=20objectKey=20=E5=BD=92=E4=B8=80=E5=8C=96=E6=8A=BD?= =?UTF-8?q?=E6=88=90=E5=8D=95=E4=B8=80=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - adoptOnlineScreenshots 与 rewriteScreenshotsToOnline 各自重复 map(trim).filter(非空) - 抽成模块级 onlineScreenshotObjectKeys,两处共用同一口径,新增调用点不再复制 --- .../export/state/useTaonierExport.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierExport.ts b/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierExport.ts index b781da13b..388618af7 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierExport.ts +++ b/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierExport.ts @@ -84,6 +84,15 @@ export type TaonierOnlineImage = { previewUrl: string; }; +/** 上一版本截图列表 → trim 后的非空 objectKey;「沿用」与「发布后回写」共用同一归一化口径。 */ +function onlineScreenshotObjectKeys( + images: readonly TaonierOnlineImage[], +): string[] { + return images + .map((image) => image.objectKey.trim()) + .filter((key) => key.length > 0); +} + /** * 线上值:live `GameDistributionGame` 行的只读投影。 * @@ -733,9 +742,7 @@ export function useTaonierExport({ * 显示上一版本的预览。 */ const adoptOnlineScreenshots = useCallback((): void => { - const keys = (online?.screenshots ?? []) - .map((image) => image.objectKey.trim()) - .filter((key) => key.length > 0); + const keys = onlineScreenshotObjectKeys(online?.screenshots ?? []); updateImageFields((previous) => ({ coverPath: previous.coverPath, screenshotPaths: keys, @@ -751,9 +758,7 @@ export function useTaonierExport({ */ const rewriteScreenshotsToOnline = useCallback( (values: TaonierOnlineValues): void => { - const keys = values.screenshots - .map((image) => image.objectKey.trim()) - .filter((key) => key.length > 0); + const keys = onlineScreenshotObjectKeys(values.screenshots); if (keys.length === 0) return; updateImageFields((previous) => ({ coverPath: previous.coverPath,