Skip to content
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

[$250] Wallet - In offline mode, no full blocking view in country page, country & currency are editable #54746

Closed
6 of 8 tasks
IuliiaHerets opened this issue Jan 2, 2025 · 37 comments
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 Engineering External Added to denote the issue can be worked on by a contributor

Comments

@IuliiaHerets
Copy link

IuliiaHerets commented Jan 2, 2025

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 9.0.80-3
Reproducible in staging?: Yes
Reproducible in production?: N/A - new feature, doesn't exist in prod
If this was caught during regression testing, add the test name, ID and link from TestRail: #52322
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team
Device used: Mac 15.0 / Chrome
App Component: User Settings

Action Performed:

Bug 1:

  1. Go to staging.new.expensify.com
  2. Go to Account settings > Wallet.
  3. Go offline.
  4. Click Add bank account.

Bug 2:

  1. Go to staging.new.expensify.com
  2. Go to Account settings > Wallet.
  3. Click Add bank account.
  4. Select a country > Next.
  5. Go offline.
  6. Click Currency.
  7. Select any currency.

Bug 3:

  1. Go to staging.new.expensify.com
  2. Go to Account settings > Wallet.
  3. Click Add bank account.
  4. Select a country > Next.
  5. Enter info and reach the confirmation page.
  6. Go offline.
  7. Click Country and Currency field.

Expected Result:

Acording to this doc https://docs.google.com/document/d/1H1hMnTcMrR8MT6BXz3fCE99eVIurgrHDtaxIH5aW8Ug/edit?tab=t.0,

Bug 1:
There will be full page pattern online blocking view.

Bug 2:
Currency field should be disabled because currency should not be editable in offline mode.

Bug 3:
Country and Currency field should be disabled on the confirmation page in offline mode.

Actual Result:

Bug 1:
RHP shows country list instead of full page pattern online blocking view.

Bug 2:
Currency field is not disabled and it loads infinitely when selecting a currency in offline mode.

Bug 3:
Country and Currency field are not disabled on the confirmation page in offline mode.

Workaround:

Unknown

Platforms:

  • Android: Standalone
  • Android: HybridApp
  • Android: mWeb Chrome
  • iOS: Standalone
  • iOS: HybridApp
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Bug6704992_1735808877702.20250102_165200.mp4

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021876246528156104323
  • Upwork Job ID: 1876246528156104323
  • Last Price Increase: 2025-01-06
  • Automatic offers:
    • DylanDylann | Reviewer | 105641591
    • shubham1206agra | Contributor | 105641593
Issue OwnerCurrent Issue Owner: @Ollyws
@IuliiaHerets IuliiaHerets added DeployBlockerCash This issue or pull request should block deployment Bug Something is broken. Auto assigns a BugZero manager. labels Jan 2, 2025
Copy link

melvin-bot bot commented Jan 2, 2025

Triggered auto assignment to @sonialiap (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

@melvin-bot melvin-bot bot added the Daily KSv2 label Jan 2, 2025
Copy link

melvin-bot bot commented Jan 2, 2025

Triggered auto assignment to @Julesssss (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

Copy link

melvin-bot bot commented Jan 2, 2025

💬 A slack conversation has been started in #expensify-open-source

@github-actions github-actions bot added Engineering Hourly KSv2 and removed Daily KSv2 labels Jan 2, 2025
Copy link
Contributor

github-actions bot commented Jan 2, 2025

👋 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:

  1. Identify the pull request that introduced this issue and revert it.
  2. Find someone who can quickly fix the issue.
  3. Fix the issue yourself.

@Julesssss
Copy link
Contributor

Removed blocker status, as this is a new feature and allowing editing while offline doesn't break functionality. It is just desired that we don't let users do this.

@parasharrajat
Copy link
Member

parasharrajat commented Jan 2, 2025

Edited by proposal-police: This proposal was edited at 2025-01-02 10:47:32 UTC.

Proposal

Please re-state the problem that we are trying to solve in this issue.

  • Use FullPageOfflineBlockingView forCountrySelection step.
  • Disable the Country and Currency Selector on BankAccountDetails and Confirmation step.

What is the root cause of that problem?

We do not disable the Country and Currency Selector in international bank account flow steps when the user is offline.

What changes do you think we should make in order to solve the problem?

  1. First we will wrap the content of CountrySelection page in FullPageOfflineBlockingView.

  2. Then we disable the CurrencyPicker by creating a new prop called disabled on it and forwarding to the MenuItemWithTopDescription. Then set this prop to isOffline.

function CountryPicker({value, errorText, onInputChange = () => {}}: CountryPickerProps) {

https://github.com/Expensify/App/blob/704279d7b8ee6a07c6149295df9e5f57653dac56/src/pages/settings/Wallet/InternationalDepositAccount/substeps/BankAccountDetails.tsx#L71C22-L71C36

 const {isOffline} = useNetwork();
  1. We do the same in Confirmation page via passing the disabled value from summaryitems for country and currency.
const summaryItems = [
        {
            description: translate('common.country'),
            title: formValues.bankCountry,
            shouldShowRightIcon: true,
            onPress: () => {
                onMove(STEP_INDEXES.COUNTRY_SELECTOR);
            },
            disabled: isOffline
        },
        {
            description: translate('common.currency'),
            title: formValues.bankCurrency,
            shouldShowRightIcon: true,
            onPress: () => {
                onMove(STEP_INDEXES.BANK_ACCOUNT_DETAILS);
            },
            disabled: isOffline
        },
    ];

Then passing this prop to MenuItemWithTopDescription in UI.

What alternative solutions did you explore? (Optional)

Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

@linhvovan29546
Copy link
Contributor

Proposal

Please re-state the problem that we are trying to solve in this issue.

Wallet - In offline mode, no full blocking view in country page, country & currency are editable

What is the root cause of that problem?

We did not handling to block user actions when the app is offline.

What changes do you think we should make in order to solve the problem?

We can use FullPageOfflineBlockingView component to wrap the SubStep

<SubStep
isEditing={isEditing}
onNext={handleNextScreen}
onMove={moveTo}
screenIndex={screenIndex}
resetScreenIndex={resetScreenIndex}
formValues={values}
fieldsMap={fieldsMap}
/>

We also prevent users from clicking the "Add Bank Account" button in the Wallet page by adding

disabled={network.isOffline}

<MenuItem
onPress={onPressItem}
title={translate('walletPage.addBankAccount')}
icon={Expensicons.Plus}
wrapperStyle={[styles.paymentMethod, listItemStyle]}
ref={buttonRef}
/>

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

N/A

What alternative solutions did you explore? (Optional)

N/A

Copy link

melvin-bot bot commented Jan 6, 2025

@Julesssss, @sonialiap Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@Julesssss Julesssss added the External Added to denote the issue can be worked on by a contributor label Jan 6, 2025
Copy link

melvin-bot bot commented Jan 6, 2025

Job added to Upwork: https://www.upwork.com/jobs/~021876246528156104323

@melvin-bot melvin-bot bot changed the title Wallet - In offline mode, no full blocking view in country page, country & currency are editable [$250] Wallet - In offline mode, no full blocking view in country page, country & currency are editable Jan 6, 2025
@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Jan 6, 2025
Copy link

melvin-bot bot commented Jan 6, 2025

Triggered auto assignment to Contributor-plus team member for initial proposal review - @Ollyws (External)

@MonilBhavsar
Copy link
Contributor

Yes, that sounds correct 👍

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Jan 10, 2025
Copy link

melvin-bot bot commented Jan 10, 2025

📣 @DylanDylann 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app!

Offer link
Upwork job

Copy link

melvin-bot bot commented Jan 10, 2025

📣 @shubham1206agra 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!

Offer link
Upwork job
Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻
Keep in mind: Code of Conduct | Contributing 📖

@melvin-bot melvin-bot bot removed the Overdue label Jan 10, 2025
@shubham1206agra
Copy link
Contributor

If you're first accessing the flow offline, I think we want pattern D as we need to call Corpay's API to get the list of applicable fields based on the selected country/currency combo, right @MonilBhavsar @shubham1206agra ?

@joekaufmanexpensify, I can make the change to the PR itself.

Copy link

melvin-bot bot commented Jan 14, 2025

@Julesssss, @Ollyws, @sonialiap, @shubham1206agra, @DylanDylann Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@melvin-bot melvin-bot bot added the Overdue label Jan 14, 2025
@garrettmknight garrettmknight moved this to Bugs and Follow Up Issues in [#whatsnext] #expense Jan 14, 2025
@Julesssss
Copy link
Contributor

@joekaufmanexpensify, I can make the change to the PR itself.

Is there an existing PR, or would this be a new one?

@shubham1206agra
Copy link
Contributor

Fixed in cef7c93

@DylanDylann
Copy link
Contributor

@shubham1206agra Let's also display no full blocking view on currency page if offline. Currently, if we select another currency offline, the infinity loading will happen

Screen.Recording.2025-01-16.at.14.10.29.mov

Copy link

melvin-bot bot commented Jan 16, 2025

@Julesssss @Ollyws @sonialiap @shubham1206agra @DylanDylann this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!

Copy link

melvin-bot bot commented Jan 16, 2025

@Julesssss, @Ollyws, @sonialiap, @shubham1206agra, @DylanDylann Eep! 4 days overdue now. Issues have feelings too...

@Julesssss
Copy link
Contributor

Not overdue

@shubham1206agra
Copy link
Contributor

@shubham1206agra Let's also display no full blocking view on currency page if offline. Currently, if we select another currency offline, the infinity loading will happen
Screen.Recording.2025-01-16.at.14.10.29.mov

Done

Copy link

melvin-bot bot commented Jan 20, 2025

@Julesssss, @Ollyws, @sonialiap, @shubham1206agra, @DylanDylann Now this issue is 8 days overdue. Are you sure this should be a Daily? Feel free to change it!

@Julesssss
Copy link
Contributor

Hey @shubham1206agra, I'm struggling to find the PR here, would you mind sharing it? Thanks

@shubham1206agra
Copy link
Contributor

#54798

Copy link

melvin-bot bot commented Jan 22, 2025

@Julesssss, @Ollyws, @sonialiap, @shubham1206agra, @DylanDylann 10 days overdue. I'm getting more depressed than Marvin.

@Julesssss
Copy link
Contributor

#54798

Thanks @shubham1206agra. Please confirm that we should as this issue to the list of fixed issues within that PR.

Copy link

melvin-bot bot commented Jan 24, 2025

@Julesssss, @Ollyws, @sonialiap, @shubham1206agra, @DylanDylann 12 days overdue. Walking. Toward. The. Light...

@shubham1206agra
Copy link
Contributor

@sonialiap @Julesssss Please close this issue. No payment required here.

@MonilBhavsar
Copy link
Contributor

Nice, thank you!

@github-project-automation github-project-automation bot moved this from Bugs and Follow Up Issues to Done in [#whatsnext] #expense Jan 25, 2025
@melvin-bot melvin-bot bot removed the Overdue label Jan 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 Engineering External Added to denote the issue can be worked on by a contributor
Projects
Status: Done
Development

No branches or pull requests