Repository navigation
sortable, filterable services dashboard table with URL-synced state #625
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
GRANTFOX OSSGrantFox open-source campaign taskGrantFox open-source campaign taskMAYBE REWARDEDMay be rewarded under the GrantFox campaignMay be rewarded under the GrantFox campaignOfficial Campaign | FWC26GrantFox FWC26 official campaignGrantFox FWC26 official campaignTHIRD CAMPAIGNarea:dashboarddashboarddashboardpriority:highHigh priorityHigh prioritystack:nextjsNext.jsNext.jsstack:reactReactReactstack:typescriptTypeScriptTypeScripttype:featureNew functionalityNew functionality
Description
Summary
The services dashboard list has no sorting, filtering, or shareable state. Build a data table with column sorting, filtering, pagination, and full URL-state sync so views are shareable and restorable.
Why this matters
A real data view needs sort/filter/paging that survive reload and can be shared. URL-syncing makes state a first-class, testable citizen.
Requirements
- Column sorting (asc/desc/none), text/enum filtering, and pagination on the services dashboard table.
- Reflect sort/filter/page in the URL query and restore from it on load.
- Debounce filter input and keep interactions keyboard-accessible.
- Empty/filtered-empty states are distinct and clear.
Technical guidance
- Treat the URL as the source of truth for view state.
- Memoize derived rows so unrelated state changes don't re-render them.
Edge cases — each must have a test
- sort a column -> rows reorder and URL updates
- filter -> rows narrow and URL updates
- reload with query params -> state restored
- filtered to empty -> distinct empty state
- sort is stable for equal keys
Acceptance criteria
- All requirements and every edge case above implemented and covered by tests
- New unit and integration tests; existing tests still pass and no regressions
- Structured, typed errors (no leaked internals; stable codes)
-
npm run lint,npm test, andnpm run buildall pass locally - Code follows the repo's existing conventions; no duplication or dead code
- Short docs/comments explaining the design and any non-obvious decisions
- PR description explains the approach and includes
Closes #<issue>
Out of scope
- Server-side sorting/filtering
- Column reordering/resizing
Rewards
Part of the GrantFox OSS / Official Campaign (FWC26) — this task may be rewarded. PR quality is assessed by AI: depth, correctness under edge cases, meaningful tests, and clean design are what earn the reward. Shallow changes (typos, formatting, trivial docs) do not qualify.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
GRANTFOX OSSGrantFox open-source campaign taskGrantFox open-source campaign taskMAYBE REWARDEDMay be rewarded under the GrantFox campaignMay be rewarded under the GrantFox campaignOfficial Campaign | FWC26GrantFox FWC26 official campaignGrantFox FWC26 official campaignTHIRD CAMPAIGNarea:dashboarddashboarddashboardpriority:highHigh priorityHigh prioritystack:nextjsNext.jsNext.jsstack:reactReactReactstack:typescriptTypeScriptTypeScripttype:featureNew functionalityNew functionality
Activity
shobhamerabacha-star commentedon Sep 12, 2026
Hello! I'd like to work on this issue.
I would love to take this on. My planned approach:
sortable, filterable services dashboard table with URL-synced statewith clean React/Next.js components, responsive styling, and proper loading/error boundaries.Excited to work on this—please assign to me and I'll submit a clean PR shortly!
Rodrigoue9 commentedon Sep 21, 2026
Hi maintainers,
I would like to take ownership of this issue and implement the sortable, filterable services dashboard table with URL-state synchronization.
Relevant Experience:
Senior Full-Stack TypeScript/React engineer with extensive experience in Next.js App Router, URL state management (
useSearchParams/ search params synchronization), accessible UI design, and automated testing (Vitest / React Testing Library).Implementation Approach:
useServicesTableStatehook):page,sortBy,sortOrder(asc|desc), andfilter.ServicesDataTablewith sortable headers, accessible aria-sort indicators, and pagination controls.useMemo) with stable sorting for equal keys.npm run lint,npm test, andnpm run build.I can deliver a clean, tested PR within 12–24 hours of assignment. Please assign this issue to me!
woahwhattheheck commentedon Oct 8, 2026
/claim #625
I, @woahwhattheheck, affirmatively claim original-contributor credit for PR #649 and request evaluation for any applicable GrantFox OSS / Official Campaign (FWC26) reward and payment if accepted. Please associate this issue-level claim with #649.
mikewheeleer commentedon Oct 18, 2026
Closing as part of a repository reset; a fresh set of issues will be opened shortly.