David Lechner
6f91c57743
firmware/sagas: add delay after connecting
...
This adds a delay after connecting to a hub when flashing firmware via
BLE before sending any commands. This gives the OS Bluetooth stack time
to finish enumerating the Bluetooth device before we start trying to
interact with the device. Hopefully this fixes issues for some people
who are seeing problems while flashing firmware.
Issue: https://github.com/orgs/pybricks/discussions/792
2022-11-11 13:00:40 -06:00
David Lechner
cb5101282b
firmware/sagas: fix checksum validation
...
The checksum can be 0, so we can't be lazy and use `!checksum` to test
for undefined.
Issue: https://github.com/pybricks/support/issues/724#issuecomment-1295929316
2022-10-29 14:05:31 -05:00
David Lechner
fa00c0aea6
firmware/sagas: fix progress alerts
...
These were being replaced (dismissed then new alert) instead of updated.
2022-10-21 16:26:43 -05:00
David Lechner
fc4cb8eb78
alerts: add alertsHideAlert actions
...
This is used instead of using toaster.dismiss() directly.
2022-10-19 18:26:37 -05:00
David Lechner
28cf87c356
alerts: allow overriding key
...
This adds an optional key parameter to alertsShowAlert() to allow
overriding the key. This allows us to call flashProgress using that
action instead of having to use the toaster directly.
2022-10-19 18:26:37 -05:00
David Lechner
fa27649fe3
toasterTypes: change toaster to ref
...
Instead of rendering the toaster separate from the main index, add it
there so we can inherit all of the context providers. This requires
passing the ref object instead of the toaster instance itself, so
sagas have to be updated.
2022-10-19 18:26:37 -05:00
David Lechner
e67ae1c52b
use "error" when type is Error
...
This renames "err" to "error" when the type is Error for consistency
(fixes redux complaints about non-serializable err).
2022-10-17 13:44:21 -05:00
David Lechner
db43cb3e99
remove use of deprecated DomException code property
2022-10-14 16:21:18 -05:00
David Lechner
56630ef2cf
firmware/installPybricksDialog: drop support for including custom main.py
...
This removes the UI and internal support for selecting a file to include
as the main.py when flashing firmware. This feature was removed in the
firmware starting with firmware metadata v2.0.0 so the firmware that
ships with Pybricks code won't be able to do this in the near future.
So, it doesn't make sense to keep this feature only for old firmware.
It is still possible to replace the main.py in old firmware.zip files
and flash that way.
2022-09-14 18:12:34 -05:00
David Lechner
9811807d09
firmware: add support for firmware.metadata.json v2.0.0
...
This adds support for the new firmware.metadata.json v2.0.0 which drops
support for appending a main.py file to the firmware.
2022-09-14 17:58:54 -05:00
David Lechner
c4d98638b1
firmware/actions: fix error type check
...
we need to check that it matches the error interface, not that it is
an instance of an error
2022-09-14 17:38:19 -05:00
9994e8f4b4
build(deps): bump jest and @types/jest ( #1131 )
...
* build(deps): bump jest and @types/jest
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest ) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest ). These dependencies needed to be updated together.
Updates `jest` from 28.1.3 to 29.0.3
- [Release notes](https://github.com/facebook/jest/releases )
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/jest )
Updates `@types/jest` from 28.1.8 to 29.0.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest )
---
updated-dependencies:
- dependency-name: jest
dependency-type: direct:production
update-type: version-update:semver-major
- dependency-name: "@types/jest"
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
* [dependabot skip] Fix yarn.lock
* update test snapshots for jest 29
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-fix <dependabot-fix@example.com >
Co-authored-by: David Lechner <david@pybricks.com >
2022-09-13 17:06:24 +00:00
David Lechner
4e77efb34f
installPybricksDialog: add feature to install custom firmware
...
This restores the ability to drag and drop a custom firmware file to
flash the firmware on the hub.
Fixes: https://github.com/pybricks/pybricks-code/issues/1020
2022-09-06 14:14:57 -05:00
David Lechner
ebb8900efe
installPybricksDialog: make use of isMounted hook
...
This simplifies the code a bit by using an existing hook.
2022-09-06 11:10:49 -05:00
David Lechner
b447bd7a3a
replace use of deprecated IToaster and IToastProps
2022-09-06 10:56:38 -05:00
David Lechner
677d285ef2
installPybricksDialog: move unsupported hubs to separate component
2022-09-03 14:06:25 -05:00
David Lechner
b4e1c8293d
replace use of deprecated IRef
2022-09-01 11:45:59 -05:00
David Lechner
122b37da29
firmware/sagas: handle usb error during dfu flash
...
Fixes: https://github.com/pybricks/pybricks-code/issues/1011
2022-08-12 18:00:57 -05:00
David Lechner
968834d84f
firmware/alerts/FlashProgress: fix <div> cannot be child of <p>
2022-08-12 18:00:57 -05:00
David Lechner
90b459d5db
firmware/restoreOfficialDialog: add new dialog
2022-07-27 18:17:20 -05:00
David Lechner
c84afea181
style: make use of more blueprint styles
...
https://blueprintjs.com/docs/#core/typography
Also fix wrapping license text while we are touching this.
2022-07-27 16:55:46 -05:00
David Lechner
e6609b9054
firmware/installPybricksDialog: fix <div> inside <p>
...
fixes:
Warning: validateDOMNesting(...): <div> cannot appear as a descendant of <p>.
Also some other style tweaks while we are touching this.
2022-07-27 16:22:46 -05:00
David Lechner
3953816350
components/hubPicker: back state with localStorage
...
This saves the selected hub in localStorage. This will "remember" the
state between app launches and also synchronize the state between
various users of the component. Both of these should mean fewer clicks
required by the user.
2022-07-27 15:30:39 -05:00
David Lechner
2b7f1b1cbf
firmware/sagas: show progress for BLE flashing
2022-07-27 15:19:36 -05:00
David Lechner
1148b169d5
firmware: add progress indication for DFU USB flash
2022-07-27 15:19:36 -05:00
David Lechner
8dadc8826c
firmware/installPybricksDialog: increase height
...
This ensures the dialog doesn't change size when clicking next even
with longer translations.
2022-07-27 15:19:36 -05:00
David Lechner
4e85b5c1b8
firmware/installPybricksDialog: rename flash button
...
This makes it clear there are two steps, connect and then flash.
2022-07-27 15:19:36 -05:00
David Lechner
76444c032c
firmware/installPybricksDialog: add warning for windows/linux usb
...
This warns the user before failure. Otherwise they will click the flash
button and no devices will appear in the scan dialog.
2022-07-27 15:19:36 -05:00
David Lechner
e3430260f9
firmware/alerts/NoDfuHub: fix translation key
2022-07-22 14:03:33 -05:00
David Lechner
d6df128860
i18n: use automatic type inference of translation keys
...
Finally figured out a way to make typescript strongly type translation
keys so we can avoid the tedium of creating enums of translation keys.
2022-07-22 13:48:50 -05:00
David Lechner
6d07713eb5
firmware: implement flashing via USB DFU
2022-07-21 18:36:32 -05:00
David Lechner
bb6f86ff18
firmware/installPybricksDialog: add bootloader discrimination
...
Also fix license not showing for newer hubs.
2022-07-20 18:51:45 -05:00
David Lechner
709c3c554b
bump @pybricks/firmware to 5.0.0
...
This contains a breaking change where main.py is now optional so we
have to handle that case.
2022-07-20 18:01:35 -05:00
David Lechner
0721a24ef8
firmware/installPybricksDialog: fix some layout issues
2022-07-20 15:24:36 -05:00
David Lechner
af8a31d50c
firmware: add select picker for selecting custom main.py
2022-07-20 14:25:40 -05:00
David Lechner
85deb42f76
firmware: add multi-step dialog
2022-07-20 12:32:17 -05:00
David Lechner
2e555fb9fc
fix error message when flashing firmware
...
We missed a check for MPY ABI v6 compatibility.
2022-07-06 15:06:35 -05:00
David Lechner
90cd4865e8
Add support for MPY ABI v6.
...
Pybricks firmware v3.2.0b2 has updated to MicroPython 1.19 which
includes breaking changes to the MPY binary file format.
2022-07-06 12:51:01 -05:00
David Lechner
07a03d4ea7
drop FirmwareSagaContext
...
This context is not exclusive to the firmware sagas.
2022-03-26 16:10:28 -05:00
David Lechner
c158e4f0e2
editor: add editorGetValue() saga
...
This is another step towards removing the 'editor' context.
2022-03-26 13:44:55 -05:00
David Lechner
5dd61fa4c3
toolbar/buttons: consolidate buttons
2022-03-25 15:54:04 -05:00
David Lechner
9f254f035f
i18n: use babel-loader plugin
2022-03-25 15:54:04 -05:00
David Lechner
46faff981d
toolbar: add label to buttons
...
This improves accessability by letting us get buttons by the label.
2022-03-16 15:24:48 -05:00
David Lechner
7726dbe01d
settings: convert hubName to react hook
2022-03-15 17:25:20 -05:00
David Lechner
861ea34d86
settings: convert flashCurrentProgram to react hook
2022-03-15 16:54:49 -05:00
David Lechner
8e4045449c
src: use prop unpacking pattern
...
This makes the code a bit shorter by not having to use `props.` all of
the time. Also make everything VoidFunctionComponent while we are
touching this.
2022-03-12 16:07:31 -06:00
David Lechner
31fb3b9e4c
test: drop state from AsyncSaga constructor params
...
This uses the real rootReducer to populate the initial state in the test
AsyncSaga. This way we don't have to populate default values. Since it
isn't used often, we can omit the parameter and just call the updateState()
method after creating the object if modifications are needed.
2022-03-11 16:04:09 -06:00
David Lechner
569217d5dc
editor: don't put editor in redux store
...
The redux store should not have non-serializable objects like the editor
in it.
2022-03-02 18:56:47 -06:00
David Lechner
994540e263
actions: fix missed refactoring
...
Missed some renames when refactoring that weren't picked up locally
for some reason.
2022-02-26 12:55:49 -06:00
David Lechner
a9f4eaa32d
actions: simplify usage of Matchable
...
This removes use of the pseudo-internal toString() function and also
removes extraneous uses of ReturnType<>. Also, a new when() method
is added to simplify additional uses.
2022-02-26 12:43:10 -06:00