This PR is a squash of refactors and improvements in our Workspace and
WorkspaceSection components. An action prop is added to WorkspaceSection
and along the way, I refactored things that were not meeting conventions
or were hard to read. With this addition, I am further unblocked in
making auto-start/off editable in the UI, as I intend to use the Action
prop to trigger a modal (or routed page view) with the form.
Squashed commits:
* refactor: spaces for readability
It's hard to read HTMl markup without spaces on adjacent nodes
* refactor: props
Our components had unused props and arbitrary ordering.
* Move component and prep
* Make WorkspaceSection more reusable
* Lay out elements
* Layout tweaks
* Add outdated to Workspace type
* Fill out status bar component
* Format
* Add transition to types
* Add api handlers for build toggle
* Format
* Parallelize machine
* Lay out basics of build submachine
* Pipe start and stop events through - needs status
* Attempt at a machine
It's so big, but collapsing start and stop made it hard to distinguish retry from toggle
* Update mock
* Render status and buttons
* Fix type error on template page
* Move Settings
* Format
* Keep refreshed workspace
* Make it switch workspaces
* Lint
* Fix relative api path
* Test
* Fix polling
* Add loading workspace state
* Format
* Add stub settings page
* Format
* Lint
* Get rid of let
* Add update
* Make start use version id
Important for update
* Fix imports
* Add polling for outdated
* Rely on context instead of finite state for status
* Handle canceling
* Fix tests
* Format
* Display errors so users know when button presses didn't work
* Fix api typo, remove logging
* Lint
* Simplify type
Co-authored-by: G r e y <grey@coder.com>
* Add type, extract helper
Co-authored-by: G r e y <grey@coder.com>