Remove “Switch to Classic” feedback survey if responded in last month#73436
Remove “Switch to Classic” feedback survey if responded in last month#73436puneetlath merged 4 commits intoExpensify:mainfrom
Conversation
Codecov Report❌ Patch coverage is
... and 8 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
@ishpaul777 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] |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-10-29.at.1.28.27.AM.movAndroid: mWeb ChromeScreen.Recording.2025-10-29.at.1.13.01.AM.moviOS: HybridAppScreen.Recording.2025-10-29.at.1.01.04.AM.moviOS: mWeb SafariScreen.Recording.2025-10-29.at.12.58.13.AM.movMacOS: Chrome / SafariScreen.Recording.2025-10-29.at.12.28.44.AM.movMacOS: DesktopScreen.Recording.2025-10-29.at.1.35.57.AM.mov |
|
✋ 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/puneetlath in version: 9.2.41-0 🚀
|
|
@jponikarchuk just to confirm, the steps below are failing? becuase i just tested it seems to work well, the requirement to skip survey form for @expensify.com emails are changed here and its no longer requirement
|
|
Yes, you are right @ishpaul777 . PR is fail according to steps you shared (Web and mWeb) bandicam.2025-10-30.10-38-10-540.mp4 |
|
@lorretheboy PR was failed with an original issue on Web, mWeb and Desktop 1761812935455.2025-10-30_11_27_39.mp4 |
|
@lorretheboy can you please help investigate ^ Thx! |
|
Sure, lemme check it |
|
Sorry, but I can't reproduce the issue both local & staging. Should we request to re-verify it or is there any steps that I missed here? Thanks @ishpaul777 Screen.Recording.2025-11-01.at.00.17.44.movScreen.Recording.2025-11-01.at.00.19.11.mov |
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.2.41-6 🚀
|
|
@lorretheboy i see that when QA test they use Try New Expensify button to redirect back from OD to ND which resets the |
|
Hmm, yeah I think we should update that. That shouldn't be clearing the history of the NVP. Are you able to implement that fix @ishpaul777? |
|
yes can take a look at this, ETA: Early next week |
|
@puneetlath @lorretheboy After some investigation on the backend, I don’t think it’s a good idea to rely on classicRedirect.timestamp to determine the last redirect to ND. Instead, we should use the earliest timestamp from classicRedirect.dismissedReasons and check against that
we need a follow up fix on Frontend here @lorretheboy |
|
@lorretheboy gentle bump ^ |
|
Thx, i will open pr for review today |
|
@ishpaul777 why not? Shouldn't the |
|
@puneetlath This happens because each time we redirect, we reset classicRedirect.timestamp, which represents the time the user was redirected. I’m not entirely sure the impact, but if we don’t reset it, the timestamp will only reflect the first redirect, leading to inaccurate data representation no other way know last time user is redirected from classic to ND |
|
@ishpaul777 It is ready for review now #74711 |
|
Sorry, I'm not following. We want to not show the survey based on whether they've seen it before in the last month. To do that, we should look at the last time they were re-directed, right? Not the first time? And isn't |
Sorry, I misspoke earlier, I meant we should use the latest timestamp, not the earliest. |
|
Ahhh ok got it. That makes sense to me. |
| : { | ||
| action() { | ||
| if (surveyCompletedWithinLastMonth) { | ||
| openOldDotLink(CONST.OLDDOT_URLS.INBOX, true); |
There was a problem hiding this comment.
We should have switchToOldDot before opening old dot to avoid redirecting back to ND on refresh like we solved it here.

Explanation of Change
Fixed Issues
$ #73156
PROPOSAL: #73156 (comment)
Tests
Offline tests
QA Steps
Same as Tests
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))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.mov
Android: mWeb Chrome
WEBSITE.ANDROID.mov
iOS: Native
IOS.mov
iOS: mWeb Safari
WEBSITE.IOS.mov
MacOS: Chrome / Safari
WEBSITE.mov
MacOS: Desktop
DESKTOP.mov