Commit Graph
1227 Commits
Author SHA1 Message Date
David Lechner 7ef08122e8 explorer: move export from fileStorage 2022-04-01 18:45:24 -05:00
David Lechner 1709591afc fileStorage: untangle file id/name
We were using file UUID and path interchangeable. This adds a new UUID
type for static checking and fixes a bunch of issues found.
2022-04-01 17:24:00 -05:00
David Lechner daa6c07910 yarn: update react-complex-tree 2022-04-01 14:42:18 -05:00
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