Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
F
finwise-miniapp-fe
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • ThinhNC
  • finwise-miniapp-fe
  • Merge Requests
  • !49

Merged
Opened Sep 14, 2026 by ThinhNC@ThinhNC
  • Report abuse
Report abuse

feat(notifications): display recurring transaction due date and navigate to details modal

Overview

This PR improves the recurring transaction reminder notifications by including the specific due date in the notification content and seamlessly navigating users directly into the Recurring Transaction Details Modal when clicking "View details" (Xem chi tiết).


Key Changes

1. Notification Due Date Formatting (src/lib/notification-format.ts)

  • Added extractNotificationDueDate() utility to dynamically resolve the transaction's due date from notification.data.dueDate, URL query parameters (actionUrl), or notification message patterns.
  • Enhanced message formatting for RECURRING_PAYMENT_DUE notifications to clearly state the due date in both English and Vietnamese.

2. Deep-Link Navigation to Schedule Details (src/pages/notifications/index.tsx)

  • Extracted scheduleId from actionUrl / notification.data upon clicking "View details".
  • Forwarded scheduleId through React Router location.state and search parameters to the recurring transactions page.

3. Auto-Open Details Modal (src/pages/recurring-transactions/index.tsx)

  • Automatically detects scheduleId from navigation state or URL query params upon landing.
  • Opens RecurringTransactionDetailsModal immediately for the targeted schedule.
  • If the schedule is not yet loaded in the current paginated list, it fetches the schedule individually using the new hook.

4. Service & Hook Additions

  • src/services/recurring-transaction.service.ts: Added getById(id) to retrieve single schedule details by ID.
  • src/hooks/use-recurring-transactions.ts: Added useRecurringTransaction(id) React Query hook with query key caching.

5. Enhanced Schedule Details Modal (RecurringTransactionDetailsModal.tsx)

  • Enriched modal display: transaction amount (income/expense colored), wallet name, category, recurring interval, next execution date, start/end dates, reminder configuration, upcoming preview dates, and execution history.

6. Localization (en.json, vi.json)

  • Added translation keys: notification.dueDateLabel, notification.recurringDueMessage, and notification.recurringDueMessageWithName.

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b feat/recurring-notification-details-navigation origin/feat/recurring-notification-details-navigation

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/develop
git merge --no-ff feat/recurring-notification-details-navigation

Step 4. Push the result of the merge to GitLab

git push origin develop

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 0
  • Commits 1
  • Changes 9
Assignee
No assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: ThinhNC/finwise-miniapp-fe!49

Revert this merge request

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.