Skip to content

fix(projects): preserve all filters in the URL - #170

Merged
HazAT merged 4 commits into
masterfrom
feat/persist-all-filters-in-url
Aug 23, 2026
Merged

fix(projects): preserve all filters in the URL#170
HazAT merged 4 commits into
masterfrom
feat/persist-all-filters-in-url

Conversation

@HazAT

@HazAT HazAT commented Aug 23, 2026

Copy link
Copy Markdown
Member

The projects archive now treats URL query parameters as the source of truth for project/idea selection, search, group, award category, video-only filtering, and grid/list view. Opening a project from results, personal projects, the award roll, or ballot picks—and then returning—restores the same filtered view, making those views bookmarkable and shareable.

Project-only filters remain in the URL while ideas are selected so switching back to projects restores them, but they are not applied to idea requests. Search still debounces data fetching while replacing the in-progress URL state, and the stored layout preference remains the fallback when the URL does not specify a view.

HazAT added 2 commits August 23, 2026 10:47
Make project kind, search, group, award category, video-only, and layout state derive from query parameters so filtered views survive navigation and can be shared.

Carry the complete query string through project links and back navigation, while retaining the debounced search request behavior and the stored layout preference as the default when no URL override exists. Cover restoration from a fully filtered URL and preservation across project and idea navigation.
Preserve the complete URL-backed project filter state while incorporating the closed-submission help-label behavior from master. Project cards now receive both the visibility flag and the full detail-navigation query string.
@HazAT
HazAT marked this pull request as ready for review August 23, 2026 08:51
Comment thread src/app/routes/ProjectsPage.tsx
Use the URL search parameter directly for project requests so browser back and forward navigation updates results immediately. Keep typing debounced by delaying query-string writes from the local input, and synchronize the input whenever navigation supplies a different URL value.

Add regression coverage that navigates from a searched URL to an unfiltered URL and verifies both the request and input update without waiting for the typing debounce.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9080aea. Configure here.

Comment thread src/app/routes/ProjectsPage.tsx
Track debounced query-string writes separately from external URL navigation so an internal normalized search update does not overwrite the active input. This keeps trailing spaces intact when users pause between words while retaining immediate synchronization for browser navigation.

Extend search coverage to pause after a trailing space, verify the input remains unchanged, and then continue typing the complete query.
Comment thread src/app/routes/ProjectsPage.tsx
@HazAT
HazAT merged commit 80371c2 into master Aug 23, 2026
13 checks passed
@HazAT
HazAT deleted the feat/persist-all-filters-in-url branch August 23, 2026 09:16
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.

1 participant