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
  • !54

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

feat(handover): display masked email and instructions for production OTP verification

Summary

This MR enhances the Account Ownership Handover interface to guide users through the production email OTP verification flow. When the target device connects to the session (transitioning to Step 3 - Authorization), the UI now presents a dedicated notification banner indicating that the 6-digit OTP code has been dispatched to the account owner's email address (displayed as a masked email). Pre-initiation guidance in Step 1 has also been updated to state the linked email requirement.

Problem Solved

  • In production, OTP codes are delivered securely via email rather than shown on-screen in sandbox mode.
  • Previously, users had no visual confirmation that an email had been dispatched, nor did they know which mailbox to inspect.
  • Users were not reminded prior to code creation that a linked email is required for the authorization process.

Key Changes

  1. SVG Icon Library (src/components/ui/icons.tsx):

    • Implemented MailIcon: Standardized vector icon matching the design system and styling tokens.
  2. Handover Types (src/types/handover.ts):

    • Added sourceUserEmailMasked?: string to HandoverStatusResponse interface.
  3. Account Handover Page (src/pages/account-handover/index.tsx):

    • Added maskedEmail state to capture the masked email address returned by status polling.
    • Updated Step 1 (Initiation warning): Added notice specifying that the account must have a linked email to receive the transfer OTP.
    • Updated Step 3 (Authorization): Rendered an informational card featuring MailIcon displaying the exact masked email address (e.g., nc***@gmail.com) to check.
    • Maintained sandbox OTP box display strictly when otpCodeDev is present for development and test environments.
    • State reset: Automatically clears maskedEmail when the user cancels the handover session.
  4. Localization (src/i18n/locales/vi.json, src/i18n/locales/en.json):

    • Added warningNoticeEmail, otpEmailSentTitle, and otpEmailSentDesc localization keys in both Vietnamese and English.

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/handover-email-otp-ui origin/feat/handover-email-otp-ui

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/handover-email-otp-ui

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 5
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!54

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.