feat: add global search and dedicated search page#119
Open
it-education-md wants to merge 1 commit intoentrius:testfrom
Open
feat: add global search and dedicated search page#119it-education-md wants to merge 1 commit intoentrius:testfrom
it-education-md wants to merge 1 commit intoentrius:testfrom
Conversation
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
This PR adds a unified search experience across the website.
It primarily focuses on functional improvement while also keeping the search UI visually aligned with the rest of the website.
/searchpage for full-result explorationThe main value here is simple: users should be able to find the item they want directly, without first knowing where it lives.
Type of Change
Checklist
npm run formatandnpm run lint:fixhave been runnpm run buildpassesWhy This Matters
Today, discovery is fragmented across multiple sections of the website. That makes navigation slower than it should be, especially for users who already know the miner, repository, PR, or issue they want.
New search removes that friction by introducing a single, reliable entry point for finding known entities and moving directly to the right destination.
This matters even more in a data-heavy website. As the volume of miners, repositories, pull requests, and issues grows over time, navigation by browsing alone becomes less efficient.
This makes the website feel:
Approach
1. Search Data Flow
The current search implementation is frontend-driven and intentionally lightweight.
This keeps the current implementation simple and consistent. If search scope or data volume grows materially, the next step would likely be a backend search endpoint rather than more frontend complexity.
2. Search UI/UX
The search experience is intentionally scoped around fast navigation and lightweight comparison.
The table fields:
This keeps search useful as a discovery layer without turning it into a heavier analysis surface.
3. Implementation
The implementation is intentionally split into a few clear responsibilities.
src/pages/search/searchData.tsowns shared search data loading, normalization, matching, ranking, and table-derived datasrc/components/layout/GlobalSearchBar.tsxowns the quick-search dropdown experience and direct result navigationsrc/pages/search/SearchPage.tsxowns full-search state, URL synchronization, tab selection, and paginationsrc/pages/search/own entity-specific table rendering for miners, repositories, pull requests, and issuessrc/pages/search/styles.tscentralizes the shared search-table styling so the tab UIs stay aligned without duplicating presentation logicThis keeps the feature easier to reason about by separating shared search behavior from surface-specific rendering.
Notes
Backto avoid extra UI friction as search adds more navigation paths, while navigation state still preserves return paths when history is unavailableScreenshots