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

Update "Request Money" / "Split bill" to work offline #3792

Closed
flodnv opened this issue Jun 29, 2021 · 12 comments
Closed

Update "Request Money" / "Split bill" to work offline #3792

flodnv opened this issue Jun 29, 2021 · 12 comments
Assignees
Labels
Engineering Improvement Item broken or needs improvement. Reviewing Has a PR in review Weekly KSv2

Comments

@flodnv
Copy link
Contributor

flodnv commented Jun 29, 2021

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Action Performed:

  1. Launch the desktop app
  2. Turn off my internet connection
  3. Click Global Create > Request Money

Expected Result:

I expect to be able to request money offline, which will be sent to the server after I come back online.

Actual Result:

Endless spinner:
image

Workaround:

Yes, I can connect to the internet to fix this. However, we set out to build an "offline first" app, so it seems to me that we should fix this.

Platform:

Where is this issue occurring? Every platform.

Version Number: v1.0.73-3
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL: N/A
Slack thread: Here

View all open jobs on Upwork

@flodnv flodnv added External Added to denote the issue can be worked on by a contributor AutoAssignerTriage Auto assign issues for triage to an available triage team member Weekly KSv2 Improvement Item broken or needs improvement. labels Jun 29, 2021
@MelvinBot
Copy link

Triggered auto assignment to @arielgreen (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

@MelvinBot
Copy link

Triggered auto assignment to @bfitzexpensify (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

@MelvinBot MelvinBot added Daily KSv2 and removed AutoAssignerTriage Auto assign issues for triage to an available triage team member Weekly KSv2 labels Jun 29, 2021
@Julesssss Julesssss removed the External Added to denote the issue can be worked on by a contributor label Jun 29, 2021
@Julesssss
Copy link
Contributor

I expect to be able to request money offline, which will be sent to the server after I come back online

I don't think we have used this functionality outside of messages yet, so that would probably be a wider, separate issue.

I think the expected result here would be that users can navigate through the IOU steps, but should be stuck on the Submit page until the connection has returned.

@rushatgabhane
Copy link
Member

@Julesssss
In my humble opinion, If the user is stuck on submit page, we wasted their time by making them go through the steps. Request isn't saved, so they'll have to do it again.

An alternative could be to queue the API request and call it when the user is back online. (should be a bad idea if user comes back online after a month?)

Or don't allow the user to request payment, and display an offline message instead.

@Julesssss
Copy link
Contributor

Julesssss commented Jun 29, 2021

IMO the main goal for this issue should be to not block users unnecessarily at the amount page. If the getCurrencyByIP API call fails, then we should simply use a default of USD and allow the user to continue through the flow. Ideally the connection will have returned by the confirmation step, and if not we handle the case gracefully.

Or don't allow the user to request payment, and display an offline message instead.

This would almost be my preference -- but I don't think we should block the user via UI preemptively. If the user hits confirm without a connection, then simple error handling and a message is sufficient -- just as we have implemented on the login page... For example: No connection, please check and try again

I agree that the ideal solution would be to queue the request, but that is a much more complex change that requires further discussion. I'd be happy to create an issue to discuss implementation, but it would most likely not be a high priority right now.

@bfitzexpensify bfitzexpensify removed their assignment Jun 29, 2021
@rushatgabhane
Copy link
Member

I understand, sounds good.

@iwiznia
Copy link
Contributor

iwiznia commented Jun 29, 2021

IMO this should be exactly like sending a message. If you are offline, we show you some indication that the action was not taken and send it as soon as you come online.

@flodnv flodnv added Weekly KSv2 and removed Daily KSv2 labels Jun 30, 2021
@Julesssss
Copy link
Contributor

I agree that is the solution, but the question is whether we make these changes separately, or together:

  • 1) Enable navigation through screens by handling failed getCurrencyByIP request gracefully
  • 2) Cache send IOU requests while offline)

@Julesssss
Copy link
Contributor

For 2), we should also implement the logic for chats reports created while offline. It's not specific to Request Money / Split Bills, so we need to update this issue or treat them as separate issues.

@parasharrajat
Copy link
Member

Yes. creating IOU reports is little involved. Better to break it

@iwiznia
Copy link
Contributor

iwiznia commented Jun 30, 2021

Fine with either way, probably a good idea to break it up since they seem like independent changes.

@luacmartins luacmartins self-assigned this Jul 7, 2021
@luacmartins
Copy link
Contributor

Picking up this issue - will implement a USD default and No connection, please check and try again message for now.

@botify botify closed this as completed Jul 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Engineering Improvement Item broken or needs improvement. Reviewing Has a PR in review Weekly KSv2
Projects
None yet
Development

No branches or pull requests

10 participants