Files
Genarrative/src/components/platform-entry/puzzleDraftGenerationState.ts
T
kdletters 48c7cce1ba 合并 master 并修复架构分支回归
合入 master 最新的认证、玩法契约与推荐页改动。

修复拼图草稿生成、推荐页下一关和公开详情访客试玩回归。

修复抓大鹅草稿试玩鉴权与首屏推荐详情测试入口。

补齐相关测试夹具、文档与团队记忆更新。
2026-06-07 21:35:47 +08:00

37 lines
1.0 KiB
TypeScript

import type { PuzzleAgentSessionSnapshot } from '../../../packages/shared/src/contracts/puzzleAgentSession';
function hasText(value: string | null | undefined) {
return typeof value === 'string' && value.trim().length > 0;
}
function hasAssetReference(
imageSrc: string | null | undefined,
objectKey: string | null | undefined,
) {
return hasText(imageSrc) || hasText(objectKey);
}
export function isPuzzleCompileActionReady(
session: PuzzleAgentSessionSnapshot,
) {
const draft = session.draft;
if (!draft) {
return false;
}
return (
draft.levels?.some(
(level) =>
(hasText(draft.coverImageSrc) || hasText(level.coverImageSrc)) &&
hasAssetReference(level.levelSceneImageSrc, level.levelSceneImageObjectKey) &&
hasAssetReference(
level.uiSpritesheetImageSrc,
level.uiSpritesheetImageObjectKey,
) &&
hasAssetReference(
level.levelBackgroundImageSrc,
level.levelBackgroundImageObjectKey,
),
) === true
);
}