Skip to content

Comments

feat: extract shared DateRangeFilter and ListTotalDisplay components (#215, #216)#249

Merged
daveharmswebdev merged 2 commits intomainfrom
feature/16-6-shared-component-extraction
Feb 22, 2026
Merged

feat: extract shared DateRangeFilter and ListTotalDisplay components (#215, #216)#249
daveharmswebdev merged 2 commits intomainfrom
feature/16-6-shared-component-extraction

Conversation

@daveharmswebdev
Copy link
Owner

Summary

  • AC1 — Shared DateRangeFilter (Feature: Extract Date Range selector into reusable shared component #215): Extracted DateRangeFilterComponent and getDateRangeFromPreset() utility to shared. Expenses and Income both now use the same date range filter with presets (All Time, This Month, This Quarter, This Year, Custom Range). Income upgraded from basic From/To pickers to preset-based filtering with sessionStorage persistence.
  • AC2 — Shared ListTotalDisplay (Feature: Extract total amount display into reusable shared component #216): Created ListTotalDisplayComponent for consistent currency total display. Added TotalAmount to backend PagedResult<T> via SumAsync before pagination. Both Expenses and Income pages show their respective totals using the shared component.
  • 25 files changed: 10 new files created, 15 existing files modified across frontend and backend

Test plan

  • Frontend unit tests: 2,466 passing (107 test files) — 42 new tests added
  • Backend tests: 1,489 passing (946 + 85 + 458) — 5 new tests added
  • E2E tests: 6 new tests passing (3 income date range, 1 income total, 2 expense total)
  • Zero TypeScript compilation errors
  • All existing tests unaffected (no regressions)

🤖 Generated with Claude Code

daveharmswebdev and others added 2 commits February 21, 2026 16:50
…215, #216)

Extract reusable date range filter and total amount display from
expense/income views into shared components for consistency. Add
backend TotalAmount to expense list API response.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add [showBorder]="true" to expenses ListTotalDisplay for visual consistency with income
- Remove defensive ?? 0 on totalAmount (interface guarantees non-optional number)
- Remove redundant `as DateRangePreset` type assertions in income store
- Replace deprecated ::ng-deep with subscriptSizing="dynamic" on mat-form-field
- Remove test for impossible scenario (missing totalAmount violating interface)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@daveharmswebdev daveharmswebdev merged commit 815816b into main Feb 22, 2026
7 checks passed
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