21 lines
535 B
TypeScript
21 lines
535 B
TypeScript
import type { PuzzleAgentSessionSnapshot } from '../../../packages/shared/src/contracts/puzzleAgentSession';
|
|
|
|
function hasText(value: string | null | undefined) {
|
|
return typeof value === 'string' && value.trim().length > 0;
|
|
}
|
|
|
|
export function isPuzzleCompileActionReady(
|
|
session: PuzzleAgentSessionSnapshot,
|
|
) {
|
|
const draft = session.draft;
|
|
if (!draft) {
|
|
return false;
|
|
}
|
|
if (hasText(draft.coverImageSrc)) {
|
|
return true;
|
|
}
|
|
return (
|
|
draft.levels?.some((level) => hasText(level.coverImageSrc)) === true
|
|
);
|
|
}
|