Skip to content

feat: filter Recipients table by status#321

Merged
tnrdd merged 3 commits into
mainfrom
feat/recipients-status-filter
Jun 27, 2026
Merged

feat: filter Recipients table by status#321
tnrdd merged 3 commits into
mainfrom
feat/recipients-status-filter

Conversation

@tnrdd

@tnrdd tnrdd commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Adds a status filter to the Recipients page (Manage Recipients) table header.

  • A filter control sits next to the Status column header (a dimmed arrow that highlights when a filter is active).
  • The dropdown offers All statuses plus only the statuses actually present in the current list, so it never produces an empty selection.
  • Selecting a status filters the visible rows; the active choice is highlighted, and the table shows "No recipients with this status." if nothing matches.
  • The filter resets to All if its status disappears after a refresh.
  • CSV export and Connect All deliberately keep operating on the full list, not the filtered view.

The menu uses Popper's fixed strategy so it isn't clipped by the table's scroll container.

Verified with pnpm lint and pnpm typecheck.

@vercel

vercel Bot commented Jun 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
platform Ready Ready Preview, Comment Jun 26, 2026 8:05pm

Request Review

@gaston-review gaston-review 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.

Gaston Review

Verdict: Approved

Score: ████████░░ 8/10

Pull Request Summary

This PR adds a status filter dropdown to the Recipients table header in the Flow Councils review page. Users can filter the table by any status present in the current data, with an "All statuses" option. The dropdown only appears when there are applications, and the filter auto-resets if the selected status disappears from the data. An empty-state row is shown when the filter matches nothing.

Review Summary

🔵 Suggestion — Minor: state-reset via useEffect causes an intermediate empty-list render
The useEffect that resets statusFilter when the active status disappears from the data runs after render, so for one frame filteredApplications returns []. Deriving the effective filter inline instead of using a sync effect would eliminate the intermediate state and remove the effect entirely.

Solid, well-contained feature. The forwardRef wrapper for the dropdown toggle is the right approach for react-bootstrap, presentStatuses correctly derives available options from the data, and the filter is properly applied only to the table rows while leaving CSV export and connect-all operating on the full list. The one minor improvement is replacing the state-reset effect with a derived value, but it's not a blocker.

📌 1 inline comment
🔵 Suggestion: 1


🔍 Reviewed by Gaston

Comment thread src/app/flow-councils/review/review.tsx Outdated

@gaston-review gaston-review 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.

Gaston Review

Verdict: Approved

Score: ████████░░ 8/10

Pull Request Summary

This PR adds a status filter dropdown to the Recipients table header in the Flow Councils review page. Users can filter by any status present in the data, with an "All statuses" default. The filter auto-falls-back to "ALL" when the selected status disappears, and an empty-state row is shown when no rows match.

The author addressed my prior suggestion cleanly — the useEffect is gone, replaced by inline effectiveFilter derivation that eliminates the intermediate empty-list render. The forwardRef toggle, presentStatuses memo, and scoped filtering (only the table rows, not CSV or connect-all) are all done right. No issues remaining.


🔍 Reviewed by Gaston

@gaston-review gaston-review 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.

Gaston Review

Verdict: Approved

Score: ████████░░ 8/10

Pull Request Summary

This PR adds a status filter to the Recipients table in the Flow Councils review page. A filter icon in the Status column header opens a dropdown with all statuses present in the current data, plus an "All statuses" default. The filter applies only to the table rows — CSV export and connect-all remain unaffected. The selected filter auto-falls-back to "ALL" when its status disappears from the data, via inline derivation (no effect).

The latest push swaps the dropdown toggle for a filter icon with opacity feedback (full when active, half when inactive) — a nice UX touch. All prior concerns have been addressed. The forwardRef toggle, memoized presentStatuses, inline effectiveFilter derivation, and properly scoped filtering are all solid. Clean, well-contained feature work.


🔍 Reviewed by Gaston

@tnrdd tnrdd merged commit bee36ce into main Jun 27, 2026
4 checks passed
@tnrdd tnrdd deleted the feat/recipients-status-filter branch June 27, 2026 14:10
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