-
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
Contact methods- Changes will be reverted if added after deep linking or if quick opening the settings on slow network #29179
Comments
Triggered auto assignment to @laurenreidexpensify ( |
Bug0 Triage Checklist (Main S/O)
|
UPDATED STEP BY STEP:
On android network was the easiest way to reproduce, because it supports simulate 2G network. I would test in all scenarios like all 2G and slow 3G network. on Chrome, you can add custom network profiles to test the 2G networks as well here: Screen.Recording.2023-10-09.at.18.08.02.mov |
ProposalPlease re-state the problem that we are trying to solve in this issueon slow network, contact methods changes will be reverted if added after deep linking or if quick opening the settings What is the root cause of that problem?The root cause of the problem is that we currently don't display a loading while app data is still being fetched, that way the user can interact with the select list before the data is fetched from the backend. What changes do you think we should make in order to solve the problem?I recommend adding the
And also disable the add button while data is still loading to avoid concurrency on slower networks. So basically at: App/src/pages/settings/Profile/Contacts/ContactMethodsPage.js Lines 54 to 59 in 70e9fa0
We add this: const defaultProps = {
isLoading: true,
(...)
}; At: App/src/pages/settings/Profile/Contacts/ContactMethodsPage.js Lines 133 to 138 in 70e9fa0
We change to this: <Button
(...)
isDisabled={props.isLoading}
/> At:
We add the FullscreenLoadingIndicator component to show if data is still pending or loading, showing visual indicator that the content that is appearing is not yet fetched.We also need to add the ONYXKEYS.IS_LOADING_APP to the file, so we can know when it is finished fetching info. The solution I proposed is how it is done across all other sections of the app: Address page: Display Name page: Most Recent page: With that solution in any network scenario, we would not allow user to input data and display a loading to indicate progress on fetching the saved information for his account. What alternative solutions did you explore? (Optional)N/A |
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: 1.3.75-0
Reproducible in staging?: n/a
Reproducible in production?: n/a
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @lcsvcn
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1696249705045799
Action Performed:
Expected Result:
Not allow user interaction while is loading information from server
Actual Result:
The product allow user interaction before the data is loaded from backed, when it is finish loading it override any changes.
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Android: Native
untitled.webm
Android: mWeb Chrome
untitled2.webm
iOS: Native
20231004_144041.mp4
iOS: mWeb Safari
MacOS: Chrome / Safari
Screen.Recording.2023-10-09.at.18.15.02.mov
MacOS: Desktop
Screen.Recording.2023-10-04.at.14.03.53.mov
View all open jobs on GitHub
The text was updated successfully, but these errors were encountered: