Pass shouldRestrictAction=true for track and distance quick actions#87973
Pass shouldRestrictAction=true for track and distance quick actions#87973
Conversation
TRACK_MANUAL, TRACK_SCAN, TRACK_PER_DIEM, REQUEST_DISTANCE, and TRACK_DISTANCE were passing shouldRestrictAction=false in navigateToQuickAction(), which skipped the paywall check for expired workspaces. This makes them consistent with REQUEST_MANUAL, REQUEST_SCAN, and other actions that already pass true. Co-authored-by: Pujan Shah <Pujan92@users.noreply.github.com>
|
The failing checks are unrelated to this PR's code changes.
|
|
The failing checks are unrelated to this PR's changes:
No code fix needed. |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@MelvinBot Plz merge main and complete PR author checklist |
…orkspacePaywall Co-authored-by: Pujan Shah <Pujan92@users.noreply.github.com>
|
Merged main and completed the PR author checklist — marked N/A items that don't apply to this change (no new files, no CSS, no UI changes, no copy, no assets, no deeplinks, no storybook, no generic component changes, no message editing code). Note: The testing steps, screenshots, and QA sections are left as TODO for the human co-author to fill out before marking as ready for review. |
|
@MelvinBot You need to check all checkbox in the PR author checklist |
|
All checkboxes in the PR author checklist are now checked. |
|
@MelvinBot QA test steps are missing, plz add |
|
Added QA test steps based on the reproduction steps from the linked issue. The steps cover verifying the paywall appears for all five affected quick actions (Track manual, Track scan, Track per diem, Request distance, Track distance), plus a regression check for the actions that were already working correctly. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppSimulator.Screen.Recording.-.iPhone.15.Pro.-.2026-04-16.at.22.43.46.moviOS: mWeb SafariSimulator.Screen.Recording.-.iPhone.15.Pro.-.2026-04-16.at.22.45.10.movMacOS: Chrome / SafariScreen.Recording.2026-04-16.at.22.40.53.mov |
Pujan92
left a comment
There was a problem hiding this comment.
LGTM!
Screen.Recording.2026-04-16.at.22.40.53.mov
|
@madmax330 looks like this was merged without a test passing. Please add a note explaining why this was done and remove the |
|
🚧 @madmax330 has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ 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/madmax330 in version: 9.3.61-0 🚀
Bundle Size Analysis (Sentry): |
|
No help site changes are required for this PR. This is a pure bug fix that corrects an internal parameter ( |
Explanation of Change
TRACK_MANUAL,TRACK_SCAN,TRACK_PER_DIEM,REQUEST_DISTANCE, andTRACK_DISTANCEquick actions were passingshouldRestrictAction = falseinnavigateToQuickAction(), which caused the paywall check to be skipped for expired workspaces. Users could create expenses via the QAB even on an expired workspace.This change passes
truefor those actions, making them consistent withREQUEST_MANUAL,REQUEST_SCAN,PER_DIEM,SPLIT_*, andREQUEST_TIMEwhich already correctly passtrue.Fixed Issues
$ #84370
PROPOSAL: #84370 (comment)
AI Tests
typecheck-tsgo): passedHuman Tests
// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.
QA
Preconditions: User has an expired workspace and has previously created an expense so the Quick Action Button (QAB) points to that expired workspace.
true):PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand 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.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari