Commit Graph
39 Commits
Author SHA1 Message Date
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
David Lechner 187a973fa3 app: fix terminal padding background color 2022-03-14 13:26:51 -05:00
David Lechner a92a989ded app: useLocalStorage
This simplifies the code a bit by using the useLocalStorage hook.
2022-03-14 12:55:38 -05:00
David Lechner 6c55588d7a app: fix layout
The explorer was getting pushed off of the screen when typing long lines
in the editor.
2022-03-14 12:39:42 -05:00
David Lechner c75f3720f5 editor: drop EditorContext
We want to rely less on directly accessing the editor object.
2022-03-12 18:29:56 -06: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 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
David Lechner 6afee4b6d6 test: add testRender()
This adds a testRender() helper function to simplify UI tests. Instead
of mocking the redux store, we use the real thing.
2022-03-09 17:24:46 -06:00
David Lechner 1469d2146e app: rework service worker registration
- registration is moved from top-level index to app/sagas.
- mock implementation is provided for tests
- actions are renamed to include "app" prefix
- actions are changed to not use non-serializable arguments
- reducers are changed to not use non-serializable state
2022-03-09 15:48:30 -06:00
David Lechner 907826cf0e app: rework BeforeInstallPromptEvent
This removed passing the BeforeInstallPromptEvent as an action argument
(action arguments should be serializable). Instead the saga just keeps
a reference to the event and actions are used only to resolve the state
of the UI.
2022-03-08 13:37:43 -06:00
David Lechner 7884f047b5 service-worker: rename actions
This adds a prefix to the actions so that we won't have to use aliases.
2022-03-07 17:46:26 -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 9641898a75 actions: refactor actions
The pattern we were using for actions required actions to be defined in
three places, an enum member containing the type string, an type
definition and a function. This combines all three of these into one by
using a helper function based on the ideas from [1].

[1]: https://phryneas.de/redux-typescript-no-discriminating-union
2022-02-25 17:58:30 -06:00
David Lechner 8f377b3909 app/actions: fix duplicate type name
This fixes a duplicate type name shared by didInstallPrompt and
didInstall actions.
2022-02-25 10:02:26 -06:00
David Lechner cf8744a6cd actions: drop typed dispatch
This doesn't provide much benefit and is just one more rule to remember,
so we can do without it.
2022-02-24 17:16:52 -06:00
David Lechner a0da9f7111 Improve code coverage 2022-02-22 12:32:20 -06:00
David Lechner 54ec447061 actions: added typed useDispatch() hook 2021-12-27 18:01:51 -06:00
David Lechner 8d26f768bf reducers: use typed useSelector hook
This refactors the code to use a typed useSelector() hook.
2021-12-27 17:48:41 -06:00
David Lechner 8527cf86b2 app: refactor dark mode class hook
This moves the hook for applying the global dark mode style to the App component.
2021-12-27 17:30:15 -06:00
David Lechner 6d0e97f50e app: fix pb-app div size and background color 2021-12-27 12:38:51 -06:00
David Lechner b3db3d9efc app: move docs to sepate comonent
The docs iframe is quite complex, so move it to a separate component to
improve readability.
2021-12-27 12:38:51 -06:00
David Lechner c29f879086 app: use lambda style for App function 2021-12-27 12:36:38 -06:00
David Lechner 86c0e933f3 settings: add new hubName setting
This setting will be used to customize the hub name when flashing
firmware. This commit just implements the setting.

Some changes needed to be made to the existing settings infrastructure
since previously it only allowed boolean settings.
2021-11-19 20:48:06 -06:00
David Lechner 9fca17fbac update projects URL to point to Pybricks website 2021-06-08 16:21:48 -05:00
David Lechner 205937fdc3 add changelog link to about dialog 2021-06-08 14:52:44 -05:00
David Lechner 4da6f7e368 use overflow: hidden on splitter panes
This fixes problems with double scroll bars showing up.

Fixes: https://github.com/pybricks/pybricks-code/issues/406
Fixes: https://github.com/pybricks/pybricks-code/issues/407
2021-05-11 14:38:04 -05:00
David Lechner ec6753c314 yarn lint
rules seem to have changed a bit after upgrading packages
2021-05-11 12:45:43 -05:00
David Lechner cdd74706c5 toolbar is not a navbar
This adds custom styling for the toolbar (inspired by blueprintsjs
navbar). But this lets us use the correct role and not fight the
navbar styling so much.
2021-02-01 13:02:07 -06:00
David Lechner 1e5d25086b move app version to constants 2021-02-01 13:02:06 -06:00
David Lechner a8b3f5dcf7 use env for app name 2021-02-01 13:02:06 -06:00
David Lechner ad6e2b73cc make settings open/close local 2021-02-01 10:26:05 -06:00
David Lechner dd951bd4fc make about dialog open/close local 2021-02-01 10:26:05 -06:00
David Lechner 89523b3915 make license dialog state local 2021-02-01 10:26:05 -06:00
David Lechner e5073399a0 drop explicit state interfaces
This could cause subtle bugs like the one fixed here where license
was renamed to licenses.
2021-02-01 10:26:05 -06:00
David Lechner 650888bbf7 add app reducer tests 2021-02-01 10:26:05 -06:00
David Lechner 37b5ebd8f7 app pb-app- prefix to terminal-padding class 2021-02-01 10:26:05 -06:00
David Lechner 334668bdfb rework mobile view height 2021-02-01 10:26:05 -06:00
David Lechner 6f204a65f6 reorganize src/ directory
Makes for much less scrolling/jumping around.

https://redux.js.org/style-guide/style-guide#structure-files-as-feature-folders-or-ducks
2021-02-01 10:26:05 -06:00