David Lechner
5f29165bc3
craco: add missing dexie-observable license
...
Also throw error on missing (default was only warning).
2022-04-01 14:03:30 -05:00
David Lechner
1515e5ae4f
fileStorage: add file handles
...
This changes how files work. There is now an open function that
translates a path to a file handle (id). Then this handle is used
to perform other actions on the file. The file contents are moved
to a separate table so that the actual file storage is independent
of the database (e.g. in the future, we may use File Access API).
We store a hash of the file contents in the metadata file so we can
detect file changes without having to compare file contents.
We also separate the change and add actions.
2022-04-01 13:41:10 -05:00
David Lechner
75c3efc5ba
fileStorage: replace localforage with dexie
...
This gives us more fine-grained control over database transaction and
cross-tab notifications and will facilitate upgrading the database with
new metadata in the future.
2022-03-28 17:04:45 -05:00
David Lechner
b6990d6a2c
fixup! craco: add upper-case license
2022-03-28 12:11:01 -05:00
David Lechner
110d93860a
test: add timeout to saga take
...
This will crash tests sooner and give a stack track at the crash point
instead of waiting the default 5 seconds for the entire test to timeout
(which doesn't give a stack trace of where the test was when it timed
out).
2022-03-28 11:48:08 -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
54a475cebc
drop 'editor' saga context
...
This is no longer used.
2022-03-26 13:52:33 -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
79d5b06136
editor: move isReady state from app
...
This is a step towards getting rid of the 'editor' context.
2022-03-26 12:03:08 -05:00
David Lechner
3eac7d384f
fileStorage/sagas: remove editor init from fileStorage
...
This is still a bit of a hack but is one step towards being able to
remove the 'editor' context.
2022-03-26 11:49:23 -05:00
David Lechner
0715ce3de1
drop settingsToggleShowDocs
...
We can change the event handler in App.tsx do we no longer need the
settingsToggleShowDocs action or related sagas.
2022-03-25 18:05:03 -05:00
David Lechner
3c48d115d7
editor/Editor: use hooks to configure editor
...
This fixes the issue of the editor not being updated when properties
change.
2022-03-25 17:49:56 -05:00
David Lechner
2be1c26f82
editor/Editor: drop unused argument
2022-03-25 16:26:56 -05:00
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
5dd61fa4c3
toolbar/buttons: consolidate buttons
2022-03-25 15:54:04 -05:00
David Lechner
9d995ceeef
craco: add upper-case license
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
549fe88a00
fileStorage/actions: fix duplicate type
2022-03-21 20:19:43 -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
d6d5b8826e
yarn: update to blueprintjs 4
2022-03-17 14:13:44 -05:00
David Lechner
38bfaf262b
downgrade react-error-overlay
...
https://github.com/facebook/create-react-app/issues/11880#issuecomment-1005409614
2022-03-17 11:08:31 -05:00
David Lechner
887623c675
app/App: fix SplitterPane escaping container
...
https://stackoverflow.com/a/49210016/1976323
2022-03-17 11:08:31 -05:00
David Lechner
22f0db27da
use FocusStyleManager
...
this is better than the css hack
2022-03-17 11:08:31 -05:00
David Lechner
c3c9a8fd7c
improve dialog accessability
2022-03-17 11:08:31 -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
f9c1f7084c
drop FileSaver
...
browser-fs-access already includes fallbacks to the file storage api
so we don't have to provide our own.
2022-03-16 14:59:10 -05:00
David Lechner
6062517dec
fileStorage/sagas: use pythonFileMimeType
...
Missed an instance where text/x-python was hard-coded.
2022-03-16 13:22:42 -05:00
David Lechner
f17e32af61
settings/SettingsDrawer: work around tooltip bug
2022-03-16 13:07:10 -05:00
David Lechner
45d4491312
eslintrc: ignore config files
2022-03-16 11:34:34 -05:00
David Lechner
aafdca3991
typo
2022-03-16 10:25:08 -05:00
David Lechner
d72ef77fec
Merge remote-tracking branch 'origin/master' into dlech
2022-03-16 10:21:58 -05:00
David Lechner
cb3f22fc9b
settings/SettingsDrawer: do not focus hub name label
2022-03-15 21:49:34 -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
e4b2f735cf
craco/LicensePlugin: add @pybricks/ide-docs
...
This isn't referenced in code, so it isn't picked up automatically.
2022-03-15 20:27:11 -05:00
David Lechner
644ac4cb5e
licenses/LicenseDialog: use Tree instead of ButtonGroup
2022-03-15 20:13:49 -05:00
David Lechner
57cd40d9dd
licenses: finish NonIdealState TODO
2022-03-15 18:49:12 -05:00
David Lechner
d1090d01d6
licenses: replace sagas/reducers with useFetch hook
2022-03-15 18:37:06 -05:00
David Lechner
a4660e979c
settings: switch to useTernaryDarkMode
...
useDarkMode kept reverting back to the system default during development
2022-03-15 17:40:46 -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
d18ad41e39
settings: add about dialog button test
2022-03-15 15:53:03 -05:00
David Lechner
6cfc37b947
settings: use react hook for showDocs setting
...
The moves the setting from redux state to a react hook.
2022-03-15 15:35:45 -05:00
David Lechner
9518a21241
settings: replace darkMode with useDarkMode hook
...
This is a minor breaking change for users that don't have dark mode
set to the default value since the localStorage key has changed (hard-
coded in 3rd party library).
2022-03-14 16:39:17 -05:00