David Lechner
9d71bb4734
eslint: enable react-hooks checks
...
Also fix all errors, which can lead to subtile bugs.
Mostly fixings deps and refactoring to make typescript happy.
2022-12-17 13:56:01 -06:00
Laurens Valk
8b3fa29f65
firmware/installPybricksDialog/translations: Copy edit.
...
This was missed earlier.
2022-12-17 10:31:40 +01:00
David Lechner
b85945ab1d
installPybricksDialog: fix heart icon
...
Use actual icon instead of unicode character. This way it renders the
same on all OSes.
2022-12-16 17:54:36 -06:00
Laurens Valk
9ceaeee739
firmware/installPybricksDialog: Make heart icon variable.
2022-12-15 14:59:36 -06:00
Laurens Valk
4a9f2931d4
firmware/bootloaderInstructions: Group instruction steps.
2022-12-15 14:59:36 -06:00
Laurens Valk
e606887319
firmware/bootloaderInstructions: Simplify scss.
2022-12-15 14:59:36 -06:00
Laurens Valk
c84d862a57
firmware/alerts: Copy edit.
2022-12-15 14:59:36 -06:00
Laurens Valk
67f05a580d
firmware/bootloaderInstructions: Pass flashButtonText directly.
2022-12-15 14:59:36 -06:00
Laurens Valk
3648da6942
firmware/bootloaderInstructions: Copy edit battery instruction.
2022-12-15 14:59:36 -06:00
Laurens Valk
390cf235de
firmware/bootloaderInstructions: Keep counting instructions.
...
This ensures the instruction step counter does not reset after a heading.
2022-12-15 14:59:36 -06:00
Laurens Valk
d303e28756
firmware/bootloaderInstructions: Edit unsupported hubs.
2022-12-15 14:59:36 -06:00
Laurens Valk
8aa82eee46
firmware/bootloaderInstructions: Refactor.
...
- Use steps for the connection procedure
- Use categories (To do: consider making numbering consecutive)
- Show hub bootloader device name explicitly
- List official app to use for recovery (make V2/V3 explicit)
- Copy edit
Also fix the layout (class) of the installation panel to make it consistent with the style of the recovery panel.
2022-12-15 14:59:36 -06:00
Laurens Valk
560da418e0
firmware/bootloaderInstructions/translations: Add prepare section.
...
Since there are up to three things to prepare, it is better to start the
list with that. We can still keep a separate section for points that match the video.
2022-12-15 14:59:36 -06:00
Laurens Valk
2864fa93be
firmware/alerts/translations: Copy edit.
2022-12-15 14:59:36 -06:00
David Lechner
4fcb82e361
bootloaderInstructions: add recovery variant
...
For official firmware recovery, we have separate videos for non-USB
hubs.
Closes: https://github.com/pybricks/support/issues/728
2022-12-09 15:02:15 -06:00
David Lechner
0f871c6b2c
bootloaderInstructions: add videos
...
This adds videos to show how to enter bootloader mode.
Issue: https://github.com/pybricks/support/issues/728
2022-12-09 13:24:00 -06:00
David Lechner
614e0b0074
firmware: remove android check for chunk size
...
This should no longer be needed since Chrome v98 (released Nov. 2021).
2022-12-08 17:10:47 -06:00
Laurens Valk
0f02c64800
src/components: Move ClipboardIcon and ExternalLinkIcon from utils.
...
See https://github.com/pybricks/pybricks-code/pull/1321#pullrequestreview-1190431986
2022-11-25 13:40:44 -06:00
David Lechner
9fe62467d5
alerts: use shorthand return
2022-11-22 15:56:56 -06:00
David Lechner
b5b857bca5
firmware/sagas: implement restoring official firmware
...
Closes: https://github.com/pybricks/pybricks-code/issues/1104
2022-11-18 19:28:00 -06:00
David Lechner
cf99ab223d
firmware/sagas: refactor firmwareFlashUsbDfu
...
This allows the firmwareFlashUsbDfu to take an arbitrary binary blob
instead of a Pybricks firmware.zip file. This will allow it to be used
to restore the official LEGO firmware as well.
2022-11-18 19:28:00 -06:00
David Lechner
71c8605773
firmware/restoreOfficialDialog: change to multistep dialog
...
This gives instructions on how to put the hub in bootloader mode like
the install Pybricks dialog and sets the stage for doing the DFU restore
without going to another website.
Issue: https://github.com/pybricks/pybricks-code/issues/1104
2022-11-18 19:28:00 -06:00
David Lechner
44169bd178
firmware/bootloaderInstructions: extract component
...
This extracts the instructions for placing a hub in bootloader mode to
a separate component so that it can be shared.
2022-11-18 19:28:00 -06:00
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