feat(fe): merge subscriptions into recurring transactions, add reminder...
Summary of Changes
This PR consolidates the Subscription Discovery flow into the Recurring Transactions module, introduces configurable Payment Due Reminders, and adds Actionable Alert Badges to key cards on the Home page (Budgets, Recurring Transactions, and Notifications).
Key Features & Improvements
1. Unified Recurring Transactions & Subscriptions
-
Consolidated Navigation & Routing: Merged the standalone
/subscriptionspage into/recurring-transactions, redirecting legacy routes and streamlining the Home page dashboard. - Auto-Discovery Integration: Integrated AI-discovered subscription cards directly into the Recurring Transactions page with one-click conversion into automated recurring schedules.
- Empty State Guidance: Added educational empty state cards with Claymorphism aesthetics when no recurring items have been detected yet.
2. Advance Payment Reminders (remindDaysBefore)
-
Configurable Reminder Intervals: Added an opt-in toggle and dynamic interval dropdown (Same day, 1, 2, 3, 5, 7, or 14 days prior at 09:00 AM) in
RecurringTransactionFormModal. -
Badge Indicators: Displayed notification badges (
Remind X days before) on recurring transaction cards and detailed summary inRecurringTransactionDetailsModal.
3. Home Page Alert Counters & Bug Fixes
-
Budget Alert Badge Fix:
-
Root Cause: Fixed an issue where
budgetsQuery.data?.data.dataattempted to access.dataon an array, evaluating toundefinedand causing the count to always be0. -
Resolution: Updated array retrieval to
budgetsQuery.data?.dataand synchronized filters with/budgets(removed restrictiveactiveAt). -
Status & Threshold Handling: Added dual-check logic for
EXCEEDED/ $\ge 100%$ (pulsing red badge) andNEAR_LIMIT/ $\ge 80%$ (warning amber badge).
-
Root Cause: Fixed an issue where
- Recurring Transactions Alert Badge: Displays counts for schedules due soon (within reminder window) or overdue, plus unlinked discovered subscriptions.
- Unread Notifications Badge: Added unread notification badge indicator on the Notification button.