-
-
Notifications
You must be signed in to change notification settings - Fork 654
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
Improved how muted streams are displayed on Streams screen #5522
base: main
Are you sure you want to change the base?
Conversation
Please squash your commits to provide a clean commit history and make sure your commit message follows the guidelines detailed here. Also, some images would be great. 😃 Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gave it a once over. Thanks for adding images. Left a comment, otherwise looking good so far. Please squash the commits and revise your commit message(s). I linked to relevant resources in my last comment.
9a618e0
to
59087ac
Compare
On second thought, I think I'd like to see my pinned and muted streams grouped together below my pinned streams. I'm no product designer though. @alya What do you think? This would no longer exactly mimic the webapp behavior. |
You mean another section below the pinned comments for the pinned and muted comments orelse just below the pinned streams without having a divider. Right. |
In any case, I don't want to re-summarize the details of the reasoning, but you can search chat.zulip.org for extensive prior discussions of how these sections should be arranged. I think all the reasoning applies equally well to the mobile app. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Syed-Ansar! Comments below.
if (isMuted) { | ||
Component = IconMute; | ||
} else if (isPrivate) { | ||
|
||
if (isPrivate) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This component StreamIcon
is used in several other places besides the Streams screen. So this change affects them too.
It should therefore go in its own commit, with a commit message that describes the changes it's making and why.
That commit can come before the commit that changes the sorting.
return [ | ||
{ key: 'Pinned', data: sortedSubscriptions.filter(x => x.pin_to_top) }, | ||
{ key: 'Unpinned', data: sortedSubscriptions.filter(x => !x.pin_to_top) }, | ||
{ key: 'Unpinned', data: sortedSubscriptions.filter(x => !x.pin_to_top && x.in_home_view) }, | ||
{ key: 'Muted', data: sortedSubscriptions.filter(x => !x.pin_to_top && !x.in_home_view) }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's avoid going through the list of subscriptions three times here. We can do it with just one pass, by using a plain old loop instead of .filter
.
That will also let us deduplicate the conditionals on .pin_to_top
and .in_home_view
.
With the old code it's a bit of a closer call between those advantages of a loop, and the declarative neatness of this .filter
version. But when there's three filters instead of two, and the conditions get further duplicated between them like this, it's time to make it a loop.
Let's have one commit that's NFC (https://github.com/zulip/zulip-mobile/blob/main/docs/glossary.md#nfc ) and just changes the existing code to use a loop and make a single pass. Then a subsequent commit can make the substantive change here.
Fixes: #5514
Improved how muted streams are displayed on Streams screen. Resolved the issue #5514
Muted Streams sorted at the bottom of the Stream List and icon of muted Stream is changed
Muted stream and pinned stream is faded.