This is a proposal for some UX changes that @jounih and I discussed earlier this week.
It follows the discussion in https://github.com/aragon/aragon/issues/63, but this one is about agreeing on a solution to have errors in 0.5.
Generally speaking, a dapp has some specific properties compared to traditional apps:
For these reasons, it would be useful to apply the following principles when possible:
@izqui @bingen @sohkai @luisivan @onbjerg thoughts?
Thanks @bpierre. Just wanted to add a bit of background on this - one of the UX issues with blockchain generally is that it takes some time for on-chain operations, and often there is no clear feedback for the user in the UI what is going on, how long it will take, what the user can do in the meanwhile etc.
Having updates of on-chain events (progress, easy retry if the tx failed etc) shown in the notifications panel will alleviate that problem.
And since the transactions can sometimes take a long time, having them happen in the background - and not blocking the UI - is also a useful UX improvement, so the user can keep using the app. (Obviously reflecting pending changes on the main UI also).
Wondering about the error case: how do we detect if it failed? Low gas transactions could just be stuck for an extremely long time; should we consider that a failure and have a way to send a new transaction that supersedes the original?
If a transaction failed because it reverted, there's nothing we can do (besides provide bug reports).
Wondering about the error case: how do we detect if it failed? Low gas transactions could just be stuck for an extremely long time; should we consider that a failure and have a way to send a new transaction that supersedes the original?
I don’t think it should be considered a failure because the user can still decide to wait, but we should definitely have, on the progress status, the information that something is taking too long. In that case we could also have a “retry” button (with a better naming, maybe “override” or “cancel & retry”), similar to the one in the error item, so people can override the transaction if they want to.
@chris-remus had an interesting idea about turning the Home app into a center of transactions related to the user, indicating the progress of each transaction in a more extended way. You could see that you have opened a vote and that if it passes, next step is withdrawing funds etc. I think that makes sense to provide even richer info that doesn't fit into the notifications panel
Going further on errors, what is considered an error then?
Failed transaction

Successful transaction

In-progress transaction

Combined transactions (previously unread with light bg)

Hover states
Hovering on any item shows a cross to remove the item from the list. Hovering on the app name underlines it, tapping/clicking it takes you straight to that app

Is this issue up for grabs?
@0x6431346e We're not working actively on this yet, and this is definitely a high-value improvement to the app.
The notifications bar is mostly already implemented (but commented out) in aragon/aragon, and we'd need new components for the notification cards themselves and their states. The integration with aragon.js could be the most interesting though; we might need to repurpose or rework the current notifications API (since it was designed for apps to send notifications rather than displaying user transactions).
@jounih @luisivan @lkngtn I'm not sure if we have a complete story for notifications–are we still expecting apps to send notifications from other users' actions (e.g. "Someone else created a vote")?
@0x6431346e I've removed the Aragon DAC label from this as this is something we will be taking on in the next two quarters :).
Closed by #674
Most helpful comment
Failed transaction

Successful transaction

In-progress transaction

Combined transactions (previously unread with light bg)

Hover states
Hovering on any item shows a cross to remove the item from the list. Hovering on the app name underlines it, tapping/clicking it takes you straight to that app