diff --git a/src/components/game-distribution/GamePublishPage.tsx b/src/components/game-distribution/GamePublishPage.tsx index 139ea958d..7ee3da47f 100644 --- a/src/components/game-distribution/GamePublishPage.tsx +++ b/src/components/game-distribution/GamePublishPage.tsx @@ -31,6 +31,7 @@ import { import { buildGamePublishMediaSubmission, type GamePublishImage, + type GamePublishMediaSubmission, revokeGamePublishImagePreview, } from './gamePublishAssets'; import { GamePublishClientGuide } from './GamePublishClientGuide'; @@ -313,11 +314,10 @@ export function GamePublishPage({ * 组装提交给服务端的资料 DTO。 * * 媒体槽位只描述来源:本地新图写 `null`(由对应的二进制 part 补位),沿用线上图写 objectKey; - * 原始字节另由 `buildPublishMediaParts` 作为 multipart part 提交。两者共用 - * `buildGamePublishMediaSubmission`,槽位映射与 part 组装不会各改各的。 + * 原始字节另由 `buildPublishMediaParts` 作为 multipart part 提交。两者消费调用方算好的 + * 同一个 `buildGamePublishMediaSubmission` 结果,槽位映射与 part 组装不会各改各的。 */ - function buildPublishGameMetadata() { - const media = buildGamePublishMediaSubmission(coverImage, screenshotImages); + function buildPublishGameMetadata(media: GamePublishMediaSubmission) { return { title: title.trim(), summary: summary.trim(), @@ -332,8 +332,8 @@ export function GamePublishPage({ }; } - function buildPublishMediaParts() { - return buildGamePublishMediaSubmission(coverImage, screenshotImages).parts; + function buildPublishMediaParts(media: GamePublishMediaSubmission) { + return media.parts; } /** 是否已有封面:本地新图或沿用线上图都算。 */ @@ -431,8 +431,12 @@ export function GamePublishPage({ try { const prepared = await prepareGamePackage(packageFile); const updateKey = resolvePublishKey(); - const gameMetadata = buildPublishGameMetadata(); - const media = buildPublishMediaParts(); + const submission = buildGamePublishMediaSubmission( + coverImage, + screenshotImages, + ); + const gameMetadata = buildPublishGameMetadata(submission); + const media = buildPublishMediaParts(submission); const version = await createGameVersion( updateContext.gameId, { @@ -511,8 +515,12 @@ export function GamePublishPage({ setError(''); try { const prepared = await prepareGamePackage(packageFile); - const gameMetadata = buildPublishGameMetadata(); - const media = buildPublishMediaParts(); + const submission = buildGamePublishMediaSubmission( + coverImage, + screenshotImages, + ); + const gameMetadata = buildPublishGameMetadata(submission); + const media = buildPublishMediaParts(submission); const publishKey = resolvePublishKey(); const game = await createGame(gameMetadata, `${publishKey}:game`, media); const version = await createGameVersion(