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

Message loading experience is a multi-step process and feels slow and not solid as a result #6045

Closed
jancborchardt opened this issue Feb 16, 2022 · 5 comments
Assignees
Labels
2. developing design enhancement skill:frontend Issues and PRs that require JavaScript/Vue/styling development skills

Comments

@jancborchardt
Copy link
Member

This is how message loading looks right now:
HTML 4 step rendering

The HTML message viewing experience is currently a 4-step process:

  1. The envelope view goes blank first
  2. A small row/envelope appears, with a loading spinner cutting through the bottom, looking broken
  3. It extends to a container which looks of a more proper height, still with spinner
  4. The mail content loads fully and expands (or if very little text, retracts) to full height

To improve this, could we do the following, or some of it?

  1. Completely cut step 1 with the blank view. We do have the avatar and sender data from the message list, the rest is generic controls, so it could all be shown directly?
  2. Skip this step with the small row/envelope → can we directly go to step 3 where the envelope has a reasonable default height?
  3. Several things possible here:
    • Instead of a simple spinner, we can use a skeleton view here – just like we do for Talk conversations, which makes the experience feel much quicker than a generic spinner.
    • The height in this step (new default height) could be reduced a tad to be the exact height it would be if the message had no content (e.g. if only a subject), or only 1 line of text.
    • Sometimes in this step the read/unread state of the mail toggles (see animation, unbolding and bolding of sender name) and goes back again, making it look a bit off.
  4. Have a very quick expand animation (100ms quick or so) to the full height once the content is fully loaded so that it looks less jarring.
@jancborchardt jancborchardt changed the title Improve message loading experience Message loading experience is a multi-step process and feels slow and not solid as a result Feb 16, 2022
@jancborchardt jancborchardt added this to 🧭 Planning evaluation (don't pick) in 💌 📅 👥 Groupware team via automation Feb 17, 2022
@ChristophWurst ChristophWurst removed this from 🧭 Planning evaluation (don't pick) in 💌 📅 👥 Groupware team Feb 28, 2022
@ChristophWurst ChristophWurst added the skill:frontend Issues and PRs that require JavaScript/Vue/styling development skills label Jul 16, 2022
@ChristophWurst
Copy link
Member

ChristophWurst commented Nov 9, 2022

Break down of current HTML loading order

Thread loading

vlcsnap-2022-11-09-11h46m54s353

Message loading

vlcsnap-2022-11-09-11h46m59s137

IFrame loading

vlcsnap-2022-11-09-11h47m06s683

Finished loading

vlcsnap-2022-11-09-11h47m12s550

@ChristophWurst
Copy link
Member

ChristophWurst commented Nov 9, 2022

Preliminary todo

  1. Fix the thread login screen
    • Center the icon (empty content component?)
    • Add a text
  2. Remove the loading thread(emptycontent) as a first step and show the subject/recipient and envelope header directly instead if we have the data Show thread subject while loading thread messages #7607
  3. Fix the message loading screen
  4. Fix the iframe loading screen
  5. Add a skeleton view for inner loading view of a thread Add skeleton loading thread messages #7472
  6. Add a skeleton for the outer loading view of a thread Add skeleton loading thread messages #7472

@ChristophWurst
Copy link
Member

4. Remove the loading thread(emptycontent) as a first step and show the subject/recipient and envelope header directly instead

This is not always possible. If we have no info about the thread but its ID then we have to show some sort of general loading screen. If we have at least one message we can guess the thread subject. The former happen when you load a thread on page load. The latter happens when you open a thread from the loaded envelope list.

#7607 improves those two code paths.

@ChristophWurst
Copy link
Member

@GretaD close?

@GretaD
Copy link
Contributor

GretaD commented Nov 21, 2022

yeesssss

@GretaD GretaD closed this as completed Nov 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2. developing design enhancement skill:frontend Issues and PRs that require JavaScript/Vue/styling development skills
Projects
Development

No branches or pull requests

3 participants