-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[HOLD for payment 2024-08-29] [$250] Desktop - Onboarding can be skipped by esc key #47189
Comments
Triggered auto assignment to @jasperhuangg ( |
Triggered auto assignment to @miljakljajic ( |
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
|
Man I almost feel like this should be a feature 😆 No need to block deploy, onboarding isn't necessary to use the App, and it only happens on desktop. |
Job added to Upwork: https://www.upwork.com/jobs/~0115ed02f53aa4456b |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @allroundexperts ( |
This comment was marked as outdated.
This comment was marked as outdated.
Edited by proposal-police: This proposal was edited at 2024-08-10 07:08:38 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Desktop - Onboarding can be skipped by esc key What is the root cause of that problem?Onboarding can have several re-renders during initial load, it can be caused by react 18 strict mode or electron internal lifecycle. During this re-render a race condition might occurred in this useEffect. App/src/hooks/useDisableModalDismissOnEscape.ts Lines 5 to 8 in e6546d6
The disabling process might be called before cleanup code (re-enabling) It appears this resetRoot not work well for electron, it cause extra render. App/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar.tsx Lines 69 to 70 in e6546d6
What changes do you think we should make in order to solve the problem?The key is to execute In import {useEffect} from 'react';
import {InteractionManager} from 'react-native';
import * as Modal from '@userActions/Modal';
export default function useDisableModalDismissOnEscape() {
useEffect(() => {
InteractionManager.runAfterInteractions(() => {
Modal.setDisableDismissOnEscape(true);
})
return () => Modal.setDisableDismissOnEscape(false);
}, []);
} What alternative solutions did you explore? (Optional)Change this code To: Welcome.isOnboardingFlowCompleted({
onNotCompleted: () => {
Navigation.isNavigationReady().then(() => {
Navigation.navigate(ROUTES.ONBOARDING_ROOT.route);
});
},
}); |
This comment was marked as outdated.
This comment was marked as outdated.
Edited by proposal-police: This proposal was edited at 2024-08-10 07:14:10 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Onboarding can be skipped by esc key. What is the root cause of that problem?In Desktop, if we try to add the log to: App/src/hooks/useDisableModalDismissOnEscape.ts Lines 4 to 9 in e6546d6
when the onboarding modal is opening, the log result will be:
as we can see, the last one is Here, the log for What changes do you think we should make in order to solve the problem?We should remove this useEffect
and update: App/src/libs/Navigation/AppNavigator/AuthScreens.tsx Lines 475 to 479 in e6546d6
<RootStack.Screen
name={NAVIGATORS.ONBOARDING_MODAL_NAVIGATOR}
options={onboardingScreenOptions}
component={OnboardingModalNavigator}
listeners={{
focus: () => {
Modal.setDisableDismissOnEscape(true);
},
beforeRemove: () => Modal.setDisableDismissOnEscape(false),
}} it is the same approach we are using to handle events on other modals. |
Proposal Updated
|
Proposal udpated:
|
FYI @miljakljajic I will be going OOO for the rest of the week so we will likely need to rope in another internal engineer to complete the PR review. cc @dominictb |
Thanks a lot for your understanding @jasperhuangg 🙏🏻. @allroundexperts can you please report the bug in #expensify-bugs channel when the PR for this issue is merged? Thanks |
Ignore my previous comment, I was testing on web. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.23-0 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-08-29. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
@allroundexperts, can you please report the other bug in the #expensify-bugs channel and ask the issue creator to assign it to me? I think you should be the C+ there since you have already reviewed this PR and also the solution for the other issue. |
Bump @allroundexperts on above 🙇 |
@jasperhuangg Do you think that the bug reported by @Krishna2323 is worth solving? If so, can you create a new issue and assign both of us? |
@miljakljajic, @allroundexperts, @jasperhuangg, @dominictb Eep! 4 days overdue now. Issues have feelings too... |
@Krishna2323 Please report the bug yourself via the #expensify-bugs channel. We'll let it go through our standard process. |
Thanks. @allroundexperts, could you please do that for me? I don't have access to #expensify-bugs channel. |
Payment summary: @allroundexperts is owed 250 for their work reviewing this PR |
@dominictb has been paid in upwork |
$250 approved for @allroundexperts |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: v9.0.18-7
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail: n/a
Email or phone of affected tester (no customers): applausetester+kh050806@applause.expensifail.com
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:
Expected Result:
Onboarding cannot be skipped by esc key.
Actual Result:
Onboarding can be skipped by esc key.
This issue only happens on desktop app and not web app.
Workaround:
unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Bug6566750_1723214372806.20240809_223636.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @miljakljajicThe text was updated successfully, but these errors were encountered: