diff --git a/CHANGELOG.md b/CHANGELOG.md index f31e6178..3574d5f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ ## [Unreleased] +### Fixed +- Fixed run button enabled when no file open ([support#691]). + +[support#691]: https://github.com/pybricks/support/issues/691 + ## [2.0.0-beta.5] - 2022-07-28 ### Fixed diff --git a/src/toolbar/buttons/run/RunButton.test.tsx b/src/toolbar/buttons/run/RunButton.test.tsx index 9359fb44..653ed1a7 100644 --- a/src/toolbar/buttons/run/RunButton.test.tsx +++ b/src/toolbar/buttons/run/RunButton.test.tsx @@ -3,7 +3,7 @@ import { cleanup } from '@testing-library/react'; import React from 'react'; -import { testRender } from '../../../../test'; +import { testRender, uuid } from '../../../../test'; import { downloadAndRun } from '../../../hub/actions'; import { HubRuntimeState } from '../../../hub/reducers'; import RunButton from './RunButton'; @@ -14,7 +14,7 @@ afterEach(() => { it('should dispatch action when clicked', async () => { const [user, button, dispatch] = testRender(, { - editor: { isReady: true }, + editor: { activeFileUuid: uuid(0) }, hub: { runtime: HubRuntimeState.Idle }, }); diff --git a/src/toolbar/buttons/run/RunButton.tsx b/src/toolbar/buttons/run/RunButton.tsx index 4eb265cd..35cee8dd 100644 --- a/src/toolbar/buttons/run/RunButton.tsx +++ b/src/toolbar/buttons/run/RunButton.tsx @@ -16,7 +16,7 @@ const RunButton: React.VoidFunctionComponent = ({ id }) => { const downloadProgress = useSelector((s) => s.hub.downloadProgress); const mpyAbiVersion = useSelector((s) => s.hub.mpyAbiVersion); const runtime = useSelector((s) => s.hub.runtime); - const isEditorReady = useSelector((s) => s.editor.isReady); + const activeFile = useSelector((s) => s.editor.activeFileUuid); const keyboardShortcut = 'F5'; const i18n = useI18n(); @@ -35,7 +35,7 @@ const RunButton: React.VoidFunctionComponent = ({ id }) => { : i18n.translate('tooltip.action', { key: keyboardShortcut }) } icon={icon} - enabled={isEditorReady && runtime === HubRuntimeState.Idle} + enabled={activeFile !== null && runtime === HubRuntimeState.Idle} showProgress={runtime === HubRuntimeState.Loading} progress={downloadProgress === null ? undefined : downloadProgress} onAction={() => dispatch(downloadAndRun(mpyAbiVersion))}