David Lechner
08abd5d277
explorer/fileNameFormGroup: add test
2022-03-25 15:54:05 -05:00
David Lechner
4193383dec
explorer/Explorer: hoist button translations
...
This makes for fewer props to pass.
2022-03-25 15:54:05 -05:00
David Lechner
60c0c820e6
explorer/sagas: rename tests
2022-03-25 15:54:04 -05:00
David Lechner
f36e774d1e
coverage: ignore useI18n
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
45d0b4071a
spelling
2022-03-25 15:54:04 -05:00
David Lechner
b16298b08f
explorer/renameFileDialog: isolate
...
This provides more separation between the explorer and the rename file
dialog. This makes writing tests easier and make reading the code easier.
2022-03-25 15:54:04 -05:00
David Lechner
7abdcf85e7
LicenseDialog: make license list keyboard accessible
2022-03-19 21:20:02 -05:00
David Lechner
1802bcf796
explorer: push file name validation to parents
...
This gets rid of the weird unknown state and other problems of trying
to push state from a child back to a parent.
2022-03-19 18:21:00 -05:00
David Lechner
9de4227ec1
explorer: use keyboard accessible tree
2022-03-19 18:21:00 -05:00
David Lechner
c3c9a8fd7c
improve dialog accessability
2022-03-17 11:08:31 -05:00
David Lechner
675d01013d
utils/react: drop preventFocusOnClick
...
We can fix this better with css tweaks.
2022-03-15 21:39:24 -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
de7e046d31
avoid lambda props
...
This fixes the simple cases of callback props using lambda functions.
This will prevent rerendering in some cases since a new callback
function is not created on each call.
2022-03-12 15:19:50 -06:00
David Lechner
c229d407cf
utils/react: add preventDefault helpers
...
These can be used instead of always having to add a comment explaining
what preventDefault does in a given context.
2022-03-12 14:57:30 -06:00
David Lechner
d8f958d18e
explorer: implement file renaming
2022-03-12 14:45:06 -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
93111b6af4
explorer: implement import action
2022-03-11 15:41:16 -06:00
David Lechner
e36a30de4c
pybricksMicropython/lib: add module
...
This creates a new module for dealing with stuff specific to Pybricks
MicroPython.
2022-03-11 15:41:16 -06:00
David Lechner
38b9bb6656
explorer: confirm file deletion
...
Since deleting files cannot be undone, we need to be extra sure before
actually deleting the file.
2022-03-10 13:48:57 -06:00
David Lechner
96f0dd16fd
explorer: create new file wizard
2022-03-10 02:22:29 -06:00
David Lechner
ddbf3a20f4
explorer: add more UI tests
2022-03-10 02:02:20 -06:00
David Lechner
b37209683b
test: extend testRender to return spy on dispatch
2022-03-10 02:00:14 -06:00
David Lechner
41fc961661
fileStorage: implement delete action
2022-03-10 01:02:18 -06:00
David Lechner
03d12feb89
explorer: add basic file explorer
...
This is the beginnings of a file explorer. Most actions are not yet
implemented.
2022-03-09 20:54:04 -06:00