diff --git a/package.json b/package.json index d8e4b8fb..945f4f8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@pybricks/pybricks-code", - "version": "1.0.0-beta.9", + "version": "1.0.0-beta.10", "license": "MIT", "author": "The Pybricks Authors", "repository": { diff --git a/src/hub/actions.ts b/src/hub/actions.ts index f7acc397..a816662e 100644 --- a/src/hub/actions.ts +++ b/src/hub/actions.ts @@ -4,10 +4,8 @@ import { Action } from 'redux'; export enum HubRuntimeStatusType { - Idle = 'idle', Loading = 'loading', Loaded = 'loaded', - Running = 'running', Error = 'error', } diff --git a/src/hub/reducers.ts b/src/hub/reducers.ts index 3fe4fb66..ea66cbc4 100644 --- a/src/hub/reducers.ts +++ b/src/hub/reducers.ts @@ -51,14 +51,10 @@ const runtime: Reducer = ( return HubRuntimeState.Disconnected; case HubMessageActionType.RuntimeStatus: switch (action.newStatus) { - case HubRuntimeStatusType.Idle: - return HubRuntimeState.Idle; case HubRuntimeStatusType.Loading: return HubRuntimeState.Loading; case HubRuntimeStatusType.Loaded: return HubRuntimeState.Loaded; - case HubRuntimeStatusType.Running: - return HubRuntimeState.Running; case HubRuntimeStatusType.Error: return HubRuntimeState.Error; default: @@ -66,9 +62,16 @@ const runtime: Reducer = ( return state; } case BlePybricksServiceEventActionType.StatusReport: - return action.statusFlags & statusToFlag(Status.UserProgramRunning) - ? HubRuntimeState.Running - : HubRuntimeState.Idle; + if (action.statusFlags & statusToFlag(Status.UserProgramRunning)) { + return HubRuntimeState.Running; + } + // TODO: Status report flags should probably separated from hub runtime state. + // For now, we have this hack to ensure status updates don't interfere with + // download and run + if (state !== HubRuntimeState.Loading && state !== HubRuntimeState.Loaded) { + return HubRuntimeState.Idle; + } + return state; default: return state; }