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 view: Use inline date separators. #10820
Conversation
485823d
to
46b834e
Compare
The first two commits here can go straight to master if you want, but the third one might be worth a test deploy. |
I merged the test fix; can do a test-deploy late today or maybe tomorrow. |
OK, test-deploying now. |
See https://chat.zulip.org/#narrow/stream/101-design/subject/date.20separators/near/661609. I also found a weird bug where |
So I think we have support for the concept but a handful of bugs reported by multiple people:
|
(Merged the second refactoring commit, now that I have a bit more time) |
(See also #10839) |
46b834e
to
71ddede
Compare
I rebased, but I haven't addressed any of the feedback yet. |
76b270e
to
67b6d92
Compare
67b6d92
to
3078b00
Compare
The first three commits here are refactoring commits, and they all probably make sense regardless of how the experiment turns out. I wasn't able to reproduce the The last two commits change the actual UI here, and they can arguably be squashed together. The first commit puts the date separators inside groups, not between them. Then the second commit fixes the problem that @jackrzhang reported in #10839, and we now update the FRB as we scroll. I made a couple decisions here that I think are pretty defensible, but we'll see if it elicits feedback:
|
3078b00
to
a17d09f
Compare
I merged the 3 prep commits and push back to this PR. |
I think this decision we'll likely want to undo, in that we did the suppression of dates there when they are irrelevant as part of an effort to declutter the UI, and that change was popular at the time. Changing this just requires bringing back the |
@rishig can you play around with this and let me know if you can find any bugs and what you think about the UX? It seems worth doing a round of that before test-deploying on chat.zulip.org. |
And then styling is in 2646 .date_row .date-line {
2647 display: inline-block;
2648 vertical-align: middle;
2649 width: 33%;
2650 border-top: 1px solid hsl(0, 0%, 88%);
2651 border-bottom: 1px solid hsl(0, 0%, 100%);
2652 margin: 0px 5px 0px 5px;
2653 }
2654
2655 .sub-unsub-message span,
2656 .date_row span {
2657 display: block;
2658 background: inherit;
2659 padding: 4px;
2660 overflow: hidden;
2661 text-transform: uppercase;
2662 font-size: 0.8em;
2663 opacity: 0.5;
2664 } |
Played around with this; looks good to me! I think ready for pushing to master or czo, and then we can fix-forward on the styling. |
OK, just test-deployed on chat.zulip.org. |
Styling-wise, I think we want to remove the |
f0f8112
to
37f609a
Compare
I squashed that change in, and added a fixes tag for #10171, and pushed back here. Test-deploying to czo again. |
I think this part is about the small caps case used in the date-line thingys. |
After playing with this a bit, I like the overall experience, so we should definitely merge something in this direction. I still really want #10820 (comment) to be changed back. Interleaved views like this (which is the only thing that decision affects) now have the date part look really spammy: |
Agreed that removing the extra dates makes sense, even after this change. |
OK. @showell can your refactor this to preserve the existing behavior for the recipient bar date fields (I understand this may require some logic changes)? I think after that, we'll be ready to merge. |
37f609a
to
541aa94
Compare
@timabbott and @rishig This is ready for another round of testing. I de-clutter the dates. Tim, I have commits split out for helping the review, but they should technically be squashed back together. De-cluttering the dates motivated a significant rewrite here. Part of the complications with de-cluttering dates under the new paradigm here is that the FRB for any section can change on the fly. You could theoretically just update the "next" recipient bar every time, as well as the old FRB's neighbor, but this gets edge-case-y really fast. Instead, I just recompute the info for all recipient bars that are visible during every Technically the |
P.S. Tim, I possibly regressed the small CSS tweak you made, not sure. It should be easy to figure out with the current break out of commits, as all my work here was additive (but needs to be squashed). |
I think you didn't -- looks OK. This has been test-deployed on chat.zulip.org for today without report of issues, so I'll try to integrate it first thing tomorrow. |
Cleanup:
|
@rishig just to update you on this PR, Tim Abbott: Well, I think the actual design we're talking about here is this:
I think barring us doing that styling change, this model is about the best we can do (though as I mentioned, I think we could choose the hide/show state for dates in the initial rendering better, such that rather than every message starting with the date appearing and that disappearing 50ms after you scroll the message into view, they instead start out with something more similar to the old static decisions for whether to display dates, and auto-correct that -- that would make the glitch like 30x less visible) |
Makes sense to me. I think the dates not appearing at all for 50ms is also probably fine. |
32e5759
to
b227abd
Compare
This adds date dividers within a single message group when the only reason we had previously been splitting apart two message groups is a change of date. The overall effect is a cleaner message list user experience. The downside of this change would be that the recipient bars no longer will always show a new date for date changes; to fix that, we rewrite how the floating recipient bars both set the date field on the floating recipient bar itself, as well as ensure that non-floating recipient bars don't show duplicate dates. In a future design update where we modify how message recipient bars look, we may very well be able to simplify this logic by removing some of the dynamic nature of the recipient bar calculations. But this is a good implementation of what remains. Tweaked significantly by tabbott from Steve Howell's original, both to extract these changes from a larger PR as well as to modify the first_visible_message logic to handle some tricky corner cases. Fixes zulip#10171.
b227abd
to
f63e579
Compare
OK, I finished cleaning this up and merged it. @showell FYI, I fixed a few things:
Huge thanks for building this @showell! I think it makes zulip's UI look a lot cleaner. |
Fixes border-related glitches introduced by commit 51c6c82 (zulip#10820). Alternative to zulip#11534. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Fixes border-related glitches introduced by commit 51c6c82 (zulip#10820). Alternative to zulip#11534. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Fixes border-related glitches introduced by commit 51c6c82 (zulip#10820). Alternative to zulip#11534. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Fixes border-related glitches introduced by commit 51c6c82 (zulip#10820). Alternative to zulip#11534. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Fixes border-related glitches introduced by commit 51c6c82 (zulip#10820). Alternative to zulip#11534. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Fixes border-related glitches introduced by commit 51c6c82 (zulip#10820). Alternative to zulip#11534. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
There may be a simpler way to check czo here, but the
main goal here is to just deploy-test the one-liner to
get some immediate user feedback.
Testing Plan:
GIFs or Screenshots: