Skip to content

feat(frontend): implement saved searches core logic and UI updates#2424

Merged
jcscottiii merged 2 commits intomainfrom
feat/saved-search-frontend-core
Apr 22, 2026
Merged

feat(frontend): implement saved searches core logic and UI updates#2424
jcscottiii merged 2 commits intomainfrom
feat/saved-search-frontend-core

Conversation

@jcscottiii
Copy link
Copy Markdown
Collaborator

@jcscottiii jcscottiii commented Apr 14, 2026

Title: feat(frontend): implement saved searches core logic and UI updates

Description:

This PR implements the core logic and UI updates for saved searches on the frontend, completing the migration to a unified search experience.

Why:
Previously, saved searches were tracked using a dedicated search_id URL parameter. This prevented users from combining a saved search with additional filters in the search bar. This PR migrates to using saved:ID and hotlist:ID directly within the q search parameter, enabling full composability of search terms.

Key Changes:

  • Unified Search Query: Replaced search_id URL parameter with saved:ID (user searches) and hotlist:ID (global searches) within the q parameter. Updated app-bookmark-info-context.ts to parse these new tokens.
  • API-Driven Global Searches: Removed hardcoded DEFAULT_GLOBAL_SAVED_SEARCHES constants. Global searches are now fetched dynamically from the backend via the new /v1/global-saved-searches endpoint.
  • Removal of Client-Side Ordering: Deleted reorderByQueryTerms from webstatus-overview-data-loader.ts. Sorting by saved search order is now handled by the backend (implemented in PR feat(search): add query expansion for saved searches #2421), making client-side reordering redundant.
  • UI Enhancements: Added loading skeletons for global saved searches in the sidebar to improve perceived performance.
  • URL Upgrades: Added legacy support in OverviewPage to automatically detect search_id in the URL and redirect to the equivalent q=saved:ID format with a user toast notification.
  • Test Coverage: Updated E2E and unit tests to reflect the new URL structure. Added waitForSidebarLoaded in E2E tests to reduce flakiness caused by visual regression checks firing before the sidebar hydrated.

Anti-Patterns / Known Debt:

@jcscottiii jcscottiii force-pushed the feat/saved-search-workers branch from 3535431 to 33f9f3b Compare April 15, 2026 23:02
@jcscottiii jcscottiii force-pushed the feat/saved-search-frontend-core branch from 90351c9 to a98abc7 Compare April 16, 2026 13:12
@jcscottiii jcscottiii force-pushed the feat/saved-search-workers branch 6 times, most recently from 8583cf9 to a0fa5b0 Compare April 17, 2026 16:12
@jcscottiii jcscottiii force-pushed the feat/saved-search-frontend-core branch from a98abc7 to 66123c6 Compare April 17, 2026 18:41
@jcscottiii jcscottiii force-pushed the feat/saved-search-frontend-core branch from 66123c6 to f6dec4a Compare April 17, 2026 21:57
@jcscottiii jcscottiii changed the base branch from feat/saved-search-workers to feat/saved-search-db-queries April 17, 2026 21:58
@jcscottiii jcscottiii changed the base branch from feat/saved-search-db-queries to feat/saved-search-api April 17, 2026 22:32
@jcscottiii jcscottiii force-pushed the feat/saved-search-frontend-core branch from f6dec4a to 9c42510 Compare April 17, 2026 22:33
@jcscottiii jcscottiii force-pushed the feat/saved-search-api branch from 9018e18 to 4bc92ba Compare April 21, 2026 21:38
Base automatically changed from feat/saved-search-api to main April 21, 2026 23:13
@jcscottiii jcscottiii force-pushed the feat/saved-search-frontend-core branch from 9393b85 to 9e6fd43 Compare April 22, 2026 01:41
@jcscottiii jcscottiii enabled auto-merge April 22, 2026 01:41
@jcscottiii jcscottiii added this pull request to the merge queue Apr 22, 2026
Merged via the queue into main with commit bf4c487 Apr 22, 2026
8 checks passed
@jcscottiii jcscottiii deleted the feat/saved-search-frontend-core branch April 22, 2026 02:53
@szy196 szy196 mentioned this pull request Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants