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

Aggregations: Handle failures when sending #9692

Open
jryans opened this issue May 13, 2019 · 12 comments
Open

Aggregations: Handle failures when sending #9692

jryans opened this issue May 13, 2019 · 12 comments

Comments

@jryans
Copy link
Collaborator

jryans commented May 13, 2019

(see current status below)

@jryans
Copy link
Collaborator Author

jryans commented May 20, 2019

After chatting with @nadonomy about reactions / edits errors in general, we came up with:

  • Use same e2e (!) icon to decorate messages with an error
    • Clicking on it reveals a context menu with any of:
      • Resend reactions
      • Resend edit
      • Encryption information
  • Users will see the message status bar explaining the error (network, rate limited, unverified, etc.)
  • Irrespective of what colours e2e uses (as its subject to change), unsent edit/reactions should always decorate red

Extracted from Editing / Reactions UX doc.

@jryans jryans changed the title Reactions: Handle error codes when sending Reactions: Handle failures when sending Jun 17, 2019
@jryans
Copy link
Collaborator Author

jryans commented Jun 17, 2019

@nadonomy's plan above actually covers both reactions and edits, so I'll relabel the issue.

@jryans jryans changed the title Reactions: Handle failures when sending Aggregations: Handle failures when sending Jun 17, 2019
@lampholder
Copy link
Member

The edits/reactions/redactions/local-echo work has raised a couple of issues that need rapid resolution:

  • edits/reactions/redactions do not have a 'pending' state in the UX
  • edits/reactions/redactions do not have a 'failure' state in the UX

This is a bigger problem for edits and redactions than it is for reactions (it is considered generally more important for a user to know if an edit or redaction has failed to persist than a reaction)

@nadonomy's proposal above is certainly worth exploring; in his absence though I'd like us to consider the simplest possible change we can make to convey the missing information. This is a proposal for what that might look like:

  • pending actions:
    • represent pending edits as the new message text, but faded (color: #ddd; as per 'sending' message)
    • represent pending redactions as the original event body, but faded (this could work for images as well as regular messages)
    • just represent pending reactions with local echo
  • failed actions:
    • represent failed edits as the new message text, but red (with the (edited) marker next to them) - it already works like this:
      Screenshot 2019-06-17 at 15 32 45
    • represent failed redactions as the redaction lozenge, but red? image
    • represent failed reactions, or failed redactions of reactions with a red border around the reaction?

The ⋮ menu should then have the any necessary resends available as a context-menu option - resend edit, resend redaction, or resend reaction

We'd also need to modify the wording of the error message; something like:

Some of your messages, edits, reactions or redactions have not been sent.

Resend all or cancel all now. You can also select individual messages to resend or cancel pending actions.

@lampholder
Copy link
Member

My motivation for the above was to see how far we could get stretching the existing 'faded == pending, red == failed' language to edit, reactions and redactions. At this stage in my thinking I am very much not convinced that stretching the existing language is the right approach - it could be that an 'error icon' based approach is clearer and simpler to implement.

@lampholder
Copy link
Member

But I'm not sold on the wisdom of mutating the existing (!) from a 'there are encryption things you should know about' indicator to an iteractive 'there are errors on this message you need to do something about' component - at the very least this will be a tricky migration with many users not discovering the new functionality :\

@lampholder
Copy link
Member

Also I just remembered that red == mentioned as well as red == failed, so I'm even less convinced that stretching red to cover all these sorts of failures is a good idea.

@jryans
Copy link
Collaborator Author

jryans commented Jun 27, 2019

Notes from group discussion:

  • Pending = alpha, Error = red
  • When there's an error of any kind, mark the message with (!). Also keep text red as we do now.
  • (!) has context menu as described above
  • For sending errors (unlike E2E errors) the (!) icon should always be full alpha (not just full alpha on hover)
  • Don't need to show pending state for reactions
  • It's okay that pending and editing are the same low alpha
  • Failed redaction can go ahead with red candy bar
  • Nad will redesign the redaction icon overall
  • Room status bar should always appear and it's okay to call everything "messages" (even for edits, reactions, redactions)

@bwindels
Copy link
Contributor

bwindels commented Jun 27, 2019

After another round of discussing, including Matthew, we landed on:

  • the above is a good idea
  • we might still want the "error resolution" e.g. send and cancel options in the context menu
  • switch bings to just highlight the bing word rather than the whole line, to prevent confusing it with a send error.
  • long-time users might be trained to ignore the (!) unknown devices error icon already, as it is very common in e2e rooms. So let's not touch it as described above until cross-signing lands and it should be unexpected to see it. Matthew suggested changing the icon when we finally do so, but unclear how we can change it in a meaningful way as it's already fairly generic.

@bwindels
Copy link
Contributor

Blocked on design

@nadonomy
Copy link
Member

@bwindels is this still blocked? I thought we resolved it with these comments: 1 2

Is anything unclear? Would comps be of use (I could get to them late tomorrow)?

@bwindels
Copy link
Contributor

Oh, you're right @nadonomy, sorry. It's blocked on cross-signing actually :)

@turt2live
Copy link
Member

This is re-blocked on design given the "unsent messages" UI has changed over the years.

su-ex added a commit to SchildiChat/element-web that referenced this issue Dec 6, 2022
* Further improve replies ([\element-hq#6396](matrix-org/matrix-react-sdk#6396)). Fixes element-hq#19074, element-hq#18194 element-hq#18027 and element-hq#19179.
* Enable users to join group calls from multiple devices ([\element-hq#9625](matrix-org/matrix-react-sdk#9625)).
* fix(visual): make cursor a pointer for summaries ([\element-hq#9419](matrix-org/matrix-react-sdk#9419)). Contributed by @r00ster91.
* Add placeholder for rich text editor ([\element-hq#9613](matrix-org/matrix-react-sdk#9613)).
* Consolidate public room search experience ([\element-hq#9605](matrix-org/matrix-react-sdk#9605)). Fixes element-hq#22846.
* New password reset flow ([\element-hq#9581](matrix-org/matrix-react-sdk#9581)). Fixes element-hq#23131.
* Device manager - add tooltip to device details toggle ([\#9594](matrix-org/matrix-react-sdk#9594)).
* sliding sync: add lazy-loading member support ([\element-hq#9530](matrix-org/matrix-react-sdk#9530)).
* Limit formatting bar offset to top of composer ([\element-hq#9365](matrix-org/matrix-react-sdk#9365)). Fixes element-hq#12359. Contributed by @owi92.
* Fix issues around up arrow event edit shortcut ([\element-hq#9645](matrix-org/matrix-react-sdk#9645)). Fixes element-hq#18497 and element-hq#18964.
* Fix search not being cleared when clicking on a result ([\element-hq#9635](matrix-org/matrix-react-sdk#9635)). Fixes element-hq#23845.
* Fix screensharing in 1:1 calls ([\element-hq#9612](matrix-org/matrix-react-sdk#9612)). Fixes element-hq#23808.
* Fix the background color flashing when joining a call ([\element-hq#9640](matrix-org/matrix-react-sdk#9640)).
* Fix the size of the 'Private space' icon ([\element-hq#9638](matrix-org/matrix-react-sdk#9638)).
* Fix reply editing in rich text editor (https ([\element-hq#9615](matrix-org/matrix-react-sdk#9615)).
* Fix thread list jumping back down while scrolling ([\element-hq#9606](matrix-org/matrix-react-sdk#9606)). Fixes element-hq#23727.
* Fix regression with TimelinePanel props updates not taking effect ([\element-hq#9608](matrix-org/matrix-react-sdk#9608)). Fixes element-hq#23794.
* Fix form tooltip positioning ([\element-hq#9598](matrix-org/matrix-react-sdk#9598)). Fixes element-hq#22861.
* Extract Search handling from RoomView into its own Component ([\element-hq#9574](matrix-org/matrix-react-sdk#9574)). Fixes element-hq#498.
* Fix call splitbrains when switching between rooms ([\element-hq#9692](matrix-org/matrix-react-sdk#9692)).
* [Backport staging] Fix replies to emotes not showing as inline ([\element-hq#9708](matrix-org/matrix-react-sdk#9708)).
su-ex added a commit to SchildiChat/element-web that referenced this issue Jan 15, 2023
* Add inline code formatting to rich text editor ([\element-hq#9720](matrix-org/matrix-react-sdk#9720)).
* Add emoji handling for plain text mode of the new rich text editor ([\element-hq#9727](matrix-org/matrix-react-sdk#9727)).
* Overlay virtual room call events into main timeline ([\element-hq#9626](matrix-org/matrix-react-sdk#9626)). Fixes element-hq#22929.
* Adds a new section under "Room Settings" > "Roles & Permissions" which adds the possibility to multiselect users from this room and grant them more permissions. ([\element-hq#9596](matrix-org/matrix-react-sdk#9596)). Contributed by @GoodGuyMarco.
* Add emoji handling for rich text mode ([\element-hq#9661](matrix-org/matrix-react-sdk#9661)).
* Add setting to hide bold notifications ([\element-hq#9705](matrix-org/matrix-react-sdk#9705)).
* Further password reset flow enhancements ([\element-hq#9662](matrix-org/matrix-react-sdk#9662)).
* Snooze the bulk unverified sessions reminder on dismiss ([\element-hq#9706](matrix-org/matrix-react-sdk#9706)).
* Honor advanced audio processing settings when recording voice messages ([\element-hq#9610](matrix-org/matrix-react-sdk#9610)). Contributed by @MrAnno.
* Improve the visual balance of bubble layout ([\element-hq#9704](matrix-org/matrix-react-sdk#9704)).
* Add config setting to disable bulk unverified sessions nag ([\element-hq#9657](matrix-org/matrix-react-sdk#9657)).
* Only display bulk unverified sessions nag when current sessions is verified ([\element-hq#9656](matrix-org/matrix-react-sdk#9656)).
* Separate labs and betas more clearly ([\element-hq#8969](matrix-org/matrix-react-sdk#8969)). Fixes element-hq#22706.
* Show user an error if we fail to create a DM for verification. ([\element-hq#9624](matrix-org/matrix-react-sdk#9624)).
* Prevent unnecessary m.direct updates ([\element-hq#9805](matrix-org/matrix-react-sdk#9805)). Fixes element-hq#24059.
* Fix checkForPreJoinUISI for thread roots ([\element-hq#9803](matrix-org/matrix-react-sdk#9803)). Fixes element-hq#24054.
* Load RTE components only when RTE labs is enabled ([\element-hq#9804](matrix-org/matrix-react-sdk#9804)).
* Fix issue where thread panel did not update correctly ([\element-hq#9746](matrix-org/matrix-react-sdk#9746)). Fixes element-hq#23971.
* Remove async call to get virtual room from room load ([\element-hq#9743](matrix-org/matrix-react-sdk#9743)). Fixes element-hq#23968.
* Check each thread for unread messages. ([\element-hq#9723](matrix-org/matrix-react-sdk#9723)).
* Device manage - handle sessions that don't support encryption ([\element-hq#9717](matrix-org/matrix-react-sdk#9717)). Fixes element-hq#23722.
* Fix hover state for formatting buttons (Rich text editor) (fix element-hq/issues/23832) ([\element-hq#9715](matrix-org/matrix-react-sdk#9715)).
* Don't allow group calls to be unterminated ([\element-hq#9710](matrix-org/matrix-react-sdk#9710)).
* Fix replies to emotes not showing as inline ([\element-hq#9707](matrix-org/matrix-react-sdk#9707)). Fixes element-hq#23903.
* Update copy of 'Change layout' button to match Element Call ([\element-hq#9703](matrix-org/matrix-react-sdk#9703)).
* Fix call splitbrains when switching between rooms ([\element-hq#9692](matrix-org/matrix-react-sdk#9692)).
* bugfix: fix an issue where the Notifier would incorrectly fire for non-timeline events ([\element-hq#9664](matrix-org/matrix-react-sdk#9664)). Fixes element-hq#17263.
* Fix power selector being wrongly disabled for admins themselves ([\element-hq#9681](matrix-org/matrix-react-sdk#9681)). Fixes element-hq#23882.
* Show day counts in call durations ([\element-hq#9641](matrix-org/matrix-react-sdk#9641)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants