mikedilger / gossip

Gossip is a nostr client
Other
712 stars 81 forks source link

People lists #552

Closed dtonon closed 7 months ago

dtonon commented 1 year ago

Review / Todo

2023-12-18 by dtonon

Sidebar

Create list

Lists view

Contacts view

Feed view

2023-12-04 by dtonon

2023-12-04 by mike

Initial comment

This is the main discussion for the new Priority feed / list, a gateway for the full lists support. This new feature involves 3 views:

The "Priority feed" that shows the filtered notes. It is reachable from the sidebar, below the main feed. It include a switch to filter the notes type (root / replies) and a button to view the contacts list.

Screenshot 2023-10-16 alle 20 04 41



An action on the user profile to add/remove him to the Priority list. In the actual implementation we are using in the profile the same dropdown used in the notes near the user's picture. It is ok to add the action on this dropdown, of course.

image



The "Priority list" with the selected contacts, visibile following the top-right button in the Priority Feed, and maybe from an item in the People menu on the sidebar. On the top-right is present a button to show the related feed.

image



This last view can be reused, identical, for the Followed list in the People section; if it's ok I will start to design it in details.

/cc @mikedilger @bu5hm4nn

dtonon commented 1 year ago

@mikedilger user should be able to add also not-followed contacts?

mikedilger commented 1 year ago

if you add an unfollowed person to priority feed it should follow them too (I did not do that code yet I suspect). Because priority feed does not change the subscriptions to everybody you follow, it just filters it down.

bu5hm4nn commented 1 year ago

Like we talked in our call last week, we should think about what way we want to design it. Either we have to add everyone on any list into following as well, or we make the backend build the nostr query filter out of all "p" on all lists.

I personally favor the latter because it is more flexible. I think we should at some point have dynamic nostr filters with persisted state. So for example a filter could be a bunch of hashtags which we will display as a custom feed, and the backend persists the state (ie. what is the new "since" for this filter).

mikedilger commented 1 year ago

I personally favor the latter

I didn't get that when we talked. I heard you mention the two options, but I didn't hear a preference.

think we should at some point have dynamic nostr filters with persisted state...

Yeah, this is what bogged me down last week. It ends up being a huge amount of changes to derive nostr Filters from the list (e.g. filter on this hashtag or search term or anything really). It seems like the right thing eventually, but we need to take smaller steps at present.

mikedilger commented 1 year ago

As a case in point, someone (not me of course :-) might want to follow sexy girls that post nude pics... but rarely. Most of the time those would get in the way of getting any work done. So you wouldn't want them on your main feed, but maybe when you feel like it you want to go to that list. Forcing those onto your main following list is probably not the right thing.

I'm working on the oldest issue in our issues list: following privately. So the API for managing lists will change a little bit, and the UI is going to need some way to deal with it too.

dtonon commented 1 year ago

@mikedilger

As a case in point

I was thinking exactly about this, maybe niche but interesting use case; quite few people like the current optional push of the contacts list. So we are going on this direction, I will review the design.

@bu5hm4nn

I personally favor the latter because it is more flexible.

Me too.

mikedilger commented 1 year ago

Well it is coded now. We subscribe to the superset (except for people who are only in the muted list)

dtonon commented 1 year ago

Updated design for the list:

image image
bu5hm4nn commented 1 year ago

I would personally prefer to not have to go through a popup menu. Maybe we can create dedicated buttons

dtonon commented 1 year ago

Remove and unfollow are low frequency actions, so usually makes sense to hide them to not clutter the interface. Buttons/icons are also complex to manage graphically, this solution should be easier to do and scale better if we need to add more actions. The user can always find the same actions in the profile. Access to the profile should happen by clicking the row in any position, not only the picture.

I agree with splitting "remove from list" and "unfollow," the proposed solution is related to the old structure in which presence on a list was contingent on following status.

bu5hm4nn commented 1 year ago

Mike already made changes so that you no longer need to follow to add to a list. So we don't have to work around that limitation anymore.

dtonon commented 11 months ago

Profile page review to support personal lists:

image
dtonon commented 11 months ago

@mikedilger testing Unstable [1bc943cd], some feedbacks not related to the UI/UX:

I will put the checklist in the first comment to make it easier to follow.

/cc @bu5hm4nn

mikedilger commented 11 months ago

I did much of the UI recently to get this moving, but here are some of the things I didn't do. I'm opened this on another issue which I will now close.

dtonon commented 11 months ago

@mikedilger I moved the checklists on the first comment, as per your request

dtonon commented 10 months ago

@bu5hm4nn review:

(Checklist on the top)

Sidebar

Create list

Lists view

Contacts view

Feed view

bu5hm4nn commented 10 months ago

598 in progress

bu5hm4nn commented 10 months ago

@dtonon On Contacts view: CR03 CO03: I think we loose the information of those arrows between the two timestamps, it's a really nice visual explanation. I'll leave it for further discussion. CR07: They were already ordered, but by "person.best_name()" function, so I made sure we show that name

dtonon commented 10 months ago

@bu5hm4nn

CO03: I think we loose the information of those arrows between the two timestamps, it's a really nice visual explanation. I'll leave it for further discussion.

I think we should move this inside the dropdown. Or maybe create a separate dropdown just for this group of actions and have a little overlay dot that pop up when remote and local are not aligned. @mikedilger what do you think?

CO08 Increase the star icon near the name

In this view the star seems still smaller than the face emoji.


I added some items to the checklist:

I am not fully convinced about LI07 and CO09, I would need to see it live. And if we keep this change we have to make it a standard UI, so e.g. applying it to relays too.

dtonon commented 10 months ago

@bu5hm4nn some minor glitches:

Checklist on the top updated. I'm going to update this comment if I found something else.

bu5hm4nn commented 7 months ago

Fixed on unstable