Repository navigation
feat(hub): paginate and filter prototype gallery - #35
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot was unable to review this pull request because there is no eligible user to bill.
An enterprise owner can allow the organization to be billed for reviews like this by enabling Copilot code review for users without a license.
Add repository-scoped server search, signed cursor pages, and a searchable Me-first registration-author filter. Bound card and Build hydration to each selected page and preserve filters in browser history. Refs #33 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the custom author popup with Primer Brand ActionMenu selection rows while retaining bounded search and Me-first ordering. Style page navigation as secondary buttons without changing link behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot
AI
force-pushed
the
copilot/hub-pagination-filtering
branch
from
October 19, 2026 19:08
6b5ed01 to
370b350
Compare
Consolidate insertion stability into the prototype and author paging scenarios, share cursor-scope checks, and rely on existing local-identity coverage. Combine overlapping frontend filter flows and remove repeated assertions without changing application code. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Count only matching results, avoid hydrating an unused prototype, and remove obsolete client-side count fields. Check stale author responses through their visible outcome instead of abort-signal details, retaining the existing test count. Correct the search-clearing documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Merge main while preserving gallery indexes and the latest schema migration version. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
nshki
approved these changes
Oct 22, 2026
nshki
left a comment
Contributor
There was a problem hiding this comment.
Collaborated with @lukasoppermann on buttoning up the UX. Thanks Lukas.
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.

Why
The Hub loads every registered prototype into the index before searching. As repositories add more prototypes, each visit loads more records and Build data than a reviewer needs. Closes #33.
What changes
Reviewers browse up to 24 prototypes at a time with the same Primer Brand numbered
Paginationcomponent used by Manage Prototypes. Search runs across the selected repository rather than only the visible page. The searchable Author filter uses Primer Brand's single-selectionActionMenu, puts Me first, and filters by the person who first registered each prototype. Cards and the list show that same saved author; later commits do not change attribution. The dropdown keeps its text left-aligned and caret right-aligned, with an enabled resting surface, bounded width, and ellipsis for long labels and options.Search, author, and page state stay in the URL for reloads and browser history. Changing a filter starts at the first matching page. New registrations or removals can shift records between numbered pages; pages beyond the remaining results show the last available page. Requests keep the previous cards visible while loading or after a failure, with an explicit retry action. Card and Build loading is limited to the selected page.
The Author dropdown sits beside search, followed by the gallery/list controls with extra separation. On narrow screens, these controls stack in the same order. Choose All authors to remove the author filter, or use the foreground-colored search X to clear only the search. There is no separate Clear filters action. An empty author collection leaves the pinned menu choices without a message; No matching authors appears only after an entered author search returns no matches.
The authenticated full-app browser flow remains unverified. These screenshots show synthetic local Storybook examples in light mode, not a signed-in deployment.
Paginated index, 1280x900. The fixture uses two representative cards to illustrate numbered page navigation.
Search header close-up, captured at 1280x900. Author and search stay adjacent, with gallery/list controls on the right. The search-clear icon remains centered inside the input.
Empty author menu close-up, captured at 1280x900. Me and All authors remain available without a misleading empty-search message.
Author lookup loading, captured at 1280x720. A small Hub spinner and muted text align with the menu options while author choices load. The existing
HubSpinnercomponent and Hub semantic tokens supply the indicator and color; installed Primer Brand ActionMenu styles supply the row spacing.