feat(ui): collapsible date filter with sort + filter toggle on person row
Some checks failed
CI / Unit & Component Tests (push) Failing after 1m13s
CI / Backend Unit Tests (push) Has been cancelled
CI / Unit & Component Tests (pull_request) Failing after 1m10s
CI / Backend Unit Tests (pull_request) Failing after 2m33s

Move sort button and filter toggle to the person row, matching the
document search page pattern (sort + filter + count inline). Date
range inputs are now a collapsible section behind the filter toggle,
using slide transition and the same grid layout as the document
search advanced filters. Fix date input padding (add px-3).

Refs: #179

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-06 22:34:14 +02:00
parent c4715f1637
commit c8b4bce003
4 changed files with 124 additions and 119 deletions

View File

@@ -103,9 +103,10 @@ describe('Briefwechsel page results state', () => {
await expect.element(page.getByTestId('conv-person-bar')).toBeInTheDocument();
});
it('shows filter controls when senderId is set', async () => {
it('hides filter controls by default (collapsible)', async () => {
render(Page, { data: withSender });
await expect.element(page.getByTestId('conv-filter-controls')).toBeInTheDocument();
await expect.element(page.getByTestId('conv-person-bar')).toBeInTheDocument();
await expect.element(page.getByTestId('conv-filter-controls')).not.toBeInTheDocument();
});
});
@@ -149,16 +150,6 @@ describe('Briefwechsel page single-person hint bar', () => {
});
});
// ─── Filter controls disabled state ──────────────────────────────────────────
describe('Briefwechsel page filter strip Row 2 disabled state', () => {
it('filter controls are not aria-disabled when senderId is set', async () => {
render(Page, { data: withSender });
const strip = document.querySelector('[aria-disabled="false"]');
expect(strip).not.toBeNull();
});
});
// ─── Strip letter count ───────────────────────────────────────────────────────
describe('Briefwechsel page strip letter count', () => {