mirror of
https://github.com/pybricks/pybricks-code.git
synced 2026-09-12 17:45:22 +00:00
toolbar/RunButton: enable only when active file
Before multi-file support, it was not possible to have no open file. So we need to change the state logic to only enable the button when there is an active file rather than when the editor "is ready". Fixes: https://github.com/pybricks/support/issues/691
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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(<RunButton id="test-run-button" />, {
|
||||
editor: { isReady: true },
|
||||
editor: { activeFileUuid: uuid(0) },
|
||||
hub: { runtime: HubRuntimeState.Idle },
|
||||
});
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ const RunButton: React.VoidFunctionComponent<RunButtonProps> = ({ 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<RunButtonProps> = ({ 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))}
|
||||
|
||||
Reference in New Issue
Block a user