import { EDUTAINMENT_HIDDEN_MESSAGE } from './platformEdutainmentVisibility'; import type { PlatformCreationTypeId } from './platformEntryCreationTypes'; export type PlatformCreationLaunchTarget = | 'rpg' | 'big-fish' | 'match3d' | 'square-hole' | 'jump-hop' | 'wooden-fish' | 'puzzle' | 'bark-battle' | 'visual-novel' | 'baby-object-match'; export type PlatformCreationLaunchIntent = | { type: 'noop'; shouldPrepare: false; reason: 'placeholder'; } | { type: 'noop'; shouldPrepare: true; reason: 'unknown'; } | { type: 'blocked'; shouldPrepare: true; message: string; } | { type: 'launch'; shouldPrepare: true; target: PlatformCreationLaunchTarget; }; const PLATFORM_CREATION_LAUNCH_TARGETS = new Set([ 'rpg', 'big-fish', 'match3d', 'square-hole', 'jump-hop', 'wooden-fish', 'puzzle', 'bark-battle', 'visual-novel', 'baby-object-match', ]); export function resolvePlatformCreationLaunchIntent(params: { type: PlatformCreationTypeId; isBabyObjectMatchVisible: boolean; }): PlatformCreationLaunchIntent { if (params.type === 'airp') { return { type: 'noop', shouldPrepare: false, reason: 'placeholder', }; } if ( params.type === 'baby-object-match' && !params.isBabyObjectMatchVisible ) { return { type: 'blocked', shouldPrepare: true, message: EDUTAINMENT_HIDDEN_MESSAGE, }; } if (!PLATFORM_CREATION_LAUNCH_TARGETS.has(params.type)) { return { type: 'noop', shouldPrepare: true, reason: 'unknown', }; } return { type: 'launch', shouldPrepare: true, target: params.type as PlatformCreationLaunchTarget, }; }