diff --git a/frontend/src/ts/tribe/tribe-state.ts b/frontend/src/ts/tribe/tribe-state.ts index 2dec3836e..1165636bc 100644 --- a/frontend/src/ts/tribe/tribe-state.ts +++ b/frontend/src/ts/tribe/tribe-state.ts @@ -54,6 +54,19 @@ export function getSelf(): TribeTypes.User | undefined { return room?.users?.[TribeSocket.getId()]; } +export function isLeader(): boolean { + return getSelf()?.isLeader ?? false; +} + +export function isInARoom(): boolean { + return getState() >= 5; +} + +export function isRaceActive(): boolean { + const s = getState(); + return s >= 10 && s <= 20; +} + export function canChangeConfig(override: boolean): boolean { if (getState() <= 1) return true; if (getSelf()?.isLeader) { diff --git a/frontend/src/ts/tribe/tribe.ts b/frontend/src/ts/tribe/tribe.ts index dac22c76e..53a1f319d 100644 --- a/frontend/src/ts/tribe/tribe.ts +++ b/frontend/src/ts/tribe/tribe.ts @@ -195,6 +195,10 @@ export function initRace(): void { } } +export function readyUp(): void { + TribeSocket.out.room.readyUpdate(); +} + async function connect(): Promise { const versionCheck = await TribeSocket.out.system.versionCheck(expectedVersion);