Skip to content

fix(dashboard): let the right rail earn its tabs#1157

Merged
suleimansh merged 1 commit into
mainfrom
fix/1146-rail-when-empty
Jul 25, 2026
Merged

fix(dashboard): let the right rail earn its tabs#1157
suleimansh merged 1 commit into
mainfrom
fix/1146-rail-when-empty

Conversation

@suleimansh

Copy link
Copy Markdown
Member

Closes #1146.

Tickets, Docs and Log were offered unconditionally, so a project with none of them got three tabs whose entire content was a sentence saying there was nothing — your screenshot.

Now each of the three appears only when its panel has something, and when nothing is left the rail is not rendered at all.

To decide that, the rail has to know what those panels hold, so the three reads moved up into it and the panels take their data as props. That also drops a duplicate poll per panel rather than adding one.

Two details that matter in use:

  • A tab is hidden only once a read has actually come back empty. While the first read is out the tab stays, so switching projects does not blink the rail out and back in.
  • A tab you picked that later loses its content falls back to one that still has some, instead of rendering an empty panel.

The GitHub-issues import is not lost with the empty Tickets tab — the same action is already on the Overview's onboarding row (Populate tickets/Import tickets from GitHub), which is where someone with no tickets is looking anyway.

Driven in Chrome across three projects: a project with tickets/docs/log keeps Files · Tickets · Docs · Log; one with none of them shows just Files. In practice Files keeps the rail alive for most repos — the rail disappears entirely for a project with nothing at all, which is the case in your screenshot (no Files tab there either).

dashboard 434 tests (5 new for #1146), typecheck + build clean, patch changeset.

Tickets, Docs and Log were always offered, so a project with none of them
got three tabs whose only content was a sentence saying there was nothing.

The rail now reads those three itself — it has to know whether they hold
anything before it can decide what to offer — and each tab appears only when
its panel has something. With nothing anywhere, the rail is not rendered.

A tab is hidden only once a read has come back empty, so switching projects
does not blink the rail out and in; and a remembered tab that loses its
content falls back to one that still has some, rather than rendering empty.

The three panels take their data as props now instead of each polling for
itself, which also drops a duplicate read per panel.

Closes #1146
@suleimansh suleimansh self-assigned this Jul 25, 2026
@suleimansh
suleimansh marked this pull request as ready for review July 25, 2026 13:58
@suleimansh
suleimansh merged commit 7085ca1 into main Jul 25, 2026
1 check passed
@suleimansh
suleimansh deleted the fix/1146-rail-when-empty branch July 25, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Only show right sidebar when there's something to show

1 participant