-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Held requests] Hold Request education modal reappears after relogin #40435
[Held requests] Hold Request education modal reappears after relogin #40435
Conversation
merge main into hold-interstitial/backend-fix
merge main into hold-interstitial/backend-fix
@ahmedGaber93 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] |
Bug: I think we may have a race condition here.
When I log 20240606093752283.mp4 |
After relogin, I am still can reproduce the issue, it seems backend not back 20240606100501693.mp4 |
@robertjchen Could you please confirm the naming of the NVP and if it's currently in use on the main backend or is it up on staging? Is there a specific write command I'm supposed to use or is the one used for other NVPs okay? |
The naming looks correct to me 🤔 There's no specific write command, it should just be like the other NVPs. |
merge main into hold-interstitial/backend fix
It's a pretty specific case that isn't easily replicable but I've added an initial value and that should fix the null value.
It seems to work for some of my accounts and not for the others, @robertjchen is there a specific behavior of how we handle NVPs on the backend here? For example when dealing with new accounts and old ones? I'll investigate what exactly happens in this pipeline of reading the NVP from the backend to deciding whether to display the explanation modal. |
Hm, the NVP controls the display of the modal such that it shows up once for the lifetime of an account. Once the modal is dismissed, we set the NVP so that later on the UI we know not to ever show it again.
When the modal is dismissed we simply set the NVP to some true value. This is automatically propagated to the backend and saved. Next time they log in, the NVPs are loaded into the frontend. The frontend detects that this NVP exists, and therefore does NOT show the modal. Let me know if the helps clear it up 🙏 The NVP does not get any special treatment, it's just a setting we set once and check later on. |
@robertjchen Could you please check why backend not back
|
Hm, could you try dropping the |
@robertjchen |
The team expert who designed the new NVP system just tested the backend API and said the NVP was being returned properly for |
I am in break now, and I will recheck after one hour. |
@robertjchen 20240611174517753.mp420240611174623007.mp4 |
@robertjchen I've checked myself and the nvp is not present in OnyxDB, there also might be a problem with the API write command, since |
@cdOut That could be it! Similar NVPs used for other settings don't seem to have corresponding API calls. Maybe we can try copying what |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cdOut This tweak seemed to have worked for me, I think the prefix might be throwing things off when setting the NVP.
Going to explore a backend approach 👀 |
Got a backend fix under review 👍 |
@robertjchen will any adjustments have to be made on the frontend side also? |
No, just the backend 👍 |
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
Corresponding backend changes were merged and I tested this PR locally in concert with those changes to confirm that things were working. To speed things up, I'll merge this as well in parallel. |
Completed fresh reviewer's checklist |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
@robertjchen Thanks for completing reviewer's checklist. But we still have pending change here #40435 (comment) need to fix. I think @cdOut should create a follow up PR to fix this. |
I'll create a follow up PR in a sec, I wasn't able to push the changes due to the sudden merge. |
Ah, my apologies! 🙇 |
🚀 Deployed to staging by https://github.com/robertjchen in version: 1.4.86-0 🚀
|
1 similar comment
🚀 Deployed to staging by https://github.com/robertjchen in version: 1.4.86-0 🚀
|
🚀 Deployed to staging by https://github.com/robertjchen in version: 1.4.86-0 🚀
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.0.0-9 🚀
|
Details
Save the action when the user dismisses the hold request education modal onto the backend, so we don't show it on every login interaction.
Fixed Issues
$ #37012
PROPOSAL:
Tests
Hold
button from the three dot menu.Got it
button or dismiss the modal by pressing on the overlay.Offline tests
QA Steps
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
ANDROID-NATIVE.mov
Android: mWeb Chrome
ANDROID-CHROME.mov
iOS: Native
IOS-NATIVE.mov
iOS: mWeb Safari
IOS-SAFARI.mov
MacOS: Chrome / Safari
CHROME.mov
MacOS: Desktop
DESKTOP.mov