π Description
SettlementsPanel's visibleSettlements filter (src/components/SettlementsPanel.tsx) calls matchesQuery([s.id, s.anchor, s.asset], query) β only the id, anchor, and asset fields are searchable. SettlementTable (src/components/SettlementTable.tsx) renders a StatusBadge showing each settlement's status ("Pending", "Executed", "Cancelled") as a clearly visible column, but a user typing "pending" (or any status word) into the settlements search box gets zero matches on that basis, because status is never passed into matchesQuery. Unlike AnchorsPanel, which has dedicated status filter buttons (All/Active/Inactive) as a separate, deliberate mechanism for filtering by status, SettlementsPanel has no equivalent status filter at all β the search box is the only textual filtering mechanism available, making this gap the only way to narrow the list by status, and it silently doesn't work.
π§© Requirements and context
SettlementsPanel's search should also match against each settlement's status (e.g. typing "pending" should surface pending settlements), consistent with it being a visible, meaningful column in the same table.
- The existing id/anchor/asset matching behavior, and the AND semantics across multiple search terms, must be unchanged.
- No new status-specific filter UI is required β this only extends what the existing free-text search box matches against.
π οΈ Suggested execution
- In
src/components/SettlementsPanel.tsx, add s.status (or its formatted label via formatStatus from @/lib/format, to match what's actually displayed) to the fields array passed into matchesQuery for visibleSettlements.
- Extend
src/components/SettlementsPanel.test.tsx with a test asserting typing a status word (e.g. "pending") into the search box filters the list to settlements with that status.
β
Acceptance criteria
π Security notes
No new attack surface; a client-side search-completeness fix over already-fetched, already-displayed data.
π Guidelines
- Minimum 95% test coverage
- Clear documentation
- Timeframe: 96 hours
π Description
SettlementsPanel'svisibleSettlementsfilter (src/components/SettlementsPanel.tsx) callsmatchesQuery([s.id, s.anchor, s.asset], query)β only the id, anchor, and asset fields are searchable.SettlementTable(src/components/SettlementTable.tsx) renders aStatusBadgeshowing each settlement's status ("Pending", "Executed", "Cancelled") as a clearly visible column, but a user typing "pending" (or any status word) into the settlements search box gets zero matches on that basis, becausestatusis never passed intomatchesQuery. UnlikeAnchorsPanel, which has dedicated status filter buttons (All/Active/Inactive) as a separate, deliberate mechanism for filtering by status,SettlementsPanelhas no equivalent status filter at all β the search box is the only textual filtering mechanism available, making this gap the only way to narrow the list by status, and it silently doesn't work.π§© Requirements and context
SettlementsPanel's search should also match against each settlement's status (e.g. typing "pending" should surface pending settlements), consistent with it being a visible, meaningful column in the same table.π οΈ Suggested execution
src/components/SettlementsPanel.tsx, adds.status(or its formatted label viaformatStatusfrom@/lib/format, to match what's actually displayed) to the fields array passed intomatchesQueryforvisibleSettlements.src/components/SettlementsPanel.test.tsxwith a test asserting typing a status word (e.g. "pending") into the search box filters the list to settlements with that status.β Acceptance criteria
π Security notes
No new attack surface; a client-side search-completeness fix over already-fetched, already-displayed data.
π Guidelines