import type { MiniGameDraftGenerationState } from '../../services/miniGameDraftGenerationProgress'; import type { SelectionStage } from './platformEntryTypes'; type VisualNovelEntryGenerationPhase = 'generating' | 'ready' | 'failed'; type PlatformGenerationProgressClockInput = { selectionStage: SelectionStage; generationState?: MiniGameDraftGenerationState | null; visualNovelGenerationStartedAtMs?: number | null; visualNovelGenerationPhase?: VisualNovelEntryGenerationPhase; }; export function shouldTickPlatformGenerationProgressClock({ selectionStage, generationState, visualNovelGenerationStartedAtMs, visualNovelGenerationPhase, }: PlatformGenerationProgressClockInput) { if (selectionStage === 'visual-novel-generating') { return ( visualNovelGenerationStartedAtMs != null && visualNovelGenerationPhase !== 'ready' && visualNovelGenerationPhase !== 'failed' ); } if (!selectionStage.endsWith('-generating')) { return false; } return Boolean( generationState && generationState.phase !== 'ready' && generationState.phase !== 'failed', ); }