[Home Page] [Release 3] Add card fraud alert#81058
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@ZhenjaHorbach Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@youssef-lr Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
…ting The backend now provides triggerCurrency on card.message.possibleFraud, which is the currency of the transaction that triggered fraud detection. Use it instead of hardcoded USD, with USD as fallback for older data. Co-authored-by: Cursor <cursoragent@cursor.com>
|
npm has a |
Pass only the PossibleFraudData instead of the full Card object to avoid unnecessary re-renders when unrelated card properties change. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
The merge-base changed after approval.
|
@grgia @youssef-lr ready for the review |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/youssef-lr in version: 9.3.17-0 🚀
|
|
@mountiny I'm seeing this for the 2nd mock data without report action
|
|
Hi @mountiny. Can this PR be executed on the Native apps? |
|
We need to wait for some customer to hit this issue afresh so we can supportal to their account and test there |
|
Looking into that, no need to block the deploy |
|
🚀 Deployed to production by https://github.com/lakchote in version: 9.3.17-9 🚀
|

Explanation of Change
Details
This PR implements the Card Fraud Alert time-sensitive widget for the Home page as part of Release 3.
When a user's Expensify Card has potential fraud detected (either individual-level or domain-level), a high-priority alert widget appears in the Time Sensitive section, prompting them to review the suspicious activity.
Changes
New Component: ReviewCardFraud.tsx
Type Extensions: Card.ts
Selector Updates: Card.ts
Hook Updates: useTimeSensitiveCards.ts
TimeSensitiveSection Updates
Fixed Issues
$ #79992
PROPOSAL:
Tests
Prerequisites:
Logged in user with an Expensify Card
Test Steps
Offline tests
N/A
QA Steps
Same as steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps./** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari