fix(view): locked repos always visible, de-emphasized when empty#74
Merged
wgordon17 merged 11 commits intoApr 20, 2026
Merged
Conversation
ensureLockedRepoGroups injects empty group stubs for locked repos filtered out by tab filters, so they remain in the group list at their locked position. Empty groups render collapsed with muted styling and 'No items match current filters' text. This eliminates the class of bugs where invisible locked repos cause confusing reorder behavior — moveLockedRepo stays with simple adjacent swap since all locked repos are always present. Closes gordon-code#71
Empty locked repos now render as a single compact row with just the repo name and lock controls. Removes chevron, badges, icons, and summary text. Reduced vertical padding and muted styling.
Adds invisible spacer matching ChevronIcon dimensions (h-3.5 w-3.5) so empty rows align with populated repo group headers.
Moves px-4 from outer container to inner flex-1 span, mirroring how RepoGroupHeader separates button padding from trailing content.
Uses py-1.5 for comfortable density and compact:py-0.5 for compact, matching the density-adaptive pattern in RepoGroupHeader.
- Extract EmptyLockedRepoRow shared component from tripled inline markup - Fix empty-state Show conditions: use sibling Shows with .length guards for mutual exclusivity (empty message vs locked stub rows) - Add JSDoc to ensureLockedRepoGroups documenting pipeline coupling - Fix Show child indentation across all three tab components - Add compact stub row rendering tests for all three tabs - Add isExpanded guard tests for all three tabs - Add EmptyLockedRepoRow unit tests
Verify that the empty-state message and locked stub rows are mutually exclusive: when only locked stubs exist (no real items), the empty message must not render alongside the stubs.
ActionsTab groups Show lacked the loading guard that IssuesTab and PullRequestsTab have. During initial load with locked repos, ensureLockedRepoGroups injects stubs that made repoGroups().length > 0, rendering stubs alongside the loading skeleton.
Pinned repos now stay visible as de-emphasized rows when filters exclude all their items. Updates the Repo Pinning section to describe this behavior.
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.
Summary
Supersedes #73. Closes #71