bluerobotics / bluerobotics/cockpit
frontend: make a unified container widget
- Dominant language
- TypeScript
- Stars
- 198
- Forks
- 63
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 57
Description
### Current behaviour
We have separate implementations for nearly identical feature sets, and several issues that are unique to one of the container types (so there's extra to test, and extra to try to maintain).
This results in the independent maintenance overhead of issues like #587 and #1690, as well as troubleshooting overhead from issues like #1431, #1479, #1676, #1714, #1452, #1768, #1889, and #1750 (some of which are _caused_ by the interaction between the independent implementations).
### Expected or desired behaviour
I think we should merge the implementations into a single generic "container" widget, with configuration options that allow displaying the name, making it collapsible/hidden, and making it draggable outside of edit mode.
Ideally there would as be a configuration option to choose which container gets used as the top bar and bottom bar, with a convenience feature where dragging a container to the top or bottom edge of the view (in edit mode) allows setting it as the corresponding bar (and moving the existing bar, if there is one, to be a normal container).
If containers are stored at the Profile or User level they could readily be shared between Views, which would resolve problems like #688 as a side-effect.
### Prerequisites
- [x] I have checked to make sure that a similar request has not already been filed or fixed.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or entry points are named. Start by locating the separate container implementations and reviewing issues #587, #1690, #1431, #1479, #1676, #1714, #1452, #1768, #1889, and #1750 to map duplicated behavior and edge cases; done means one configurable container widget supports the requested display, collapse, drag, bar, and sharing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100