bluerobotics / bluerobotics/cockpit
support widget/layer display/configuration rules
- Dominant language
- TypeScript
- Stars
- 198
- Forks
- 63
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 57
Description
If the display (or configuration) of a given layer or widget can be set by conditional logic that's tied to the widget state, the interface could be intelligently dynamic from some reasonably simple user-configurable rules.
As a couple of examples,
1. if the vehicle goes into reverse and has a rear camera, the primary camera display could automatically switch to the rear one, either hiding the front facing camera or shifting it to a secondary display
- this could have extra requirements (e.g. only switch cameras if changing directions while holding the shift button), to provide more control to the operator
- It would be cool to be able to implement a focus-switching behaviour, where a multiple streams setup only has the currently in-focus stream at high resolution, and the other streams can be at lower resolutions to preserve bandwidth
1. when all the checkboxes in a checklist are complete, the checklist could disappear and display the main control interface
- would be helpful for #22
I expect widget's having access to a callback that influences layer/widget display would likely be the simplest approach, but if we wanted to provide as much power as possible to the users and widget developers we could potentially support general callbacks that allow one widget to influence the configuration of another (e.g. the camera display change could be achieved by either swapping to a different layer, or by changing each widget's currently active video stream).
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue does not identify any files, tests, or entry points to begin with. First map the widget and layer display/configuration code, then define the supported rule and callback behavior; done should include working conditional display or configuration changes for the described widget-state cases.
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
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100