Skip to content
This repository has been archived by the owner on May 16, 2019. It is now read-only.

Hide order modal after clicking 'save' #1053

Closed
drwasho opened this issue Mar 9, 2016 · 5 comments · Fixed by #1117
Closed

Hide order modal after clicking 'save' #1053

drwasho opened this issue Mar 9, 2016 · 5 comments · Fixed by #1117

Comments

@drwasho
Copy link
Member

drwasho commented Mar 9, 2016

When you go to confirm an order and click 'Save', the modal can hang while it's waiting for a response. Users can mistakenly click the 'Save' button twice, thinking that they didn't click it correctly the first time, which produces a 'Data cannot be saved' error that's related to the second superfluous click.

A better UX would be to hide the order modal after clicking 'Save' and use the status bar at the bottom of client to indicate that the message is sending and when a response has been received. Also we need to think about what happen if the user clicks the 'Order Details' button to bring up the modal again.

@drwasho drwasho added this to the v1.0 - Mainnet Release milestone Mar 9, 2016
@morebrownies
Copy link

Alternatively we should put a spinner on the Save button to prevent double clicks.

@drwasho
Copy link
Member Author

drwasho commented Mar 9, 2016

That will work too. How long will we leave the order modal hanging though?

@drwasho
Copy link
Member Author

drwasho commented Mar 11, 2016

Ok so I chatted with @cpacia about this issues and this is what's happening in the server:

  1. When confirming an order/marking as shipped or making a payout/rating (probably also dispute, although I haven't tested this), your node will attempt to make a direct connection to the recipient and send the message.
  2. If the recipient is not online, then the server will start a network crawl. This crawl can take upwards of 1 minute to complete.
  3. If the crawl finds the recipient, then it sends the direct message. If not, the message is encrypted and embedded in the DHT for the recipient to pull out the next time they're online.

To enhance the user experience, we need to assume that crawls will always be initiated after these messages are sent. We should not leave the user staring at a modal for a 1+ minutes, even if we have a spinner or something.

What I think we should do is close the modal and create a bottom status bar notification (similar to 'Saved Changes' in the Settings) saying:

  1. The message is sending
  2. The message has been sent

I also think that the first message should keep showing until the message has been sent, because we want to discourage users closing the app immediately (which would cause problems with message delivery). This approach frees up the user to explore other parts of the app while the message is sending in the background.

Best case scenario, more times than not these bottom status bar notifications will briefly show as most messages will be sent immediately (due to a direct connection) and as we make improvements to network crawling (so that it doesn't take so long).

@jjeffryes
Copy link
Contributor

Just a note, I didn't add the loading spinner to this button in the loading button PR because I plan to implement something similar to the more detailed proposal with the status bar for this one.

@drwasho
Copy link
Member Author

drwasho commented Mar 12, 2016

Cool!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants