fix(dashboard): let the right rail earn its tabs#1157
Merged
Conversation
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
marked this pull request as ready for review
July 25, 2026 13:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1146.
Tickets,DocsandLogwere 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:
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 justFiles. In practiceFileskeeps 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.