Files
roblox/components/providers/game-launch-store.ts
2025-12-27 16:57:19 +02:00

40 lines
728 B
TypeScript

type GameLaunchState = {
isOpen: boolean;
placeId?: string;
gameInstanceId?: string;
};
let state: GameLaunchState = { isOpen: false };
const listeners = new Set<() => void>();
function emit() {
listeners.forEach((listener) => listener());
}
export function getGameLaunchState() {
return state;
}
export function isGameLaunchOpen() {
return state.isOpen;
}
export function subscribeGameLaunch(listener: () => void) {
listeners.add(listener);
return () => listeners.delete(listener);
}
export function openGameLaunchWithParams(placeId: string, jobId?: string) {
state = {
isOpen: true,
placeId,
gameInstanceId: jobId
};
emit();
}
export function closeGameLaunch() {
state = { isOpen: false };
emit();
}