bluerobotics / bluerobotics/cockpit

frontend: make a unified container widget

Open
#2,114 4 comments 3 reactions 0 assignees View on GitHub
accessibility enhancement refactor ui ux widget-specific
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.