Commit Graph
392 Commits
Author SHA1 Message Date
David Lechner 6dc4dcb2e5 toolbar: specify image width/height
This make the button the right size while waiting for the image to download.

Fixes: https://github.com/pybricks/support/issues/369
2021-12-27 12:38:50 -06:00
David Lechner 11e0fefb1d toolbar: use function form of Dropzone 2021-12-27 12:38:50 -06:00
David Lechner eb9ea2876e toolbar: remove unuse buttonRef in ActionButton 2021-12-27 12:38:50 -06:00
David Lechner 9be6ba3640 update to Tooltip2
Tooltip has been deprecated so trying out the new Tooltip2.
2021-12-27 12:38:50 -06:00
David Lechner db7f3be222 utils: convert ExternalLinkIcon to function 2021-12-27 12:38:50 -06:00
David Lechner 534d3f80e6 toolbar: convert Toolbar to function 2021-12-27 12:38:50 -06:00
David Lechner 8cd014c2ab toolbar: convert OpenFileButton to function 2021-12-27 12:38:50 -06:00
David Lechner f3e179683e toolbar: convert ActionButton to function 2021-12-27 12:38:50 -06:00
David Lechner 4b19604fa9 terminal: convert Terminal to function component 2021-12-27 12:38:50 -06:00
David Lechner 5d201e61ae status-bar: convert StatusBar to function 2021-12-27 12:38:50 -06:00
David Lechner d5ad768122 notifications: use lambda syntax for components 2021-12-27 12:38:50 -06:00
David Lechner a58b30ed07 licenses: convert LicenseDialog to functions 2021-12-27 12:38:50 -06:00
David Lechner 57038360f4 hub/sagas: don't log to console in tests 2021-12-27 12:38:50 -06:00
David Lechner c9894de95e hub: convert StopButton to function 2021-12-27 12:38:50 -06:00
David Lechner f57bbdf8e2 hub: convert RunButton to function 2021-12-27 12:38:50 -06:00
David Lechner dbda94c33f hub: convert BluetoothButton to function 2021-12-27 12:38:50 -06:00
David Lechner f1f6b2076d firmware: convert FlashButton to function 2021-12-27 12:38:50 -06:00
David Lechner 0738046ab1 editor: conver SaveAsButton to function 2021-12-27 12:38:49 -06:00
David Lechner 384cb78a74 editor: convert OpenButton to function 2021-12-27 12:38:49 -06:00
David Lechner 476998030c editor: convert Editor to function component 2021-12-27 12:38:46 -06:00
David Lechner c29f879086 app: use lambda style for App function 2021-12-27 12:36:38 -06:00
David Lechner 650413d1fb about: convert AboutDialog to function 2021-12-27 12:36:38 -06:00
David Lechner e8a3026c43 settings: convert SettingsButton to function 2021-12-27 12:36:38 -06:00
David Lechner a1db455a66 settings: convert SettingsDrawer to function
This reduces boilerplate code.
2021-12-27 12:36:38 -06:00
David Lechner 97c5a3bfb8 settings: add hub name tooltip 2021-11-19 20:48:06 -06:00
David Lechner ae40c2f540 firmware: flash custom hub name
This adds support for customizing the hub name when flashing firmware.

Fixes: https://github.com/pybricks/support/issues/52
2021-11-19 20:48:06 -06:00
David Lechner 86c0e933f3 settings: add new hubName setting
This setting will be used to customize the hub name when flashing
firmware. This commit just implements the setting.

Some changes needed to be made to the existing settings infrastructure
since previously it only allowed boolean settings.
2021-11-19 20:48:06 -06:00
David Lechner 39c66eb98c yarn: add monaco-editor
react-monaco-editor changed to include monaco-editor as a peer dependency.

Also fix breakage for updated monaco-editor version.
2021-11-17 16:06:28 -06:00
David Lechner 788b77fda0 notifications: add firmware version check
This adds a firmware version check that shows an error message if the
connected hub is running an older Pybricks firmware version.

Issue: https://github.com/pybricks/support/issues/482
2021-09-15 16:49:51 -05:00
David Lechner e7d44ea9a9 src/utils: add ensureError() function
Typescript v4.4 no longer assumes that the error in catch is an Error
object [1]. This adds a helper function to ensure that caught errors
at least match the Error interface. If not, it creates a new Error
object with the value as the message.

