Skip to content

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

Closed

Description

@flodnv

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

Activity

  1. added
    ExternalAdded to denote the issue can be worked on by a contributor
    AutoAssignerTriageAuto assign issues for triage to an available triage team member
    ImprovementItem broken or needs improvement.
    on Jun 29, 2021
  2. MelvinBot commented on Jun 29, 2021

    @MelvinBot
    Contributor

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

  3. MelvinBot commented on Jun 29, 2021

    @MelvinBot
    Contributor

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

  4. added and removed
    AutoAssignerTriageAuto assign issues for triage to an available triage team member
    on Jun 29, 2021
  5. removed
    ExternalAdded to denote the issue can be worked on by a contributor
    on Jun 29, 2021
  6. Julesssss commented on Jun 29, 2021

    @Julesssss
    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.

  7. rushatgabhane commented on Jun 29, 2021

    @rushatgabhane
    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.

  8. Julesssss commented on Jun 29, 2021

    @Julesssss
    Contributor

    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.

  9. removed their assignment
    on Jun 29, 2021
  10. rushatgabhane commented on Jun 29, 2021

    @rushatgabhane
    Member

    I understand, sounds good.

  11. iwiznia commented on Jun 29, 2021

    @iwiznia
    Contributor

    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.

  12. added and removed on Jun 30, 2021
  13. Julesssss commented on Jun 30, 2021

    @Julesssss
    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)
  14. Julesssss commented on Jun 30, 2021

    @Julesssss
    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.

  15. parasharrajat commented on Jun 30, 2021

    @parasharrajat
    Member

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

  16. iwiznia commented on Jun 30, 2021

    @iwiznia
    Contributor

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

  17. self-assigned this
    on Jul 7, 2021
  18. luacmartins commented on Jul 8, 2021

    @luacmartins
    Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions