status: done
Task: Update HomeView Widget Binding
End Goal
HomeView wraps TUserExpenseSummaryCard in ListenableBuilder and passes all datepicker parameters.
Currently
- HomeView passes static computed values to TUserExpenseSummaryCard (lines 85-91)
- No ListenableBuilder wrapping the expense widget
- Missing datepicker parameters (customDateRangeListenable, preset callbacks, custom range callback)
- Widget doesn't rebuild when payments change
Should
- TUserExpenseSummaryCard wrapped in ListenableBuilder listening to
model.paymentsListenable
- All datepicker parameters passed to enable full functionality
- Widget rebuilds when payments change
Constraints
- [ ] Wrap ONLY the TUserExpenseSummaryCard (minimal rebuild scope)
- [ ] Keep TMargin.horizontal wrapper intact
- [ ] No graph parameters (summary cards only)
- [ ] Follow existing ValueListenableBuilder patterns in the view
Acceptance Criteria
- [ ] TUserExpenseSummaryCard is wrapped in ListenableBuilder
- [ ] ListenableBuilder uses
model.paymentsListenable
- [ ]
customDateRangeListenable parameter is passed
- [ ]
onTodayPressed callback is passed with PaymentPeriodFilter.day
- [ ]
onWeekPressed callback is passed with PaymentPeriodFilter.week
- [ ]
onMonthPressed callback is passed with PaymentPeriodFilter.month
- [ ]
onYearPressed callback is passed with PaymentPeriodFilter.year
- [ ]
onCustomRangeSelected callback is passed
Implementation Checklist
- [x] 2.1 Wrap TUserExpenseSummaryCard in ListenableBuilder
- [x] 2.2 Set listenable to
model.paymentsListenable
- [x] 2.3 Add
customDateRangeListenable: model.customDateRangeListenable
- [x] 2.4 Add
onTodayPressed: () => model.onPresetSelected(PaymentPeriodFilter.day)
- [x] 2.5 Add
onWeekPressed: () => model.onPresetSelected(PaymentPeriodFilter.week)
- [x] 2.6 Add
onMonthPressed: () => model.onPresetSelected(PaymentPeriodFilter.month)
- [x] 2.7 Add
onYearPressed: () => model.onPresetSelected(PaymentPeriodFilter.year)
- [x] 2.8 Add
onCustomRangeSelected: model.onCustomRangeSelected
Notes
Reference payments_view.dart lines 74-115 for the working pattern.
Reacties