NicolasConstant / sengi

Mastodon & Pleroma Multi-account Desktop Client
https://nicolasconstant.github.io/sengi/
GNU Affero General Public License v3.0
524 stars 34 forks source link

Feature request: Boost status with visibility (unlisted, followers only) #564

Open roobre opened 1 year ago

roobre commented 1 year ago

Mastodon's frontend and app allow to boost statuses controlling the visibility of the boost so, for example, only your followers can see that you boosted something (but it doesn't appear on your public profile).

I personally love this feature of the platform, but I haven't been able to find it on Sengi.

UX wise, different clients implement this in different ways. The mastodon web UI implements this as a selector in the boost confirmation modal, which I don't think it's particularly great. The mastodon android app (and its forks) implement this as a series of options when you long-press the boost icon, which I think it's great but maybe doesn't fit sengi's workflow (I haven't seen any long-press action elsewhere). Something coming to my mind would be simply adding two new entries to the context menu, which seems simple enough but could clutter it a bit:

image

What are your thoughts about this? Is this something you think it would fit on sengi?

If so, I wouldn't mind punching my keyboard to try and come with a PR for it. I am however not super good at JS/TS, so I could use some guidance. I can see that the context menu already has mastodonService, which can be used to boost, but I also see there is quite some complexity in the boost code which I'm not sure if it should be replicated entirely on the context menu. LMK your thoughts about this :)

NicolasConstant commented 1 year ago

Oh, it's a feature I wasn't aware of. 🙂

Since it's available since 2.8.0 we should check for the account's version before enabling it. And being in the context menu is fine for me.

In the boost code, basically you have a 3 steps pipeline (pattern you'll find in many places in this codebase):

Ideally we should refactor this so that we would have the same code acceded by the action-bar and the context menu, but if you're not fluent in Angular and its tooling to create new services, just copy paste this code, I'll do the clean-up after. Just change the mastodon service (and the wrapper) to accept the new parameter, it should be quite straightforward.

Also Sengi need a particular version of node to work, make sure you'll check the doc about that.

If you're interested, I can also share some cookbooks about Angular, contact me via mastodon if that's something you'd like.

Looking forward your PR!

roobre commented 1 year ago

These are awesome pointers, thank you!

I'll do my best to find some spare time to give this a swing :)