23 lines
904 B
TypeScript
23 lines
904 B
TypeScript
export type ClassroomGenerationResumeMode = 'none' | 'scenes' | 'media';
|
|
|
|
/**
|
|
* Published learner bundles are immutable course content. Even if a corrupt or
|
|
* legacy cache unexpectedly carries outlines, opening it must never call the
|
|
* scene/media generation pipeline. Authoring classrooms retain the historical
|
|
* interrupted-generation recovery behavior.
|
|
*/
|
|
export function classroomGenerationResumeMode(input: {
|
|
learnerMode: boolean;
|
|
generationComplete: boolean;
|
|
outlineOrders: readonly number[];
|
|
sceneOrders: readonly number[];
|
|
}): ClassroomGenerationResumeMode {
|
|
if (input.learnerMode) return 'none';
|
|
|
|
const completedOrders = new Set(input.sceneOrders);
|
|
const hasPendingScenes =
|
|
!input.generationComplete && input.outlineOrders.some((order) => !completedOrders.has(order));
|
|
if (hasPendingScenes) return 'scenes';
|
|
return input.outlineOrders.length > 0 ? 'media' : 'none';
|
|
}
|