-
Notifications
You must be signed in to change notification settings - Fork 41
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
[replies] improve reply failure UX when reply failed to send #68
Comments
So, I'm seeing two pattern approaches, above. Pattern 1: Reply fails to send, so the text remains in the "Compose Reply" window for that Source. For a multi-user system, I think Pattern 2 is the best option. It would look strange for Jane to compose a reply that fails, and then Joe signs-in and sees Jane's text in the "Compose" field. We'd also have to attribute that to Jane in the "Compose" field, which should always/only reflect text the currently signed-in user has put there. I'd love to get a nicely thought-out version of this built into the prototype and to run it by users. I think a lot of ideas have come-up in the past week, and I'd also like to take a time-out from Findings Reporting and prototype building, to jot all these down. In the meantime: yes, my vote would be to go ahead and build Pattern 2 into the Client UI, with some different visual treatment to indicate it had not sent; the option to re-send; and the option to delete the whole thing. I love how much y'all care about how our users experience things! <3 |
So my initial concern with what you proposed is that it feels like we are mixing email and chat with how this behavior works. Email is:
Chat is:
Right now the client feels like a chat app, so we should take either the WhatsApp approach (keep trying until the message actually sends, strict ordering of sent messages) or the Signal approach (try a few times, allow out of order messages). I am strongly in favor of the WhatsApp approach because communication is meant to be received in the order it was spoken/sent, not the order the computer managed to shoot it off. |
@heartsucker It's not quite clear who you're responding to with "what you proposed". It seems to me that the pattern @ninavizz suggests is consistent with the chat-based pattern you describe -- basically in-place retry/cancel in the messaging flow. If we don't do automatic re-delivery (which seems difficult to get right, especially in combination with manual cancel), then the main queuing problem I see is making sure that retries are handled sequentially, i.e., if user clicks retry 1, retry 2, retry 3, the delivery sequence should be 1, 2, 3, not 3, 1, 2 or whatever the API timing results in. But if the user clicks 1, 3, 2, and the recipient gets 1, 3, 2, I don't think that's a big deal. The other UX problem I foresee if there's significant latency is just making sure that users notice delivery errors. There might have to be an error indicator in the list view, so that even if you move along to another source, you can notice that a previous one had delivery errors. |
It's rough. By rough, I mean it's ROUGH... but, check it out: • Click desktop icon |
@heartsucker A few thoughts...
SMS and Twitter both handle messages in the order they were actually sent; not the order in which they were intended to be sent. WhatsApp and Signal are also both (exclusively, for the most part) mobile apps, and as such there's an assumption of immediacy in reading/responding that isn't relevant with SecureDrop—so the SMS/Twitter pattern feels more relevant. I think the proposed pattern above makes sense; and will make the most sense to a Source, receiving correspondence (especially if BenignArtichoke sent a follow-up response between when Jane intended to send her note, and when Joe actually sent Jane's response). Would love to hear your follow-up thoughts. I'm exhausted, will chat more in the AM! |
I was reading between the lines on this one. A message that didn't send that ends up in the "compose" field after failure seemed to imply the email/drafts pattern I was talking about. |
@heartsucker Yup. Erik and I discussed the "compose/drafts" bit early on, and decided against it—mostly for the reason you cite, which is that it confuses paradigms and there's likely not much user value in saving drafts, anyway. |
Since October, we've had a lot of conversations about this issue that are not logged here, so just to recap:
To focus the conversation on improvements we're definitely making for beta, I'm removing the milestone from this issue (which is really more of a discussion issue), and closing it; once we have a first iteration of #291 and #365 done, we'll be in a better position to judge if additional iteration is merited. Feel free to re-open if you disagree. |
added changelog entries for 0.0.5 and 0.0.6
For the following reply user story:
which was previously part of #16, it makes sense to think a bit more about the UX implications prior to implementing it. One suggestion in #16 was to:
@heartsucker suggested another possibly better UX ways to do this, such after a few retries we adopt the as Signal-like behavior, where the reply appears in the message flow, but with an "X" on it such that it is clear it did not send.
The text was updated successfully, but these errors were encountered: