refactor(陶泥儿发布): 上一版本截图 objectKey 归一化抽成单一 helper

- adoptOnlineScreenshots 与 rewriteScreenshotsToOnline 各自重复 map(trim).filter(非空)
- 抽成模块级 onlineScreenshotObjectKeys,两处共用同一口径,新增调用点不再复制
This commit is contained in:
2026-10-07 19:20:34 +08:00
parent c9190a26f0
commit aecb5a1aea
@@ -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,