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