[1]: https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-beta/#using-unknown-in-catch-variables
2021-08-30 13:06:01 -05:00
David Lechner af89c0b80b about: add firmware version as main version
Since the firmware version is the most important version, make it the
primary version. (We still need the Pybricks Code version since not
every update includes a firmware update.)
2021-08-13 12:13:05 -05:00
David Lechner b7b3522f78 Merge remote-tracking branch 'origin/master' into dlech 2021-08-13 10:46:01 -05:00
David Lechner 7ddeed58b7 firmware: validate checksum while flashing
Since we are using the checksum message for throttling flash speed
anyway, we can validate the checksum during the flash process to
catch errors earlier.

Issue: https://github.com/pybricks/support/issues/433
2021-08-13 10:40:49 -05:00
David Lechner ce8f59e0c2 firmware: fix flashing on Android
Hubs that don't use the minimum chunk size will fail on Android since
it defaults to the smallest possible MTU.

Issue: https://github.com/pybricks/support/issues/403
2021-08-12 15:55:24 -05:00
David Lechner 56c739fa08 os: add isAndroid() function
This will be used to test if the app is running on Android.
2021-08-12 15:55:24 -05:00
David Lechner 2ba6d88c49 editor: remove gutter background override
This was carried over from the Ace editor, but doesn't work well with
the Monaco editor.

Fixes: https://github.com/pybricks/pybricks-code/issues/472
2021-07-08 15:57:16 -05:00
David Lechner 9ee2d1f102 editor: clean up keywords and builtins
- remove python 2 stuff
- separate builtins from keywords
2021-07-08 15:56:27 -05:00
David Lechner ad948dc152 editor: copy python language configuration
This copies the language configuration from https://github.com/microsoft/monaco-languages/blob/d7cc098c481059f63d51ce3753975c8ca8ab6030/src/python/python.ts

This fixes a number of editor features, like auto-indent.

Fixes: https://github.com/pybricks/pybricks-code/issues/470
2021-07-08 15:55:50 -05:00
David Lechner 4b0dc90e8d editor: improve template snippets
- fix always being suggested
- add more imports
- reduce duplicated code

Fixes https://github.com/pybricks/pybricks-code/issues/471
2021-07-08 15:55:03 -05:00
David Lechner 4e2902730a hub: fix buttons not enabled after connection
A previous commit broke buttons after connecting since state all state
transitions were changed to be ignored if the current state was
"disconnected". This made it impossible to get into any other state.

This brings back use of the "unknown" state upon initial connection
to provide a path out of the "disconnected" state.

Fixes: 7a5aa75894
2021-07-06 10:53:56 -05:00
David Lechner d95c550248 editor: change from ace to monaco
This replaces the ace editor with the monaco editor. It fixes quite a
few small paper-cut bugs and should be easier to add code completion
to in the future.

Many of the snippets are omitted but can be added back later if needed.
Otherwise, we have tried to preserve the existing look and feel as much
as possible.
2021-07-02 20:59:09 -05:00
David Lechner c3851e7139 tests: use matchMedia polyfill
This makes testing code that uses window.matchMedia() work better since
it mocks it globally.
2021-07-02 20:59:09 -05:00
David Lechner 7a5aa75894 hub: fix bad hub runtime state when disconnected
This fixes a bad hub runtime state when the hub disconnects during a
download. This caused the run button in the UI to be enabled when the
hub was disconnected.

Issue: https://github.com/pybricks/support/issues/378
2021-07-01 11:58:04 -05:00
David Lechner ab0ddd04b5 about/AboutDialog: fix failing test when $REACT_APP_NAME set
When the `REACT_APP_NAME` environment variable is set to something other
that "Pybricks Code", it caused the test to fail.
2021-06-23 15:12:07 -05:00
David Lechner 10148fa9cf ble-uart: decode PnP ID if it exists 2021-06-23 12:31:19 -05:00
David Lechner 9fca17fbac update projects URL to point to Pybricks website 2021-06-08 16:21:48 -05:00
David Lechner 6c692a7e95 fix wrapping on external link buttons 2021-06-08 14:52:44 -05:00
David Lechner 205937fdc3 add changelog link to about dialog 2021-06-08 14:52:44 -05:00
David Lechner deee6578f7 improved bluetooth adapter error message
Issue: https://github.com/pybricks/support/issues/338
2021-05-17 13:24:57 -05:00
David Lechner 12f3f40e36 use spinner when bluetooth is connecting
It can take a while (especially on Windows) before the connection is
ready and the other buttons become enabled. So use a spinner to let
the user know that we are working on it.

Issue: https://github.com/pybricks/support/issues/315
2021-05-17 13:03:32 -05:00