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

Improved how muted streams are displayed on Streams screen #5522

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Syed-Ansar
Copy link

@Syed-Ansar Syed-Ansar commented Oct 8, 2022

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

Simulator Screen Shot - iPhone 13 - 2022-10-08 at 14 48 51

Muted stream and pinned stream is faded.

Simulator Screen Shot - iPhone 13 - 2022-10-08 at 14 48 47

src/streams/StreamIcon.js Outdated Show resolved Hide resolved
@dootMaster
Copy link

dootMaster commented Oct 8, 2022

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!

Copy link

@dootMaster dootMaster left a 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.

src/streams/StreamIcon.js Show resolved Hide resolved
@Syed-Ansar Syed-Ansar force-pushed the feat/sortMutedStreams branch from 9a618e0 to 59087ac Compare October 8, 2022 10:27
@dootMaster
Copy link

dootMaster commented Oct 11, 2022

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.

@Syed-Ansar
Copy link
Author

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.

@alya
Copy link
Collaborator

alya commented Oct 14, 2022

I'm confused about how the proposal above differs from the webapp UI.
Screen Shot 2022-10-13 at 11 28 27 PM

@alya
Copy link
Collaborator

alya commented Oct 14, 2022

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.

Copy link
Member

@gnprice gnprice left a 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.

Comment on lines -21 to +22
if (isMuted) {
Component = IconMute;
} else if (isPrivate) {

if (isPrivate) {
Copy link
Member

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.

Comment on lines 61 to +64
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) },
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve how muted streams are displayed on Streams screen
5 participants